2010-10-29 31 views
0

我想发送数据,以便禁用数据碎片。例如,在平,如果我们写通过零MTU(最大传输单元)的网络发送数据

ping localhost -M do -s 65507 

-M做到:禁止碎片 -s 65507:最大数据包大小

它给我像

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

错误有一些其他方法来做到这一点或使用其他软件。最好是Iperf。

回答

3

听起来就像你在寻找不碎片(DF)的标志。它在flags of the IP header中以每个数据包为基础设置。任何发送比DF集大的MTU都会导致ICMP错误信息的产生。没有DF设置路由器可能会分段并发送。有很多破坏的系统要么吃掉ICMP错误(疯狂的偏执狂防火墙),要么行为异常。

RFC791提供了关于分片IP数据报规则的细节。

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

+0

RFC1191在这里也很有意思,它是TCP如何“发现”两台主机之间路径中所有路由器的最低MTU。 – Flexo 2010-10-29 11:49:30

0

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