已知IP数据报首部长度为20字节,若将总长度为6400B的IP数据报通过MTU为1600B的链路传输,计算该数据报需分成的片数。
参考:
https://www.bilibili.com/read/cv9959548/
因为IP数据报首部长度为20字节,因此总长度6400字节的IP数据的数据部分 = 6400 - 20 = 6380(字节);
又MTU = 1600字节 = 20字节(首部) + 1580(数据部分),6380 / 1580 ≈ 4.03,因为最后一片不能舍弃,于是一共有5片。
以下为详细分片过程:
MF:表示数据报后面是否还在传输分片, 1表示是(不是最后一个分片),0表示否(是最后一个分片)
片偏移: 当前分片起始位置(要求必须可以被8整除,不能整除则为往后最近可以整除的位置)/ 8
总长度(字节) 数据长度(字节) MF 片偏移 原始数据报 6400 6380 0 0 数据分片1 1600 1580 1 0 / 8 = 0 数据分片2 1600 1580 1 1584 / 8 = 198 (1580不能整除8,往后顺延就是1584) 数据分片3 1600 1580 1 3160 / 8 = 395 数据分片4 1600 1580 1 4744 / 8 = 593 (4740不能整除8,往后顺延就是4744) 数据分片5 80 60 0 6320 / 8 = 790 各片数据分别为: 0 - 1583 、 1583 - 3159、 3159 - 4743、 4743 - 6319、 6319 - 6379
我们非常希望这篇文章能为你提供所需的帮助。你的反馈和建议对我们来说都是宝贵的资源。如果你有任何想法或问题,别犹豫,请在下方评论区留言。同时,如果你觉得这篇文章有用,欢迎分享给你的朋友们。你的参与促使我们前行,期待与你一起学习和成长。
如果这篇文章对您有帮助,也可以赞赏博主喝杯茶~