文章目录
一、最大传送单元 MTU
二、分片机制 ( 标识、标志、片偏移 )
三、分片机制 示例
四、IP 数据报首部中的相关数据长度单位
一、最大传送单元 MTU
最大传送单元 MTU : MTU 是 链路层可封装数据 的上限 ;
MTU 值 : 以太网的 最大传送单元 MTU 是 1500 15001500 字节 ;
分片 : 链路层的数据部分 , 就是 IP 分组 , 该分组的 MTU 是 1500 字节 , 当网络层的 IP 分组超过 1500 字节 , 此时就要进行分片 ;
二、分片机制 ( 标识、标志、片偏移 )
IP 数据报 分片 : 要根据 首部的 标识 , 标志 , 片偏移 进行相应处理 :
标识 : 同一个 IP 数据报 的分片 , 使用相同的标识 ; IP 数据报大小超过 MTU 时 , 将数据报分片 , 分片完成的 IP 数据报分片 , 其标识都是相同的 ;
标志 : 由 3 33 位组成 , [ 48 , 50 ] [ 48 , 50 ][48,50] , 只有 2 22 位有意义 ;
最高位 : 是保留位 , 没有意义 ;
中间位 : DF 位 , Don’t Fragment ; DF = 1 时 , 禁止分片 ; DF = 0 时 , 允许分片 ;
最低位 : MF 位 , More Fragment ; MF = 1 时 , 后面还有分片 ; MF = 0 时 , 本分片就是该分组的最后一个分片 , 后面没有分片 ;
只有 DF = 0 时 , MF 才有意义 ;
片偏移 : 较长的分组的分片 , 中间的某个分片 , 在原来的 IP 分组中的相对位置 ; 单位是 8 88 字节 ; 也就是说除了最后一个分片 , 每个分片的长度是 8 88 字节的整数倍 ;
三、分片机制 示例
分片机制 示例 :
IP 数据报 : 首部 20 2020 字节 , 数据部分 3800 38003800 字节 ;
将其进行分片处理 : 每个分片不超过 1420 14201420 字节 ;
标识 : 666 666666 ;
标志 : DF = 0 , 表示允许分片 ; MF = 0 , 表示后续没有分片 ;
片偏移量 : 0 00
分片后的结果是 : 分成 三片 ;
第一片 :
分片数据 : 首部 1 11 ( 20 2020 字节 ) + 1400 14001400 字节数据部分 ;
标识 : 666 666666 , 同一个分组的分片 , 标识相同 ;
标志 : DF = 0 , 允许分片 ; MF = 1 , 后续还有分片 ;
片偏移量 : 片偏移量 是 0 , 单位是 8 88 字节 , 本片偏移量相当于 0 00 字节 ;
第二片 :
分片数据 : 首部 2 22 ( 20 2020 字节 ) + 1400 14001400 字节数据部分 ;
标识 : 666 666666 , 同一个分组的分片 , 标识相同 ;
标志 : DF = 0 , 允许分片 ; MF = 1 , 后续还有分片 ;
片偏移量 : 片偏移量 是 175 , 单位是 8 88 字节 , 本片偏移量相当于 1400 14001400 字节 ;
第三片 :
分片数据 : 首部 3 33 ( 20 2020 字节 ) + 1000 10001000 字节数据部分 ;
标识 : 666 666666 , 同一个分组的分片 , 标识相同 ;
标志 : DF = 0 , 允许分片 ; MF = 0 , 后续没有分片 ;
片偏移量 : 片偏移量 是 350 , 单位是 8 88 字节 , 本片偏移量相当于 2800 28002800 字节 ;
片偏移量是从数据部分开始计数 , 数据部分的开始位置是 0 00 字节 , 其单位是 8 88 字节 , 片偏移量 1 11 代表 8 88 字节 ;
四、IP 数据报首部中的相关数据长度单位
IP 数据报首部中的相关数据长度单位 : 速记 : 一种 ( 总长度 ) 八片 ( 片偏移 ) 的 首 ( 首部长度 ) 饰 ( 四 )
总长度单位 : 1 11 字节 ;
片偏移单位 : 8 88 字节 ;
首部长度单位 : 4 44 字节 ;