首页
社区
课程
招聘
关于IP数据包的最大长度问题
发表于: 2013-4-4 16:38 7079

关于IP数据包的最大长度问题

2013-4-4 16:38
7079
假设包的总大小为M。不考虑IP选项段。

根据IP包的结构,总长能表示65535个字节。

但是一旦M>本地网络的MTU则会产生分片。
而分片后的片偏移也就16-3=13位,所以能够表示的数据最大偏移位置为2^13-1=8191个字节。

如果IP数据包大小M大于8191+MTU(也大于MTU)则一定会分片。

问题:
为了方便计算,我们假设M=10000(则表示的实际数据量为9980),MTU=1000,单位为字节
则会分为11个分片进行传送,这里就出现问题了,第11个分片的头偏移会大于8191,这个时候该怎么办?是不是也就说明了一个原始IP封包不能大于8191+MTU呢?


求WEB大神讲解,万分感谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
晕,没想到其实能发求助贴。。。。悬赏贴弄的没B了,小菜一个。。。。第一次发帖
2013-4-4 16:43
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
片偏移 13位长,表示该片与原始IP数据报中的有效载荷的位置关系,即表明了每个分片相对于原始数据报的位置。
片偏移的单位
由IP头部总长度决定的IP有效载荷大小是65515字节(总长度减去最小IP头部长度),如果片偏移单位是1的话就需要16位的,而片偏移只有13位的值最大是8191。所以片偏移每个字段的每个值必须代表3位。因此,片偏移字段被定义成8字节一块,叫做分片块。

例子,
总长度4482字节,MTU 1500字节。如果没有IP选项,有效载荷最大1480字节,1480=185 x 8,所以片值以185位增量增加。第一片的片偏移是0,第二片是185
2013-4-4 19:00
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,原来片偏移的单位是8个字节啊。教科书不行啊
2013-4-4 20:17
0
游客
登录 | 注册 方可回帖
返回
//