为什么我们需要ipv6中的碎片?

时间:2014-03-07 13:59:29

标签: ipv6

我知道ipv4中的数据包碎片是由路由器完成的,而ipv6是由主机通过发送pmtu来发现的。 mtu哪个主机可以确定mtu的最小大小,这样他就可以发送一个适合这些小尺寸的数据包,为什么我们需要ipv6中的fragmention头,如果我们已经知道它的大小! 为什么我们只是把它发送得很小而没有碎片?

1 个答案:

答案 0 :(得分:1)

在IPv6中“强烈建议”使用PMTU发现,因此必须支持某种碎片。

这引出了为什么PMTU发现不是强制性的问题。对于IPv6的作者来说这是一个问题,但有几个原因可以想到:

  • PMTU发现在与新对等体通信时会增加一些延迟,这可能是不可取的。
  • PMTU发现/管理需要发送方中的一些内存,这在受限设备中可能是不可取的。
  • 两个同伴之间的PMTU可以改变;通过碎片处理此问题(同时发生后续的PMTU重新发现)可能比停止通信更好,直到建立新的PMTU为止。
  • PMTU可能会被阻止,例如通过防火墙。 (虽然在这种情况下,IPv6建议降级到1280个八位字节的MTU而不是分段,但如果真正的MTU是<1280个八位字节 - 不允许IPv6,但可能在IPv6-> IPv4转换中)那么我们就会仍然需要片段化。)
  • 某些第4层协议不支持可变数据包大小,因此如果初始PMTU发现不成功,则碎片将是必不可少的。