Próbuję zrozumieć, w jaki sposób dochodzi do kolizji w sieci Ethernet, szczególnie gdy występuje niedopasowanie dupleksu lub gdy w starszej sieci Ethernet dwa węzły przesyłają jednocześnie.
Wszyscy wyjaśniają kolizję na wyższym poziomie (dwie ramki zderzają się, gdy jedna jest wysyłana, a druga odbierana). Jednak poniższy wykres pokazuje, że istnieją różne obwody dla Rx i Tx. Jak może dojść do kolizji, skoro istnieją dedykowane obwody do wysyłania i odbierania ramek?
EDYCJA : Może etykieta „Hub MDI-X” powoduje pewne zamieszanie co do sedna mojego pytania. Nie pytam, w jaki sposób funkcjonalność koncentratora może powodować kolizję. Skupiam się na komunikacji między dwoma węzłami za pomocą interfejsów MDI lub MDI-X (koncentrator i przełączniki mają interfejsy MDI-X). W każdym z tych dwóch przypadków, w jaki sposób może dojść do kolizji między dwoma węzłami, gdy mają niedopasowanie dupleksowe, podczas gdy w niedopasowaniu dupleksowym Rx i Tx nadal mają swoje dedykowane obwody?
źródło
Odpowiedzi:
Aby to zrozumieć, musisz zrozumieć kontekst historyczny.
Pierwotnie Ethernet używał współdzielonego kabla koncentrycznego. Tylko jedno urządzenie mogło z powodzeniem nadawać na raz. Jeśli dwa urządzenia przesyłane w tym samym czasie uznano za kolizję.
Potem pojawiły się wzmacniacze, aby zwiększyć odległość i zwiększyć liczbę węzłów. Repeater wykryłby, który port nadaje, a następnie powtórzyłby ten sygnał na innych portach. Aby utrzymać wykrywanie kolizji, działające repeatery musiały mieć pewną funkcjonalność zapewniającą wykrycie kolizji przez wszystkie węzły. Pierwsze przemienniki miały tylko dwa porty, ale późniejsze przemienniki mogły mieć wiele portów, które stały się znane jako huby, szczególnie gdy były używane w połączeniu z okablowaniem skrętką. Repeatery były dość głupimi urządzeniami, regenerowałyby sygnały elektryczne, ale niewiele więcej.
Potem przyszedł 10BASE-T, który, jak zauważyłeś, ma dedykowane kanały danych dla każdego kierunku. Niemniej jednak nadal musiał pasować do istniejącego modelu, więc domyślnie działał w trybie „półdupleksu”, w którym emulował kabel koncentryczny. Sygnały tak naprawdę nie zderzały się z przewodem, ale urządzenia nadawczo-odbiorcze działały tak, jakby to zrobiły, a wzmacniacze wykonałyby takie same kroki jak poprzednio, aby zapewnić, że będzie to widoczne w całej sieci.
Ethernet skrętki może również obsługiwać tryb „pełnego dupleksu”. W tym trybie cały sprzęt związany z kolizją jest wyłączony, a oba końce mogą transmitować w dowolnym momencie. Ten tryb przyniósł jednak kilka poważnych wad.
Problemy te oznaczały, że w praktyce systemy 10BASE-T prawie zawsze działały w trybie półdupleksu.
W przypadku 100BASE-TX sytuacja uległa radykalnej poprawie. Przełączniki Ethernetowe (technicznie szybkie mosty wieloportowe) obniżyły się do tego stopnia, że można było wyeliminować głupie huby repeaterów. Autonegocjacja umożliwiła kartom sieciowym nawiązywanie połączeń w trybie pełnego dupleksu bez podatnej na błędy ręcznej konfiguracji. Jeśli podłączysz dwie karty sieciowe 100BASE-TX razem z kablem krosowym lub podłączysz kartę sieciową 100BASE-TX do przełącznika i nie podejmiesz kroków w celu ręcznego zastąpienia rzeczy, prawie na pewno wynegocjują tryb pełnego dupleksu.
1000BASE-T teoretycznie ma tryb półdupleksu, który niektóre karty sieciowe twierdzą, że obsługują, i istniała specyfikacja gigabitowych repeaterów wieloportowych, ale nigdy nie widziałem żadnych dowodów na to, że ktokolwiek kiedykolwiek sprzedał. W praktyce łącze gigabitowe prawie na pewno będzie działać w trybie pełnego dupleksu.
Większe prędkości całkowicie zrezygnowały z trybu półdupleksu.
źródło
Koncentrator jest tak naprawdę tylko zasilanym kablem, który powtarza każdy sygnał odbierany przez jeden interfejs do wszystkich innych interfejsów. Jeśli dwa urządzenia transmitują w tym samym czasie do odbioru interfejsów koncentratora, koncentrator powtarza oba sygnały w tym samym czasie do transmisji wszystkich pozostałych interfejsów koncentratora, a oba odebrane sygnały będą kolidować podczas transmisji innych interfejsów, a zatem masz kolizję, w której wszystkie pozostałe interfejsy mają sygnały śmieciowe, ponieważ są to dwa sygnały jednocześnie. Hosty, które wysyłają jednocześnie i słyszą inny sygnał, uświadomią sobie, że więcej niż jeden wysyła jednocześnie, i ustalą, że doszło do kolizji.
Pomyśl o tym w ten sposób, że odbiór każdego interfejsu koncentratora jest podłączony do transmisji każdego innego interfejsu. Wewnątrz koncentratora transmisja i odbiór są połączone, nawet jeśli są oddzielne na interfejsie.
Porównaj to z przełącznikiem, w którym każde łącze jest zakończone na interfejsie przełącznika, a przełącznik nie ma połączonych ze sobą interfejsów. Zamiast tego przełącznik ma logikę (zwykle osadzoną w sprzęcie), aby określić, gdzie wysłać ramki, które odbiera na jednym interfejsie, i aby zapobiec kolizjom w przełączniku.
Przełącznik to most o dużej gęstości. Oryginalne mosty były jak komputery PC z wieloma interfejsami. Nie można oczekiwać, że komputer z wieloma interfejsami będzie miał kolizje, jeśli otrzyma jednoczesne ramki na wielu interfejsach.
Edytować:
Twoje komentarze doprowadziły mnie do wniosku, że nadal nie rozumiesz, co napisałem powyżej o hubach.
Sposób kolizji jest wykrywany podczas korzystania z UTP, a hub jest przez urządzenia wysyłające słyszące inny sygnał podczas wysyłania. Jeśli urządzenie korzystające z UTP jest skonfigurowane na półdupleks, wówczas uwierzy, że doszło do kolizji, gdy usłyszy sygnał podczas wysyłania.
W przypadku niedopasowania dupleksu urządzenie skonfigurowane na pełny dupleks z przyjemnością wyśle podczas odbierania z urządzenia skonfigurowanego na pół dupleks. Z drugiej strony urządzenie skonfigurowane na półdupleks wierzy, że podczas wysyłania dochodzi do kolizji i słyszy ten sygnał z urządzenia skonfigurowanego na pełny dupleks. Spowoduje to wszelkiego rodzaju problemy, ponieważ urządzenie skonfigurowane na półdupleks przestanie wysyłać ramkę (powodując runt) i wyśle sygnał zakłócający, którego urządzenie skonfigurowane na pełny dupleks nie oczekuje. Urządzenie skonfigurowane na pełny dupleks przestanie wtedy wysyłać swoją ramkę.
źródło
Świetne pytanie.
W trybie pełnego dupleksu istnieje dedykowany kanał dla ruchu z „lewej do prawej” i kanał dedykowany dla ruchu z „od prawej do lewej”:
Dlatego w trybie pełnego dupleksu kolizje są niemożliwe - nawet jeśli obie karty sieciowe transmitują w tym samym czasie.
W półdupleksie ruch w obu kierunkach ma jednak na celu wykorzystanie tylko drutu, jeden kierunek na raz. Chociaż fizycznie istnieją jeszcze kanały dedykowane, logicznie, jeśli jedna karta sieciowa odbierze coś podczas transmisji, rejestruje to jako kolizję. Bity / sygnał tak naprawdę nie „kolidują” na przewodzie - licznik kolizji jest po prostu zwiększany, gdy karta sieciowa odbiera i transmituje w tym samym czasie.
źródło
Dzięki skrętce i wzmacniaczowi hub nie jest niczym więcej niż wzmacniaczem cyfrowym. W tym celu wykrywa nośną z sygnału przychodzącego na jednym porcie i przełącza wszystkie pozostałe porty w tryb wyjściowy. W tym trybie wyjściowym każdy dodatkowy przychodzący przewoźnik jest kolizją. To uruchamia sygnał zacięcia w celu propagowania kolizji i zatrzymania nadawcy.
Ta metoda powtarzania naśladuje zachowanie poprzednich, współużytkowanych wariantów Ethernet mediów (10BASE5 i 10BASE2), w których repeater był używany tylko jako fizyczne połączenie segmentów lub przedłużacze linii. Oczywiście masz rację: skrętka to pełnodupleksowy nośnik na poziomie drutu, w którym kolizja występuje tylko na górnej warstwie fizycznej, a nie na samym przewodzie.
Przekaźnik nie może obsługiwać więcej niż jednego nadawcy jednocześnie. Wiele jednoczesnych transmisji zmiksowałoby porty wyjściowe i spowodowałoby niezrozumiały hałas. Podobnie, każdy węzeł w trybie półdupleksu przyjmuje współdzielone medium, niezdolne do transmisji w pełnym dupleksie. Każdy przewoźnik wykrywany podczas transmisji jest kolizją, co powoduje, że nadawca się wycofuje. To, czy nośnik obsługuje pełny dupleks (światłowód, skrętka), czy nie (koncentryczny) nie ma znaczenia.
W przypadku niedopasowania dupleksu jeden koniec łącza jest w trybie półdupleksu, a drugi w trybie pełnego dupleksu. Teraz, gdy strona z półdupleksem (HDX) transmituje, każda nośna w odbiorniku powoduje wykrycie kolizji. Jednak strona z pełnym dupleksem (FDX) może z przyjemnością wysyłać, gdy odbiera od strony HDX, i jest całkowicie nieświadoma kolizji, które tworzy po drugiej stronie. Strona HDX musi przerwać transmisję i wysłać sygnał zacięcia. Ponieważ strona FDX nie może wykryć rzekomej kolizji, wykrywa częściową, a zatem uszkodzoną ramkę.
Niskie częstotliwości i małe ramki mają rozsądną szansę na pokonanie tego niedopasowania dupleksu, więc
ping
może faktycznie działać. Jednak gdy tylko jakakolwiek poważna transmisja zacznie działać, wyższa częstotliwość ramki i większy rozmiar sprawią, że transmisje zakończą się bardzo niezawodnie.W przypadku przełączników niezarządzanych niedopasowanie dupleksu może być bardzo trudne do wykrycia, szczególnie gdy nawet karty sieciowe hosta nie zgłaszają prawidłowo swojego trybu dupleksu.
W przełącznikach zarządzanych zwykle masz liczniki błędów portów. Zwiększenie liczby kolizji z jednej strony (HDX) oraz zwiększenie liczby runtów i błędów FCS z drugiej strony (FDX) są bardzo silnymi wskazaniami do niedopasowania dupleksu.
Zasadniczo poleganie na automatycznych negocjacjach jest bardzo dobrą praktyką, aby uniknąć niedopasowania dupleksu. Ręczna konfiguracja trybu prędkości i dupleksu jest na ogół podatna na niedopasowanie, szczególnie przy wymianie sprzętu kilka lat później. Na szczęście cały schemat półdupleksu odszedł z Gigabit Ethernet i szybciej.
źródło
Załóżmy, że maszyna A zaczyna wysyłać dane do maszyny B. Gdy pakiet zaczyna być wysyłany, maszyna C zaczyna wysyłać różne dane do maszyny B. Istnieje tylko jedna ścieżka sygnału do maszyny B, więc transmisje z A i C kolidują i B nie może otrzymać oba.
Fakt, że do transmisji z maszyny B, na maszynę A i na maszynę C używany jest inny obwód, nie pomaga. Wszystko, co się dzieje, polega na tym, że A i C próbują jednocześnie transmitować do maszyny B, a do maszyny B. jest tylko jedna ścieżka sygnału.
źródło