DiffServ (Differentiated Services)

ITpedia

Protokół klasyfikowania pakietów w węzłach podczas wprowadzania ich do sieci, zalecany przez IETF jako jeden – obok RSVP i MPLS – z mechanizmów różnicowania jakości usług. Protokół opracował zespół wydzielony z grupy IETF IntServ. Nie oznacza to, że powstał lepszy protokół. IntServ gwarantuje QoS, a DiffServ różnicuje. Jednak IntServ nie jest skalowalny, a jego implementacja jest droga. Z kolei DiffServ nie jest w stanie zagwarantować właściwych parametrów transmisji, ale zasoby wykorzystuje optymalnie. Tworzenie sieci DiffServ jest dużo tańsze, gdyż twórcy modelu zrezygnowali z rezerwowania zasobów. Główną zaletą protokołu jest agregacja przepływów,

Podstawą klasyfikacji w DiffServ jest zawartość pola Typ usługi w nagłówku IPv4 lub pola Klasa ruchu w IPv6. Powstały w ten sposób system priorytetów względnych umożliwia zróżnicowanie sterowania pakietami w węzłach tranzytowych wyłącznie w warstwie 3. Ponadto przed przejściem pakietu do kolejnej domeny można zmodyfikować zawartość pola jego klasyfikacji. Liczba możliwych klas usług protokołu DiffServ jest w sumie niewielka. Jednobajtowe pole Typ usługi – ToS (Type of Service) – zostało predefiniowane w RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers. Nosi ono teraz nazwę DS, identyczną jak ośmiobitowe pole Traffic Class w poszerzeniu nagłówka IPv6, i składa się z sześciu bitów DSCP oraz dwu bitów CU rezerwy. Pierwsze 3 bity DSCP stanowią kod selektora klas.

Koncepcja DiffServ opiera się na podziale ruchu sieciowego na klasy, z których każda ma przydzielone pewne pasmo stanowiące niewielką część pasma danego łącza. Każdy pakiet wprowadzony do sieci będzie należał do jakiejś klasy usług, zależnie od ruchu. Pakiety należące do określonej klasy są znakowane niektórymi bitami wspomnianego pola DS Z nagłówka IP. Znakowanie przeprowadza urządzenie z obrzeża sieci, zwykle ruter. Później znakowanie zostanie wykorzystane podczas obsługiwania ruchu przez rutery sieciowe. żadna z klas nie może przekroczyć przydzielonego jej pasma, nad czym czuwa oprogramowanie. Ponadto przydzielone pasmo musi być dostępne w chwilach, kiedy sieć jest przeciążona.

W RFC 2246 i 2475 zostały zebrane charakterystyczne dla DiffServ terminy oraz definicje. Ułatwiają one poznanie architektury tego protokołu. Oto niektóre z nich:

  • BA classifier – klasyfikator BA, selekcjonujący pakiety tylko na podstawie zawartości pola DS;
  • Boundary link – łącze graniczne. Służy do łączenia węzłów brzegowych dwóch domen;
  • DS behavior aggregate – BA, zbiór pakietów o takiej samej wartości bitów pola DS, przemierzający łącze w tym samym kierunku. Terminy „aggregate” i „behavior aggregate” są w RFC używane zamiennie;
  • DS boundary node – węzeł graniczny DS, czyli węzeł DS łączący jedną domenę DS z innym węzłem albo w innej domenie DS, albo też w domenie, która nie ma własności DS;
  • DS codepoint – specyficzna wartość bitów w DSCP z pola DS, używana do wyboru PHB;
  • DS domain – zbiór węzłów DS z zaimplementowanym jednakowym zestawem PHB i obsługujących pakiety na zasadach tej samej polityki. Granice domen wyznaczają węzły graniczne (DS boundary node). Do ich zadań należy klasyfikowanie pakietów – przydzielanie ich do określonych grup PHB, spełniając przy tym warunki TCA;
  • DS egress node – węzeł graniczny DS przetwarzający ruch opuszczający domenę DS;
  • DS ingress node – węzeł graniczny DS przetwarzający ruch wchodzący do domeny DS;
  • Marker – urządzenie znakujące pakiety kodem DSCP. Może nadać pakietowi kod lub zmodyfikować istniejący. Wartość kodu zależy od oceny klasyfikatora. Pakiet po oznakowaniu trafia do określonego strumienia;
  • Marking – znakowanie, proces ustawiania wartości pola DS w pakiecie prowadzony na podstawie zdefiniowanych reguł.
  • MF classifier (Multi-Field classifier) – klasyfikator wielopolowy, który selekcjonuje pakiety na podstawie zawartości kombinacji niektórych pól nagłówka. Typowo są to kombinacje adresu docelowego, adresu źródłowego, pola DS, identyfikatora protokołu, numeru portu źródłowego i portu przeznaczenia oraz niektórych interfejsów;
  • PDB (Per Domain Behavior) – zbiór reguł (PHB) przekazywania pakietów i zasad obsługi strumieni na obrzeżu sieci;
  • PHB (Per-Hop-Behavior) – sposób obsługiwania pakietów w węźle DS, ściśle zależny od specyficznej wartości bitów pola DSCP. Rutery nie śledzą indywidualnych strumieni, lecz przetwarzają każdy pakiet zgodnie z mechanizmem wynikającym z priorytetu zawartego w polu DSCP. Pakiety napływające do sieci są klasyfikowane na jej obrzeżu i przypisywane do pewnych tzw. Kategorii zagregowanych zachowań. Każda kategoria ma swój kod w polu DSCP. Między dwoma kolejnymi węzłami wewnątrz sieci DiffServ pakiet jest przesyłany na podstawie PHB, przypisanego do określonej wartości DSCP. Pakiety ruchu best-effort (DSCP=000000) też są obsługiwane na pewnych zasadach – bez QoS i w miarę możliwości. PHB leży u podstaw architektury DiffServ;
  • PHB Group – grupa PHB, czyli zbiór jednego lub kilku PHB, które mogą być specyfikowane oraz implementowane równocześnie;
  • AF (Assured Forwarding) – jedna z grup PHB opisanych w RFC 2597, której kody DSCP, 4 klasy i 3 poziomy odrzucania pakietów zostały przedstawione w tabeli. AF może zapewnić różne poziomy obsługi pakietów, praktycznie w każdych warunkach sieciowych. AF PHB przedstawia się w postaci Afxy, gdzie indeks x oznacza klasę, a y poziom odrzucania pakietów. Pakiety różnych klas muszą być odwzorowane w różnych kolejkach;
  • EF (Expedited Forwarding) – jedna z grup PHB opisanych w RFC 2598, umożliwiająca zaoferowanie usług dla aplikacji wymagających niewielkich strat pakietów, nieznacznych opóźnień i niewielkich odchyłek opóźnień. EF PHB ma tylko jeden kod DSCP=101110;
  • SLA (Service Level Agreement) – kontrakt usługowy między klientem a dostawcą usług specyfikujący usługi przesyłania, które klient powinien otrzymać. Kontrakt może być statyczny (na pewien okres) lud dynamiczny, uzgadniany przy użyciu RSVP lub innego protokołu sygnalizacji. Klientem może być organizacja (domena źródła) lub inna domena DS SLA może zawierać uwarunkowania, które konstytuują TCA w całości lub częściowo;
  • TCA (Traffic Conditioning Agreement) – porozumienie specyfikujące reguły klasyfikatora i pewne profile ruchu oraz reguły zliczania, oznaczania, odrzucania i/lub kształtowania, które są stosowane do strumieni ruchu wyselekcjonowanych przez klasyfikator.
Wartości DSCP dla AFxy
Poziomy odrzucania pakietów Klasa
1 2 3 4
Niski 001010 010010 011010 100010
Średni 001100 010100 011100 100100
Wysoki 001110 010110 011110 100110

Usługi DiffServ noszą następujące nazwy: Premium Service, Assured Service, Olympic Service. Premium została oparta na EF PHB. Pakietom w emulowanym przez nią łączu zapewnia stałą przepływność i niewielkie opóźnienie. Pakiety niezgodne z kontraktem są odrzucane; utrzymanie [[QoS wymaga sterowania zgłoszeniami. Z kolei podstawą Assured Service jest AF PHB. Pakiety niezgodne z kontraktem nie są usuwane od razu, lecz prawdopodobieństwo ich usuwania rośnie wraz z przeciążeniem łącza. Usługa jest przeznaczona dla aplikacji, których ruch będzie obsługiwanych lepiej niż best-effort. Ostatnia z tych trzech usług – Olympic Service – jest również oparta na AF PHB. Stanowi oma rozszerzenie Assured Service o 3 klasy i 3 poziomy odrzucania pakietów.

Architektura DiffServ nie powstawała w warunkach separacji od IntServ, o czym przypomina wstęp. Dlatego idea DiffServ zasadza się na założeniu, że najbardziej bogatą funkcjonalnie częścią sieci powinny być jej obrzeża, a najbardziej uproszczoną – jej szkielet. Twórcy modelu osiągnęli tą drogą skalowalność i obniżyli koszty realizowania sieci DiffServ. Niemniej jednak DiffServ nie gwarantuje jakości usług, a ich liczba została ograniczona do 64. DiffServ jest zaliczany do protokołów 2 generacji. Współpraca sieci MPLS, IntServ/RSVP i DiffServ została potwierdzona w licznych konfiguracjach testowych.

-
-