ठीक है, मैंने अभी कुछ Xserves, एक Netgear GSM7224, और एक Drobo B800i के बीच एक जंबो फ़्रेम समस्या का समाधान किया है। यह पता चला कि Xserves (Mac OS X 10.6.8 सर्वर) और Drobo B800i बाइट्स में MTU को सामान्य रूप से अपेक्षित (1500-9000) के रूप में स्वीकार करते हैं, लेकिन लगता है कि नेटगियर इसे विभिन्न ईथरनेट हेडर / फुटर (ट्रेलरों सहित) चाहता था ) और मैं अंत में Xserves और Drobo 9000 के MTU और नेटगियर पोर्ट 9216 के MTU पर सेट के साथ कॉन्फ़िगर किया गया।
मैंने नेटगियर पर दो Xserves के बीच MTU के परीक्षण और सत्यापन के लिए निम्न आदेशों का उपयोग किया है (नोट: ये मैक ओएस एक्स कमांड हैं, विंडोज और लिनक्स वाले अलग हैं):
ping -D -s <mtu> <ip_address>
traceroute -F <ip_address> <mtu>
पूर्व के उपयोग को पृष्ठ में इसman
रूप में नोट किया गया है , "भेजे जाने वाले डेटा बाइट्स की संख्या निर्दिष्ट करें। डिफ़ॉल्ट 56 है, जो आईसीएमपी हेडर डेटा के 8 बाइट्स के साथ संयुक्त होने पर 64 आईसीएमपी डेटा बाइट्स में अनुवाद करता है।" परीक्षण में, मैंने पाया है कि करने के लिए ping -D 1472 <ip_address>
ICMP हैडर डेटा के 8 बाइट्स प्लस 20 आईपी हेडर बाइट्स (देखें के कारण MTU 1500 के बराबर था यह और इस )। वह सब समझ में आता है।
अब, 9000 MTU के लिए समतुल्य कमांड क्यों है ping -D -s 8164 <ip_address>
? मैंने सत्यापित किया है कि यह सीमा है इससे पहले कि मैं "sendto: संदेश बहुत लंबा" त्रुटि प्राप्त कर रहा हूं, लेकिन यह भी कि 9000 MTU ठीक से traceroute -F <ip_address> 9000
काम कर रहा है और traceroute -F <ip_address> 9001
नहीं करता है। तो, 8164 क्यों? मुझे उम्मीद है कि 1500 MTU की तरह 8972 (MTU - 28 बाइट्स) होंगे।
इसके अलावा, Netgear के लिए 9216 MTU क्यों? मैंने मैक और ईथरनेट हेडर (inc। सीआरसी) के लिए 42 बाइट्स गिना, आईपी हेडर के लिए 20 प्लस (जो एमटीयू में खाना चाहिए)।
मैं वास्तव में इस गणित पर कठोर हूं और जानता हूं कि मुझे कुछ याद आ रहा है।