首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重组是否发生在每个节点上?

重组是否发生在每个节点上?
EN

Stack Overflow用户
提问于 2017-03-16 09:35:02
回答 1查看 146关注 0票数 1

这个问题是在IoT协议栈、IPv6和and协议栈的上下文中提出的。

在下面的图像中,相邻节点在彼此的无线电范围内,如最左边节点所示。

如果我从节点1发送一个大数据包到节点4,那么将发生以下哪一种情况?

  • 在2处重新组装,碎片和前向3; 在3处重新组装,碎片和前向4; 4点重新组装。
  • 2和3将碎片向前推进,并仅在4时重新组装。

在哪个特定的RFC或受信任的文档中,我可以阅读更多有关这方面的内容?

EN

回答 1

Stack Overflow用户

发布于 2017-07-28 19:44:45

简短的回答:

IPV6确实支持碎片化。您可以在RFC 2460节5.4片段头中找到详细信息

https://www.ietf.org/rfc/rfc2460.txt

在IPV6下,如果需要分段,则发送方必须这样做(节点1),最终接收方将重新组装它(节点4)。

更长的答案

我不确定西西斯慢潘用于运输的东西(UDP,TCP,其他的东西)。但总的来说,IPV6将做些什么:

节点1试图将“大”大小的分组发送到节点4,该分组的大小大于其中一个段(1,2),(2,3),(3,4)的MTU。让我们假设它太大,不适合分段(2,3)。

  • 节点1发送分组并使其安全地穿越(1, 2 )到节点2。
  • 节点2试图将分组发送到节点3,并实现用于(2,3)的MTU不能支持分组大小。
  • 节点2丢弃数据包并向节点1发送和ICMP消息,让它知道该路由所需的MTU是什么。

此时节点1更新MTU以获取它将发送给节点4的流量。

发送方有责任处理由于MTU在路由上不匹配而丢弃的数据包。

如果节点1使用TCP或其他流协议,则可以更改传出数据包的大小以匹配MTU。任何丢弃的数据包都将由TCP协议重新传输.

如果Node 1使用的是UDP或其他基于数据报的协议,那么它可能无法减少数据包大小,因此在发送数据包时必须将其碎片化。先前发送的数据包丢失,使用UDP的应用程序需要处理丢失。

这些数据包都会到达节点4。

节点4将重新组装分段数据包。

请注意,沿着路线的另一段,例如(3,4)有可能有一个更小的MTU。如果这是真的,那么这些片段也将被删除,另一个ICMP将与适当的MTU一起发送,节点1将需要再次更新。

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

https://stackoverflow.com/questions/42830142

复制
相关文章

相似问题

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