QoS

Kształtowanie Ruchu

Token bucket, leaky bucket i inne mechanizmy kondycjonowania ruchu.

1. Impulsy ruchu i przeciążenie

Ruch sieciowy często dociera w krótkich, dużych impulsach. Użytkownik może przeglądać stronę internetową, powodując chwilowy wzrost aktywności, po którym następuje kilka minut bezczynności. Później może rozpocząć pobieranie dużego pliku, generując przez dłuższy czas szybki strumień pakietów. Różne aplikacje mają więc inne wzorce aktywności, a interfejs wyjściowy może mieć stałą przepustowość.

Gdy impulsy z różnych źródeł trafiają do jednego urządzenia i korzystają z tego samego łącza wyjściowego, chwilowa szybkość napływu może przekroczyć jego przepustowość. Prowadzi to do . Bufory routera zaczynają się zapełniać, więc pakiety czekają dłużej. Po przepełnieniu bufora router odrzuca pakiety. Skutkiem są opóźnienie kolejkowania, utrata pakietów i możliwe retransmisje. Administratorzy potrzebują wtedy narzędzi do kontroli szybkości i czasu wysyłania ruchu.

2. Zasada kształtowania ruchu

reguluje przepływ pakietów. Jego głównym celem jest dopasowanie szybkości wysyłania z interfejsu do skonfigurowanego profilu ruchu lub umowy z dostawcą usług. Ruch wychodzący jest wtedy rozłożony w czasie zgodnie z tym profilem. Mechanizm wymaga miejsca na pakiety oczekujące, więc zwykle stosuje się go na interfejsie wyjściowym przed wąskim gardłem.

Podstawową operacją kształtowania jest opóźnianie. Gdy impuls przekracza skonfigurowaną szybkość, pakiety trafiają do bufora lub kolejki i mogą zostać wysłane podczas późniejszej przerwy w ruchu. Średnia szybkość w dłuższym okresie nie przekracza wtedy limitu. Bufor ma ograniczoną pojemność, więc po jego zapełnieniu nadmiarowe pakiety mogą zostać odrzucone. Opóźnianie pakietów mieszczących się w buforze ogranicza utratę, która wywołuje retransmisje TCP, oraz wygładza strumień wyjściowy. Wzrost opóźnienia jest kosztem przechowywania impulsu i trzeba go uwzględnić przy wyborze rozmiaru bufora.

3. Kształtowanie Ruchu a Policyjność Ruchu

Kształtowanie ruchu i policyjność ruchu (traffic policing) reagują inaczej na pakiety przekraczające zdefiniowany limit szybkości. Kształtowanie zatrzymuje pakiety w kolejce i oddziałuje na czas ich wysłania, natomiast policer wykonuje akcję określoną przez profil bez oczekiwania na późniejszą transmisję. Oba mechanizmy mogą korzystać z modelu token bucket. Skutek dla pakietu nadmiarowego zależy od wybranego mechanizmu.

AspektKształtowanie RuchuPolicyjność Ruchu
Główne DziałanieOpóźnia pakiety w buforze; po jego zapełnieniu może odrzucić nadmiarOdrzuca, przekazuje albo zmienia oznaczenie pakietów nadmiarowych
MechanizmUżywa bufora i kolejki do opóźniania nadmiarowego ruchuMierzy profil ruchu i wykonuje skonfigurowaną akcję
Wpływ na Przepływ RuchuWygładza impulsy zgodnie z profilem szybkościOgranicza impulsy; w prostym modelu może dawać przebieg piłokształtny
Wpływ na TCPZwiększa opóźnienie; zatrzymane pakiety mogą uniknąć utratyUtrata pakietów może wywoływać retransmisje TCP
Typowe ZastosowanieCzęsto na interfejsach wychodzących, aby kontrolować wysyłany ruchNa wejściu lub wyjściu, aby egzekwować limit ruchu

4. Algorytmy kształtowania ruchu

Urządzenia sieciowe modelują kształtowanie za pomocą parametrów szybkości, rozmiaru impulsu i pojemności bufora. Dwa klasyczne modele to Przeciekające Wiadro (Leaky Bucket) i Wiadro Żetonów (Token Bucket). Parametry te określają, ile ruchu może oczekiwać oraz jak szybko zostanie przekazany na wyjście.

Algorytm Przeciekającego Wiadra (Leaky Bucket)

  • Koncepcja: Model opisuje kolejkę, do której pakiety mogą napływać z dowolną szybkością, oraz wyjście obsługiwane ze stałą, ustaloną szybkością. Tempo wyjścia pozostaje takie samo przy różnym poziomie zapełnienia kolejki, aż do opróżnienia bufora.
  • Działanie: Po nadejściu pakietu system sprawdza miejsce w buforze. Pakiet mieszczący się w buforze trafia do kolejki, a pakiet przy pełnym buforze jest odrzucany. Pakiety opuszczają kolejkę ze stałą szybkością.
  • Efekt: W modelu Przeciekającego Wiadra impulsywny strumień wejściowy staje się strumieniem wyjściowym o stałej szybkości. Gdy kolejka jest pusta, transmisja nie generuje sztucznego ruchu. Dyskretne pakiety nadal wpływają na dokładny przebieg transmisji.
  • Ograniczenie: Model jest sztywny. Szybkość wyjściowa nie przekracza skonfigurowanej szybkości odpływu, nawet gdy łącze ma wolną przepustowość. Przy bezczynnym łączu późniejszy impuls danych nadal jest wysyłany w stałym tempie, co może obniżyć wykorzystanie dostępnej przepustowości.

Algorytm Wiadra Żetonów (Token Bucket)

Algorytm Wiadra Żetonów jest elastyczną alternatywą. Pozwala na impulsy ruchu do określonego limitu przy kontroli długoterminowej średniej szybkości.

  • Koncepcja: Model używa wiadra napełnianego żetonami ze stałą szybkością. Każdy żeton oznacza pozwolenie na wysłanie określonej ilości danych, na przykład jednego bajta lub jednego pakietu. Wiadro ma maksymalną pojemność, a zgromadzone żetony reprezentują dopuszczalny impuls.
  • Działanie: Gdy pakiet jest gotowy do przesłania, mechanizm kształtujący sprawdza wiadro żetonów. Koszt pakietu zależy od liczby bajtów lub innej jednostki przyjętej w konfiguracji.
    • Jeśli w wiadrze jest wystarczająco dużo żetonów, aby "zapłacić" za pakiet, wymagana liczba żetonów jest usuwana, a pakiet jest wysyłany natychmiast.
    • Jeśli nie ma wystarczającej liczby żetonów, pakiet musi czekać w kolejce, aż zostanie wygenerowana odpowiednia liczba żetonów.
    Żetony są generowane ze stałą szybkością rr. Jeśli pojemność wiadra wynosi bb, system pozwala na impulsy. Gdy wiadro jest pełne, aplikacja może w tym uproszczonym przykładzie wysłać impuls o rozmiarze bb bajtów z szybkością interfejsu, jeśli pozwala na to dalsza ścieżka. Po zużyciu żetonów średnia szybkość wraca do rr w miarę ich uzupełniania. Duże bb umożliwia większy impuls po okresie bezczynności, a małe bb ogranicza jego rozmiar.
  • Efekt: Algorytm Wiadra Żetonów kontroluje długoterminową średnią szybkość transmisji (rr) i pozwala na krótkoterminowe impulsy danych do rozmiaru wiadra (bb). Taki model odpowiada ruchowi, w którym okresy bezczynności poprzedzają krótkie impulsy. Po wyczerpaniu żetonów kolejne pakiety oczekują albo podlegają regule policera.
  • Elastyczność: Rozmiar wiadra określa maksymalny krótkotrwały impuls, a szybkość generowania żetonów ustala górną granicę średniej przepustowości. Częstotliwość impulsów zależy także od zapotrzebowania źródła. Token bucket jest często używany zarówno do kształtowania, jak i policyjności ruchu.

5. Zastosowania kształtowania ruchu

Kształtowanie ruchu stosuje się zwykle na wyjściu urządzenia lub domeny administracyjnej, aby kontrolować przepływ zgodnie z profilem szybkości i rozmiaru impulsu.

  • Umowa z dostawcą usług: Na brzegu sieci przedsiębiorstwa ISP może stosować policyjność ruchu klienta zgodnie z umową, na przykład dla łącza 100100 Mbps. Przedsiębiorstwo może kształtować ruch na interfejsie wychodzącym do wartości do 100100 Mbps, aby ograniczyć liczbę pakietów odrzuconych przez policer dostawcy. Konfiguracja nie powinna przekraczać profilu ustalonego dla usługi.
  • Wolne łącza WAN: W sieci z centralą i oddziałami połączonymi wolniejszymi łączami WAN kształtowanie na interfejsach routera centralnego ogranicza udział pojedynczej aplikacji o dużej przepustowości. Pozostawia to część łącza dla aplikacji wrażliwych na opóźnienie w oddziale i ogranicza nagłe przepełnienie kolejki.
  • Hierarchiczne polityki QoS: Kształtowanie może ograniczać całe łącze do 1010 Mbps, a wewnątrz tego limitu można zastosować kolejki dla głosu, wideo i danych. Suma ruchu po wyjściu z hierarchii pozostaje w skonfigurowanym profilu, podczas gdy klasy nadal mogą otrzymywać różne udziały.

Powiązane artykuły