2010-10-29 35 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字節,包括標頭。你不能忽視這一點。您無法發送沒有碎片的大數據包。