通过零MTU(最大传输单元)的网络发送数据

时间:2010-10-29 11:08:51

标签: networking packet fragment

我想发送数据,以便禁用数据碎片。例如在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。

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

以太网的MTU是1500字节,包括标头。你不能忽视这一点。你没办法发送一个没有碎片的大包。