Zarządzanie przepływem Marek Kozłowski Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska Warszawa, 2014/2015
Plan wykładu 1 Protokół DiffServ 2 Multiprotocol Label Switching 3 Zarządzanie kolejkami i zatorami na routerach 4 Wybrane mechanizmy TCP
Nagłówek IPv4 przypomnienie 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 Version IHL ToS/DSCP/ECN Total Length Identification Fragment Flags (3) and Offset (13) Time To Live Protocol Header Checksum Source Address Destination Adress Options
Type of Service, RFC 791 8 9 10 11 12 13 14 15 Precedence D T R 0 0 Precedence: 111 - Network Control, 110 - Internetwork Control, 101 - CRITIC/ECP, 100 - Flash Override, 011 - Flash, 010 - Immediate, 001 - Priority, 000 - Routine Low Delay (0 Normal), High Throughput (0 Normal), High Reliability (0 Normal).
Type of Service Zgodnie z RFC 791 pole Precedence powinno być używane tylko wewnątrz sieci lokalnej. Interpretacja znaczników pozostawiona jest administratorowi sieci. RFC 795 (Service Mappings, obsoleted) definiował mapowania pomiędzy poszczególnymi wartościami pola ToS a usługami transmisji pomiędzy sieciami wchodzącymi w skład Internetu (na początku lat 80). Dokument RFC 791 sugeruje, że w normalnych okolicznościach co najwyżej dwa spośród znaczników: Low Delay, Hight Throughput, High Relibility mogą być ustawione. Dokument RFC 1349 zmienia znaczenie 14. bitu z Unused na Low Cost. Zgodnie z RFC 1349 tylko jeden ze znaczników: D, T, R, C może być ustawiony.
Differentiated Services Dokument RFC 2474 definiowuje drugi oktet nagłówka IP jako DSCP (Differentiated Services Code Point). Ostatnie dwa bity, podobnie jak pierwotnie w ToS, mają wartość 0. ToS, RFC 791: ToS, RFC 1349: DSCP, RFC 2474: 8 9 10 11 12 13 14 15 Precedence D T R 0 0 8 9 10 11 12 13 14 15 Precedence D T R C 0 8 9 10 11 12 13 14 15 Differentiated Services Code Point 0 0
Differentiated Services cd. Differentiated Services (DiffServ) jest mechanizmem zarządzania ruchem w oparciu o przynależność pakietów do określonych klas ruchu. DiffServ wyznacza ramy dla oznaczania i klasyfikowania pakietów. Specyfikacja DiffServ nie określa standardowych klas ani reguł zarządzania pakietami. Definicje klas oraz zasady kształtowania ruchu pozostawione są administratorom. W konsekwencji DiffServ nie gwarantuje niczego w rodzaju globalnego QoS. Grupa routerów mających skonfigurowaną wspólną politykę kształtowania ruchu pakietów oznaczanych przez DiffServ nazywana jest domeną DiffServ. Domena DiffServ może pokrywać się granicami z systemem autonomicznym.
Differentiated Services cd. Zadaniem DiffServ jest próba zagwarantowania przepustowości QoS pomiędzy dwiema sieciami źródłową i docelową. Pakiety mogą być klasyfikowane w oparciu o wiele kryteriów, np. adres nadawcy lub odbiorcy, protokół, porty i in. DiffServ zazwyczaj działa hurtowo, tj. nie negocjuje na poziomie pojedynczego pakietu ani pojedynczego strumienia pakietów (a coarse-grained mechamism). Wartość pola DSCP może być zaakceptowana, nadpisana lub zignorowana ustawiana przez router brzegowy domeny DiffServ. Zasady kształtowania ruchu przez domenę DiffServ ustalane są między stronami (np. organizacjami) w ramach tzw. service level agreements.
Per Hop Behaviour (PHB) Per Hop Behaviours określają akcje jakie powinny zostać podjęte przez routery dla poszczególnych wartości DCSP. Teoretycznie jest 2 6 PHB, w praktyce używa się nie więcej niż czterech: Default PHB, Expedited Forwarding PHB (EF) dla transmisji multimediów (RFC 3246), Assured Forwarding PHB group (AF) wyróżniające dalsze podklasy (RFC 2597), Class Selector PHB dla wstecznej kompatybilności z ToS.
Bandwidth Broker Dokument RFC 2638 wprowadza w ramach DiffServ tzw. bandwidth brokera agenta, którego zadaniem jest dynamiczne zarządzanie pasmem w obrębie domeny DiffServ w oparciu o wiedzę o sieci i skonfigurowane reguły. Bandwidth broker może być wyposażony w pamięć, ponadto może negocjować reguły z innymi domenami DiffServ.
Multiprotocol Label Switching (MPLS) Protokół stosowany powszechnie w sieciach operatorów telekomunikacyjnych. Zastępuje routing obniża koszty, umożliwia rezerwację pasma i QoS. Wykorzystuje kapsułkowanie datagramów IP. Pomiędzy nagłówkami 2 i 3 warstwy wstawiany jest dodatkowy nagłówek zwany etykietą. Pakiet przetwarzany jest przez routery w oparciu o etykietę. Etykieta jest jednorazowa ; router MPLS ustawia nową etykietę wg tablicy etykiet. Możliwe jest dołączanie na brzegu sieci MPLS kilku etykiet (stosu) przetwarzanych na zasadzie LIFO; rozwiązanie to wykorzystywane jest w sieciach operatorskich.
Etykieta MPLS Etykiety są 4-bajtowe: ID (20b) identyfikator klasy, indeks w tablicy etykiet, TC (3b) traffic class, S (1b) flaga: bieżąca etykieta jest ostatnia (jedyna), TTL (8b) analogicznie jak w nagłówku IP.
Dystrybucja etykiet MPLS Terminologia: LER (Label Edge Router) router brzegowy systemu MPLS, LSR (Label Switch Router) router systemu MPLS, LSP (Label Switch Path) jednokierunkowa trasa point-to-point wyznaczona przez etykiety. Do ustalania etykiet MPLS wykorzystywany jest protokół LDP (Label Distribution Protocol), jego multicastowy wariant (tldp) lub rozszerzenie protokołu RSVP (RSVP-TE). W przeciwieństwie do LDP, RSVP-TE umożliwia (zgodnie z nazwą) trafiic engineering, tj. uwzględnia inne, niż tylko odległość, czynniki przy ustalaniu LSP.
Kontrola przepływu ICMP W protokole ICMP (RFC 792) zdefiniowany jest komunikat typu 4. Source Quench. Komunikat ten może być wysyłany przez router, informuje o przepełnianiu buforów i jest sugestią, by host zmniejszył tempo transmisji. Zgodnie z RFC 1122, host, który otrzymał pakiet ICMP typu 4. powinien zredukować transmisję do minimum, a następnie sukcesywnie ją zwiększać. Uwaga: Wysłanie pakietu ICMP typu 4. nie jest obligatoryjne. Router może także odrzucać niemieszczące się w packet buffers pakiety bez powiadomienia nadawcy.
Active Queue Management (AQM) W tradycyjnym rozwiązaniu (tail drop) router przyjmuje pakiety aż do zapełnienia buforów. Następnie pakiety są odrzucane, ewentualnie wysyłane jest powiadomienie ICMP Source Quench. Rozwiązanie tail drop ma następujące wady: uniemożliwia priorytetyzację i zarządzanie pasmem, powoduje problem zwany TCP global synchronization ruch w sieci odbywa się nie płynnie, lecz falami. Mechanizm Active Queue Management (zob. RFC 2309) polega na monitoringu kolejki pakietów przychodzących i podejmowaniu wcześniejszych akcji na podstawie jej zajętości lub zmiany zajętości.
Random Early Detection (RED) RED (RFC 2309) monitoruje stan buforów i odrzuca (lub oznacza jeśli stosowany razem z ECN, zob. nastepne slajdy) pakiety z prawdopodobieństwem tym większym, im większa jest ich zajętość. RED nie umożliwia QoS, lecz pomaga unikać globalnej synchronizacji TCP. WRED (Weighted RED) jest rozszerzeniem RED polegającym na wprowadzeniu kilku kolejek pakietów przychodzących, z których każda ma osobny mechanizm RED i inną charakterystykę (poziom przepełnienia). Przychodzący pakiet trafia do danej kolejki na podstawie swojego priorytetu (np. DSCP). Zarządzanie AQM typu WRED nie tylko pozwala rozwiązać problem globalnej synchronizacji TCP, ale także umożliwia różnicowanie QoS.
Explicit Congestion Notification (ECN) Dokument RFC 2481 wprowadza znaczniki: ECT (ECN Capable Transport) i CE (Congestion Experienced) na nieużywanych przez DSCP dwóch najmniej znaczących bitach (14. i 15.). Znacznik ECT informuje o wsparciu dla ECN, natomiast znacznik CE ustawiany jest przez router (zamiast odrzucenia pakietu). Ustawienie znaczników: 01 jest nieprawidłowe. Dokument RFC 3168 zastępuje bity ECT i CE jednym, dwubitowym polem ECN, którego wartości są interpretowane nastepująco: 00 brak wsparcia dla ECN. 01 ECT(1) odpowiada sytuacji, gdy ECT=1 i CE=0, 10 ECT(0) wartości ECT(1) i ECT(0) są równoważne. Wartość ECT(0) jest preferowana ze względu na wsteczną kompatybilność, 11 wsparcie dla ECN i usytawiony znacznik CE.
Explicit Congestion Notification (ECN) cd. Bit CE informuje o zatorze (congestion). Zgodnie z RFC 3168 ustawienie bitu CE powinno wywołać taką samą reakcję warstwy transportowej (TCP), jak odrzucenie pakietu. Wykorzystywanie znaczników ECN musi zostać poprzedzone uzgodnieniem, że oba komunikujące się ze sobą hosty wspierają ECN.
Nagłówek TCP przypomnienie 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 Source Port Destination Port Sequence Number Acknowledgement Number Offset Reserved Flags Window Checksum Urgent Pointer Options Flags: (CWR, ECE, URG, ACK, PSH, RST, SYN, FIN) Dokument RFC 3168 definiuje następujące flagi: CWR (Congestion Window Reduced), ECE (Explicit Congestion Echo). Pamiętajmy, że zgodnie z RFC 793 bity te powinny być równe zero (przynależą do pola Reserved).
ECN nawiązywanie sesji TCP Ustawianie znaczników ECN jest niedozwolone dopóki obie strony nie uzgodnią, że obsługują ECN. Uzgodnienie to realizowane jest w trakcie wymiany pakietów SYN i SYN-ACK: TCP (SYN; ECE, CWR), TCP (SYN, ACK; ECE), IP (ECT).
ECN CE Congestion Experienced
ECN CE Congestion Experienced Rozważmy przypadek, gdy nadawca (S) oraz odbiorca (D), a także router (R), na którym powstał zator wspierają ECN: pakiet od S do D przechodzi przez router R, router R ustawia w jego nagłówku IP flagę CE, host D otrzymuje pakiet TCP z flagą CE w nagłówku IP, host D ustawia flagę ECE w nagłówku TCP pakietu TCP-ACK, host S odbiera pakiet TCP-ACK-ECE, host S zmniejsza tempo transmisji, w kolejnym pakiecie S ustawia flagę CWR w nagłówku TCP. Potwierdza ona odbiór ECE i podjęcie odpowiednich akcji.
Wybrane mechanizmy regulujące tempo transmisji TCP sliding window odbiorca powiadamia, jaką porcję danych jest w stanie przyjąć od nadawcy, urgent data, urgent pointer (flaga URG) dane przetwarzane poza kolejnością, np. polecenie przerwania procesu, push (flaga PSH), round trip delay time (RTT) wyznaczanie timeoutu i czasu retransmisji segmentu, maximum segment size (MSS) negocjowanie wielkośc segmentu dla uniknięcia fragmentacji IP, selective acknowledgements (SACK, RFC 2018, 2883) hurtowe potwierdzanie niekoniecznie spójnego fragmentu zamiast sekwencji ACK.