5-3 IPv4
5-3-2 IPv4分片计算
IP分片定义
IP报文最大65535字节,而以太网MTU最大为1500字节。
相当于货轮能载重65535,而火车载重1500,那么必须把货轮上的货物分装给多个火车运输

通过案例理解IP分片

以太网主机发送个IP分组)长度3000字节,头长度为标准长度即基本长度20字节,发送该IP分组时应分为几个分片?
写出各分片的信息(长度、偏移、MF)。
IP分片步骤
分片步骤如下:
- 将报文去掉头部得到原始报文长度为2980Byte
- 按照以太网最大帧长1500Byte分片,其中1500=头部长度+报文长度
- 分片1:20+1480=1500
- 分片2:20+1480=1500,此时剩余2980 - 1960 = 20字节
- 分片3:20+20=40(注意:以太网最小帧长为64字节,不足时应填充至64字节,本例暂不考虑)

MF标志位
在IP头部中,有一个标志位为MF标志位
标志字段的最低位是MF (More Fragment,更多分片)。 MF =1 表示后面“还有分片”。 MF = 0 表示最后一个分片。
- MF=1:本分片后续还有分片
- MF=0:本分片后续没有分片了
偏移量
偏移量:指示的是较长的分组在分片后,某片在原分组中的相对位置。相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个非末尾分片的长度一定8字节的整数倍。
偏移量不涉及报头长度,第一分片的偏移量为0,后续分片偏移量以8个字节为单位,用来描述本分片与第一分片起始位置的距离,便于接收站组装[有一种网络攻击称为泪滴攻击,即通过攻击篡改目标主机的IP报文的偏移量,使得接收站无法正常还原报文]
- 分片1:偏移量为0
- 分片2:偏移量为1480/8=185
- 分片3:1480*2/8=370

形象类比理解IP分片
一个IP数据报文长度为3000字节(包括首部长度),要经过一个MTU为1500字节的网络传输。此时需将原始数据报切分为3片进行传输,请将每个数据报分片的总长度、数据长度、MF标志和片偏移填入答题纸对应表格。
类比翻译:一个大型集装箱,货物+集装箱=3000斤,现在要用小型集装箱进行分装,每个小型集装箱自身重量+货物重量=1500斤,已知大型集装箱和小型集装箱重量都是20斤,问:可以用几个小型集装箱进行分装?每个小集装箱的货物分别是多少斤?

例题
例题1

解析:注意需要将原总长度3000B的数据报头部去掉之后进行计算,该数据报将被分成3个分片
例题2

解析:
- 片偏移:占13位。指示的是较长的分组在分片后,某片在原分组中的相对位置。相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定8字节的整数倍。
- 标志字段中的最低位记为MF。MF=1表示后面”还有分片”的数据报。MF=0 表示这是数据报片中的最后一个。
例题3

解析:
可回看上一节IP头部,头部中有一个标识字段
标识:主机发送IP报文的序号,每发送一次+1。占 16 个比特,属于同一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器,每产生一个 IP 数据报,计数器的值就加1,并将此值赋给标识字段。
IP分片的标识符(Identification)是IP头部中的一个16位字段,用于唯一标识一个IP数据报及其分片。标识符通常由发送主机的IP协议栈通过一个全局计数器生成。每发送一个新的IP数据报,计数器会递增,从而确保短时间内不会重复 当一个IP数据报需要分片时,每个分片的标识符保持不变,而片偏移和标志位(如MF位)则用于指示分片的顺序和完整性
例题4

解析:注意以太网最小帧长为64字节,不足时应填充至64字节
例题5

解析:
IPv6数据报在传输过程中不分片,这是因为IPv6的MTU Discovery机制通过动态探测路径上的最小MTU值,避免了数据包分片问题。IPv6协议在发送数据之前,自动探测路径上最小MTU值,而后发送站就以该最小MTU值封装数据帧,路径上不再进行分片。如下图所示,路径上最小MTU值为400,则PC1发送时就以400字节来封装数据帧

分片之后的数据报不会再路径上的路由器重组,而是在接收站才重组,因为各个分片可能是经过不同路由器而转发,路径上的路由器分片并不一定完整

经过计算可知D选项正确
例题6

解析:
报文分片发生在需要分片的中间路由器或源端
报文分片的重组发生在目的端

