【问题标题】:Sending data over a network with zero MTU (Maximum Tranmission Unit)通过零 MTU(最大传输单元)的网络发送数据
【发布时间】:2010-10-29 11:08:50
【问题描述】:

我想发送数据以禁用数据碎片。例如在 ping 中,如果我们写

ping localhost -M do -s 65507

-M do : 禁用碎片 -s 65507 : 最大数据包大小

它给了我一个类似

的错误
From localhost (127.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 16436)

是否有其他方法可以做到这一点或使用其他软件。最好是Iperf。

【问题讨论】:

    标签: networking packet fragment


    【解决方案1】:

    听起来您正在寻找不要碎片 (DF) 标志。它在flags of the IP header 中基于每个数据包进行设置。任何发送大于设置了 DF 的 MTU 的内容都将导致生成 ICMP 错误消息。如果没有设置 DF,路由器可能会分段并发送。那里有很多损坏的系统,它们要么吃掉 ICMP 错误(疯狂的偏执防火墙),要么表现得很奇怪。

    RFC791 提供有关 IP 数据报分段规则的详细信息。

    典型的 MTU 为 1500 字节。 IPv4 的最小 MTU 为 576,而 IPv6 为 1280。千兆以太网和其他链路通常支持更大的 MTU。

    【讨论】:

    • RFC1191 在这里也很有趣,因为它是 TCP 如何“发现”两台主机之间路径中所有路由器的最低 MTU 的。
    【解决方案2】:

    以太网的 MTU 为 1500 字节,包括标头。你不能忽视这一点。没有碎片就无法发送这么大的数据包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多