Jak dokładnie dochodzi do kolizji Ethernet w kablu, skoro węzły używają różnych obwodów dla Tx i Rx?

13

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?

Do transmisji i odbioru wykorzystywane są różne obwody

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?

Christos Dalamagkas
źródło
Należy pamiętać, że 10Base2 lub 10Base5 współdzieliły ten sam nośnik, np. Ten sam kabel.
Patrick Terlisten
Nadal mam to samo pytanie dotyczące 100base-tx, na wypadek, gdybyśmy mieli niedopasowanie dupleksu, a węzeł A jest półdupleksem, a węzeł B pełnym dupleksem. Załóżmy, że węzeł A ma interfejs MDI, a węzeł B interfejs MDI-X. Węzeł B transmituje z pinów 3 i 4, a węzeł B odbiera tylko z 3 i 4. Jak może dojść do kolizji w węźle A, ponieważ odbiera tylko z tych pinów?
Christos Dalamagkas,
6
Kolizja ma miejsce w L1, a nie w L2 - zderzają się bity / nośne. Dwóch nadawców zderza się, gdy próbują wysłać (blisko) jednocześnie.
Zac67

Odpowiedzi:

11

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.

  • To było niezgodne z hubami repeatera. Bez mechanizmów wykrywania kolizji huby nie byłyby w stanie obsłużyć dwóch urządzeń transmitujących jednocześnie.
  • Oba końce łącza, które mają być skonfigurowane dla tego samego trybu dupleksu, jeśli nie są, to mogą się zdarzyć złe rzeczy.

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.

Peter Green
źródło
I wtedy pojawiła się bezprzewodowa sieć Ethernet, a kolizje z mediami znów stają się problemem.
OrangeDog,
@OrangeDog, jeśli masz na myśli Wi-Fi (IEEE 802.11), to nie jest bezprzewodowy Ethernet (IEEE 802.3). Jest to zupełnie inny protokół, który ma różne ramki i używa CSMA / CA zamiast CSMA / CD. Oba protokoły są bardzo różne, podczas gdy Ethernet na różnych obsługiwanych mediach są zasadniczo takie same.
Ron Maupin
14

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ę.

Ron Maupin
źródło
3
To jest prawdziwa odpowiedź. OP ignoruje wszystkie przypadki z wyjątkiem dwóch punktów końcowych z kablem skrzyżowanym (lub, w nowoczesnym otoczeniu, dowolnym kablem) między nimi.
R .. GitHub ZATRZYMAJ LÓD
@R .., rysunek w pytaniu pokazuje hub, więc odpowiedziałem na połączenie z hubem.
Ron Maupin
Ta odpowiedź wyjaśnia, w jaki sposób dochodzi do kolizji, gdy w topologii znajduje się Hub. Chociaż późne kolizje mogą się zdarzyć, gdy są dwa węzły (powiedzmy przełącznik i komputer), jeden jest w połowie dupleksowy, a drugi w pełni dupleksowy. Dlaczego w tym przypadku dochodzi do kolizji, mimo że istnieją osobne obwody dla Tx i Rx, jak pokazano na wykresie mojego pytania?
Christos Dalamagkas,
Wydaje się, że etykieta „Hub MDI-X” spowodowała pewne zamieszanie w odniesieniu do sedna mojego pytania. Zredagowałem odpowiednio.
Christos Dalamagkas,
3
Ponieważ ten z półdupleksem deklaruje kolizję, gdy słyszy coś podczas wysyłania. Zobacz odpowiedź powyżej. Jeśli urządzenie skonfigurowane na półdupleks słyszy inny sygnał podczas wysyłania, musi założyć, że doszło do kolizji, ponieważ uważa, że ​​jest to półdupleks i tylko jedno urządzenie na raz może wysłać.
Ron Maupin
8

Ś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”:

Dedykowany kanał

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.

Eddie
źródło
4
Sygnały kolidują na przewodzie, nawet przy skrętce. Przy trzech węzłach końcowych dwa jednoczesne sygnały zderzyłyby się z trzecim węzłem.
Zac67
4
Bity / sygnał tak naprawdę nie„ zderzają się ”z drutem ” W hubie, tak jak na rysunku w pytaniu, bity faktycznie zderzają się z drutem i wytwarzają sygnał śmieci. Hosty, które wysyłają jednocześnie i słyszą inny sygnał, wyślą następnie sygnał zagłuszania do wszystkich innych interfejsów w koncentratorze.
Ron Maupin
@RonMaupin Oczywiście masz rację - mówiłem o tym, co się stanie, gdy repeater nie wykryje / nie zareaguje na kolizję.
Zac67
1
@ Zac67, nie komentowałem ciebie, ty i ja powiedzieliśmy to samo w zasadzie w tym samym czasie.
Ron Maupin
@ Zac67 / RonMaupin OP zredagował pytanie, potwierdzając, że nie pytają o przypadek hubów.
Eddie
6

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 pingmoż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.

Zac67
źródło
3

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.

David Schwartz
źródło