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.

Ruch Przychodzący
Ruch Wyjściowy
Limit Szybkości

Metryki Wydajności

Opóźnienie0ms
Utrata Pakietów0
Użycie Bufora0%
Kształtowanie Ruchu

Kształtowanie: Opóźnia nadmiarowe pakiety w buforze, wygładzając przepływ. Zwiększa opóźnienie, ale minimalizuje straty.

AspektKształtowanie RuchuPolicyjność Ruchu
Główne DziałanieOpóźnia nadmiarowe pakiety (zatrzymuje)Odrzuca lub zmienia oznaczenie nadmiarowych pakietów (odrzuca)
MechanizmUżywa bufora do kolejkowania nadmiarowego ruchuNie buforuje; działa jak bramka
Wpływ na Przepływ RuchuWygładza impulsy do spójnej szybkościObcina impulsy, co daje przepływ w kształcie piły
Wpływ na TCPZwiększa opóźnienie, ale unika retransmisjiMoże wywoływać retransmisje TCP z powodu utraty pakietów
Typowe ZastosowanieNa interfejsach wychodzących, aby kontrolować szybkość wysyłanego ruchuNa 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).

Wejście
Wyjście
Wyślij Pakiet
0 / 10
Wyjście

Statystyki

Przesłane0
Odrzucone0
Przeciekające Wiadro

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.
    Żetony są generowane ze stałą szybkością, powiedzmy rr. Jeśli pojemność wiadra wynosi bb, system pozwala na impulsy. Na przykład, jeśli wiadro żetonów jest pełne, aplikacja może natychmiast wysłać impuls danych o rozmiarze bb bajtów z pełną prędkością interfejsu. Po tym impulsie musi zwolnić do średniej szybkości rr, w miarę uzupełniania żetonów.
  • Efekt: Algorytm Wiadra Żetonów kontroluje długoterminową średnią szybkość transmisji (rr), ale pozwala również na krótkoterminowe impulsy danych do rozmiaru wiadra (bb). 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 100100 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 100100 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 1010 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.