Kształtowanie Ruchu
Token bucket, leaky bucket i inne mechanizmy kondycjonowania ruchu.
1. Natura Ruchu Sieciowego: Impulsy i Przeciążenia
Ruch sieciowy jest z natury nieprzewidywalny i impulsywny. W przeciwieństwie do stałego strumienia wody płynącego rurą, ruch danych w sieci często pojawia się w nagłych, dużych impulsach. Na przykład, użytkownik może przeglądać stronę internetową, powodując krótkotrwały wzrost aktywności, po którym następuje kilka minut bezczynności. Następnie może rozpocząć pobieranie dużego pliku, zalewając łącze sieciowe stałym, szybkim przepływem pakietów.
Ta impulsywność stanowi duże wyzwanie dla zarządzania siecią. Gdy wiele impulsów ruchu z różnych źródeł zbiega się w jednym urządzeniu sieciowym, takim jak router, i jest przeznaczonych na to samo łącze wyjściowe, chwilowa szybkość napływającego ruchu może łatwo przekroczyć przepustowość łącza wyjściowego. Prowadzi to do . Wewnętrzne bufory (kolejki) routera zaczynają się zapełniać, powodując opóźnienia (latencję) dla wszystkich pakietów. Jeśli przeciążenie jest wystarczająco poważne, bufory przepełniają się, a router jest zmuszony do odrzucania pakietów, co prowadzi do ich utraty. Aby utrzymać stabilną i przewidywalną sieć, administratorzy potrzebują narzędzi do kontrolowania szybkości i czasowania przepływu ruchu.
2. Wprowadzenie do Kształtowania Ruchu
to proaktywny mechanizm QoS zaprojektowany do regulowania przepływu ruchu sieciowego. Jego głównym celem jest kontrolowanie szybkości, z jaką pakiety są wysyłane z interfejsu, aby dopasować je do predefiniowanego profilu ruchu lub umowy zawartej z dostawcą usług. Zamiast pozwalać na przepływ ruchu w nieuregulowanych impulsach, kształtowanie ruchu wygładza przepływ ruchu w bardziej spójny i przewidywalny strumień.
Kluczową zasadą działania kształtowania ruchu jest opóźnianie. Gdy nadejdzie impuls ruchu przekraczający skonfigurowaną szybkość, mechanizm kształtujący nie odrzuca od razu nadmiarowych pakietów. Zamiast tego umieszcza je w buforze lub kolejce. Te zbuforowane pakiety są następnie przesyłane później, podczas przerw w ruchu, co zapewnia, że długoterminowa średnia szybkość transmisji nie przekracza skonfigurowanego limitu. Poprzez zatrzymywanie i opóźnianie nadmiarowych pakietów zamiast ich odrzucania, kształtowanie unika utraty pakietów, która może wywoływać retransmisje TCP, i pomaga uzyskać gładszy, mniej impulsywny strumień wyjściowy.
3. Kształtowanie Ruchu a Policyjność Ruchu
Kształtowanie ruchu jest często mylone z innym mechanizmem QoS zwanym policyjnością ruchu (traffic policing), ale mają one kluczową różnicę w sposobie obsługi ruchu, który przekracza zdefiniowany limit szybkości.
Kształtowanie vs. Policyjność
Zobacz, jak nadmiarowy ruch jest buforowany (Kształtowanie) lub odrzucany (Policyjność) po przekroczeniu limitów.
Metryki Wydajności
Kształtowanie: Opóźnia nadmiarowe pakiety w buforze, wygładzając przepływ. Zwiększa opóźnienie, ale minimalizuje straty.
| Aspekt | Kształtowanie Ruchu | Policyjność Ruchu |
|---|---|---|
| Główne Działanie | Opóźnia nadmiarowe pakiety (zatrzymuje) | Odrzuca lub zmienia oznaczenie nadmiarowych pakietów (odrzuca) |
| Mechanizm | Używa bufora do kolejkowania nadmiarowego ruchu | Nie buforuje; działa jak bramka |
| Wpływ na Przepływ Ruchu | Wygładza impulsy do spójnej szybkości | Obcina impulsy, co daje przepływ w kształcie piły |
| Wpływ na TCP | Zwiększa opóźnienie, ale unika retransmisji | Może wywoływać retransmisje TCP z powodu utraty pakietów |
| Typowe Zastosowanie | Na interfejsach wychodzących, aby kontrolować szybkość wysyłanego ruchu | Na interfejsach przychodzących, aby wymusić limit szybkości na otrzymywanym ruchu |
4. Główne Algorytmy Kształtowania Ruchu
Aby zaimplementować kształtowanie ruchu, urządzenia sieciowe wykorzystują algorytmy, które modelują przepływ ruchu w oparciu o zestaw skonfigurowanych parametrów. Dwa najsłynniejsze i najczęściej stosowane algorytmy to Przeciekające Wiadro (Leaky Bucket) i Wiadro Żetonów (Token Bucket).
Symulator Algorytmów Wiadra
Porównaj mechanizmy kondycjonowania ruchu: Przeciekające Wiadro (stała szybkość) i Wiadro Żetonów (dozwolone impulsy).
Statystyki
Przeciekające Wiadro: Przekształca impulsywny ruch w strumień o stałej szybkości. Nadmiar jest kolejkowany lub odrzucany.
Algorytm Przeciekającego Wiadra (Leaky Bucket)
- Koncepcja: Wyobraź sobie wiadro z małym otworem na dole. Woda (pakiety) może być wlewana do wiadra z dowolną szybkością. Jednak woda wycieka z otworu ze stałą, ustaloną szybkością, niezależnie od tego, ile wody jest w wiadrze i jak szybko jest ona dodawana.
- Działanie:Gdy pakiet dociera, system sprawdza, czy w wiadrze (buforze) jest miejsce. Jeśli jest miejsce, pakiet jest umieszczany w kolejce. Jeśli wiadro jest pełne, przychodzący pakiet jest odrzucany. Pakiety w kolejce są następnie "przeciekane" z interfejsu ze stałą, ciągłą szybkością.
- Efekt: Głównym efektem Przeciekającego Wiadra jest przekształcenie impulsywnego strumienia wejściowego w gładki, o stałej szybkości strumień wyjściowy. Wymusza on ścisłą szybkość wyjściową, całkowicie eliminując impulsy.
- Ograniczenie: Główną wadą Przeciekającego Wiadra jest jego sztywność. Nawet jeśli sieć jest całkowicie wolna i ma dużą dostępną przepustowość, szybkość wyjściowa nigdy nie może przekroczyć skonfigurowanej szybkości wycieku. Jeśli użytkownik ma do wysłania impuls danych, a sieć jest bezczynna, Przeciekające Wiadro nadal zmusza go do wysyłania ze stałą, niską szybkością, co potencjalnie niedostatecznie wykorzystuje sieć.
Algorytm Wiadra Żetonów (Token Bucket)
Algorytm Wiadra Żetonów jest bardziej elastyczną i powszechnie stosowaną alternatywą. Pozwala on na impulsy ruchu do określonego limitu, przy jednoczesnym kontrolowaniu długoterminowej średniej szybkości.
- Koncepcja:Ten model używa wiadra, które jest napełniane "żetonami" ze stałą szybkością. Każdy żeton reprezentuje pozwolenie na wysłanie określonej ilości danych (np. jednego bajta lub jednego pakietu). Wiadro ma maksymalną pojemność.
- Działanie: Gdy pakiet jest gotowy do przesłania, mechanizm kształtujący sprawdza wiadro żetonów.
- 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 (), ale pozwala również na krótkoterminowe impulsy danych do rozmiaru wiadra (). Jest to znacznie bardziej realistyczny i wydajny model obsługi typowego ruchu sieciowego.
- Elastyczność: Ten model jest bardzo elastyczny. Duży rozmiar wiadra pozwala na większe, ale rzadsze impulsy, podczas gdy mniejszy rozmiar wiadra ogranicza impulsy do mniejszych, ale potencjalnie częstszych. Szybkość generowania żetonów ustala górną granicę średniej przepustowości. Jest to najczęściej używany algorytm zarówno do kształtowania, jak i policyjności w nowoczesnym sprzęcie sieciowym.
5. Kiedy i Gdzie Stosować Kształtowanie Ruchu
Kształtowanie ruchu jest zazwyczaj stosowane w określonych punktach sieci w celu kontrolowania przepływu ruchu wchodzącego lub wychodzącego z określonej domeny administracyjnej.
- Egzekwowanie Umowy z Dostawcą Usług: Najczęstszym przypadkiem użycia jest brzeg sieci przedsiębiorstwa, gdzie łączy się ona z Dostawcą Usług Internetowych (ISP). ISP często sprzedają usługi z określonym kontraktem przepustowości, na przykład łącze Mbps. Będą oni stosować policyjność na ruchu przychodzącym od klienta z tą szybkością. Aby uniknąć odrzucania własnych pakietów przez mechanizm policyjności ISP, przedsiębiorstwo może skonfigurować mechanizm kształtowania ruchu na swoim interfejsie wychodzącym, aby wygładzić własny ruch do dokładnie Mbps, zapewniając, że nigdy nie przekroczy zakontraktowanej szybkości.
- Zarządzanie Ruchem na Wolnych Łączach WAN: W sieciach z centralą i wieloma zdalnymi oddziałami połączonymi wolniejszymi łączami WAN, kształtowanie ruchu może być używane na interfejsach routera centralnego. Zapewnia to, że pojedyncza aplikacja o dużej przepustowości w centrali nie przytłoczy wolnego łącza do zdalnego oddziału, zachowując przepustowość dla krytycznych aplikacji w tym oddziale.
- Hierarchiczne Polityki QoS: Kształtowanie może być składnikiem większej strategii QoS. Na przykład, główne łącze może być kształtowane do łącznej szybkości Mbps. W ramach tej kształtowanej szybkości można następnie zastosować różne polityki kolejkowania, aby priorytetyzować ruch głosowy, wideo i dane, zapewniając, że całkowity ruch nigdy nie przekroczy ogólnej kształtowanej szybkości.