Oke, saya baru saja menyelesaikan masalah frame jumbo antara beberapa Xserves, Netgear GSM7224, dan Drobo B800i. Ternyata Xserves (Mac OS X 10.6.8 Server) dan Drobo B800i menerima MTU dalam byte seperti yang biasanya diharapkan (1500-9000), tetapi Netgear tampaknya menginginkannya termasuk berbagai ethernet header / footer (trailer) ) dan saya akhirnya berakhir dengan Xserves & Drobo yang dikonfigurasi dengan MTU 9000 dan port Netgear diatur ke MTU 9216.
Saya telah menggunakan perintah berikut untuk menguji & memverifikasi MTU antara dua Xserves atas Netgear (Catatan: ini adalah perintah Mac OS X, yang Windows & Linux berbeda):
ping -D -s <mtu> <ip_address>
traceroute -F <ip_address> <mtu>
Penggunaan former dicatat di man
halaman sebagai, "Tentukan jumlah byte data yang akan dikirim. Standarnya adalah 56, yang diterjemahkan menjadi 64 byte data ICMP bila dikombinasikan dengan 8 byte data header ICMP." Dalam pengujian, saya menemukan bahwa untuk ping -D 1472 <ip_address>
setara dengan MTU 1500 karena 8 byte data header ICMP ditambah 20 byte header IP (lihat ini dan ini ). Itu semua masuk akal.
Sekarang, mengapa perintah yang setara untuk 9000 MTU ping -D -s 8164 <ip_address>
? Saya telah memverifikasi ini adalah batasnya sebelum saya membintangi kesalahan "sendto: Message too long", tetapi juga bahwa 9000 MTU berfungsi dengan benar sebagai traceroute -F <ip_address> 9000
berfungsi dan traceroute -F <ip_address> 9001
tidak. Jadi, mengapa 8164? Saya akan berharap 8972 (MTU - 28 byte, sama seperti untuk 1500 MTU).
Juga, mengapa 9216 MTU untuk Netgear? Saya menghitung 42 byte untuk header MAC & ethernet (inc. CRC), ditambah 20 byte untuk header IP (yang seharusnya memakan MTU).
Saya benar-benar berkarat dalam matematika ini dan tahu saya hanya kehilangan sesuatu.