2016-06-21 54 views
1

我有幾臺運行在Openstack上的虛擬機。我有一臺數據網絡網關分配到MTU = 1500的交換機上,VM必須運行。MTU 1500:1472字節後的分片數據包

另外在Openstack中,我設置了網絡的默認MTU = 1500。

我試圖從1500到分組大小的虛擬機到網關(或在同一網絡上的任何IP)的交換機,它是拆分數據包。

localhost:~# ping -M do -s 1500 10.4.14.18 
PING 10.4.14.18 (10.4.14.18) 1500(1528) bytes of data. 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500) 
From 10.4.14.17 icmp_seq=1 Frag needed and DF set (mtu = 1500 

相反,如果我與MTU較小(1472),它的工作原理髮送數據包,

localhost:~# ping -M do -s 1472 10.4.14.18 
PING 10.4.14.18 (10.4.14.18) 1472(1500) bytes of data. 
1480 bytes from 10.4.14.18: icmp_seq=1 ttl=64 time=0.965 ms 
1480 bytes from 10.4.14.18: icmp_seq=2 ttl=64 time=0.515 ms 
^C 
--- 10.4.14.18 ping statistics --- 
2 packets transmitted, 2 received, 0% packet loss, time 1875ms 
rtt min/avg/max/mdev = 0.515/0.740/0.965/0.225 ms 

我可以看到28個字節的區別,我不明白,在這28個字節正在利用?

回答

4

1500字節MTU適用於網絡層的標準以太網。換句話說:1500字節可以在以太網幀中傳輸而不會被分割。但是,當然,以太網上的其他協議當然會切入最大有效載荷。

在你的情況下(ping的情況下)附加協議是IP和ICMP。它們都有長度分別爲20字節和8字節的標題。

這意味着您可以傳輸最多

1500 bytes (Ethernet mtu) - 20 byte (IP header) - 8 byte (ICMP header) 
= 1472 byte 

參見this question regarding MTU for UDP

0

Ping會添加28個字節的標題然後發送它。

所以如果你想發送-s 1500,實際大小是1500 + 28 = 1528字節。

相關問題