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):
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.
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):
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):
- Carrier Sense - Sieć sprawdza istnienie nośnika (carrier), czyli istnienie transmisji w medium.
- Nośnik istnieje, więc stacja odracza transmisję. Dalsze monitorowanie istnienia nośnika.
- 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ę.
- Podczas transmisji ramki stacja monitoruje medium czy nie ma kolizji.
- Jeśli wystąpi kolizja, stacja przestaje wysyłać ramkę i transmituje 32-bitową sekwencję zagłuszającą (jam).
- 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.
- Jeśli
dalej występują kolizje, to wycofanie stacji z transmisji jest
wydłużane, co owocuje zmniejszeniem prawdopodobieństwa wystąpienia
kolizji.
- 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.
|