目录
网络层
网络层主要完成的工作是主机定位+路由选择
-
主机定位:IP地址是互联网中能够唯一标识一台主机(暂时这么理解),网络层封装了IP地址,所以它发送完数据以后能知道,我的目的地在哪里,也就能够进行主机定位
-
路由选择:IP地址标识了数据转发的目的地,网络层可以根据目的地进行路径选择
网络层提供了一种能力,即可以把数据从主机B送到主机C的能力
-
所谓的能力,表示大概率能完成这个工作,但也有小概率可能完不成这个工作
网络层协议主要是IP协议
网络层与传输层之间的关系
IP协议提供了数据从发送方到接收方的能力,但也有可能完不成这个工作,若完不成这个工作应该怎么办呢?
-
TCP协议提供了主机之间传输数据时的可靠性保证,即发送方发送了数据,接收方一定能收到。这是通过数据重传实现的
-
TCP/IP协议的组合使得数据可以可靠的从发送方到接收方!
IP协议如何主机定位和报文转发
实际上,我们所处的网络世界,是被精心设计过的,它是由无数个小的局域网/子网构成
这些子网通过路由器、交换机等网络设备相互连接,形成了复杂而庞大的网络体系。
而我们使用的主机就是在子网中的一个终端设备
而IP协议要把数据从主机A送到主机B,首先得先找到主机B所在的子网。这个过程可能会路过多个子网。那么如何找到目的子网呢?
-
实际上就是通过IP地址找到,所以IP地址中一定有信息可以标识出主机B所在的子网
所以IP地址 = 目标子网 + 目标主机
所以整个转发过程:
-
先根据目的IP,进行局域网之间的转发
-
局域网内,进行内网转发
IP协议报头格式
-
32位源IP地址:表示发送方的IP地址,这个地址是网络序列,这也说明了为什么我们应用层的IP地址要转化为网络序列
-
32位目的IP地址:表示接收方的IP地址,这个地址也是网络序列!
-
IP协议报头的标准格式(不含选项)是20个字节的,但由于是否有选项,有多少个都是不固定的,所以IP协议报头的大小也是不固定的。
-
4位首部长度:表示IP协议报头的大小,单位是4字节,所以报头大小范围是:[0,60]
-
4位版本:主要表示的是IP协议的版本,有IPv4与IPv6。IPv4是用32位表示源/目的IP,而IPv6是用128位表示源/目的IP,IPv4与IPv6不兼容!
-
8位服务类型:8位中的首3位是弃用的。还有1位是保留字段,这个字段必须为0。还有4为表示你的需求是什么。4 位分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个.
-
16位总长度:表示IP协议的报头+有效载荷的大小
-
8位生存时间(TTL):数据报到达目的地的最大报文跳数. 一般是64。生存时间本质其实是一个计数器。每次经过一个路由TTL -= 1, 一直减到0还没到达, 那么就丢弃了. 这个字段主要是用来防止出现路由循环
-
8位协议: 表示上层协议的类型,即这个IP报文是交付给UDP or TCP层的
-
16位标识、3位标志、13位片偏移,这三个字段主要用于IP的分片和组装,在后面会详细介绍
如何将IP报文的报头和有效载荷进行分离?
首先是通过固定20字节的标准报头格式,这使得分离时可以读取报头的基本信息。
若IP报头携带选项的话可以通过:(4位首部长度*4 - 20)得到
通过4位首部长度,还可以把报头和有效载荷进行分离
分离后的IP报文如何向上交付
网络层协议向上交付,交付给的就是传输层,而传输层协议有很多(主要UDP/TCP),通过IP报头中的8位协议就可以区分到底交付给传输层中的哪个协议!
网段划分
网段划分是什么?
IP地址分为两个部分,网络号和主机号
-
网络号: 保证相互连接的两个网段具有不同的标识;
-
主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;
-
当代路由器除了进行路由转发之外,也可以用于构建子网(局域网)
-
图中网络标识为:192.168.128和192.168.144分别构建了自己的子网。(其中主机号为0的设备一般是构建子网的设备)
-
不同的子网其实就是把网络号相同的主机放到一起.
-
主机号只是在局域网当中唯一的,例如上图中192.168.144和192.168.128都有自己主机号为10的设备
-
如果在子网中新增一台主机, 则这台主机的网络号和这个子网的网络号一致, 但 是主机号必须不能和子网中的其他主机重复.
所谓的网段划分,主要用于将大型网络划分为更小、更易于管理的部分,即子网(Subnet)。
网段划分主要依据IP地址中的网络标识来划分的!
DHCP技术
通过合理设置主机号和网络号, 就可以保证在相互连接的网络中, 每台主机的IP地址都不相同.
但若是由当前子网的网络管理员手动设置不同设备的主机号,是非常麻烦的。因为当一台设备不再连接该子网时需要手动pop,当有一个新设备连接时又需要手动push
-
有一种技术叫做 DHCP, 能够自动的给子网内新增主机节点分配 IP 地址, 避免了手动管理IP的不便
-
DHCP技术也就是我们常说的动态IP地址分配
-
一般的路由器都带有 DHCP 功能. 因此路由器也可以看做一个 DHCP服务器.
网段划分的方