我试图理解数据包分段在 IPv6 中的工作方式。
据我了解,IPv6 路由器从不对数据包进行分段:在收到大小大于下一个网络的 MTU 的数据包时,IPv6 路由器将丢弃它,将 ICMPv6 Packet Too Big 消息发送回源主机。
考虑到这一点,我想了解以下内容:
- ICMP 消息由源主机上的 IP 协议实现处理是否正确?
- Packet Too Big 消息具体是如何处理的?
- 协议规范中定义了对 PTB 消息做出反应的正确方法还是由实现来决定?
- 处理是否会因负载是 TCP 还是 UDP 而有所不同?
- 分段/PTB/Path MTU Discovery 是完全在 IP 层处理,还是需要上层协议参与?
- 如果 ICMP 流量在路由器和源之间的某处被过滤,而 PTB 从未被接收到怎么办?
最后我想知道的是,作为应用程序开发人员并使用 TCP/UDP 工作,IP 分片是否是我需要关心的事情。