802.1p - priorytety w
Ethernecie
Dokumentacja
Paweł Smogorzewski
802.1p – Priorytety
Strona 2
Spis treści
Wstęp ...................................................................................................................................................... 3
Cel priorytetów ........................................................................................................................................ 3
Budowa ramki.......................................................................................................................................... 3
Zasady działania....................................................................................................................................... 4
Rodzaje priorytetów ............................................................................................................................ 4
Kolejkowanie ....................................................................................................................................... 5
Przesyłanie ramek ............................................................................................................................... 6
Mapowanie .......................................................................................................................................... 7
DiffServ .................................................................................................................................................... 8
Priorytety w Q-in-Q (802.1ad) ................................................................................................................. 9
CoS a QoS .............................................................................................................................................. 10
Uzupełnienie i podsumowanie .............................................................................................................. 11
Bibliografia ............................................................................................................................................. 11
802.1p – Priorytety
Strona 3
Wstęp
Odkąd Ethernet stał się najpopularniejszą technologią dostępu do sieci LAN coraz większe znaczenie
zyskiwało zarządzanie ruchem w celu uzyskania jego jak najlepszej jakości. W latach 1995-1998 IEEE
opracowało standard 802.1p, w którym opisano priorytetyzowanie ruchu. Opracowanie
tego standardu było ważne w kontekście ekspansji Ethernetu na profesjonalne sieci.
Na początku należy wyjaśnić pewne zależności pomiędzy standardami. Standard 802.1p dotyczący
priorytetów do ich działania wykorzystuje ramkę ethernetową, której struktura jest identyczna
z ramką używaną w standardzie 802.1q czyli w wirtualnych sieciach lokalnych (vlan). Te dwa
standardy są od siebie niezależne i w mogą istnieć samodzielnie. W praktyce jednak sprzęt sieciowy
najczęściej posiada wsparcie dla obydwu bądź dla żadnego z nich. Standardy te są częścią 802.1d
(2004r.), który opisuje działanie protokołu drzewa rozpinającego (STP).
Cel priorytetów
Głównym celem priorytetów jest poprawa jakości usług w warstwie drugiej modelu OSI.
Ich przydatność jest szczególnie przydatna przy tworzeniu się zatorów w sieci. Dzięki temu ważniejszy
ruch będzie miał pierwszeństwo przed ruchem mniej ważnym.
Budowa ramki
Na poniższym rysunku została przedstawiona struktura ramki wykorzystującej priorytety (Rysunek 1
Ramka 802.1 p/q).
Rysunek 1 Ramka 802.1 p/q
802.1p – Priorytety
Strona 4
Jest to ramka używana w VLANach, która została zaadoptowana do przenoszenia priorytetów.
W porównaniu do standardowej ramki ethernetowej o długości d 1518 bajtów, ta posiada
dodatkowo 4 bajty:
•
TPID (Tag Protocol Identifier)- dwubajtowe pole, które definiuje typ ramki i jest wartością
szesnastkową. W tym przypadku ma wartość równą 0x8100 mówiącą o tym, że jest to ramka
802.1q/p.
•
TCI (Tag Control Identifier)
o
User Prioryty - pole składające się z trzech bitów, które może przyjąć 8 wartości.
Używane do oznaczenia priorytetu ramki. Możliwe jest zatem zdefiniowanie 8
priorytetów. W standardzie 802.1q te 3 bity nie mają zdefiniowanego zastosowania.
o
CFI (Canonical Format Indicator) – jednobitowy identyfikator, który mówi o tym,
w jakiej technologii została utworzona sieć LAN. Dla sieci w technologii Ethernet jest
ustawiona na wartość zero, natomiast dla Token Ring ma wartość 1. Pole to zostało
wydzielone w celu zachowania kompatybilności z polem TYP w Ethernecie i Token
Ring. Jeżeli ramka odebrana na porcie Ethernet ma bit CFI równy jeden, nie powinna
być przekazywana, ponieważ jest to nieoznaczony port.
o
VID (VLAN ID) – 12-bitowe pole określające, do której sieci VLAN należy ramka.
Wartość zero oznacza, że ramka nie należy do żadnej wirtualnej sieci, wartość jeden
jest wykorzystywana dla mostów, a wartość 0xFFF jest zarezerwowana do innych
celów. Pozostałe 4093 wartości mogą być użyte do oznaczenia poszczególnych sieci
VLAN. Urządzenie działające w standardzie 802.1Q po otrzymaniu takiej ramki
odczytuje VLAN ID i kieruje ramkę do odpowiedniej sieci wirtualnej.
Zasady działania
Rodzaje priorytetów
Priorytet
Typ ruchu
Rekomendowane zastosowanie
7
Network Control
Ruch krytyczny związany z zarządzaniem sieci – np. OSPF
6
Voice
Wrażliwość na opóźnienia - do 10 ms
5
Video
Wrażliwość na opóźnienia - do 100 ms
4
Controlled Load
Aplikacje wykorzystujące z góry określone pasmo - media
strumieniowe
3
Excellent Effort
Najlepsze dostarczanie dla ważnych danych (aplikacji)
0
Best Effort
Klasa domyślna
2
Spare
Ruch mało ważny
1
Background
Ruch masowy, gry, transmisje ftp, itp.
Tabela 1 Priorytety i typy ruchu
802.1p – Priorytety
Strona 5
W powyższej tabeli (1) zostały opisane wszystkie możliwe priorytety używane w Ethernecie a każdy
z nich definiuje jakąś klasę ruchu.
Kilka słów wyjaśnień wymaga uporządkowanie priorytetów w tabeli. Ostatnie trzy klasy ruchu zostały
umieszczone w sposób sugerujący, iż ramka o priorytecie 0 (best effort) jest ważniejsza od ramki
z priorytetem 1 lub 2. Takie przedstawienie wynika z przyjętego podziału na klasy ruchu, gdzie nazwa
Background kojarzy się jako ruch mniej ważny od ruchu Best Effort. Jeżeli jednak ruch zostanie
oznaczony jako Background (priorytet o wartości 1) to będzie on ważniejszy od Best Effort (priorytet
o wartości 0) tylko teoretycznie, ponieważ priorytety służą do nadawania klasy ruchu. O kolejności
wysyłania ramek decyduje mechanizm kolejkowania.
W wypadku mapowania (patrz Tabela 3 Mapowanie priorytetów) widać wyraźnie, że priorytet
dla ruchu Best Effort ,o ile to możliwe, jest odwzorowywany tak, że ma on wtedy większy priorytet
o ruchu typu Spare i Background.
Kolejkowanie
W tabeli 2 zostały przedstawione wszystkie możliwe kombinacje kolejek. Powyższą tabelę należy
czytać następująco: nawiasy klamrowe oznaczają jedną kolejkę a ich zawartość mówi o tym, jakie
klasy ruchu może przechowywać dana kolejka. Dla danej liczby kolejek te, które są umieszczone niżej
(oznaczone dalszą literą alfabetu) zawierają ramki o wyższym priorytecie niż te, które są umieszczone
nad nimi (oznaczone wcześniejszymi literami alfabetu).
Liczba
kolejek
Typ ruchu w danej kolejce
1
A {Background, Best Effort, Excellent effort, Controlled Load, Video, Voice, Network Control}
2
A {Background, Best Effort, Excellent effort }
B {Controlled Load, Video, Voice, Network Control}
3
A {Background , Best Effort, Excellent effort }
B {Controlled Load, Video}
C {Voice, Network Control}
4
A {Background}
B {Best Effort, Excellent effort}
C {Controlled Load, Video}
B {Voice, Network Control}
5
A {Background}
B {Best Effort, Excellent effort}
C {Controlled Load}
D {Video}
E {Voice, Network Control}
802.1p – Priorytety
Strona 6
6
A {Background}
B {Best Effort
C {Excellent effort}
D {Controlled Load}
E {Video}
F {Voice, Network Control}
7
A {Background}
B {Best Effort}
C {Excellent effort}
D {Controlled Load}
E {Video}
F {Voice}
G {Network Control}
Tabela 2 Kolejkowanie
W praktyce każdy port urządzenia warstwy drugiej (np. przełącznika) implementującego standard
802.1p posiada swoje kolejki. Ich ilość określa producent urządzenia.
Bardzo ważną rzeczą jest mechanizm opróżniania kolejek. Używany jest tu algorytm typu round robin.
W pierwszej kolejności wysyłane są ramki z kolejki o najwyższym priorytecie. Ramki z kolejki
o niższym priorytecie będą wysyłane dopiero, gdy kolejki o wyższych priorytetach będą puste.
Po wysłaniu ramki z kolejki o nie najwyższym priorytecie, sprawdzane są kolejki o wyższych
priorytetach. Jeżeli są puste to obsługujemy aktualną kolejkę, jeśli nie, aktualną kolejką zostaje
ta „najważniejsza”.
Przesyłanie ramek
Schemat priorytetyzacji ramek został przedstawione na Rysunek 2 Przesyłanie ramek z różnymi
priorytetami - różne warianty kolejek. Widzimy na nim trzy hosty podłączone do tego samego
przełącznika. Każdy z nich generuje ruch różnych klas.
Rysunek 2 Przesyłanie ramek z różnymi priorytetami - różne warianty kolejek
802.1p – Priorytety
Strona 7
W celu zrozumienia działania priorytetów należy przeanalizować Rysunek 2 Przesyłanie ramek z
różnymi priorytetami - różne warianty kolejekwykorzystując wiedzę o działaniu kolejek. W chwilach t
1
przychodzą ramki {7A i 5C}, t
2
=> {3A, 4B, 0C}, t
3
=> {0A, 6B, 7C}, t
4
=> {5A, 3B, 5C}. Przyjmijmy
dla ułatwienia, że przełącznik kolejkuje ramki z czasów t
1
, t
2
, t
3
i t
4
i dopiero po czasie t
4
rozpoczyna
ich wysyłanie. Na porcie wyjściowym ramki zostaną wysłane w kolejności:
•
7A, 5C, 3A, 4B, 0C, 0A, 6B, 7C, 5A, 3B, 5C dla 1 kolejki
•
7A, 5C, 4B, 6B, 7C, 5A, 5C, 3A, 0C, 0A, 3B dla 2 kolejek, ponieważ:
o
w pierwszej (ważniejszej) kolejce ustawią się ramki: 7A, 5C, 4B, 6B, 7C, 5A, 5C
o
w drugiej kolejce ustawią się ramki:
•
7A , 6B, 7C, 5C, 4B, 5A, 5C, 3A , 0C, 0A, 3B dla 4 kolejek, ponieważ:
o
w pierwszej kolejce (najważniejszej) ustawią się ramki: 7A, 6B, 7C
o
w drugiej kolejce ustawią się ramki: 5C, 4B, 5A, 5C
o
w trzeciej kolejce ustawią się ramki: 3A , 0C, 0A, 3B
o
w czwartej kolejce ustawią się ramki: (pusta – brak ramek)
Warto zauważyć, że jeżeli urządzenie posiada tylko 1 kolejkę na każdym porcie to ramki są wysyłane
tak samo jak na urządzeniu nieobsługującego standardu 802.1p.
Mapowanie
Mechanizm mapowania stosuje, aby dane przesyłane są pomiędzy różnymi technologiami nie utraciły
informacji o swojej klasie ruchu. Struktura ramki w każdej technologii jest najczęściej różna.
Należy rozpatrzeć dwa przypadki mapowania priorytetów. Pierwszym z nich będzie sytuacja, w której
ilość dostępnych klas ruchu będzie mniejsza niż ta obecna w Ethernecie (8 klas). Wtedy urządzenie
warstwy drugiej musi odpowiednio odwzorować priorytety. Wykorzystuje do tego tablicę mapowania
priorytetów (patrz Tabela 3 Mapowanie priorytetów).
Liczba dostępnych klas ruchu
1
2
3
4
5
6
7
8
Priorytet
0
0
0
0
1
1
1
1
2
1
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
1
3
0
0
0
1
1
2
2
3
4
0
1
1
2
2
3
3
4
5
0
1
1
2
3
4
4
5
6
0
1
2
3
4
5
5
6
7
0
1
2
3
4
5
6
7
Tabela 3 Mapowanie priorytetów
802.1p – Priorytety
Strona 8
Dobrym przykładem ilustrującym działanie mechanizmu mapowania jest zestawienie sieci
wykorzystującej technologię Ethernet i HomePlug (sieć przez gniazdko). W HomePlugu możliwe są
do zdefiniowania 4 klasy ruchu. Rysunek 3 Mapowanie priorytetów Ethernet-HomePlug-
Ethernetprzedstawia trzy ramki które dotarły do adaptera w chwilach t
1
, t
2
i t
3
. Po przejściu ramek
do technologii HomePlug ich klasy ruchu zostały odpowiednio zmapowane (6=>3, 0=>1, 5=>2).
Rysunek 3 Mapowanie priorytetów Ethernet-HomePlug-Ethernet
Drugą sytuacją odwzorowywania jest moment, w którym dane będą przemieszczać się z HomePluga
do Ethernetu. Adapter będzie musiał zmapować z 4 klas ruchu do 8. W tym wypadku priorytety
zostaną pomnożone przez 2. Skutkuje to oczywiście pewną stratą informacji np. ruch typu Video
wysłany z hosta PC 1 docierając do hosta PC 2 będzie rozpoznawany jako klasa ruchu Controlled Load.
Pomimo tych niewielkich strat mechanizm klasyfikowania przesyłanych danych działa od chwili
wysłania informacji do chwili jej odbioru.
Mapowanie jest bardzo istotnym mechanizmem w 802.1p. Szczególnie, jeśli pod uwagę weźmie się
połączenia różnych technologii jak np. Ethernet z ATM (4 klasy ruchu). Ta druga jest używana głównie
w sieciach szkieletowych. Biorąc ten fakt pod uwagę zauważymy, że odwzorowywanie pozwala
zachować priorytety nie tylko w obrębie lokalnej sieci, ale także w sieci rozległej (o ile urządzenia
występujące na danej trasie mają zaimplementowany standard 802.1p).
DiffServ
Celem architektury usług zróżnicowanych jest wyróżnienie pewnej liczby klas ruchu, które mają
za zadanie agregować strumienie o podobnych charakterystykach i wymaganiach. DiffServ realizuje
się w warstwie trzeciej modelu OSI. Wykorzystuje się do tego np. pola ToS (Type of Service)
w nagłówku pakietu IPv4 albo TC (Traffic Class) w IPv6. Oba są 8-bitowe. Diffserv zdefiniował w tych
bajtach pole składające się z sześciu bitów DSCP oraz dwóch bitów CU rezerwy (niewykorzystywane).
Pierwsze 3 bity DSCP stanowią kod selektora klas.
802.1p – Priorytety
Strona 9
Rysunek 4 Struktura pola DS w DiffServ
Źródło 1
http://routing-bits.com
Pole Kodu Selektora Klasy (CSC) jest trzybitowe i określa klasę ruchu. Dla priorytetów w Ethernecie
ma ono spore znaczenie, ponieważ urządzenia ładując pakiet do ramki potrafią odczytać klasę ruchu
z warstwy wyższej i wysyłać ramkę z priorytetem adekwatnym do zawartej w niej informacji.
Priorytety w Q-in-Q (802.1ad)
Podczas rozwoju Ethernetu i częstym korzystaniu z VLANów pojawił się problem ograniczenia
do 4094 sieci wirtualnych. Pojawiło się zapotrzebowanie na ich większą ilość. Po przeanalizowaniu
struktury ramki ethernetowej postanowiono dodać kolejne 4 bajty za już istniejącymi polami
dotyczącymi VLANu.
W ten sposób można budować VLANy wewnątrz VLANu. Pozwala to na skonfigurowanie 4094 x 4094
wirtualnych sieci lokalnych (w sumie 16 760 836). Technologia ta została opracowana głównie z myślą
o ISP, którzy chcieli tworzyć VLANy wewnątrz swoich sieci, ale jednocześnie nie chcieli pozbawiać
tej funkcjonalności swoich klientów.
Rysunek 5 Budowa ramki Q-in-Q
802.1p – Priorytety
Strona 10
W standardzie Q-in-Q priorytety występują w dwóch miejscach: w polu user priority VLANu
zewnętrznego oraz wewnętrznego. Priorytety te mogą być różne. Oznacza to także, że ramki mogą
być zupełnie inaczej zarządzane w wewnętrznym VLANie a zupełnie inaczej w zewnętrznym. Jeżeli
w wirtualnej sieci lokalnej 1 (patrz Rysunek 6 Przykład Q-in-Q) ramka o klasie ruchu 7 będzie
przesyłana pomiędzy hostem A1 i A2 to będzie miała ona pierwszeństwo (załóżmy, że każda klasa
ruchu ma swoją kolejkę). Jeśli jednak np. ISP (właściciel VLAN A) zawarł umowę z właścicielem VLAN 2
stanowiącą, że jego ruch będzie miał zawsze priorytet równy 7, to każda ramka wychodząca z VLAN 2
do internetu będzie miała najwyższą klasę ruchu. Nawet pomimo faktu, że w wewnątrz wirtualnej
sieci lokalnej 2 miała najniższy priorytet.
Rysunek 6 Przykład Q-in-Q
CoS a QoS
Standard 802.1p służy do klasyfikowania ruchu (Class of Service). Powstaje zatem pytanie, jaki wpływ
mają priorytety na jakość usług (Quality of Service). Aby zapewnić QoS, stosowane są następujące
mechanizmy:
•
kształtowanie i ograniczane przepustowości
•
zapewnienie sprawiedliwego dostępu do zasobów
•
nadawanie odpowiednich priorytetów poszczególnym pakietom wędrującym przez sieć
•
zarządzanie opóźnieniami w przesyłaniu danych
•
zarządzanie buforowaniem nadmiarowych pakietów
•
określenie charakterystyki gubienia pakietów
•
unikanie przeciążeń
Mechanizm priorytetów w warstwie drugiej służy tylko do segregowania ruchu, co pozwala jedne
ramki przesłać przed innymi. W konsekwencji zmniejsza to opóźnienie dla wrażliwych danych
jak np. głos, video. Priorytety wpływają na zwiększenie QoS, ale jej nie zapewniają. Nie gwarantują
minimalnych warunków dla ruchu.
802.1p – Priorytety
Strona 11
Uzupełnienie i podsumowanie
Priorytety mogą być ustawione zgodnie z polityką przyjętą w danym przedsiębiorstwie (organizacji)
na komputerze użytkownika, bezpośrednio przez aplikację lub inne inteligentne oprogramowanie
albo mogą one być ustawione w przełącznikach w sieci LAN. Podane we wcześniejszych rozdziałach
tabele dotyczące kolejkowania i mapowania są zalecanymi przez IEEE, chociaż oczywiście istnieje
możliwość samodzielnej ich konfiguracji na urządzeniach sieciowych.
Warto pamiętać, aby wszystkie urządzenia w sieci obsługiwały standard 802.1p. Jeżeli chociaż jeden
przełącznik nie będzie go implementował to każda ramka przechodząca przez to urządzenie będzie
traciła swój priorytet. Przykładem urządzenia obsługującego ten standard jest Cisco Switch
10/100/1000 Mbit/s 48-port 4xminiGBIC- SRW2048-K9.
Poprawianie jakości usług już na poziomie drugim modelu OSI jest niewątpliwą zaletą 802.1p
szczególnie, że nie wymaga dużej mocy obliczeniowej od urządzeń sieciowych.
Bibliografia
[1]
Ek, N. (1999, 04 24). www.tml.tkk.fi/Opinnot/Tik-
110.551/1999/papers/08IEEE802.1QosInMAC/qos.html. Pobrano z lokalizacji www.tml.tkk.fi.
[2]
IEEE. (2004). http://standards.ieee.org/getieee802/download/802.1D-2004.pdf. Pobrano z
lokalizacji http://standards.ieee.org/.
[3]
Krysiak, K. (2005). Sieci Komputerowe. Kompendium. Helion.
[4]
NetWorld. (1999, 11 1).
www.networld.pl/artykuly/5404/Odwzorowanie.uslug.CoS.sieci.Ethernet.na.QoS.sieci.ATM.ht
ml. Pobrano z lokalizacji www.networld.pl.
[5]
tech-portal. (brak daty). www.tech-portal.pl/content/view/38/38/. Pobrano z lokalizacji
www.tech-portal.pl.