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.