设IP头为20字节,数据为2200字节,而最大传输单元MTU为630字节,问分片后第一片(含片头)的大小为?
答案为628字节,但不知道为什么.
---------------------------------------------------------------
如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象
在分片时,除最后一片外,其他每一片中的数据部分(除IP首部外的其余部分)必须是8字节的整数倍。
在本例中, ip头为20 ,MTU=630 ,则630-20=610,在1-610之间最大的8的倍数是608,加上片头20,则为628,所以分片后第一片(含片头)的大小为628<MTU(630)
我们假设上例中传输的是一个2200字节的UDP数据包,则IP分片后为以下四片:
分片一:
ip首部 UDP首部 UDP数据
20 8 600
分片二:
ip首部 UDP首部 UDP数据
20 8 600
分片三:
ip首部 UDP首部 UDP数据
20 8 600
分片四:
ip首部 UDP首部 UDP数据
20 8 400