1、IP数据报格式
IP数据报格式分为首部和数据部分,其中首部又可以细分为固定部分和可变部分;数据部分若是过大,则会对数据进行分片。
1.1 IP数据报首部信息
版本: 中记录了当前数据报使用的是IPV4协议还是IPV6协议;
首部长度: 的单位是4B,最小为5,最大为15,因为首部长度的空间大小只有4位;最小为5是因为,首部固定长度部分最少为20B;
区分服务: 指示期望获得哪种类型的服务,如强调数据报的优先级;
总长度: 首部长度+数据长度,单位是1B,总长度的空间大小为16位,最大可以表示的数字为65535,再乘以单位1B,说明总长度最大为65535B;
生存时间(TTL): IP分组的保质期。经过一个路由器-1,变成0则将数据报丢弃;
协议: 指的是数据部分使用的协议,各种协议对应的字段如下所示:
首部检验和: 只检验首部,不检验数据部分;
源地址和目的地址: IPV4协议下的地址长度为32位;
可选字段: 0-40B,用来支持排错、测量以及安全等措施;
填充: 全为0,把首部补成4B的整数倍;
2、IP数据报的分片
最大传送单元MTU
表示链路层数据帧可以封装的数据上限,以太网的MTU是1500字节,超过1500字节就要对数据进行分片处理。
标识:
同一数据报的分片使用同一个标识;
标志:
有3位,但是只有两位有意义,中间位为DF(Don’t Fragment),DF=1,禁止分片;DF=0,允许分片。最低位MF,(More Fragment):MF=1,后面还有分片;MF=0代表最后一片/没有分片。
片偏移:
指出较长分组分片后,某片在原分组中的相对位置,以8B位为单位。通过片偏移的调整规则可以发现,数据报中若进行分片之后,除了最后一个分片,每一个分片一定是8B的整数倍。
IP数据报分片例题:
一种八片的首饰:
总长度的单位是1B,片偏移的单位是8B,首部长度的单位是4B。