Powiedzmy, że tabela przełączników jest pusta. Jeśli komputer A wyśle ramkę przeznaczoną do komputera B, przełącznik wyemituje pytanie, kto ma adres MAC B. Co się stanie, jeśli C nagle wyśle ramkę do A? Jaki jest mechanizm, aby przełącznik nie myślał, że komputer C jest komputerem B? Czy to dlatego, że pamięta adres MAC miejsca docelowego pożądanego przez komputer A, a gdy C próbuje dostać się do A, zawiera również swój własny adres mac, a przełącznik widzi, że nie jest to to samo miejsce docelowe, co komputer A chciał?
Zasadniczo pytam, kiedy przełącznik zalewa nieznany adres MAC dla żądania wysłanego przez hosta A, skąd ma wiedzieć, że miejsce docelowe odpowiada hostowi A lub czy jakiś inny host po prostu transmituje do A?
switch
ethernet
mac-address
arp
Celeritas
źródło
źródło
Odpowiedzi:
Przełączniki warstwy 2 (mosty) mają tablicę adresów MAC, która zawiera adres MAC i numer portu. Przełączniki postępują zgodnie z tym prostym algorytmem do przekazywania pakietów:
Po odebraniu ramki przełącznik porównuje adres MAC SOURCE z tablicą adresów MAC. Jeśli ŹRÓDŁO jest nieznane, przełącznik dodaje go do tabeli wraz z numerem portu, na który pakiet został odebrany. W ten sposób przełącznik uczy się adresu MAC i portu każdego urządzenia nadawczego.
Następnie przełącznik porównuje adres MAC CELU z tabelą. Jeśli jest jakiś wpis, przełącznik przesyła ramkę poza powiązany port. Jeśli nie ma wpisu, przełącznik wysyła pakiet ze wszystkich swoich portów, z wyjątkiem portu, w którym odebrano ramkę (Flooding).
Pamiętaj, że przełącznik nie uczy się docelowego adresu MAC, dopóki nie odbierze ramki z tego urządzenia.
źródło
Twoje pytanie zakłada, że zmiana jest zaangażowana w komunikację / rozmowę między dwoma hostami lub jest jej świadoma (czy jest to rozmowa między A i B czy między A i C?). Przełącznik nie bierze udziału w komunikacji / rozmowie między dwoma hostami. Po prostu wie (lub uczy się), który adres MAC jest skojarzony z którym portem, i przekazuje (lub przełącza) ruch przeznaczony dla określonego adresu MAC do powiązanego portu (po dowiedzeniu się, który port jest powiązany z adresem MAC), niezależnie od tego, czy źródłem jest B lub C lub dowolny inny host podłączony do dowolnego innego portu przełącznika.
Przełączniki działają w warstwie 2. Za zarządzanie sesjami odpowiadają wyższe warstwy.
źródło
Nie nazywa się to tablicą przełączników; jego tablica MAC. Teraz rozważ, że tabela MAC jest pusta. Gdy A próbuje wysłać pakiet do B; pakiet zawiera adres MAC A i B. Przełącznik aktualizuje adres MAC A w tabeli MAC. Teraz, ponieważ nie zna portu, do którego podłączony jest B, więc rozgłasza pakiet ARP na wszystkich swoich portach i czeka na odpowiedź wszystkich hostów.
W tym samym czasie, jeśli C próbuje wysłać pakiet do A, wyodrębnia adres MAC C z tego pakietu i przechowuje go w tabeli MAC. Teraz, ponieważ adres MAC jest już obecny w tabeli MAC, więc wie, do którego portu A jest podłączony. Pamiętaj Pakiety danych zawierają adres MAC źródła i celu. Dlatego adres MAC B & C jest inny. Tak więc przełącznik się nie myli. Teraz przełącz do przodu pakiet z C na A (biorąc pod uwagę, że oba są obecne w tej samej sieci VLAN).
Aby wysłać pakiet z A do B, czeka, aż B odpowie na pakiet ARP wysłany przełącznikiem. Gdy odbiera odpowiedź od B, aktualizuje adres MAC B w swojej tabeli MAC. Następnie pakiet jest przesyłany dalej do B.
Dlatego przełącznik nie jest mylony, ponieważ pakiety danych (tcp / udp) zawierają zarówno źródłowy, jak i docelowy adres MAC. Twój przełącznik nie przekaże dalej pakietu na interfejsie, którego adres MAC hosta końcowego nie jest przełączany. Musi czekać, aż host końcowy odpowie na transmisję ARP wysłaną przełącznikiem.
źródło