header image
Home arrow Protokoły TCP/IP arrow Ethernet arrow Sieci Ethernet 802.3
Sieci Ethernet 802.3 E-mail
Oceny: / 100
KiepskiBardzo dobry 

Ethernet (IEEE 802.3) jest najszerzej wykorzystywaną technologią w sieciach lokalnych (LAN). Na przestrzeni wielu lat od powstania technologii Ethernet rozwijały i nadal rozwijają się różne jego wersje różniące się szybkością transmisji (czasem również kilkoma różnicami w realizacji tej transmisji). Te wersje to Ethernet, Fast Ethernet, Gigabit Ethernet i 10 Gigabit Ethernet .


Wersje Ethernet 

Najbardziej popularną na dzień dzisiejszy wersją Ethernet jest Ethernet 100 Mb/s, który nazywany jest jako Fast Ethernet. Oryginalny Ethernet działał z przepływnością 10 Mb/s. Kolejymi wersjami są Gigabit Ethernet pracujący z szybkością 1Gb/s (1000 Mb/s) i 10 Gigabit Ethernet z szybkością 10 Gb/s.

Standardy definiujące poszczególne wersje Ethernet to:

10 Mb/s (Ethernet)

  • IEEE 802.3, 10Base5 Ethernet, topologia szyny, do 500m segment
  • IEEE 802.3a, 10Base2 Ethernet, topologia szyny, do 185m segment
  • IEEE 802.3i, 10Base-T Ethernet, topologia gwiazdy, do 100m segment
  • IEEE 802.3j, 10Base-FL Ethernet, topologia gwiazdy, do 2000m segment

100 Mb/s (Fast Ethernet)

  • IEEE 802.3u, 100Base-TX Fast Ethernet, topologia gwiazdy, do 100m segment
  • IEEE 802.3u, 100Base-FX Fast Ethernet, topologia gwiazdy, do 100m segment

1 Gb/s (Gigabit Ethernet)

  • IEEE 802.3z, 1000Base-LX Gigabit Ethernet, topologia gwiazdy, do 310m segment
  • IEEE 802.3z, 1000Base-SX Gigabit Ethernet, topologia gwiazdy, do 310m segment
  • IEEE 802.3z, 1000Base-CX Gigabit Ethernet, topologia gwiazdy, do 310m segment
  • IEEE 802.3z, 1000Base-T Gigabit Ethernet, topologia gwiazdy, do 25m segment

10 Gb/s (10 Gigabit Ethernet)

  • IEEE 802.3ae - 10 Gigabit Ethernet

Urządzenia pracujące w sieci Ethernet wykorzystują standard CSMA/CD (Carrier Sence Multiple Access / Collision Detection), czyli rywalizują o dostęp do medium i wykrywają kolizje w sieci Ethernet. Wyjątkiem jest praca w trybie pełnego dupleksu (full-duplex), gdzie dwa porty nie muszą wykrywać kolizji i transmitują z szybkością 2x większą niż w pół dupleksie (half-duplex), mówimy wtedy o pracy w trybie punkt-punkt.

Zobacz standard Ethernet IEEE 802.3 "Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", gdzie zawarte są szczegóły (http://standards.ieee.org/getieee802/).

 

Format ramki Ethernet 802.3

Poniższy rysunek przedstawia budowę ramki Ethernet, zdefiniowaną przez standard IEEE 802.3 (wartości liczbowe określają ilość bajtów danego pola ramki):

Ramka Ethernet 802.3

Rys.1 Ramka Ethernet 802.3

Preambuła Preambuła jest sekwencją 7 bajtową (56 bitów) z naprzemiennymi wartościami 1 i 0, stosowanymi dla synchronizacji. Służy przede wszystkim po to by dać czas komponentom sieci na wykrycie sygnału i odczytanie go, zanim nadejdzie ramka Ethernet z danymi.

SFD (Start Frame Delimiter) SFD jest sekwencją 8 bitów w postaci 10101011, która wskazuje na początek ramki Ethernet z danymi.

DA MAC i SA MAC Pole adresu przeznaczenia DA MAC (Destination Address Medium Access Control) identyfikuje urządzenie lub wiele urzadzeń, które mają odebrać ramkę Ethernet. Pole adresu źródła SA MAC (Source Address MAC) identyfikuje urządzenie, które wysłało tą ramkę ethernet. Możemy wyróżnić trzy typy adresów MAC: unicastowy, czyli konkretny adres MAC pojedynczego urządzenia; multicastowy, czyli identyfikujący grupę urzadzeń; oraz broadcastowy, czyli taki, który ma wszystkie bity ustawione na "1", taką ramkę odbiorą wszystkie urzadzenia w sieci LAN.

Dł/Typ - Jeśli to pole ma wartość mniejszą lub równą 1500, to określa liczbę bajtów w polu Dane. Jeśli wartość jest większa niż 1536, wtedy pole określa naturę przesyłanego protokółu użytkownika. (patrz niżej EtherType)  

Dane Dane klienta MAC, pole to zawiera dane transmitowane od stacji źródłowej do stacji przeznaczenia. Maksymalna wielkość tego pola to 1500 bajtów, a gdy wartość tego pola spada poniżej 46 bajtów to wykorzystywane jest pole Dopełnienia (Dop.), by ramka Ethernet osiągnęła minimalną długość.

Dop. Pole dopełnienia, wypełnione dodatkowymi bitami danych, stosowane tylko wtedy, gdy trzeba uzupełnić ramkę Ethernet do minimalnej długości 64 bajtów, licząć od pola DA MAC do FCS.

FCS Pole FCS (Frame Check Sequence) zawiera 4 bajty cyklicznej kontroli nadmiarowej CRC (Cyclic Redundancy Check). Przed wysłaniem ramki MAC, stacja źródłowa dokonuje kalkulacji CRC z wszystkich bitów ramki Ethernet od pola DA MAC, aż do pola Dop. (czyli z wszystkich pól oprócz preambuły, SFD i FCS), następnie wpisuje ją do pola FCS. Gdy ramka zostanie odebrana przez stację przeznaczenia, wykonywana jest ponowna kalkulacja CRC i jeśli wartość przeliczenia nie jest identyczna z wartością w polu FCS odebranej ramki Ethernet, to uważa się taka ramkę za błędną i odrzuca.

Ethernet MTU 

Standard Ethernet zakłada, że minimalna długośc ramki Ethernet wynosi 64 bajty, a maksymalna 1518 bajtów (ale standard 802.3ac dodaje 4 bajty dla tagowania VLAN, więc na dzień dzisiejszy jest 1522 bajtów, bądź 1526 z Q-in-Q), licząc od wszystkie bity od DA MAC aż do FCS włącznie.

Urządzenia ethernetowe dla poprawnego odebrania następnej ramki muszą pozostać w tzw. stanie bezczynności, który nazywamy IPG (InterPacket Gap - przerwa między pakietami, w domyśle ramkami). Minimalny czas bezczynności musi być równoważny czasowi przesłania 96 bitów, a więc dla 10 Mb/s Ethernet ma wartość 9.6 mikrosekundy, dla 100 Mb/s Ethernet (Fast Ethernet) ma wartość 960 nanosekund, a dla 1 Gb/s Ethernetu (GigabitEthernet) wynosi 96 nanosekund.

Protokoły przenoszone w Ethernet (EtherType)

Pole Dł/Typ w ramce Ethernet przenosi informację o protokole, który jest przesyłany w polu danych protokołu Ethernet. Protokoły przenoszone w Ethernet (numery protokołów podane są w postaci szesnastkowej - hex) to m.in.:
 
0000-05DC   IEEE802.3 Length Field  (długość pola danych w Ethernet)
0800             IPv4       
0806             ARP                      
0808             Frame Relay ARP       
6559             Raw Frame Relay       
8035             Reverse ARP            
809B             Appletalk               
8100             IEEE 802.1Q/p VLAN-tagged frames
814C            SNMP                     
823E-8240   Advanced Encryption System
86DD            IPv6                     
876B      
      TCP/IP Compression    
876C            IP Autonomous Systems 
880B            PPP                
8847            MPLS Unicast          
8848            MPLS Multicast          
8863            PPPoE Discovery Stage 
8864            PPPoE Session Stage   
9000            Loopback              
  

Pełna lista EtherType 

 

Tagowanie VLAN (VLAN tagging)

Tagowanie 802.1Q/802.1p

Standard IEEE 802.3ac definiuje rozszerzenia ramki Ethernet w celu obsługi wirtualnych sieci lokalnych VLAN (Virtual LAN) w sieciach Ethernet. Sam protokół VLAN został określony w standardzie IEEE 802.1Q, a 802.3ac wprowadza szczegóły implementacji tego protokołu charakterystyczne dla Ethernet. Pisząc bardziej precyzyjnie, protokół VLAN umożliwia włożenie znacznika (tag 802.1Q, patrz rys.2) do ramki Ethernet by zidentyfikować wirtualny LAN (VLAN), do którego należy ta ramka. Dzięki temu tworzy się logiczne grupy, do których przydziela się ramki (a przecież w konsekwencji ruch pochodzący od stacji Ethernetowych generujących te ramki), co daje korzyści w postaci: łatwiejszego zarządzania siecią, zwiększenia bezpieczestwa sieciowego, możliwością tworzenia grup roboczych oraz ograniczenia domen broadcastowych.

tag 802.1Q

Rys.2 Ramka Ethernet z tagiem 802.1Q

Tag VLAN, który jest 4-bajtowy, jest wkładany pomiędzy pola SA MAC a Dł/Typ. Pierwsze 2 bajty tagu, TPID (Tag Protocol Identifier), określają "802.1QTagType", który ma zawsze wartość 0x8100. Informacja w tym polu wskazuje, że włożony jest tag VLAN i informuje, że oryginalne pole Dł/Typ można znaleźć w ramce Ethernet z przesunięciem 4-bajtowym. Kolejne 2 bajty tagu zawierają następujące informacje (rys.3):

TCI 802.1Q

Rys.3 TCI - Tag Control Information w 802.1Q/p.

user_priority: 3 bity pozwalające na przydzielenie odpowiedniego poziomu priorytetu dla ramki Ethernet, to pole jest traktowane jako 802.1p;

CFI: 1 bit Canonical Format Indicator wskazuje, czy jest obecne pole RIF (ROuting Information Field);

VID: 12 bitów identyfikatora VLAN (VLAN ID), który jednoznacznie identyfikuje VLAN, do którego należy ramka Ethernet, to pole jest traktowane jako 802.1Q.

Należy pamiętać, że dodanie tagu VLAN zwiększa maksymalną długość ramki Ethernet o 4 bajty, czyli do 1522 bajtów.

Podwójne tagowanie z Q-in-Q

Tagowanie Q-in-Q ramki Ethernet, czyli podwójne tagowanie, zostało stworzone, by dać operatorom/ISP możliwość zwiększenia ilości unikalnych identyfikatorów VLAN w sieci. Pojedyńcze tagowanie z 802.1Q umożliwia oznaczenie ramek Ethernet wartościami identyfikującymi VLAN od 1 do 4095 (0=brak VLAN). Biorąc pod uwagę to, że jest to unikalny identyfikator w danej sieci L2, który nie może się powtórzyć, dostajemy duże ograniczenie np. przy świadczeniu usług przenoszenia VLANów przez ISP/operatorów. Przez zastosowanie dodatkowego tagu 802.1Q, oprócz już istniejącego tagu 802.1Q (dlatego nazwa Q-in-Q, czyli 802.1Q-w-802.1Q), możliwe jest przesyłanie tych samych identyfikatorów VLANów klientów (tzw.C-VLAN) z różnymi identyfikatorami VLANów operatora (S-VLAN). Para dwóch tagów 802.1Q przenoszących VLANy, czyli para {S-VLAN,C-VLAN} daje nam możliwość zdefiniowania 16 769 025 różnych wartości.
Dodanie tagu S-VLAN zwiększa maksymalną długość ramki Ethernet z 802.1Q o 4 bajty, czyli 1522+4 daje 1526 bajtów, takie MTU należy ustawić na interfejsie Ethernet.

 

 

CSMA/CD

Protokół CSMA/CD (Carrier Sense Multiple Access / with Collision Detect) jest wykorzystywany przez pół-dupleksowe sieci Ethernet. CSMA/CD jest oparty na komunikacji stacji korzystających ze wspólnego medium transmisyjnego. Każda stacja przed wysłaniem ramki musi zbadać czy nie jest transmitowana już ramka Ethernet w medium, czyli musi czekać na wolne od transmisji medium. Następnie wysyła ramkę, która jest rozgłaszana (broadcast) do wszystkich urzadzeń w sieci, po to by każde mogło ja odczytać. Jeśli w czasie wysyłania ramki Ethernet , inna stacja zacznie wysyłać swoją ramkę, to wystąpi kolizja. W związku z czym transmitująca stacja wysyłają sekwencję zagłuszającą (jam) by poinformować wszystkie stacje o błędzie transmisji ramki w wyniku kolizji, po czym stacja milknie na pewien czas, zanim spróbuje ponownie wysłać ramkę Ethernet . Dzieje się tak, aż do pomyślnego wysłania ramki Ethernet .

Zasady w CSMA/CD (Carrier Sense Multiple Access / with Collision Detect):

  1. Carrier Sense - Sieć sprawdza istnienie nośnika (carrier), czyli istnienie transmisji w medium.
  2. Nośnik istnieje, więc stacja odracza transmisję. Dalsze monitorowanie istnienia nośnika.
  3. Nośnik nie istnieje, a także czas w którym go nie wykryto jest równy lub większy od IPG (InterPacket Gap), więc stacja natychmiast zaczyna wysyłać ramkę.
  4. Podczas transmisji ramki stacja monitoruje medium czy nie ma kolizji.
  5. Jeśli wystąpi kolizja, stacja przestaje wysyłać ramkę i transmituje 32-bitową sekwencję zagłuszającą (jam).
  6. Po wysłaniu sekwencji zagłuszającej stacja czeka (wycofuje się z transmisji) przez pewien losowy przedział czasu, wykorzystając generator losowy, zanim ponownie spróbuje wysłać ramkę zaczynając od początku cały proces dostępu do medium.
  7. Jeśli dalej występują kolizje, to wycofanie stacji z transmisji jest wydłużane, co owocuje zmniejszeniem prawdopodobieństwa wystąpienia kolizji.
  8. Proces jest powtarzany tak długo (max. 16 razy, potem nadajnik raportuje błąd sprzętowy), aż ramka nie zostanie wysłana bez kolizji, po czym zeruje swój licznik kolizji, używany do zwiększania czasu wycofania z transmisji.