क्या नेटवर्क एडेप्टर आने वाली बिट्स को एक स्ट्रीम में पढ़ते हैं?


9

जब एक गीगाबिट नेटवर्क एडेप्टर डेटा प्राप्त कर रहा है, तो यह बिट्स कैसे प्राप्त कर रहा है? क्या यह 0 और 1 की एक धारा में यह सब देख रहा है? या क्या किसी तरह 0 और 1 की कई धाराएँ एक ही समय में आ रही हैं?

उदाहरण के लिए ... मान लें कि दो भेजने वाले उपकरण और एक प्राप्त करने वाला उपकरण है।

डिवाइस 1 और 2 एक ही समय में डिवाइस 3 को नेटवर्क डेटा भेजना शुरू करते हैं।

मेरी धारणा यह है कि डिवाइस 3 के नेटवर्क एडेप्टर के दृष्टिकोण से, सभी 0 और 1 डेटा के एक ही स्ट्रीम में आ रहे हैं। यह पता लगा सकता है कि डिवाइस 1 या 2 में से कौन सा डेटा है, लेकिन डेटा अभी भी लाखों / अरबों बिट्स की सिर्फ एक स्ट्रीम है।

क्या मैं पूरी तरह से गलत हूं? :)


1
क्या आपके पास आधे-द्वैध कनेक्शन के लिए, या पूर्ण-द्वैध का उपयोग करने के लिए है? 1000Base-T के लिए कभी भी कोई अर्ध-डुप्लेक्स उपकरण नहीं थे, भले ही यह अभी भी उस मानक में है। पूर्ण-द्वैध कनेक्शन के साथ, लिंक पर एक ही समय में तीसरे उपकरण के लिए दो उपकरणों से फ्रेम नहीं होगा।
रॉन Maupin

फुल डुप्लेक्स। ठीक है, इसलिए, अभी भी 0 और 1 की एक ही धारा होगी (उदाहरण: 0101010101000101010101010101010000110101010) और डिवाइस 3 के दृष्टिकोण (रिसीवर) से, जबकि डिवाइस 1 और 2 उस धारा को चालू कर सकते हैं, वे दोनों कभी नहीं करेंगे। 0 और 1 को एक ही समय पर भेजना सही है?
शिहुकु 7

क्या किसी उत्तर ने आपकी मदद की? यदि हां, तो आपको उत्तर को स्वीकार करना चाहिए ताकि प्रश्न हमेशा के लिए पॉपिंग न हो जाए, उत्तर की तलाश में है। वैकल्पिक रूप से, आप अपना स्वयं का उत्तर प्रदान कर सकते हैं और स्वीकार कर सकते हैं।
रॉन Maupin

जवाबों:


14

निर्भर करता है।

जबकि कई ईथरनेट PHY एक विशुद्ध रूप से धारावाहिक फैशन (जैसे 100BASE-TX, 1000BASE-SX, 10GBASE-SR) में डेटा संचारित करते हैं, कुछ डेटा स्ट्रीम को कई लेन में विभाजित करते हैं जो समानांतर में प्रसारित होते हैं।

सबसे आम तौर पर, 1000BASE-T - आम गीगाबिट-ओवर-कॉपर वेरिएंट - एन्कोडेड डेटा स्ट्रीम को चार लेन में विभाजित करता है और कैट -5 केबल में चार मुड़ जोड़े में से एक पर प्रत्येक को अलग से प्रसारित करता है। गीगाबिट से ऊपर की ओर सभी मुड़-जोड़ी वेरिएंट इन चार लेन का उपयोग करते हैं।

कुछ उच्च गति (10G +) फाइबर PHYs सोलह फाइबर (मल्टी-मोड फाइबर और शॉर्ट रेंज के साथ) या तरंग दैर्ध्य (एकल-मोड फाइबर और लंबी सीमा के साथ) पर कई लेन का उपयोग करते हैं।

हालांकि, सब कुछ फ़्रेम में प्रेषित होता है जो प्रत्येक एक स्रोत से एक गंतव्य तक चलता है। फ़्रेम आमतौर पर परमाणु होते हैं, अर्थात। वे हमेशा एक टुकड़े में प्रेषित होते हैं। प्रत्येक फ़्रेम केवल एकल विशिष्ट कनेक्शन / एप्लिकेशन से डेटा ट्रांसपोर्ट करता है। इसके हेडर में स्रोत और गंतव्य पते होते हैं, इसलिए यह नेटवर्क पर अपना रास्ता खोज सकता है।

जब नेटवर्क एक ही समय में एक ही गंतव्य पोर्ट के लिए अलग-अलग स्रोतों से दो फ़्रेम प्राप्त करता है, तो फ़्रेम में से एक को तब तक पंक्तिबद्ध करने की आवश्यकता होती है जब तक कि गंतव्य की ओर स्विच पोर्ट पहले फ्रेम को स्थानांतरित करना समाप्त नहीं कर देता।

यह मानता है कि स्रोत और गंतव्य समान गति से चलते हैं जो जरूरी नहीं कि सच हो। आपके पास एक फ़ाइल सर्वर एक 1 Gbit / s लिंक से जुड़ा हो सकता है और दस ग्राहक प्रत्येक को अपने 100 Mbit / s लिंक पर पूर्ण गति भेजते हुए बिना (महत्वपूर्ण) कतार के साथ हो सकते हैं। यह आपके "कई धाराओं" के सुझाव के कुछ हद तक करीब आता है, केवल यह है कि ये धाराएं फ्रेम स्तर पर इंटरलेक्ट की जाती हैं, बिट स्तर की नहीं।

एक नेटवर्क पोर्ट पर दर एक ही सेकंड में हजारों या लाखों फ्रेम हो सकती है, इसलिए मानवीय दृष्टिकोण से कई धाराओं को अलग करना असंभव है - यह सब 'एक साथ' लगता है।


कृपया अन्य उत्तरकर्ता @jonathanjo के साथ मिलें और यह पता लगाएं कि 1000Base-T का कौन सा विवरण सही है।
दाविदबक

1
जोनाथनजो के "उसी माध्यम" में एक मल्टीपॉर्ट टक्कर डोमेन का वर्णन किया गया है जो (व्यावहारिक रूप से) गीगाबिट ईथरनेट के साथ मौजूद नहीं है और 10/100 Mbit के लिए भी अप्रचलित है।
Zac67

2
@davidbak मुझे यहाँ सब ठीक लगता है - Zac आमतौर पर है! - बस अलग जोर। मैंने अपने उत्तर पर कुछ चीजें तय कीं, जिसमें स्पष्ट करना कि टकराव व्यावहारिक 1000baseT में नहीं है।
जोनाथनजो

2
इसके लिए आपको PAM16 और इसी तरह के एन्कोडिंग को भी जोड़ना होगा जो मूल रूप से एक से अधिक बिट्स बनाते हैं।
प्लाज्माएचएच

1
@PlasmaHH 1000BASE-T पहले से ही चार लेन और PAM5 का उपयोग करता है, इसलिए प्रत्येक घड़ी चरण में लगभग 9.3 कच्चे बिट्स हैं (और निश्चित रूप से L1 के लिए 125 MBd पर 8 "उपयोगकर्ता" बिट्स)।
Zac67 12

13

आइए अभी के लिए गीगाबिट भाग को अनदेखा करें, और अपने "2 डिवाइस एक ही समय में भेज रहे हैं" भाग पर थोड़ा ध्यान दें।

पर साझा मीडिया , यह वास्तव में होता है और एक समस्या हो सकती। अधिकांश वायरलेस प्रसारण मीडिया, और ईथरनेट, दिन में वापस, साझा किए जाते हैं:

  • 10base2 (कोअक्स) का उपयोग उस पर हर एक के साथ एक या अधिक केबल को कम या ज्यादा करने के लिए किया गया था। जाहिर है, दो (या अधिक) स्टेशन एक ही समय में संचारित करने में सक्षम थे;
  • 10baseT और 100baseT (ट्विस्टेड-पेयर बेस्ड), हब्स (स्विच के बजाय) का मतलब यह भी था कि दो (या अधिक) स्टेशन एक ही समय में संचारित हो सकते हैं, क्योंकि किसी भी कनेक्टेड डिवाइस से प्राप्त सिग्नल को सिर्फ अन्य सभी को दोहराया गया था।

अब, यदि दो डिवाइस एक ही समय में भेज रहे हैं, तो दो चीजें हो सकती हैं:

  • आप मल्टीप्लेक्सिंग (टाइम डिवीजन, फ़्रीक्वेंसी डिवीज़न ...) के कुछ रूप का उपयोग करते हैं जो अलग "चैनल" की अनुमति देता है ताकि कोई एक विशिष्ट चैनल सुन सके और दूसरों को परेशान न करे। यह वायरलेस ट्रांसमिशन के लिए बहुत अधिक उपयोग किया जाता है, वायर्ड ट्रांसमिशन के लिए बहुत कम (WDM / DWDM फाइबर पर एक अपवाद है)।

  • या यदि एक ही चैनल पर दो या दो से अधिक डिवाइस एक ही समय पर भेज रहे हैं, तो आपको वह मिल जाता है जिसे टक्कर कहा जाता है : जैसे कि जब दो लोग एक ही समय में बोल रहे हों, तो आप समझ नहीं सकते कि या तो क्या कहते हैं, प्राप्त करने वाले डिवाइस नहीं हैं किसी भी डिवाइस द्वारा भेजे गए डेटा (या अधिक बार, वे इसे डीकोड कर सकते हैं, लेकिन यह कोई मतलब नहीं है, और सीआरसी चेक पास नहीं करेगा) को डीकोड करने में सक्षम।

यहीं पर CSMA-CD (कैरियर-सेन्स मल्टीपल एक्सेस, कोलिशन डिटेक्शन) जैसी योजनाएँ आईं:

  • संचारित करने की कोशिश करने से पहले, एक उपकरण यह जांच करेगा कि क्या कोई और भेज रहा था (वाहक समझ)
  • यदि चैनल स्वतंत्र है, तो यह प्रसारित करना शुरू कर देता है।
  • लेकिन उसके साथ भी, दो डिवाइस एक ही समय में शुरू हो सकते हैं, इसलिए आप अभी भी एक टक्कर ले सकते हैं।
  • चैनल पर बहुत अधिक समय बर्बाद करने से बचने के लिए, उपकरण टकरावों का पता लगाते हैं (वे जो प्राप्त करते हैं उसके साथ तुलना करके: यदि यह मेल नहीं खाता है, तो इसका मतलब है कि कोई और उसी समय भेज रहा है), प्रसारण को रद्द करें, और एक यादृच्छिक देरी के बाद फिर से प्रयास करें (एक नई टक्कर से बचने के लिए)।

यह काफी मजेदार था, और हल्के से लोड किए गए नेटवर्कों पर यह काफी अच्छी तरह से काम करता था, लेकिन जैसे ही ट्रैफिक महत्वपूर्ण हो जाता है, आप टन के टकराव के साथ समाप्त हो जाते हैं, जो कि साझा मीडिया के उपयोग को बढ़ाता है, जिसके परिणामस्वरूप अधिक टकराव होते हैं, तो यह बहुत बुरा हो सकता है।

इसका उत्तर पूर्ण-द्वैध स्विचड नेटवर्क पर स्विच किया जा रहा था । हब ने बिना सोचे-समझे बस सिग्नल दोहराया। दूसरी ओर स्विच वास्तव में एक फ्रेम प्राप्त करते हैं, और फिर इसे गंतव्य लिंक पर भेजते हैं (अतिरिक्त बोनस: फ्रेम सभी के लिए नहीं भेजा जाता है, बस ज्यादातर मामलों में गंतव्य के लिए)।

यदि दो डिवाइस एक ही गंतव्य डिवाइस पर भेजते हैं, तो स्विच एक फ्रेम को कतारबद्ध कर देगा, इसलिए एक ही समय में भेजे गए दो फ्रेम वास्तव में गंतव्य पर एक के बाद एक पहुंचते हैं।

इसके अलावा, भौतिक स्तर पर, यह संभव है कि कई जोड़े या समानांतर में कई केबलों पर डेटा का आदान-प्रदान किया जाए। चाहे यह बिट स्तर पर किया जाता है या पूरे जोड़े को प्रत्येक जोड़ी पर भेजा जाता है / केबल उपयोग की गई सटीक तकनीक पर निर्भर करता है। लेकिन मुझे लगता है कि यह वास्तव में आपका सवाल नहीं था।


1
यह एक उत्कृष्ट बिंदु है - शायद सवाल के लिए सबसे उपयुक्त उत्तर। मैं जोड़ सकता हूं कि जैसा कि आप वास्तव में उच्च गति (फाइबर) को प्राप्त करते हैं, वे आम तौर पर टकराव से बचने के लिए एक प्रेषक और एक रिसीवर पर एक पंक्ति में प्रतिबंधित होते हैं। यदि किसी अन्य इनपुट को जोड़ने की आवश्यकता होती है, तो इसे दूसरे चैनल पर लिया जाता है और आने वाली स्ट्रीम के साथ जोड़ा जाता है और फिर एक आउटगोइंग स्ट्रीम में भेजा जाता है। इन दिनों भी ईथरनेट "स्विच्ड" हो जाता है, जो टकराव से बचा जाता है - मुख्य स्थान जिसे आप टकराव देखते हैं (2 डिवाइस जिस पर सवाल के रूप में बात कर रहे हैं) इन दिनों वाईफाई है - बाकी सब कुछ 1 रिसीवर के लिए 1 प्रेषक है
बिल के।

12

यह विशेष मामला एक जटिल है।

1000baseT के बारे में।

पहला: जब हम सामान्य रूप से कहते हैं कि दो डिवाइस एक ही समय में संचारित हो रहे हैं, तो वे आम तौर पर एक ही माध्यम पर एक ही पल में बिट्स नहीं भेज रहे हैं। यदि वे ऐसा करते हैं, तो एक टकराव होता है और सभी सुनने वाले उपकरण इसे बाहर काम करते हैं (अंततः, विभिन्न टकराव का पता लगाने की योजनाओं के माध्यम से।) इसलिए दो संचारण डिवाइस थोड़ा अलग-अलग क्षणों में माध्यम तक पहुंच प्राप्त करेंगे। लेकिन 1000baseT में जोड़े के दिए गए सेट पर केवल दो डिवाइस हैं; आम तौर पर एक डिवाइस एक स्विच है और दूसरा एक होस्ट है।

दूसरा, 1000baseT एक जोड़े पर एक बार में दो डेटा बिट्स को प्रसारित करता है, जो पांच वोल्टेज स्तरों पर एक जटिल तरीके से एन्कोडेड होता है। तो यह तार पर बेस -4 अंकों की एक श्रृंखला है, न कि बेस -2 अंकों की एक श्रृंखला।

तीसरा, 1000baseT एक ही समय में, एक ही जोड़ी पर दोनों दिशाओं में संचारित हो सकता है। यह एक हाइब्रिड नामक सर्किट द्वारा आने वाले से आउटगोइंग सिग्नल को अलग कर सकता है।

अन्य मीडिया पर गिगाबिट ईथरनेट अलग तरह से व्यवहार करता है। धीमी गति जैसे 10baseT और 100baseT की सरल योजनाएँ हैं। एक हब पर 10baseT वास्तव में वास्तविक टकराव है; आम तौर पर स्विच द्वारा इसे स्विच द्वारा व्यवस्थित किया जाता है ताकि आउटगोइंग फ़्रेम पंक्तिबद्ध हो; अगर यह पूर्ण द्वैध है, तो कोई टक्कर नहीं है।


कृपया अन्य उत्तरदाता Zac67 से मिलें और यह पता लगाएं कि 1000Base-T का कौन सा विवरण सही है।
दाविदबक

@ जोंनाथनो आप तीन-बिट प्रतीकों के बारे में सही हैं लेकिन केवल पांच पीएएम स्तर हैं। मोटे तौर पर, यह 8-बिट से चार 3-बिट प्रतीकों के साथ-साथ स्क्रैच एन्कोडिंग है जहां 3-बिट प्रतीकों को पीएएम स्तरों के लिए मैप (शिफ्टिंग) किया जाता है।
Zac67

@davidbak इसे लेने के लिए धन्यवाद। मैंने मुख्य बिंदु (जटिल और बाइनरी नहीं) को कवर करने और गलती से छुटकारा पाने के लिए विवरण को सरल किया। स्पष्ट करने के लिए Zac धन्यवाद।
जोनाथनो

7

यहां सभी वायर्ड ईथरनेट लिंक मान लें।

जब एक ही नेटवर्क सेगमेंट पर दो डिवाइस एक ही समय में भेजते हैं, तो कोई फर्क नहीं पड़ता कि वे किसे भेजते हैं, इसे टक्कर कहा जाता है । टक्कर होने पर न तो संदेश जाता है। सौभाग्य से, प्रेषकों में टकराव का पता लगाने की क्षमता होती है जब ऐसा होता है, तो प्रत्येक प्रेषक प्रतीक्षा करने और फिर से प्रयास करने के लिए एक यादृच्छिक समय (एक सेकंड के छोटे अंश) चुन लेगा, और प्रक्रिया को दोहराएगा जब तक कि केवल एक प्रेषक सक्रिय न हो।

लेकिन ऐसा शायद ही कभी होता है।

इसके बजाय, आज ज्यादातर वायर्ड कनेक्शन स्विच्ड नेटवर्क पर किए जाते हैं , जहां प्रत्येक डिवाइस (भेजने वाले और रिसीवर्स) दोनों एक स्विच पर अपने अलग पोर्ट से जुड़े होते हैं। डेटा को पैकेट (वास्तव में: फ़्रेम ) में विभाजित किया गया है , और स्विच यह सुनिश्चित करेगा कि प्रत्येक पोर्ट एक समय में केवल एक पैकेट सक्रिय है। यदि एक लिंक व्यस्त है, तो स्विच फिर से उपलब्ध होने पर रिसीवर को अन्य फ़्रेमों को संग्रहीत और अग्रेषित करेगा ।

इस योजना के साथ, टकराव होने का एकमात्र तरीका यह है कि या तो स्विच से जुड़े एक से अधिक डिवाइस हों या एक-दूसरे से अनविविस्ड हब (होम वाईफाई "राउटर के कुछ मॉडल पर पोर्ट अभी भी अनवीक्स्ड) हों, या जब स्विच और डिवाइस के बीच की कड़ी आधे-द्वैध मोड में संचालित होती है

हम इसके बजाय जो सौदा करते हैं वह भीड़ है । हमारे पास टक्कर नहीं हो सकती है, लेकिन नेटवर्क पर एक लोकप्रिय होस्ट के पास ऐसे उपकरण हो सकते हैं जो लिंक का समर्थन करने की तुलना में अधिक डेटा और पैकेट भेजना चाहते हैं, जैसे कि बफर भर जाता है। लेकिन यह एक पूरी समस्या है।


1
नाइटपैकिंग, लेकिन ईथरनेट स्तर पर, यह पैकेट के बजाय फ्रेम होगा ।
जकार्टन

1
@ जकारोन नाइट-नाइट-पिकिंग: निश्चित रूप से हम 'आईपी पैकेट' के लिए 'पैकेट' का उपयोग करते हैं, जो कि आरएफसी 791 के अनुसार आयोजित किया जाता है, और यह ईथरनेट फ्रेम का 'मैक क्लाइंट डेटा' है। लेकिन एक 'ईथरनेट पैकेट' को सब कुछ के रूप में परिभाषित किया गया है, जिसमें प्रस्तावना की शुरुआत में विस्तार बिट्स के अंत तक शामिल है; और 'फ्रेम' डेस्टिनेशन एड्रेस से फ्रेम चेक तक का हिस्सा है। (802.3-2015 अनुभाग 3.1.1 "पैकेट प्रारूप")। मैंने कहा है कि स्विच सुनिश्चित करता है कि एक ईथर पैकेट एक बार में भेजा जाता है, और स्टोर और आगे ईथर फ्रेम
जोनाथनजो

5

मुझे लगता है कि ईथरनेट कैसे काम करता है, इसकी कुछ बुनियादी समझ प्राप्त करने की आवश्यकता है। उदाहरण के लिए, भेजने वाला मेजबान प्राप्त करने वाले मेजबान का ध्यान आकर्षित करने के लिए वैकल्पिक और शून्य की एक प्रस्तावना भेजेगा। जब प्राप्त होस्ट एक पंक्ति में दो लोगों को देखता है, तो यह जानता है कि फ्रेम अगले है। एक बार जब फ्रेम को प्रसारित किया जाता है, तो एक और फ्रेम भेजे जाने से पहले 96 बिट्स के लिए लाइन पर मौन होना चाहिए।

विभिन्न ईथरनेट मानकों में अलग-अलग एन्कोडिंग का उपयोग किया जाएगा। उदाहरण के लिए, 100Base-T 4B5B का उपयोग करता है जो हर चार बिट डेटा के लिए पांच बिट्स भेजता है।


1

(इस सवाल के लिए मैं एक हब साझा नेटवर्क मान लेता हूं।)

क्या नेटवर्क एडेप्टर आने वाली बिट्स को एक स्ट्रीम में पढ़ते हैं?

हाँ। PHY कार्यान्वयन के बावजूद, यह एक एकल इनपुट स्ट्रीम है। कई उपकरणों से संचार एक ही समय में एक एकल एनआईसी (मैक पते) पर सफलतापूर्वक नहीं सकता है।

मेरी धारणा यह है कि डिवाइस 3 के नेटवर्क एडेप्टर के दृष्टिकोण से, सभी 0 के और 1 के एक ही ड्राइव के एक ही फोन में आ रहे हैं

"सिंगल स्ट्रीम" हाँ, लेकिन समवर्ती भेजने वाले दो उपकरणों के आपके उदाहरण में आगे की प्रक्रिया के लिए आने वाले डेटा की कोई धारा नहीं होगी; 1s और 0s के "फ्रेम" टकराएंगे।

यह पता लगा सकता है कि डिवाइस 1 या 2 में से कौन सा डेटा है, लेकिन डेटा अभी भी लाखों / अरबों बिट्स की सिर्फ एक स्ट्रीम है।

ऐसा नहीं हो सकता। जब सिग्नल गठबंधन करते हैं तो टकराव का पता लगाया जाता है, और फ्रेम को छोड़ दिया जाता है।

क्या मैं पूरी तरह से गलत हूं?

आपका प्रश्न शीर्षक एक सही कथन है, लेकिन आपकी क्यू पोस्ट में आपकी चर्चा संकेत देती है कि आपकी समझ और परिकल्पना गलत थी।

आगे की

  • "नेटवर्क एडाप्टर" के प्रकार के बावजूद, वे केवल बिट्स की एक एकल धारा प्राप्त करते हैं।
  • सिग्नल ट्रांसमिट करने के लिए भौतिक साधनों में डेटा के कई विकल्प शामिल हो सकते हैं, लेकिन उन सबस्टेशनों और ऐसी भौतिक प्रसंस्करण को "नेटवर्क एडाप्टर" नहीं माना जाता है; वे उप-कोड कोडेंडेंट हैं, उन्हें अर्थ बनाने के लिए संयोजित किया जाना चाहिए; और, उन सबस्टेशनों की उत्पत्ति एक ही स्रोत से होनी चाहिए।
  • यदि आप इस उत्तर (और अन्य उत्तरों) के बारे में अनिश्चित हैं, तो आपको स्विच किए गए पैकेट ईथरनेट / आईपी नेटवर्क के मूल सिद्धांतों को सीखने की आवश्यकता है।

इस सवाल के लिए मैं एक हब साझा नेटवर्क को मानता हूं - ओपी एक गीगाबिट एनआईसी को संदर्भित करता है और आधा-डुप्लेक्स मोड जीबीई के लिए मौजूद नहीं है (व्यावहारिक रूप से)। ;-)
Zac67

@ Zac67 मैं एक उदार और मददगार डंडे की तरह हूं। मैंने मान लिया कि ओपी ने "गीगाबिट" को मनमाने ढंग से चुना और उन्हें नहीं लगा कि इसमें कोई विरोधाभास होगा। यह मुझे अंततः सीधे और सीधे सवाल के शीर्षक का जवाब देता है। विरोधाभास के बारे में अधिक जानने के लिए ओपी अन्य उत्तरों को पढ़ सकता है।
टोड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.