Sockets 从IPv6中删除碎片有什么好处?

Sockets 从IPv6中删除碎片有什么好处?,sockets,networking,tcp,network-protocols,ipv6,Sockets,Networking,Tcp,Network Protocols,Ipv6,我在做一个项目,其中包括使用java套接字开发应用程序。然而,在阅读一些基础知识和新出现的IPv6范例时,激发了我提出以下问题 从IPv6中删除碎片有什么好处 如果有人能告诉我原因,我会很有帮助的 我已经在互联网上进行了研究,但没有找到任何有用的描述。我没有“官方”答案,但仅根据阅读IPv6如何处理过大的数据报,我猜是为了减少路由器上的负载。碎片化和重组会在路由器上产生开销。IPv6将此负担转移到终端节点,并要求它们执行MTU发现以确定它们可以发送的最大数据报大小。显然,终端节点更适合于该任务,

我在做一个项目,其中包括使用java套接字开发应用程序。然而,在阅读一些基础知识和新出现的IPv6范例时,激发了我提出以下问题

从IPv6中删除碎片有什么好处

如果有人能告诉我原因,我会很有帮助的

我已经在互联网上进行了研究,但没有找到任何有用的描述。

我没有“官方”答案,但仅根据阅读IPv6如何处理过大的数据报,我猜是为了减少路由器上的负载。碎片化和重组会在路由器上产生开销。IPv6将此负担转移到终端节点,并要求它们执行MTU发现以确定它们可以发送的最大数据报大小。显然,终端节点更适合于该任务,因为它们需要处理的数据更少。实际上,路由器的盘面上有足够的空间;强制节点处理并允许路由器简单地丢弃超出其MTU阈值的内容是有意义的


理想情况下,最终结果将是路由器在IPv6(所有条件都相同)下可以处理比IPv4下更大的负载,因为它们不必担心碎片/重组。处理器的能力可以专用于路由流量。

通常错误地理解为没有IPv6碎片,因为IPv6标头没有IPv4所具有的碎片偏移字段;然而,这并不完全准确。IPv6不允许路由器对数据包进行分段;但是,终端节点可以插入IPv6分段头1

正如RFC 5722所述2,碎片化的问题之一是它往往会造成安全漏洞。在20世纪90年代末,有几次众所周知的Windows 95攻击利用了重叠的IPv4碎片3;此外,由于必须处理的问题太多,数据包的在线碎片很可能会烧坏到互联网路由器硅中。最大的问题之一是,路由器中缓冲的重叠片段(等待重新组装)如果处理不当,可能会在该设备上造成安全漏洞。最终的结果是,大多数路由器实现将需要分段的数据包推送到软件中;这不会在高速下扩展

另一个问题是,如果重新组装片段,则必须将其缓冲一段时间,直到收到其余片段。有人可能利用这种动态,发送大量未完成的IP片段;迫使相关设备花费大量资源等待重新组装的机会。智能实现限制未完成片段的数量,以防止由此产生的拒绝服务;然而,限制未完成的片段可能会合法地影响可以重新组装的有效片段的数量

简言之,存在太多棘手的问题,路由器无法处理碎片。如果IPv6数据包需要分段,主机实现应该足够智能,可以使用。这也意味着需要允许多个ICMPv6消息端到端;有趣的是,许多IPv4防火墙管理员阻止ICMP以防止恶意网络映射(然后天真地阻止所有ICMPv6),但没有意识到阻止所有ICMPv6会以微妙的方式破坏事物4


结束注释:

  • 见本手册第4.5节

  • 发件人:

    常用的防火墙使用指定的算法 在[RFC1858]中删除尝试 覆盖中传输层标头的部分的步骤 以绕过入站连接检查。[RFC1858] 防止对目标进行重叠碎片攻击 上层协议(在本例中为TCP),建议 片段偏移量为1的数据包将被丢弃。
    虽然这对IPv4片段很有效,但不会起作用 用于IPv6片段。这是因为破碎的部分 的IPv6数据包可以包含之前的扩展标头 TCP标头,使此检查无效


  • IPv4保证的最小MTU为576字节,IPv6为15001280字节,建议为1500字节,差异主要在于性能。由于大多数最终用户LAN网段为1500字节,因此由于需要较小规模的传统网络的额外碎片,它减少了存储状态的网络基础设施开销


    对于UDP,IPv4标准中没有关于碎片数据包重建的定义,这意味着每个平台可以以不同方式处理碎片数据包。IPv6声明碎片和组装将始终发生在IP堆栈中,并且碎片不会呈现给应用程序。

    很抱歉,IPv6需要1500字节是不正确的。允许第2层MTU低至1280字节,请参见第5节。为什么片段是TCP还是UDP很重要?IPv4碎片在IP层处理。@Mike数据报程序集不保证。许多消息传递中间件堆栈包含专门用于在底层IP堆栈不能保证重建的代码;与UDP(一种数据报服务)相反,UDP意味着根据定义,有效负载是原子的。因此,可能有平台代码来构造UDP消息流,但这与IPv4碎片无关。@Mike实际上我可能在混合原始IP数据报和UDP数据报,UDP数据报可能有保障,但IP数据报没有保障。i、 e.当在IP.+1以上实施自定义协议时,令人惊讶的是,当路由器可以在硬件中做任何事情时,它们的速度会快得多锁定所有v4 ICMP同样有害-需要的碎片响应对IPv4中的PMTUD同样重要。“碎片和重新组装会导致过多的错误。”