ईथरनेट फ्रेम का "इन-द-वायर" आकार क्या है? 1518 या 1542?


22

यहां तालिका के अनुसार , यह कहता है कि MTU = 1500 बाइट्स और पेलोड का हिस्सा 1500 - 42 बाइट्स या 1458 बाइट्स है (<- यह वास्तव में गलत है!)। अब उसके ऊपर आपको IPv4 और UDP हेडर जोड़ना होगा, जो 28 बाइट्स (20 IP + 8 UDP) हैं। यह मेरा अधिकतम संभव अनुप्रयोग संदेश 1430 बाइट्स के रूप में छोड़ देता है! लेकिन इंटरनेट में इस संख्या की तलाश करने के बजाय मैं 1472 देखता हूं। क्या मैं यह गणना गलत कर रहा हूँ?

सभी मैं यह जानना चाहता हूं कि अधिकतम आवेदन संदेश है जो मैं विखंडन के जोखिम के बिना तार पर भेज सकता हूं। यह निश्चित रूप से 1500 नहीं है क्योंकि इसमें फ्रेम हेडर शामिल हैं। क्या कोई मदद कर सकता है?


भ्रम यह है कि PAYLOAD वास्तव में 1500 बाइट्स जितना बड़ा हो सकता है और यह MTU है। तो अब 1500 के पेलोड के लिए आकार में तार क्या है? उस तालिका से यह 1542 बाइट्स जितना बड़ा हो सकता है।

1542 के वायर साइज में अधिकतम के लिए अधिकतम ऐप मैसेज जो मैं भेज सकता हूं वह 1472 (1500 - 20 (आईपी) - 8 (udp)) है। यह मुझे हैरान करता है कि वास्तव में सरल होने पर चीजें कितनी जटिल हो सकती हैं। और मुझे इस बात का कोई सुराग नहीं है कि यदि कोई व्यक्ति 1542 नंबर के साथ आया है तो तालिका 1542 कहती है।


यहाँ असली सवाल यह है कि "वायर साइज़ में" से आपका क्या तात्पर्य है और इस जानकारी से आप क्या करेंगे? क्या आप प्रति सेकंड पैकेट की गणना करने की कोशिश कर रहे हैं?
माइक पेनिंगटन

@ माइक पाइंटिंगटन इन-द-वायर ट्रांजिट टाइम निर्धारित करने की कोशिश कर रहा है। पैकेट आकार और ईथरनेट गति (10 गीगाबिट्स) के साथ आप इसकी गणना कर सकते हैं।
क्रिसपोटेक

जवाबों:


26

विकिपीडिया पर आरेख भयानक है। उम्मीद है कि मैं जो लिखने जा रहा हूँ वह स्पष्ट है।


802.3 ईथरनेट में अधिकतम पेलोड 1500 बाइट्स है।
यह वह डेटा है जिसे आप वायर पर भेजने की कोशिश कर रहे हैं (और एमटीयू क्या कह रहा है)।
[payload]<- 1500 बाइट्स

पेलोड एक ईथरनेट फ्रेम (जो स्रोत / गंतव्य मैक, वीएलएएन टैग, लंबाई, और सीआरसी चेकसम को जोड़ता है) में कूटबद्ध है। यह कुल 22 बाइट अतिरिक्त "सामान"
[SRC+DST+VLAN+LENGTH+[payload]+CRC]<- 1522 बाइट्स है।

फ़्रेम तार पर प्रसारित होता है - इससे पहले कि आपका ईथरनेट कार्ड मूल रूप से खड़ा हो जाए और यह सुनिश्चित करने के लिए जोर से चिल्लाए कि कोई और नहीं तार का उपयोग कर रहा है (CSMA / CD) - यह प्रस्तावना और स्टार्ट-ऑफ-फ़्रेम फ़्रेम सीम है (SFD) - एक अतिरिक्त 8 बाइट्स, इसलिए अब हमारे पास हैं:
[Preamble+SFD+[Ethernet Frame]]<- 1530 बाइट्स

अंत में जब एक ईथरनेट ट्रांसीवर एक फ्रेम भेजने के लिए किया जाता है, तो इसे अपने अगले फ्रेम को भेजने की अनुमति देने से पहले साइलेंस ("इंटरफ़्रेम गैप") के 12 बाइट्स को प्रसारित करने के लिए 802.3 की आवश्यकता होती है।
[Preamble+SFD+[Ethernet Frame]+Silence]<- 1542 बाइट्स तार पर प्रेषित।


प्रस्तावना, एसएफडी और इंटरफ्रेम गैप को फ्रेम के हिस्से के रूप में नहीं गिना जाता है। वे ईथरनेट प्रोटोकॉल के लिए समर्थन संरचना हैं।

MTU पेलोड पर लागू होता है - यह डेटा की सबसे बड़ी इकाई है जिसे आप पैकेट में रटना कर सकते हैं। इस प्रकार 1500 बाइट्स के एक MTU के साथ एक ईथरनेट पैकेट वास्तव में 1522 बाइट फ्रेम होगा, और वायर पर 1542 बाइट्स (यह मानते हुए कि कोई vLAN टैग है)।

तो आपके प्रश्न का उत्तर - मैं सबसे बड़ा पैकेट क्या हूं जो बिना विखंडन के 802.3 ईथरनेट पर भेज सकता है? - पेलोड डेटा के 1500 बाइट्स हैं

हालांकि ईथरनेट परत अपने सीमित कारक नहीं हो सकता। यह पता लगाने के लिए कि एमटीयू को प्रतिबंधित करने के लिए रास्ते में कोई चीज पेलोड डेटा के 1500 बाइट्स से कम है, निम्नलिखित में से किसी एक का उपयोग करें:

  • विंडोज़: ping hostname -f -l sizeofdata(तकनीक जॉन के का उल्लेख)
  • बीएसडी: ping -D -s sizeofdata hostname
  • लिनक्स: ping -M do -s sizeofdata hostname

sizeofdataउस कार्य का सबसे बड़ा मूल्य एमटीयू है (आपके डेटा को ले रहे विशेष पथ पर)।


हालाँकि मुझे आईपी और यूडीपी हेडर को इस 1500 से बाहर करना है, है ना? इसलिए यूडीपी के लिए मेरे अधिकतम आवेदन संदेश की लंबाई 1472 है।
क्रिसपोटेक

@chrisapotek सही - आईपी और यूडीपी (या टीसीपी, जीआरई, आदि) हेडर उस पेलोड का हिस्सा हैं जिसे ईथरनेट फ्रेम में डाला जाता है
voretaq7

2
traceroute --mtu {target} लिनक्स पर भी अधिकतम mtu प्रदर्शित करेगा
Rqomey

क्या हमें थोड़ा और "भौतिक" मिलना चाहिए? en.wikipedia.org/wiki/8b/10b_encoding
SaveTheRbtz

@SaveTheRbtz ओह कृपया - बाइनरी प्रतिनिधित्व के लिए नीचे उतरने से मेरे सिर में काफी दर्द होता है :-)
voretaq7

2

यह फ्रेम में आपके द्वारा डाले गए डेटा की मात्रा पर निर्भर करता है। यदि आप एक फ्रेम में 1500 बाइट्स डालते हैं, तो आपके कुल फ्रेम का आकार 1518 बाइट्स होने वाला है। 1472 बाइट डेटा के साथ, आप 1500 की कुल फ़्रेम साइज़ के साथ समाप्त होंगे।

http://en.wikipedia.org/wiki/Ethernet_frame

यह कहा जा रहा है, यदि आप वास्तव में विखंडन का परीक्षण करने में रुचि रखते हैं, तो यह परीक्षण करने का एक अच्छा तरीका कुछ झंडे के साथ एक अच्छा पुराना पिंग है:

पिंग hostname -f -l sizeofdata

यदि पैकेट खंडित है, तो -फ ध्वज पिंग को विफल कर देगा। यहाँ समझने की कुंजी "आकारोफ़दता" है, वह डेटा है जो आप बिना किसी मैसेज के डाल सकते हैं - इसलिए यदि आप 1500 का पेलोड भेजते हैं, तो आप 1500 बाइट्स पर जाते ही टुकड़े करना शुरू कर देंगे। हालांकि इसे 1472 तक कम करें (1500 - 18 बाइट ओवरहेड), और आप पिंग को देखेंगे।


मुझे क्षमा करें, IE42 802.3 द्वारा परिभाषित मानक ईथरनेट फ्रेम के ऊपर 1542 बाइट्स है। एक अनटैग्ड 1500-बाइट ईथरनेट पेलोड 1518 बाइट्स है (एसएफडी / उपदेश सहित नहीं)। 802.1q-टैग की गई फ़्रेम 1522 बाइट्स (समान कैविट्स)
माइक पेनिंगटन

यह बहुत भ्रामक है। MTU = 1500 लेकिन फ्रेम का आकार 1542 है ??? तो एमटीयू सिर्फ पेलोड है, दूसरे शब्दों में, यह 42 अतिरिक्त सामान का आकार 1542 माइनस है। क्या वो सही है?
क्रिसपोटेक

क्षमा करें, मैंने वह गलत टाइप किया है - मैंने सिर्फ उत्तर को अपडेट किया है, लेकिन अगर मैं अभी भी गलत हूं, तो मुझे बताएं - यह वह गणित है जो मुझे याद है: S
Univ426

मुझे क्षमा करें, मुझे गलत होना चाहिए - मुझे लगा कि मैं इसे समझ गया हूं, लेकिन मुझे स्पष्ट रूप से अपने नंबर बंद हैं, यह अपने 1518 की तरह दिखता है: इस बारे में खेद है
Univ426

यह आप नहीं हैं जो भ्रमित हैं, बल्कि हर कोई। इसलिए मेरे सवाल जारी हैं। MTU और ईथरनेट फ्रेम आकार के बीच अंतर क्या है? पेलोड 1500 या उससे कम है?
च्रिसपोटेक

0

बुनियादी ईथरनेट_II फ्रेम के लिए, फ्रेम का आकार 1518 बाइट्स (तार पर या बंद) है। यह गंतव्य और स्रोत पते में से प्रत्येक के लिए 6 बाइट्स से बना है, पेलोड के लिए 46 और 1500 बाइट्स के प्रकार क्षेत्र के लिए 2 बाइट्स (आपके मामले में अपने आईपी हेडर और यूडीपी हेडर के साथ पूरा आईपी पैकेट) और 4 बाइट्स के लिए एफसीएस। इसके अलावा इस बात पर भी प्रतिबंध है कि एक फ्रेम कितना छोटा हो सकता है (64 बाइट्स)। यही कारण है कि सीमा 46 बाइट्स से है (इसे दो पते और प्रकार और एफसीएस में जोड़ें और आपको 64 बाइट्स मिलते हैं - 46 + 6 + 6 + 2 + 4 = 64)।

यदि फ़्रेम एक नेटवर्क पर है जो कई vlans का समर्थन करता है और आपको फ़्रेम को vlan टैग के साथ टैग करने की आवश्यकता है, तो प्रकार फ़ील्ड से पहले एक अतिरिक्त फ़ील्ड जोड़ा जाता है। यह 4 बाइट्स है। अब इसका मतलब है कि पेलोड के लिए आकार की सीमा को नीचे के अंत में 4 बाइट्स से कम किया जा सकता है और अभी भी न्यूनतम के रूप में 64 बाइट्स हैं। इसलिए 42. (इसलिए 42 + 6 + 6 + 2 + 4 + 4 वलान टैग के लिए = 64)

इसलिए जब सीमा 1500-42 लिखी जाती है तो इसका मतलब 1500 माइनस 42 नहीं होता है, इसका मतलब है कि 1500 से 42 बाइट्स में से कुछ भी मान्य है। एक तार, यह टैग किया गया फ्रेम 1522 बाइट्स के रूप में बड़ा हो सकता है (यदि केवल एक टैग का उपयोग किया जाता है, या 1526 यदि दो टैग का उपयोग किया जाता है)। इसमें से कोई भी 1542 की संख्या नहीं बताता है।

इस नंबर पर जाने के लिए, आपको यह विचार करने की आवश्यकता है कि ईथरनेट पर एक फ्रेम कैसे भेजा जा सकता है। ईथरनेट लैन पर कोई घड़ी नहीं है, इसलिए 1 की एक श्रृंखला और 0 को घड़ी सेट करने के लिए एक फ्रेम के ट्रांसमीटर द्वारा भेजा जाता है। इसे प्रस्तावना कहा जाता है। प्रत्येक श्रोता प्रस्तावना के सभी को नहीं सुनता, लेकिन अधिकांश को उसका कुछ भाग सुनना चाहिए। प्रस्तावना के अंत का संकेत देने के लिए, भेजे गए अंतिम 8 बिट्स में से एक को फ़्लिप किया जाता है, ताकि 10101010 के बजाय यह 10101011 हो जाए। इस बाइट को स्टार्ट ऑफ़ फ्रेम डेलिमर (एसडीएफ) कहा जाता है। यह तार को पकड़ने के लिए तकनीकी रूप से उपयोगी नहीं है, इसलिए प्रस्तावना के 7 बाइट्स और 1 बाइट एसडीएफ को आम तौर पर नहीं गिना जाता है, लेकिन अगर वे हमारे मूल 1518 थे, तो अब 1526 होगा। फिर भी 1542 नहीं ..

एक फ्रेम भेजे जाने के बाद, तार पर एक लागू मौन होता है जिसे इंटर फ्रेम गैप कहा जाता है। यह 12 बाइट्स के प्रसारण के बराबर है। यह भी गिना या कब्जा नहीं है, लेकिन अगर यह होता तो हमें 1538 बाइट मिल जाती। अब 1538 से 1542 तक पहुंचने का एकमात्र तरीका यह है कि फ्रेम को टैग किया जाए (यानी इसमें 4 बाइट टैग शामिल हैं)। पर, 1542 आखिर।

यह सभी शब्दावली में है। तार पर एक मानक फ्रेम 1518 बाइट्स है (जहां तक ​​किसी भी कैप्चरिंग डिवाइस का संबंध है)। तार पर एक टैग किया हुआ फ्रेम (सिंगल टैग) 1522 बाइट्स है। ये तार पर 1538 बाइट्स या 1542 बाइट्स ट्रांसमिशन स्पेस लेते हैं।

आशा है कि स्पष्ट करने में मदद करता है ..


-1

नहीं, आप विखंडन चाहते हैं, इसलिए आपको पैकेट को खंडित करने की आवश्यकता होती है, लेकिन df सेट इसे इस तरह से ले जाता है जैसे 2 सेमी हाइवे का एक पूरा गुच्छा बनाम एक ही हाइवे के साथ छोटी स्मार्ट कारों के पूरे झुंड के साथ जो दोनों जा रहे हैं एक ही गंतव्य सेमी अधिक पेलोड ले जाते हैं, लेकिन धीमे होते हैं और छोटी कारों को आसानी से ले जा सकते हैं, लेकिन तेज गति से यात्रा करना MSS MTU के समान नहीं है।


1
यह उत्तर लगभग है, लेकिन काफी नहीं है, पूरी तरह से प्रश्न से असंबंधित है।
कैस्परल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.