Ethernet

Damian Stelmach

Początki pracy nad tym standardem to odległe lata 70. Firma Xerox będąca wówczas jedną z większych firm technologicznych obrała sobie za cel zaprojektowanie otwartego standardu komunikacji sieciowej, który będzie służył ludziom przez wiele lat. Pod koniec lat 70 opracowała standard lokalnych sieci komputerowych, który stał się pierwowzorem Ethernetu. Obecnie Ethernet to standard, który spotkamy w większości lokalnych sieci komputerowych na świecie, a ponadto dzięki wielu swoim zaletom stał się również standardem sieci miejskich, a w niektórych przypadkach nawet rozległych.

Ethernet to cały zbiór rozwiązań sieciowych, które implementowane są zarówno w warstwie łącza danych, jak również w warstwie fizycznej. Pieczę nad rozwojem tej technologii sprawuje obecnie organizacja IEEE (ang. Institute of Electrical and Electronics Engineers), która w 1985 roku opublikowała jej standardy i opisała je numerem 802.2 oraz 802.3. Standard 802.2 odnosi się do funkcji związanych z podwarstwą LLC, ten drugi natomiast do podwarstwy MAC oraz do warstwy fizycznej modelu OSI.

IEEE warstwa łącza danych

Na sukces rozwiązań opartych na standardzie Ethernet składa się wiele czynników, m. in.:

  • łatwość implementacji,
  • niezawodność,
  • zdolność do przyjmowania nowych technologii,
  • stosunkowo niewielki koszt implementacji.

Rozwój Ethernetu

Omówmy teraz rozwój Ethernetu. Początkowe wersje standardu, zwane Thicknet (tzw. gruby Ethernet) oraz Thinnet (tzw. cienki Ethernet) oferowały niewiele możliwości względem tego czym dysponujemy obecnie. Stare wersje pracowały w oparciu o miedziane medium transmisyjne jakim był kabel koncentryczny. Stosowały one fizyczną topologie magistrali, charakteryzującą się tym, że wszystkie urządzenia podłączone są do wspólnego medium. Takie rozwiązanie wymagało sterowania dostępem do nośnika, które realizowane było przez metodę CSMA/CD

. CSMA/CD

Po latach stosowania rozwiązania opartego na topologii magistrali i koncentryka jako medium transmisyjne okazało się, że to rozwiązanie nie jest już wystarczająco efektywne. Szybki rozwój sieci spowodował zwiększenie wymagań użytkowników co do jej przepustowości i niezawodności. Zamiast kabla koncentrycznego powszechnie zaczęto używać kabla typu skrętka, kabla UTP, oraz nowej topologii. Pojawiła się topologia gwiazdy, ta sama, która stosowana jest obecnie, jednak zamiast przełączników jako centralnych punktów sieci stosowano koncentratory (ang. HUB). O przełącznikach jeszcze wówczas nikt nie słyszał.

Gwiazda HUB

Zastosowanie koncentratorów, usprawniło w pewnym stopniu działania sieci komputerowych, ale szybko okazało się, że i to rozwiązanie nie jest idealne. Podstawową cechą koncentratora jest to, że wysyła on dane do wszystkich urządzeń, które są do niego podłączone. Działa to tak, że komputer, który chce przesłać dane do innego urządzenia, realizuję to komunikację za pośrednictwem koncentratora. Ten z kolei, nie jest tak inteligentny, aby dostarczyć dane to właściwego urządzenia tylko wysyła je do wszystkich, które są do niego podłączone.

Gwiazda HUB sposób rozsyłania

Dopiero urządzenia, do których trafiły dane decydują czy są ich adresatem czy nie, poprzez analizę adresacji. Jeśli nie są adresatami, ignorują dane, a jeśli są, to je interpretują.

Gwiazda HUB adresowanie

Tego typu rozwiązanie powodowało, że chociaż fizyczną topologią była topologia gwiazdy, to logicznie dalej było to podobne rozwiązanie do tego stosowanego w poprzedniej generacji Ethernetu. Również tutaj stosowano metodę dostępu do łącza opartą o CSMA/CD, co przy szybkim rozwoju sieci stało się nieefektywne. Ponadto każdy koncentrator tworzył tzw. domenę kolizyjną.

Domena kolizyjna

Im więcej urządzeń podłączonych do koncentratora tym większa domena kolizyjna, a czym większa domena kolizyjna tym większe prawdopodobieństwo wystąpienia kolizji, co w konsekwencji ogranicza przepustowość i generuje częstą konieczność retransmisyjny danych. Większa ilość kolizji to nie jedyny problem związany z zastosowanie koncentratorów. Do innych wad takich urządzeń zaliczyć musimy jeszcze ograniczoną skalowalność, a także zwiększone opóźnienie w dostarczaniu danych, powodowane m.in. wspomnianymi kolizjami.

Tak mijały kolejne lata, trwały prace nad wyeliminowanie słabych stron Ethernetu opartego na koncentratorach, aż wymyślono inteligentne urządzenie sieciowe zwane przełącznikiem (ang. SWITCH), który rozwiązywał problemy trapiące wcześniejsze wersje Ethernetu.

Switch

Przełączniki pracują w sieciach komputerowych do dziś i nic nie wskazuje na to, że szybko się to zmieni. Skąd taka popularność tych urządzeń i dlaczego są takie inteligentne? No, w odróżnieniu od koncentratora, przełącznik nie wysyła danych do wszystkich urządzeń do niego podłączonych, ale tylko do jednego, konkretnego, do którego te dane są adresowane, pomijać oczywiście transmisję rozgłoszeniowe, takie jak chociażby omówione wcześniej rozgłaszanie ARP. Pomiędzy portem przełącznika, do którego podłączone jest urządzenie, a samym urządzeniem występuje logiczna topologia punkt – punkt. Dane, które są adresowane do konkretnego urządzania, trafiają do niego i tylko do niego.

Logiczna topologia punkt-punkt

Zastosowanie przełączników praktycznie w całości eliminuje ryzyko wystąpienia kolizji, gdyż urządzenia nie muszą rywalizować ze sobą o dostęp do medium. Jednocześnie ogranicza się wielkość domeny kolizyjnej, bo wówczas na taką domenę składa się tylko port przełącznika i urządzenie do niego podłączone. Zalet przełączników jest o wiele więcej. Każde urządzenie podłączone do portu przełącznika ma do dyspozycji dedykowaną przepustowość. Jeśli przykładowo przełącznik oferuje transmisję z szybkością 100 Mb/s, to taką przepustowość będzie miało do dyspozycji każde urządzenie do niego podłączone.

Dedykowana przepustowość

W przypadku koncentratorów przepustowość ta dzielona była na wszystkie urządzenia. Dzięki wykorzystaniu przełączników możliwa stała się tez transmisje danych w trybie pełnego dupleksu, co oznacza, że urządzenie do niego podłączone może jednocześnie odbierać dane i je wysyłać.

Obecnie stosowanych jest kilka, wersji standardu Ethernet wykorzystujących przełączniki. Najpopularniejszy z nich to standard oferujący nominalną przepustowość sięgającą 100 Mb/s, zwany standardem FastEthernet. Transmisja w tym standardzie odbywa się tylko poprzez 2 pary żył miedzianych, a nie 4, które dostępne są w skrętce. To powszechne rozwiązanie, stosowane w wielu sieciach komputerowych. W większości przypadków spełnia ono wymagania stawiane sieciom komputerowym.

Kiedy zapotrzebowanie na przepustowość sieci wzrasta wraz z ilością przesyłanych danych wówczas można zastosować standard Gigabit Ethernet. Nominalnie oferuje przepustowość rzędu jednego 1 Gb/s. Jeśli wykorzystywany jest standard 1000BASE-T, to wówczas do transmisji wykorzystuje się wszystkie pary żył miedzianych w skrętce. Duże sieci lokalne, w których wykorzystywana jest telefonia internetowa VoIP, a także przesyłane są duże ilość różnego typu multimediów stosują właśnie tą wersje Ethernetu.

Przy wykorzystaniu standardu Ethernet istnieje również możliwość przesyłania danych za pomocą łączy światłowodowych, Wówczas gigabitowy standard Ethernetu nazywa się 1000BASE-SX lub LX. Istnieją również standardy Ethernetu oferujące komunikację z przepustowością sięgającą 10, a nawet 100 Gb/s. Są one stosowane głównie w sieciach miejskich i rozległych, gdyż ich implementacja jest bardzo, ale to bardzo kosztowna i mało kogo stać na stosowanie tego typu rozwiązań w sieciach lokalnych. Poniższa tabela zawiera spis najpopularniejszych wersje standardu Ethernet, wraz z wykorzystywanymi przez nie mediami transmisyjnymi:

Wersje standardu Ethernet

Wspomniane wcześniej przełączniki stosują adresy MAC do przesyłania danych pomiędzy urządzeniami podłączonymi do portów przełącznika. Każdy przełącznik posiada coś takiego co nazywa się tablicą MAC adresów. Jest to nic innego jak zbiór informacji określających jakie urządzenie, a właściwie jaki MAC adres urządzenia podłączony jest do konkretnego portu. Zrzut z przykładowej tablicy adresów MAC, dla przełącznika CISCO widzicie poniżej:

Tablica adresów MAC Cisco

Wpisy w takiej tablicy dodane zostały dynamicznie, a nie przez administratora. Przełącznik zdobywa informacje zapisane w tablicy w procesie uczenia się. Z odebranej ramki, przełącznik odczytuje źródłowy adres MAC i taki dopisuje do swojej tablicy, przypisując jednocześnie numer portu na którym taka ramkę odebrał. Jeśli z kolei, nie wie do kogo dalej wysłać taką ramkę, bo nie ma wpisu w tablicy dotyczącego adresu MAC odbiorcy wówczas następuje proces zwany zalewaniem.

Można go porównać do rozgłaszania, ponieważ ramka przesyłana jest do wszystkich urządzeń, za wyjątkiem nadawcy. Urządzenia, do których ramka adresowana nie jest, odrzucają ją, natomiast urządzenie będące adresatem, odpowiada i przesyła ramkę do przełącznika. Przełącznik odczyta z ramki adres MAC nadawcy, i zapisze go w swojej tablicy. Cały proces uczenia się i zalewania pokazany został w tutorialu video.

Ramka Ethernet

Skoro standard Ethernet pracuje w drugiej warstwie modelu OSI, no to już pewnie się domyślacie, że również on tworzy swoje ramki. Oczywiście tak jest, Ethernet w procesie enkapsulacji tworzy własną ramkę, zwaną ramką Ethernetową. Przykładową ramkę widzicie poniżej:

Ramka ethernetowa
  • Preambuła oraz znacznik początku ramki – te pola służą do poinformowania urządzenia docelowego, aby przygotował się na odbiór ramki;
  • Docelowy adres MAC, czyli adres fizyczny odbiorcy ramki;
  • Źródłowy adres MAC, czyli adres fizyczny hosta wysyłającego dane;
  • Długość / Typ – pole długość określa wielkość ramki, natomiast typ określa, jaki został wykorzystany protokół warstwy wyższej, najczęściej jest to IPv4;
  • Dane – to pakiet, który odebrany został z warstwy sieciowej. Minimalna wielkość tego pola to 46, a maksymalna 1500 bajtów. Jeśli pakiet jest mniejszy niż 46 bajtów, to dopełnia się
    go, losowymi danymi, tak aby rozmiar całej ramki został zwiększony do wymaganego minimum, czyli do 64 bajtów.
  • Kod kontrolny ramki – pole zawierające sumę kontrolną ramki, służącą do wykrywania ewentualnych błędów ramki. Urządzenie wysyłające dane oblicza sumę kontrolną i umieszcza ją w ramce, odbiorca danych, po jej otrzymaniu również taką sumę oblicza, jeśli obydwie sumy się zgadzają ramka jest akceptowana, jeśli się różnią, ramkę traktuje się jako uszkodzoną i odrzuca.

Całkowita wielkość ramki może wynieść maksymalnie 1518 bajtów (przy obliczaniu jej wielkości, nie brana jest pod uwagę preambuła i sygnał początku ramki). Istnieje jeszcze jeden rodzaj ramek ethernetowych, których maksymalna wielkość może wynosić do 1522 bajtów. Takie ramki stosuje się w wirtualnych sieciach LAN, w tzw. VLAN-ach.