互联网中的网络层
IP数据报格式
-
ver: 四个比特的版本号(IPV4 0100, IPV6 0110)
-
headlen:head的长度(头部长度字段(IHL)指定了头部的长度,以32位字(4字节)为单位计算。这个字段的值乘以4就是头部的实际长度,因为每个值代表4个字节。所以,如果IHL字段的值为5,那么头部长度就是5 * 4 = 20字节,IP数据包头部最小长度是20所以这个headlen字段最小的值是5)
-
flgs字段是分片用的
-
upper layer: (该字段是8位长,就是protocol字段,它指示了数据部分所使用的上层协议类型。以下是一些常见协议类型的数值表示:1表示ICMP(Internet控制消息协议);6表示TCP(传输控制协议);17表示UDP(用户数据报协议))
-
这里的Internet checksum是头部的校验和
-
Option:比如说有些option就是记录下途中每个路由器的地址
IP分片和重组(Fragmentation & Reassembly)
- 网络链路有MTU(最大传输单元,是包括头部的)——链路层帧所携带的最大数据长度
- 不同的链路类型
- 不同的MTU
- 大的IP数据报在网络上被分片(“fragmented”)
- 一个数据报被封为若干个小的数据报(每个小的数据报必须都要加上头部)
- 相同的ID
- 不同的偏移量(以八个字节为单位偏移量)
- 最后一个分片的fragflag标记为0,反之为1
- “重组”旨在最终的目标主机进行(要是每个路由器都充足的话就太忙了)
- 胖分组加入中间有分片没到就全扔了
- IP头部的信息被用于表示,排序相关分片
- 一个数据报被封为若干个小的数据报(每个小的数据报必须都要加上头部)
IP编址
- IP地址:32位标识,对主机或者路由器的接口编址(是标识接口点的而不是标识主机)
- 接口:主机/路由器和物理链路的连接处
- 路由器通常多个接口
- 主机也有可能多个接口
- IP地址和每个接口相关联
- 一个IP地址和一个接口相关联
子网(Subnet)
- IP地址:
- 子网部分(高位bits)
- 主机部分(低位bits)
- 什么