首页 > 编程语言 >Java 从入门到放弃12 - 《网络编程基础》

Java 从入门到放弃12 - 《网络编程基础》

时间:2022-10-31 19:46:38浏览次数:53  
标签:协议 12 Java IP 编程 网络 TCP DNS IP地址

网络编程基础

为了把计算机接入互联网,就必须要使用TCP/IP协议。

TCP/IP协议泛指互联网协议,其中最重要的两个就是TCP和IP协议,而使用其他网络协议都是无法接入互联网的

IP地址

在互联网中,一个IP地址用于标识一个唯一的网络接口(Network Interface)。一台接入互联网的计算机肯定至少有一个IP地址。

IP地址有两种,IPv4和IPv6,IPv4地址是32位的,IPv6是128位的,而目前IPv4的地址基本已经耗尽,IPv6的地址是根本用不完的。

IP地址又分为,公网IP和内网IP。公网IP可以被直接访问,而内网IP只能在内网被访问。

  • 本机的地址,是127.0.0.1
  • 计算机有多少个网址,取决于它有多少个网卡,如果一台计算机有两块网卡,除了本机地址以外,它还可以有两个IP地址,可以分别接入两个网络。
  • 通常交换机和路由器就是这阳接入两个网络的设备,他们把网络之间连接起来

网络号

如果两台计算机位于同一个网络,那么他们可以直接通信,因为他们的IP地址前段是相同的,也就是网络号是相同的。 网络号是IP地址通过子网掩码过滤后得到的,例如:

某台计算机IP为 101.202.99.2 , 子网掩码是 225.225.225.0

那么网络号为:
IP = 101.202.99.2

Mask = 255.255.255.0

Network = IP & Mask = 101.202.99.0

如果两台计算机计算出来的网络号相同,说明两台计算机在同一个网络,可以直接通信。 如果两台计算机计算出的网络号不同,那么他们不能直接通信,需要通过路由器或者交换机这样的网络设备间接通信,我们把这种设备叫做网关。

网关的作用就是连接多个网络。

把来自一个网络的数据包发到另一个网络的过程叫做路由。

域名

因为IP地址是非常难以直接记忆的,所以我们经常通过某个域名访问某个特定的服务。

DNS系统

网络出现的早期,是使用IP地址进行通讯的,但是随着接入网络的主机数量的逐渐增多,这种数字标识的地址非常不便于记忆,UNIX上面就出现了hosts文件,这个文件一般用于记录主机名称和IP地址的对应表,这样只要输入主机名称,系统就回去加载hosts文件并且查找对应关系,找到对应的IP,这样就可以直接访问主机了。

但是后来主机太多了,无法保证所有人都能统一拿到最新的hosts文件,于是就出现了在文件服务器上集中存放的hosts文件,以供下载使用,但是随着互联网规模的越来越大,这种方法也编的低效了起来,于是DNS系统出现了,随着解析规模的继续扩大,DNS系统也在不断地演化,一直到了现在的多层架构体系。

  • DNS概括

DNS(Domain Name System,域名系统),是一个因特网上作为域名和IP地址互相映射的一个分布式数据库,一个得到域名的过程叫做域名解析(或主机名解析)。DNS运行在UDP协议之上,使用端口号53

DNS的分布数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space),如下图所示树的最大深度不得超过127层,树中每个节点都有一个可以长达63个字符的文本标号。

  • DNS的作用

DNS系统的作用

正向解析:根据主机名称(域名)查找对应的IP地址

反向解析:根据IP地址查找对应的主机域名

DNS系统的分布式数据结构

使用nslookup可以查看域名对应的IP地址

网络模型

由于计算机网络从底层传递到高层非常复杂,所以需要合理地设计计算机网络模型,必须采分层模型

OSI模型

OSI(Open System Interconnect) 网络模型式ISO组织定义的一个计算机互联的标准模型,这个模型从上到下依次是:

  • 应用层,提供应用程序之间的通信;
  • 表示层:处理数据格式,加解密等等;
  • 会话层:负责建立和维护会话;
  • 传输层:负责提供端到端的可靠传输;
  • 网络层:负责根据目标地址选择路由来传输数据;
  • 链路层和物理层负责把数据进行分片并且真正通过物理网络传输,例如,无线网、光纤等。

而互联网实际使用的TCP/IP模型并不是对应了OSI的7层模型,而是大致对应五层模型

OSI TCP/IP
应用层 应用层
表示层 应用层
会话层 应用层
传输层 传输层
网络层 IP层
链路层 网络接口层
物理层 网络接口层

常用协议

IP协议

一种分组交换传输协议,不保证可靠传输

可以理解为:只负责发数据包,不保证顺序和正确性

TCP协议

一种建立在IP协议之上的协议,它是一种传输控制协议,他是面向连接的协议,支持可靠传输和双向通信

可以理解为:先建立连接,在传输数据,传输完再断开连接

TCP协议还允许双向通信,即通信双方可以同时发送和接收数据。

TCP协议也是使用最广泛的协议,许多高级的协议都是建立在TCP协议之上的,比如HTTP,SMTP等

UDP协议

是一种数据报文协议,它是一种无连接协议,不保证可靠传输,传输的数据通常是能容忍丢失的,比如语音视频等

标签:协议,12,Java,IP,编程,网络,TCP,DNS,IP地址
From: https://www.cnblogs.com/ZzTzZ/p/16845493.html

相关文章

  • 单片机 N76E003 EC12 编码器
    sbitEC_B=P0^0;//编码器P0.0端口sbitEC_A=P1^3;//编码器P1.3端口staticuint8_tEC_A_Val=0,EC_B_Val=0;staticuint8_tEC_A_old=0,EC_B_ol......
  • 12.整合Mybatis
    12.整合Mybatis12.1.步骤:1.导入相关jar包junitmybatismysql数据库spring相关的aop织入mybatis-spring【new】2.编写配置文件3.测试12.2.回忆Mybatis编写实......
  • Java学习笔记day1——注释
    /*java包含以下三种注释方法:1.单行注释2.多行注释*单行多行注释对所写程序进行注释说明,增强可读性,方便自己方便别人。*还可以调试所写的代码,注释内容均不参与编译......
  • Java学习笔记day1——变量
    /*1.关键字(keyword)和保留字*所有关键字都是小写的;*保留字:现有的Java版本尚未使用,但是以后的版本可能会用:goto,const。2.标识符--identifier*凡是可以自己起......
  • Java学习笔记day1——String类型变量
    /*String(字符串)类型变量的使用*1.String属于引用数据类型;*2.String用双引号""进行定义;*/classStringTest{publicstaticvoidmain(String[]ag......
  • java构造器
    后期使用反射的时候,如果自己重写了一个构造器,那么系统不会默认添加无参构造器,建议在写类时,如果要添加有参构造方法,一定要将无参构造方法也加上classStudent{//构......
  • Qt on Android 开发之 C++与Java 交互
    目录​​简述​​​​Qt引入Android模块​​​​Java示例​​​​Cpp与java交互​​简述我做了一个小例子,来实现了C++与Java之间的交互。该示例是以整形和字符型举例说明,......
  • java中将word转换为html导入到kindeditor编辑器中(解决图片问题,样式,非常完美)
    ​ 项目需求可发布文章需求涉及到富文本编辑器经过查阅我选择了较为简便不需要后端支持可独立完成的tinymce框架官方文档也是相当完整虽然都是全英文但是有强大的......
  • 完美解决 java: 无效的目标发行版: 11
    1、问题描述经过研究才发现,这是因为作者使用了jdk8进行编译,而试图使用jdk11的功能,这就必然会导致版本问题,因为jdk8支持1-8这个区间的功能,如何解决这个问题呢? image-2......
  • 面向对象编程
    1.对象Object对象的两个部分:属性、行为面向对象编程的三大特点:封装、继承、多态2.封装写程序的时候也可以采用封装的理念,对于一些内容我们不提供接口来使用它们,它们属......