Duplex mismatch to sytuacja, w której dwa urządzenia połączone przewodem Ethernet nie zgadzają się co do sposobu przesyłania danych. Jedna strona pracuje w trybie full duplex, a druga w half duplex. Połączenie może przy tym wyglądać na działające - komputer widzi sieć, diody na porcie świecą, a Internet nawet się otwiera. Problem pojawia się dopiero pod obciążeniem: transfer staje się bardzo wolny, połączenie potrafi przerywać, a na interfejsie rośnie liczba błędów i kolizji. To właśnie dlatego duplex mismatch bywa trudniejszy do zauważenia niż zwykłe odłączenie kabla.
Co to jest duplex mismatch?
Duplex mismatch oznacza niezgodność trybu duplex po obu stronach połączenia Ethernet. Jedno urządzenie uważa, że może jednocześnie wysyłać i odbierać dane, a drugie zachowuje się tak, jakby w danym momencie transmisja mogła odbywać się tylko w jedną stronę.
Wyobraźmy sobie komputer podłączony przewodem do switcha. Karta sieciowa komputera pracuje jako:
Full Duplex
natomiast port switcha jako:
Half Duplex
Fizycznie kabel nadal jest podłączony. Link może zostać zestawiony i właśnie dlatego problem nie zawsze rzuca się od razu w oczy.
Gdy zaczyna płynąć więcej danych, obie strony zachowują się jednak według innych zasad. Efektem mogą być kolizje, retransmisje, błędy ramek i bardzo słaba wydajność połączenia.
Full duplex i half duplex - jaka jest różnica?
Najłatwiej porównać te dwa tryby do rozmowy.
Half duplex przypomina krótkofalówkę. Obie strony mogą nadawać, ale nie powinny robić tego jednocześnie. Jedna mówi, druga w tym czasie słucha.
Full duplex działa bardziej jak zwykła rozmowa telefoniczna. Dane mogą jednocześnie płynąć w obu kierunkach.
| Tryb | Sposób działania |
|---|---|
| Half duplex | Urządzenie nadaje lub odbiera, a przy współdzielonym medium mogą występować kolizje. |
| Full duplex | Wysyłanie i odbieranie danych może odbywać się jednocześnie. |
Sam half duplex nie oznacza więc awarii. Problem zaczyna się wtedy, gdy jedna strona połączenia pracuje jako half duplex, a druga jako full duplex.
Jak powstaje duplex mismatch?
Najczęściej przyczyną jest ręczne wymuszenie ustawień tylko po jednej stronie połączenia.
Załóżmy, że administrator ustawia na switchu:
100 Mb/s Full Duplex
a karta sieciowa komputera nadal pozostaje ustawiona na automatyczne negocjowanie parametrów.
W pewnych konfiguracjach - szczególnie przy starszym sprzęcie i połączeniach 10/100 Mb/s - może dojść do sytuacji, w której urządzenia ustalą tę samą prędkość, ale różny tryb duplex.
Inny częsty przypadek jest jeszcze prostszy: ktoś ręcznie ustawił full duplex na jednym urządzeniu i half duplex na drugim.
Dlatego przy diagnostyce dobrze sprawdzać zawsze obie strony tego samego kabla. Informacja, że port switcha działa jako full duplex, jeszcze nie mówi nam, jak skonfigurowana jest karta sieciowa po drugiej stronie.
Jakie są objawy duplex mismatch?
Najbardziej charakterystyczne jest to, że sieć nie musi przestać działać całkowicie. Właśnie przez to można długo szukać problemu w zupełnie innym miejscu.
Typowe objawy to:
- bardzo niski transfer mimo poprawnie zestawionego połączenia,
- duże wahania prędkości,
- przerywanie transmisji podczas większego obciążenia,
- wolne kopiowanie plików przez sieć lokalną,
- wysoki czas odpowiedzi albo niestabilny ping,
- rosnąca liczba błędów CRC lub FCS,
- kolizje albo późne kolizje widoczne w statystykach portu,
- problemy pojawiające się dopiero przy jednoczesnym wysyłaniu i odbieraniu danych.
Dobrym sygnałem ostrzegawczym jest sytuacja, w której prosty ping wygląda jeszcze przyzwoicie, ale kopiowanie dużego pliku przez sieć okazuje się dramatycznie wolne.
Same błędy CRC nie dowodzą jednak duplex mismatch. Podobne objawy może powodować uszkodzony przewód, wadliwy port albo problem z kartą sieciową. Statystyki trzeba więc traktować jako wskazówkę, a nie automatyczną diagnozę.
Dlaczego sieć nadal może działać?
To najbardziej podstępna cecha tego problemu. Gdy kabel jest przerwany, sytuacja jest prosta - nie ma połączenia. Przy duplex mismatch warstwa fizyczna może nadal działać i urządzenia widzą aktywny link.
Strona pracująca w half duplex przed rozpoczęciem transmisji zachowuje się tak, jakby musiała sprawdzać, czy medium jest wolne. Może też wykrywać kolizje.
Druga strona, pracująca w full duplex, nie spodziewa się takich kolizji. Zakłada, że może wysyłać dane niezależnie od odbierania.
W efekcie przy jednoczesnej transmisji strona half duplex może potraktować sytuację jako kolizję. Pojawiają się błędy i część danych trzeba wysyłać ponownie.
Przy małym ruchu problem może być ledwo zauważalny. Gdy obciążenie rośnie, wydajność potrafi gwałtownie spaść.
Jak sprawdzić duplex mismatch?
Najważniejsze jest porównanie ustawień na obu końcach połączenia.
Jeżeli mamy komputer połączony ze switchem, sprawdzamy:
komputer / karta sieciowa
↕
switch / konkretny port
Interesują nas dwie wartości:
- prędkość połączenia,
- tryb duplex.
Podejrzana konfiguracja może wyglądać tak:
Karta sieciowa: 100 Mb/s Full Duplex Switch: 100 Mb/s Half Duplex
W urządzeniach zarządzalnych warto dodatkowo zajrzeć do statystyk portu. Rosnąca liczba kolizji, late collisions, FCS, CRC czy błędów ramek może naprowadzić na problem.
Przykładowo na urządzeniach Cisco jednym z podstawowych poleceń diagnostycznych jest:
show interfaces
Szukamy wtedy nie tylko informacji o speed i duplex, ale też liczników błędów. Jeżeli przy kolejnym odczycie szybko rosną, mamy dobry powód, żeby dokładniej przyjrzeć się połączeniu.
Jak naprawić duplex mismatch?
Samo rozwiązanie jest zazwyczaj znacznie prostsze niż znalezienie przyczyny. Obie strony połączenia muszą korzystać ze zgodnych ustawień.
Najpierw ustaw automatyczną negocjację po obu stronach
W typowej współczesnej sieci dobrym punktem wyjścia jest ustawienie automatycznej negocjacji zarówno na switchu, jak i na urządzeniu końcowym.
Czyli zamiast:
Switch: 100 Full Komputer: Auto
ustawiamy:
Switch: Auto Komputer: Auto
Po ponownym zestawieniu połączenia urządzenia powinny uzgodnić wspólne parametry.
Jeśli parametry muszą być wymuszone, ustaw je po obu stronach
W starszej albo nietypowej instalacji może istnieć powód, żeby parametry ustawić ręcznie. Wtedy nie można zrobić tego tylko na jednym końcu kabla.
Jeżeli jedna strona ma:
100 Mb/s Full Duplex
druga również powinna mieć zgodną konfigurację.
Wyzeruj liczniki i sprawdź, czy błędy wracają
Po poprawieniu duplex warto ponownie sprawdzić statystyki portu. Sam fakt, że licznik pokazuje błędy, nie oznacza jeszcze, że problem nadal istnieje - część mogła powstać wcześniej.
Znacznie bardziej interesuje nas to, czy liczba błędów rośnie podczas nowego ruchu.
Jeżeli duplex jest zgodny, sprawdź kabel i port
Nie każdy wolny Ethernet to duplex mismatch. Jeżeli oba końce pokazują poprawne i zgodne parametry, kolejnym krokiem powinno być sprawdzenie przewodu, innego portu switcha oraz karty sieciowej.
CRC czy FCS mogą bowiem pojawiać się także przy problemach fizycznych.
Najprostsza kolejność diagnostyki wygląda więc tak:
- Sprawdź speed i duplex na obu końcach kabla.
- Jeżeli ustawienia się różnią, doprowadź je do zgodności.
- W typowej sieci ustaw Auto po obu stronach.
- Rozłącz i ponownie zestaw połączenie.
- Sprawdź liczniki błędów podczas nowego transferu.
- Jeżeli problem pozostaje, sprawdź kabel, port i kartę sieciową.
Warto przy tym oprzeć się pokusie ustawiania na chybił trafił kolejnych kombinacji 10/100 Mb/s i half/full duplex. Najpierw trzeba sprawdzić, co naprawdę zgłaszają obie strony.
