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.
| Aspekt | Kształtowanie Ruchu | Policyjność Ruchu |
|---|---|---|
| Główne Działanie | Opóźnia pakiety w buforze; po jego zapełnieniu może odrzucić nadmiar | Odrzuca, przekazuje albo zmienia oznaczenie pakietów nadmiarowych |
| Mechanizm | Używa bufora i kolejki do opóźniania nadmiarowego ruchu | Mierzy profil ruchu i wykonuje skonfigurowaną akcję |
| Wpływ na Przepływ Ruchu | Wygładza impulsy zgodnie z profilem szybkości | Ogranicza impulsy; w prostym modelu może dawać przebieg piłokształtny |
| Wpływ na TCP | Zwiększa opóźnienie; zatrzymane pakiety mogą uniknąć utraty | Utrata pakietów może wywoływać retransmisje TCP |
| Typowe Zastosowanie | Często na interfejsach wychodzących, aby kontrolować wysyłany ruch | Na 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.
- Efekt: Algorytm Wiadra Żetonów kontroluje długoterminową średnią szybkość transmisji () i pozwala na krótkoterminowe impulsy danych do rozmiaru wiadra (). 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 Mbps. Przedsiębiorstwo może kształtować ruch na interfejsie wychodzącym do wartości do 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 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.