一、最大传送单元 MTU



最大传送单元 MTU : MTU 是 链路层可封装数据 的上限 ;

MTU 值 : 以太网的 最大传送单元 MTU 是 1500 1500 1500 字节 ;

分片 : 链路层的数据部分 , 就是 IP 分组 , 该分组的 MTU 是 1500 字节 , 当网络层的 IP 分组超过 1500 字节 , 此时就要进行分片 ;





二、分片机制 ( 标识、标志、片偏移 )



IP 数据报 分片 : 要根据 首部的 标识 , 标志 , 片偏移 进行相应处理 :

在这里插入图片描述

标识 : 同一个 IP 数据报 的分片 , 使用相同的标识 ; IP 数据报大小超过 MTU 时 , 将数据报分片 , 分片完成的 IP 数据报分片 , 其标识都是相同的 ;

标志 : 3 3 3 位组成 , [ 48 , 50 ] [ 48 , 50 ] [48,50] , 只有 2 2 2 位有意义 ;

  • 最高位 : 是保留位 , 没有意义 ;
  • 中间位 : DF 位 , Don’t Fragment ; DF = 1 时 , 禁止分片 ; DF = 0 时 , 允许分片 ;
  • 最低位 : MF 位 , More Fragment ; MF = 1 时 , 后面还有分片 ; MF = 0 时 , 本分片就是该分组的最后一个分片 , 后面没有分片 ;
  • 只有 DF = 0 时 , MF 才有意义 ;

片偏移 : 较长的分组的分片 , 中间的某个分片 , 在原来的 IP 分组中的相对位置 ; 单位是 8 8 8 字节 ; 也就是说除了最后一个分片 , 每个分片的长度是 8 8 8 字节的整数倍 ;





三、分片机制 示例



分片机制 示例 :

  • IP 数据报 : 首部 20 20 20 字节 , 数据部分 3800 3800 3800 字节 ;

  • 将其进行分片处理 : 每个分片不超过 1420 1420 1420 字节 ;

  • 标识 : 666 666 666 ;

  • 标志 : DF = 0 , 表示允许分片 ; MF = 0 , 表示后续没有分片 ;

  • 片偏移量 : 0 0 0


分片后的结果是 : 分成 三片 ;


第一片 :

  • 分片数据 : 首部 1 1 1 ( 20 20 20 字节 ) + 1400 1400 1400 字节数据部分 ;
  • 标识 : 666 666 666 , 同一个分组的分片 , 标识相同 ;
  • 标志 : DF = 0 , 允许分片 ; MF = 1 , 后续还有分片 ;
  • 片偏移量 : 片偏移量 是 0 , 单位是 8 8 8 字节 , 本片偏移量相当于 0 0 0 字节 ;

第二片 :

  • 分片数据 : 首部 2 2 2 ( 20 20 20 字节 ) + 1400 1400 1400 字节数据部分 ;
  • 标识 : 666 666 666 , 同一个分组的分片 , 标识相同 ;
  • 标志 : DF = 0 , 允许分片 ; MF = 1 , 后续还有分片 ;
  • 片偏移量 : 片偏移量 是 175 , 单位是 8 8 8 字节 , 本片偏移量相当于 1400 1400 1400 字节 ;

第三片 :

  • 分片数据 : 首部 3 3 3 ( 20 20 20 字节 ) + 1000 1000 1000 字节数据部分 ;
  • 标识 : 666 666 666 , 同一个分组的分片 , 标识相同 ;
  • 标志 : DF = 0 , 允许分片 ; MF = 0 , 后续没有分片 ;
  • 片偏移量 : 片偏移量 是 350 , 单位是 8 8 8 字节 , 本片偏移量相当于 2800 2800 2800 字节 ;

片偏移量是从数据部分开始计数 , 数据部分的开始位置是 0 0 0 字节 , 其单位是 8 8 8 字节 , 片偏移量 1 1 1 代表 8 8 8 字节 ;





四、IP 数据报首部中的相关数据长度单位



IP 数据报首部中的相关数据长度单位 : 速记 : 一种 ( 总长度 ) 八片 ( 片偏移 ) 的 首 ( 首部长度 ) 饰 ( 四 )

  • 总长度单位 : 1 1 1 字节 ;
  • 片偏移单位 : 8 8 8 字节 ;
  • 首部长度单位 : 4 4 4 字节 ;
阅读全文
AI总结
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐