首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分割隧道数据包

分割隧道数据包
EN

Network Engineering用户
提问于 2016-11-26 16:28:09
回答 1查看 480关注 0票数 1

我正在浏览思科的文档- 用GRE和IPSEC IP碎片、MTU、MSS和PMTUD问题

我对示例3有一个混淆。下面是截图。

据我所知,总页眉大小为44 (新IP报头(20) + GRE报头(4) +原始IP报头(20))。如示例3所述,路径之间的路由器有1400个字节的MTU。因此,这将留给TCP有效负载1400-44= 1356字节。

但是,该示例显示"1352字节“,即在1400个字节的路径上比最小MTU少4个字节。剩下的104个字节的数据已被传送到下一个片段。

为什么第一个数据包不是完整的1400个字节,而是1396个字节(1352 + 44),并将100个字节的TCP有效负载添加到下一个片段中?

谢谢。

EN

回答 1

Network Engineering用户

回答已采纳

发布于 2016-11-26 16:49:47

您忘记了一个事实,即数据必须在八位组(64位)边界上被分割。如果您取1400-octetMTU并减去44个八进制标头,那么数据只剩下1356个八进制,但是1356年不能被8:1356 / 8 = 169.5整除,而是被169 x 8 = 1352整除。

请参见RFC 791,因特网协议

为了分割长因特网数据报,因特网协议模块(例如,在网关中)创建两个新的因特网数据报,并将因特网头字段的内容从长数据报复制到两个新的互联网报头中。长数据报的数据在8位组(64位)边界上被分成两部分(第二部分可能不是8位字节的整数倍数,但第一部分必须是)。在第一部分NFB中调用8个八进制块的数量(对于片段块的数量)。数据的第一部分放置在第一新的因特网数据报中,总长度字段被设置为第一数据报的长度。多片段标志设置为1。数据的第二部分放置在第二新的因特网数据报中,总长度字段被设置为第二数据报的长度。多片段标志与长数据报具有相同的值。第二个新的因特网数据报的片段偏移字段设置为该字段在长数据报+ NFB中的值。

票数 0
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/36804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档