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