Architektura DiffServ została zaproponowana jako rozwiązanie, które omija problem skalowalności, występujący w architekturze IntServ [32]. Założono w niej, że w sieci definiuje się odpowiedni zestaw usług sieciowych jedynie na podstawie mechanizmów priorytetyzowania strumieni w ruterach.
Klasyfikacji pakietów do poszczególnych usług sieciowych, odbywająca się wyłącznie w ruterach brzegowych, poprzez zdefiniowanie informacji zawartych w 8 bitowym polu TC (ang. Traffic Class) [3] nagłówka pakietu IPv6 [47]. 6 najstarszych bitów tego pola zawiera pole DSCP (ang. Differentiated Services Code Point). Dodatkowo możliwe jest klasyfikowanie przepływów, podobnie jak w RSVP, ale w dużo prostszy sposób, poprzez wykorzystanie pola Flow Label [50] [3] w nagłówku IPv6. Rutery w domenie odczytują pole i w pierwszej kolejności obsługują dany przepływ. Pole to pozwala również na zastosowanie metod QoS dla pakietów IPsec [45], które do tej pory nie miały możliwości obsługi ze względu na szyfrowany nagłówek. Wykorzystanie pola Flow Label w chwili obecnej jest ograniczone, sprzęt sieciowy nie posiada możliwości obsługi tego pola. Jednak jego potencjał jest bardzo duży i w chwili implementacji obsługi Flow Label na sprzęcie sieciowym usługi QoS będą mogły oferować jeszcze większe możliwości.
W architekturze tej zdefiniowano sposób wykorzystania pola DSCP i określono zestaw reguł przekazywania pakietów w ruterze tzw. PHB (ang. Per Hop Behaviours).
Według [30] istnieją podstawowe zasady przekazu pakietów (PHB), które w najprostszym przypadku mogą reprezentować dwa poziomy obsługi pakietów:
Expedited Forwarding (EF) [37] jest określony przez pojedynczą wartość pola DSCP i wykorzystywany do zapewnienia jakości obsługi związanej z parametrami opóźnień. Ruch jest monitorowany na wejściu do sieci; pakiety nie spełniające warunków zawartych w profilu ruchowym danego strumienia lub grupy strumieni są usuwane z sieci.
Assured Forwarding (AF) [40] określa cztery klasy i trzy poziomy odrzucania pakietów wewnątrz każdej z klas (w sumie 12 wartości pola DSCP). Ruch nie spełniający warunków zawartych w profilu ruchowym danego strumienia lub grupy strumieni dla danej klasy może być przesyłany jako ruch należący do niższej klasy lub po prostu odrzucony.
Best Effort (BE) – tak, jak dla IntServ, transmisja danych odbywa się o możliwie najwyższej przepustowości, bez zapewnienia jakości parametrów transmisji.
Tabela 4 zawiera wartości pola DSCP dla poszczególnych usług
KL – klasyfikacja, | PZ – pomiar zgodności, | U – usuwanie, |
M – markowanie, | MP – multipleksacja, | K – kolejka, |
SP – szeregowanie pakietów |
W architekturze DiffServ zasady PHB mogą być zaimplementowane za pomocą algorytmu kolejkowania i zarządzania kolejkami. Ponadto można wyróżnić elementy funkcjonalne implementowane w ruterach, które mogą być stosowane w zależności od umiejscowienia rutera w sieci (brzegowy lub szkieletowy) oraz przyjętych reguł dla obsługi poszczególnych klas ruchu. Na rysunku 4.5 przedstawiono różne możliwości stosowania mechanizmów w ruterach DiffServ [32][31] Wyróżnia się następujące elementy funkcjonalne.
Klasyfikator (ang. Classifier) typu BA (ang. Behaviour Aggregate) lub MF (ang. Multi-Field); klasyfikuje pakiety IP w przypadku BA tylko na podstawie pola DSCP, natomiast w przypadku MF dodatkowo uwzględnia się inne informacje zawarte w nagłówku pakietu IP, jak np. adres źródłowy, numer portu itd.
Urządzenie monitorujące (ang. Meter) mierzy zgodność strumienia danych z parametrami zawartymi w kontrakcie SLA (ang. Service Level Agreement) oraz umożliwia zbieranie statystyk ruchowych (najczęściej stosuje się algorytm typu Token Bucket).
Marker znakuje lub usuwa pakiety niezgodne z parametrami zawartymi w kontrakcie ruchowym.
Multiplekser łączy strumienie danych.
Urządzenie usuwające pakiety wyłącznie usuwa pakiety niezgodne z kontraktem ruchowym (np. algorytm RED – ang. Random Early Detection).
Kolejka do przechowywania pakietów w buforze (najczęściej stosuje się dyscyplinę obsługi typu FIFO).
Urządzenie szeregujące pakiety realizuje algorytm szeregujący pakiety do obsługi z poszczególnych kolejek, najczęściej spotykane rozwiązania są oparte na priorytetach lub algorytmie WFQ (ang. Weithed Fair Queuing).
Klasa
PHB | Assured Forwarding (AF) | Expedited Forwarding (EF) | Best Effort (BE) | ||||
Opcje | 4 klasy priorytetów, każda z 3 podklasami usuwania pakietów | Usługa łączy dzierżawionych | Brak | ||||
Zalecane wartości w polu DSCP | AF1 | AF2 | AF3 | AF4 | 101110 | 000000 | |
Niski | 010000 | 011000 | 100000 | 101000 | |||
Średni | 010010 | 011010 | 100010 | 101010 | |||
Wysoki | 010100 | 011100 | 100100 | 101100 | |||
Kontrola ruchu | Statyczne SLA, kontrola, klasyfikacja, oznaczanie według algorytmów RIO/WRED | Dynamiczne SLA, kontrola, klasyfikacja, oznaczanie według algorytmu WFQ | Kolejka FIFO | ||||
Ruch nie spełniający kontraktu SLA | Oznacz jako Best Effort | Usuń | Prześlij dalej |
Pakiety mogą zostać zaklasyfikowane do odpowiedniej klasy usług na podstawie następujących kryteriów:
źródłowy/docelowy adres IP
numery portów TCP/UDP
interfejs
MAC adres
W zaawansowanych urządzeniach sieciowych możliwa jest również klasyfikacja pakietów na podstawie warstwy aplikacyjnej (NBAR tylko IPv4), gdzie rozpoznawany jest rodzaj aplikacji.
W projekcie sieci laboratoryjnej, klasyfikacja odbywa się na podstawie:
interfejsu sieciowego – pakiety przychodzące do konkretnego interfejsu są znakowane, wychodzące już nie.
zakresu portów TCP/UDP na jakich działa aplikacja
Oprócz wyżej wymienionych mechanizmów niezbędnym elementem funkcjonalnym w sieciach DiffServ jest tzw. broker pasma (ang. Bandwidth Broker) sterujący domeną DiffServ, umożliwiający świadczenie usług z ustalonym QoS przy maksymalnie dużym wykorzystaniu zasobów sieci. Główne zadania brokera to:
limitowanie ilości ruchu wpływającego do domeny DiffServ – MBAC (ang. Measurement-Based Admission Control), zapobiega to nadmiernej ilości ruchu i nie pozwala na degradację już obsługiwanych strumieni,
spójna dla domeny konfiguracja ruterów brzegowych i rdzeniowych, polegającej na przesyłaniu parametrów koniecznych do realizacji PHB,
taryfikacja, jeżeli operator inaczej taryfikuje usługi z różnych klas QoS,
utrzymanie, polegające na zbieraniu statystyk ruchowych lub informacji o nieprawidłowym działaniu sieci na potrzeby rekonfiguracji sieci lub optymalnej rozbudowy infrastruktury operatorskiej,
komunikacja z brokerami domen sąsiednich w celu umożliwienia przekierowania strumienia zagregowanego danej klasy w kierunku domeny, której klientem jest odbiorca,
spójne dla domeny konfigurowanie ruterów polegające na przesyłaniu do podległych urządzeń wag dla algorytmu WFQ oraz prawdopodobieństw odrzucenia pakietów dla mechanizmu np. RED.
Główną różnicą między architekturami [15] IntServ i DiffServ jest to, że IntServ wykorzystuje połączenie punkt – punkt na podstawie danych pojedynczego przepływu, natomiast DiffServ oferuje dużo większą skalowalność poprzez agregację przepływów i zróżnicowanie klas. DiffServ nie zapewnia sztywnych parametrów transmisji, za to prowadzi do jak najlepszego wykorzystania zasobów. W tabeli 5 przedstawione zostały różnice między dwoma powyższymi architekturami.
IntServ | DiffServ |
Wymagania QoS zdefiniowane w sposób ilościowy (dokładny) | Pewna nieprzewidywalność poziomu QoS, Niewielka ilość klas ruchu o różnym priorytecie |
Możliwość reagowania na chwilowe zmiany topologii przez konieczność odświeżania rezerwacji, informowanie o odrzuceniu pakietów (RSVP) | Brak sterowania ruchem na poziomie strumieni |
Ilość przechowywanych i przetwarzanych informacji proporcjonalna do liczby strumieni | Ilość przechowywanych informacji proporcjonalna do liczby klas ruchu (PHB) |
Brak odpowiednika ścieżki wirtualnej – utrudnienie przyjmowania zgłoszeń i zarządzanie strumieniami IP | Umożliwia tworzenie ścieżek wirtualnych |
Wszystkie węzły mają taką samą budowę | Proste routery brzegowe (klasyfikacja wg DSCP) a funkcje obsługi pakietów tylko na brzegach sieci |
QoS określone bezpośrednio dla odpowiednich usług | Stosunkowo niewielki zestaw PHB określonych jakościowo |
Duże opóźnienia przy tworzeniu rezerwacji end-to-end | Brak rezerwacji |
W sieciach WAN możliwe jest łączenie obu architektur, tak jak to ilustruje rysunek 4.6. Architektura DiffServ spełnia zadanie sieci szkieletowej, czyli rdzenia, natomiast IntServ spełnia zadanie sieci dostępowej.
Copyright © 2008-2010 EPrace oraz autorzy prac.