【问题标题】:How are IP packets reassembledIP数据包如何重组
【发布时间】:2013-08-07 11:18:13
【问题描述】:

假设我们有一个总大小为 12000 字节的 IP 数据包,我们将这个数据包从 A 站通过数据链路层发送到 B 站。一个以太网帧最多可以承载 1500 字节的有效载荷数据,所以总共需要 8 个以太网帧来传输 12000 字节的 IP 数据包,对吗?

假设第一个以太网帧(带有 IP 标头)在传输过程中出现乱码,并且 IP 标头的 TotalLength 字段不再包含实际长度,而只是一些无意义的值。即使 B 站意识到标头校验和不再有效并丢弃该帧,B 站如何知道下一个 IP 数据包在传入数据流中从哪里开始呢?它不知道第一个IP包有多少字节的payload,对吧?

或者,IP 数据包的大小是否受到底层数据链路帧可以处理的有效负载的最大长度的有效限制?

【问题讨论】:

    标签: networking ip ethernet data-link-layer


    【解决方案1】:

    好吧,经过一番研究,IP数据包的最大大小确实是由数据链路的最大传输单元(MTU)决定的。

    对于那些关心的人,这个网站很好地分解了它:http://aa.net.uk/kb-broadband-mtu.html

    【讨论】:

      【解决方案2】:

      IP 分片的大小受 MTU 限制,IP 数据包的大小受 IP 头的大小字段限制。接收方可以通过 Total Length 和 Fragment offsets 字段了解整体大小以及收到的 IP 分片是否是第一个。如果组装出错,那么下一层的校验和会告诉你,或者你开始接收将覆盖重复偏移的片段。它适用于 IPv4。对于 IPv6,它与强制 MTU 发现和几乎禁止的 IP 数据包分片不同。

      【讨论】:

        猜你喜欢
        • 2011-01-11
        • 1970-01-01
        • 2013-09-13
        • 1970-01-01
        • 2014-02-20
        • 2015-11-24
        • 2015-04-21
        • 2013-11-21
        相关资源
        最近更新 更多