DiffServ
DSCP marking and per-hop behavior for scalable QoS implementation.
1. Wyzwanie Skalowalno艣ci QoS
Ewolucja Jako艣ci Us艂ug (QoS) w sieciach IP by艂a nap臋dzana przez fundamentalny kompromis mi臋dzy si艂膮 gwarancji us艂ug a skalowalno艣ci膮. Najwcze艣niejszy model, Best-Effort, jest doskonale skalowalny, ale nie oferuje 偶adnych gwarancji. Kolejny model, Zintegrowane Us艂ugi (IntServ), zapewnia silne, kompleksowe gwarancje dla poszczeg贸lnych przep艂yw贸w przy u偶yciu protoko艂贸w takich jak RSVP, ale cierpi na krytyczny problem ze skalowalno艣ci膮. IntServ wymaga, aby ka偶dy router na 艣cie偶ce utrzymywa艂 informacje o stanie dla ka偶dego pojedynczego przep艂ywu danych, co jest podej艣ciem, kt贸re staje si臋 nie do utrzymania w du偶ych sieciach z milionami jednoczesnych przep艂yw贸w.
Architektura zosta艂a opracowana specjalnie w celu sprostania temu wyzwaniu. Zapewnia wysoce skalowalne i 艂atwe do zarz膮dzania ramy do wdra偶ania QoS, rezygnuj膮c ze z艂o偶onego zarz膮dzania stanem dla poszczeg贸lnych przep艂yw贸w charakterystycznego dla IntServ. Zamiast tego DiffServ przyjmuje podej艣cie oparte na klasach. Agreguje ruch o podobnych wymaganiach QoS w niewielk膮 liczb臋 klas, a sie膰 traktuje wszystkie pakiety w danej klasie w ten sam spos贸b. Przenosi to z艂o偶ono艣膰 na brzegi sieci, pozwalaj膮c routerom rdzeniowym pozosta膰 prostymi, szybkimi i bezstanowymi.
2. G艂贸wne Komponenty Architektury DiffServ
Model DiffServ jest zdefiniowany przez wyra藕ny podzia艂 zada艅 mi臋dzy brzegiem sieci (granic膮 domeny DiffServ) a rdzeniem. Jest to realizowane za pomoc膮 dw贸ch kluczowych komponent贸w: pola DSCP i Zachowa艅 na Przeskok (PHB).
A. Oznaczanie Pakiet贸w: Pole DSCP
Centralnym mechanizmem komunikacji w DiffServ jest oznaczanie pakiet贸w. DiffServ ponownie wykorzystuje 8-bitowe pole Type of Service (ToS) w nag艂贸wku IPv4 (oraz odpowiadaj膮ce mu pole Traffic Class w IPv6), tworz膮c nowe pole o nazwie Differentiated Services field.
- Differentiated Services Code Point (DSCP): Pierwsze 6 bit贸w tego pola jest zdefiniowane jako . Warto艣膰 DSCP to kod numeryczny reprezentuj膮cy klas臋 us艂ugi pakietu. Router brzegowy ustawia t臋 warto艣膰, gdy pakiet wchodzi do sieci obs艂uguj膮cej DiffServ. Wszystkie kolejne routery rdzeniowe po prostu odczytuj膮 t臋 warto艣膰, aby okre艣li膰, jak obs艂u偶y膰 pakiet.
- Jawne Powiadamianie o Przeci膮偶eniu (ECN): Ostatnie 2 bity pola Differentiated Services s膮 zazwyczaj u偶ywane do Jawnego Powiadamiania o Przeci膮偶eniu, mechanizmu sygnalizuj膮cego przeci膮偶enie bez odrzucania pakiet贸w.
To oznaczanie jest jedyn膮 z艂o偶on膮 operacj膮 decyzyjn膮. Gdy pakiet zostanie oznaczony warto艣ci膮 DSCP, jego los w sieci jest przes膮dzony.
B. Zachowania na Przeskok (Per-Hop Behaviors - PHB)
to okre艣lone traktowanie, jakie router rdzeniowy stosuje do pakietu na podstawie jego oznaczenia DSCP. PHB to opis zachowania przesy艂ania, jakie pakiet otrzyma na ka偶dym "przeskoku" (routerze) na swojej 艣cie偶ce. Co wa偶ne, PHB jest zewn臋trznie obserwowalnym zachowaniem (np. "ten pakiet do艣wiadcza niskiego op贸藕nienia"), a nie specyficzn膮 wewn臋trzn膮 implementacj膮 (np. "ten pakiet trafia do kolejki numer 3"). Ta abstrakcja pozwala r贸偶nym producentom router贸w implementowa膰 PHB na sw贸j w艂asny spos贸b, o ile wynikowe zachowanie przesy艂ania jest sp贸jne.
Routery rdzeniowe nie musz膮 analizowa膰 藕r贸d艂a, celu ani numer贸w port贸w pakietu. Ich zadanie jest niezwykle proste:
- Sp贸jrz na 6-bitow膮 warto艣膰 DSCP w nag艂贸wku IP pakietu.
- Zastosuj odpowiadaj膮ce, wst臋pnie skonfigurowane PHB (co przek艂ada si臋 na okre艣lone dzia艂anie kolejkowania i harmonogramowania).
- Prze艣lij pakiet dalej.
To bezstanowe podej艣cie w rdzeniu sieci jest kluczem do skalowalno艣ci DiffServ.
3. Granica Sieci DiffServ: Miejsce Egzekwowania Polityki
Granica sieci DiffServ, zazwyczaj przy routerze brzegowym, jest miejscem, gdzie znajduje si臋 ca艂a inteligencja zarz膮dzania ruchem. Urz膮dzenia na tej granicy s膮 odpowiedzialne za kondycjonowanie przychodz膮cego ruchu w celu dostosowania go do polityk QoS sieci. Proces ten obejmuje zestaw narz臋dzi znanych jako kondycjonery ruchu.
- Klasyfikator: Klasyfikator jest odpowiedzialny za sortowanie przychodz膮cych pakiet贸w do klas ruchu. Sprawdza on r贸偶ne pola w nag艂贸wku pakietu, takie jak adresy IP 藕r贸d艂owe/docelowe, numery port贸w 藕r贸d艂owych/docelowych oraz typ protoko艂u, aby okre艣li膰, do kt贸rej klasy us艂ugi nale偶y dany pakiet. Na przyk艂ad, klasyfikator mo偶e by膰 skonfigurowany do identyfikowania ca艂ego ruchu do i z okre艣lonego serwera VoIP jako nale偶膮cego do klasy "G艂os".
- Marker (Znacznik): Gdy pakiet zostanie sklasyfikowany, marker (lub re-marker) ustawia pole DSCP w nag艂贸wku IP na warto艣膰 odpowiadaj膮c膮 tej klasie. Na przyk艂ad, wszystkie pakiety sklasyfikowane jako "G艂os" mog膮 by膰 oznaczane warto艣ci膮 DSCP dla Przyspieszonego Przesy艂ania (Expedited Forwarding).
- Miernik: Miernik mierzy szybko艣膰 sklasyfikowanego ruchu w czasie. Sprawdza, czy przep艂yw ruchu jest zgodny z predefiniowanym profilem ruchu (np. 艣redni膮 szybko艣ci膮 i dopuszczalnym rozmiarem impulsu).
- Policer/Shaper: Na podstawie pomiaru z miernika, policer lub shaper podejmuje dzia艂ania wobec pakiet贸w, kt贸re nie pasuj膮 do profilu (przekraczaj膮 uzgodnion膮 szybko艣膰). Policer zazwyczaj albo odrzuca pakiety spoza profilu, albo zmienia ich oznaczenie na ni偶sz膮 warto艣膰 DSCP. Shaper, w przeciwie艅stwie do niego, buforuje nadmiarowe pakiety i op贸藕nia je, aby wyg艂adzi膰 przep艂yw ruchu.
4. Standaryzowane Zachowania na Przeskok (PHB)
IETF ustandaryzowa艂o kilka powszechnych PHB, aby zapewni膰 interoperacyjno艣膰 mi臋dzy sprz臋tem r贸偶nych producent贸w.
Domy艣lne PHB (DE PHB) / Best-Effort
Jest to podstawowe traktowanie przesy艂ania, kompatybilne wstecz z urz膮dzeniami, kt贸re nie obs艂uguj膮 DiffServ. Zazwyczaj jest oznaczane warto艣ci膮 DSCP 0. Pakiety z tym oznaczeniem otrzymuj膮 standardow膮 us艂ug臋 best-effort, co oznacza, 偶e zazwyczaj s膮 obs艂ugiwane przez prost膮 kolejk臋 FIFO.
Przyspieszone Przesy艂anie (EF) PHB
PHB EF (zdefiniowane w RFC 3246) ma na celu zapewnienie us艂ugi "wirtualnej linii dzier偶awionej" dla krytycznych aplikacji o niskim op贸藕nieniu, takich jak Voice over IP.
- Gwarancja: Gwarantuje niskie op贸藕nienie, niski jitter i nisk膮 utrat臋 pakiet贸w.
- Mechanizm: Pakiety oznaczone jako EF otrzymuj膮 absolutny priorytet nad ca艂ym innym ruchem. W praktyce jest to prawie zawsze implementowane za pomoc膮 艣cis艂ej .
- Oznaczenie DSCP: Zalecana warto艣膰 DSCP dla ruchu EF to 46 (binarnie `101110`).
- Policyjno艣膰: Kluczowe jest, aby ruch EF by艂 艣ci艣le ograniczany (policed) na brzegu sieci, aby zapewni膰, 偶e jego zagregowana szybko艣膰 nie przekroczy skonfigurowanego limitu. Zapobiega to sytuacji, w kt贸rej sam ruch EF powoduje przeci膮偶enie i g艂odzenie wszystkich innych klas ruchu.
Zapewnione Przesy艂anie (AF) PHB
PHB AF (zdefiniowane w RFC 2597) zapewnia bardziej zniuansowan膮 us艂ug臋, oferuj膮c r贸偶ne poziomy zapewnienia przesy艂ania. Jest bardziej elastyczne ni偶 podej艣cie "wszystko albo nic" w EF.
- Klasy i Priorytety Odrzucania: Model AF definiuje cztery niezale偶ne klasy AF (Klasa 1, 2, 3 i 4). W ka偶dej klasie istniej膮 trzy r贸偶ne priorytety odrzucania (Niski, 艢redni i Wysoki). Tworzy to siatk臋 12 mo偶liwych traktowa艅.
- Mechanizm: Klasa AF zazwyczaj okre艣la przydzia艂 przepustowo艣ci dla ruchu. Wy偶sza klasa AF (np. AF4x) zazwyczaj otrzymuje wi臋cej przepustowo艣ci ni偶 ni偶sza klasa (np. AF1x). Priorytet odrzucania w ramach klasy jest u偶ywany przez mechanizmy . W czasie przeci膮偶enia pakiety o wy偶szym priorytecie odrzucania (np. AF13) zostan膮 odrzucone przed pakietami o ni偶szym priorytecie odrzucania (np. AF11) w tej samej klasie.
- Oznaczenie DSCP: Oznaczenia AF pod膮偶aj膮 za wzorcem. Nazwa to `AFcy`, gdzie `c` to numer klasy (1-4), a `y` to priorytet odrzucania (1=Niski, 2=艢redni, 3=Wysoki). Warto艣膰 DSCP jest z tego wyprowadzana. Na przyk艂ad `AF21` (Klasa 2, Niski Priorytet Odrzucania) odpowiada warto艣ci DSCP 18 (binarnie `010010`), podczas gdy `AF23` (Klasa 2, Wysoki Priorytet Odrzucania) odpowiada warto艣ci DSCP 22 (binarnie `010110`).
Class Selector (CS) PHB
PHB Selektora Klasy to specjalny zestaw warto艣ci DSCP, kt贸re s膮 zaprojektowane dla zgodno艣ci wstecznej ze starszym polem IP Precedence. Pierwsze trzy bity warto艣ci CS odpowiadaj膮 starym warto艣ciom IP Precedence, a ostatnie trzy bity s膮 zerami. Na przyk艂ad IP Precedence 5 odpowiada Selektorowi Klasy CS5, kt贸ry ma warto艣膰 DSCP 40 (binarnie `101000`).
5. Zaleta DiffServ
Podsumowuj膮c, model Zr贸偶nicowanych Us艂ug zapewnia solidne i pot臋偶ne ramy do dostarczania QoS w z艂o偶onych sieciach.
- Skalowalno艣膰: Poprzez agregowanie ruchu do klas i utrzymywanie prostoty i bezstanowo艣ci router贸w rdzeniowych, DiffServ bezproblemowo skaluje si臋 do rozmiar贸w globalnego internetu.
- Elastyczno艣膰: Po艂膮czenie klasyfikacji, oznaczania i r贸偶nych PHB zapewnia elastyczny zestaw narz臋dzi, kt贸ry administratorzy sieci mog膮 u偶ywa膰 do wdra偶ania szerokiego zakresu polityk QoS dostosowanych do ich specyficznych potrzeb.
- Interoperacyjno艣膰: U偶ycie ustandaryzowanego pola (DSCP) w nag艂贸wku IP zapewnia, 偶e polityki QoS mog膮 by膰 konsekwentnie stosowane w 艣rodowisku sieciowym z wieloma producentami.
Chocia偶 mo偶e nie oferowa膰 absolutnych, matematycznych gwarancji modelu IntServ, jego praktyczna skalowalno艣膰 i skuteczno艣膰 uczyni艂y DiffServ dominuj膮c膮 i niezb臋dn膮 architektur膮 do wdra偶ania Jako艣ci Us艂ugi w dzisiejszych sieciach IP.