स्विच एक स्विच टेबल कैसे सीखता है?


22

कहते हैं स्विच टेबल खाली है। यदि कंप्यूटर A कंप्यूटर B को नियत एक फ्रेम भेजता है, तो स्विच यह पूछेगा कि बी का मैक पता किसके पास है यदि C अचानक A को फ्रेम भेजता है तो क्या होगा? क्या तंत्र है इसलिए स्विच गलती से नहीं लगता है कि कंप्यूटर C कंप्यूटर B है? क्या ऐसा है कि यह कंप्यूटर ए द्वारा वांछित गंतव्य के मैक पते को याद करता है, और जब सी ए को प्राप्त करने की कोशिश करता है, तो इसमें अपना स्वयं का मैक पता भी होता है और स्विच देखता है कि यह कंप्यूटर ए के समान गंतव्य नहीं है?

मूल रूप से मैं पूछ रहा हूं, जब होस्ट ए द्वारा भेजे गए अनुरोध के लिए एक अज्ञात मैक पते के लिए एक स्विच बाढ़ आता है, तो यह कैसे पता चलता है कि गंतव्य ए होस्ट करने के लिए प्रतिक्रिया दे रहा है या यदि कुछ अन्य होस्ट सिर्फ ए को प्रेषित करने के लिए होता है?


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

जवाबों:


34

परत 2 स्विच (पुलों) में एक मैक एड्रेस टेबल होता है जिसमें मैक एड्रेस और पोर्ट नंबर होता है। पैकेट अग्रेषित करने के लिए इस सरल एल्गोरिथ्म का अनुसरण करते हैं:

  1. जब कोई फ़्रेम प्राप्त होता है, तो स्विच SOURCE MAC पते की मैक पते तालिका से तुलना करता है। यदि SOURCE अज्ञात है, तो स्विच इसे उस पोर्ट नंबर के साथ तालिका में जोड़ता है जिस पर पैकेट प्राप्त किया गया था। इस तरह, स्विच हर ट्रांसमिटिंग डिवाइस के मैक एड्रेस और पोर्ट को सीखता है।

  2. स्विच तब तालिका के साथ DESTINATION MAC पते की तुलना करता है। यदि कोई प्रविष्टि है, तो संबंधित पोर्ट से फ़्रेम को आगे की तरफ स्विच करें। यदि कोई प्रविष्टि नहीं है, तो स्विच अपने सभी पोर्ट को पैकेट भेजता है, केवल उस पोर्ट को छोड़कर जो फ्रेम पर प्राप्त हुआ था (बाढ़)।

ध्यान दें कि स्विच डेस्टिनेशन मैक को तब तक नहीं सीखता, जब तक उसे उस डिवाइस से एक फ्रेम प्राप्त न हो जाए।


इसे बेहतर ढंग से समझाने के लिए @Ron को धन्यवाद। अब मुझे पता है कि बाढ़ है। En.wikipedia.org/wiki/Unicast_flood
Damon

यह मेरे द्वारा पूछे गए प्रश्न का उत्तर नहीं था।
सेलेरिटास

5
@Celeritas आपके प्रश्न में आपकी धारणा गलत है। स्विच मैक पते का "पूछ" नहीं करता है। यदि यह गंतव्य मैक को नहीं जानता है, तो यह फ्रेम को सभी बंदरगाहों से बाहर निकाल देता है। यह केवल स्रोत एमएसी सीखता है जब यह एक फ्रेम प्राप्त करता है। तो आपके प्रश्न में, स्विच बी और सी के बीच अंतर बता सकता है क्योंकि उनके पास अलग-अलग स्रोत मैक पते हैं।
रॉन ट्रंक

4
@Celeritas - स्विच न तो जानता है, न ही परवाह करता है, क्यों कोई होस्ट होस्ट को कुछ भेज रहा है। होस्ट ए को जवाब दे रहा है या कोई अन्य होस्ट होस्ट ए को कुछ और क्यों भेज रहा है, यह क्यों होगा? स्विच केवल परवाह करता है कि गंतव्य MAC होस्ट ए के लिए है (और मैक मैक तालिका में नहीं है तो स्रोत मैक क्या है)। केवल होस्ट ए की परवाह करता है यदि प्राप्त फ्रेम मेजबान से प्रतिक्रिया है, जिसे मूल रूप से एक फ्रेम भेजा जाता है।
रॉन Maupin

रॉन ने क्या कहा, यह अवधारणा एआरपी से अलग है।
जॉर्डन हेड

4

आपका प्रश्न यह मानता है कि स्विच में शामिल है, या दो मेजबानों के बीच संचार / वार्तालाप से अवगत है (क्या यह ए और बी के बीच या ए और सी के बीच बातचीत है?)। स्विच दो मेजबानों के बीच संचार / वार्तालाप में शामिल नहीं है। यह बस जानता है (या सीखता है) कि कौन सा मैक एड्रेस किस पोर्ट और फॉरवर्ड (या स्विच) से जुड़ा हुआ है, एक विशेष मैक पते के लिए संबंधित पोर्ट (एक बार यह सीखा है कि कौन सा पोर्ट मैक एड्रेस से जुड़ा हुआ है) के लिए किस्मत में है, चाहे स्रोत B, या C या कोई अन्य होस्ट है जो किसी अन्य स्विच पोर्ट से जुड़ा है।

परत पर काम करता है स्विच 2. सत्र प्रबंधन उच्च परतों की जिम्मेदारी है।


-2

इसे स्विच टेबल नहीं कहा जाता है; इसकी मैक तालिका। अब विचार करें कि मैक टेबल खाली है। जब A, B को एक पैकेट भेजने की कोशिश करता है; पैकेट में A और B का MAC पता होता है। मैक तालिका में A का स्विच अपडेट मैक पता होता है। अब चूंकि यह पता नहीं है कि पोर्ट किस बी से जुड़ा हुआ है, इसलिए यह अपने सभी बंदरगाहों पर एआरपी पैकेट को प्रसारित करता है और सभी मेजबानों के जवाब की प्रतीक्षा करता है।

अब उसी समय यदि C किसी पैकेट को A में भेजने की कोशिश करता है, तो वह उस पैकेट से C का MAC पता निकालता है और उसे MAC तालिका में संग्रहीत करता है। अब चूंकि मैक तालिका में मैक का पता पहले से मौजूद है, इसलिए यह पता है कि पोर्ट ए किस से जुड़ा है। याद रखें डेटा पैकेट में स्रोत और गंतव्य दोनों का मैक पता होता है। इसलिए B & C का मैक पता अलग है। तो स्विच भ्रमित नहीं होता है। अब पैकेट को C से A पर स्विच करें (यह देखते हुए कि दोनों एक ही VLAN में मौजूद हैं)।

पैकेट को A से B तक भेजने के लिए, B द्वारा स्विच तक भेजे गए ARP पैकेट के लिए B का जवाब होता है। जब इसे B से प्रतिक्रिया मिलती है, तो यह अपनी MAC तालिका में B का मैक पता अपडेट करता है। फिर अंत में पैकेट को बी को भेज दिया जाता है।

इसलिए स्विच भ्रमित नहीं होता है क्योंकि डेटा पैकेट (tcp / udp) में स्रोत और गंतव्य MAC पता दोनों होते हैं। और आपका स्विच एक पैकेट को इंटरफेस पर अग्रेषित नहीं करेगा जिसका अंतिम होस्ट मैक एड्रेस स्विच करने के लिए ज्ञात नहीं है। इसे स्विच द्वारा भेजे गए एआरपी प्रसारण के अंतिम मेजबान के जवाब तक इंतजार करना होगा।


1
यह पूरी तरह से सही नहीं है। एक स्विच, जब तक कि यह एक लेयर -3 स्विच नहीं है, एआरपी नहीं है। ARP को लेयर -2 और लेयर -3 के बीच हल करना है, और स्विच लेयर -3 को नहीं जानता है। स्विच, वास्तव में, प्रत्येक स्विच पोर्ट के लिए एक अज्ञात गंतव्य मैक के साथ एक फ्रेम प्रसारित करता है। एक मेजबान किसी भी फ्रेम को अनदेखा कर देगा एक गंतव्य MAC अपना नहीं।
रॉन Maupin

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

@ आपके सुधार के लिए धन्यवाद। यह लिखना भूल गया कि यह लेयर 3 स्विच के लिए है। और मैं यह भी मानना ​​चाहता था कि मैं बाढ़ शब्द को भूल गया था, इसलिए मैंने लेयर 3 स्विच के लिए उत्तर लिखा। और जेफ आपको बताने के लिए धन्यवाद।
डेमन

@ जेफ़ मैकएडम्स, आप सही हैं, यह बाढ़ है, धन्यवाद। यह मेरे उठने से पहले मेरे पहले कप कॉफ़ी के पहले था, और मेरा मतलब था कि भाषा में प्रसारण, न कि नेटवर्क सेन्स।
रॉन Maupin

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