ip数据报中的片偏移怎么计算的?

来源:百度知道 编辑:UC知道 时间:2024/04/29 15:29:33
例如:有一数据报的数据部分分为3800字节(使用固定首部),需要分片的长度不超过1420字节。固定首部为20字节。需要计算分片后的片偏移值?
答案应该是:0,175,350
不知道是怎么计算出来的,希望大家指点,谢谢了。

片偏移就是某片在原分组的相对位置,以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
一共要传输3800字节,每次最大只能传1400字节(因为还要加上ip固定头部字节的20字节,加起来就是1420字节),所以只需传3次,即1400+1400+1000(一共3800字节)即可。
这样第一次传时,片偏移为0。第二次传时,片偏移为1400/8=175。第三次传时,片偏移为2800/8=350。

1420-20=1400
1400/8=175第一个偏移量
(1420+1420)-(20+20)=2800
2800/8=350

1.因为,分片长度不超过1420字节,而固定首部为20字节;所以,一个分片的数据部分最多只能1420-20=1400字节
2.一共有3800字节的数据部分,一次分片最多传数据1400字节,可知,每次分片所传数据字节数分别是:1400,1400,1000(单位:一个字节)
3.也即是每次的偏移大小是:0字节,1400字节,1400字节(偏移大小是当前分片相对于用户数据字段的起点,该片从何处开始)
4.又因为偏移字段值的单位是8字节,所以每次偏移值为:0,1400/8=175,1400/8=175(单位:8字节)
☺️自己才看懂

IP 包总长度为 1420,

IP 包头部固定为 20字节

0 到 175 为 175

175 到 350 也是 175

就是说每段的 间隔为 175

175 * 8 为 1400

加上 IP 包 固定头的 20 ,正好是 1420