GeeksforGeeks
- wraz ze wzrostem opóźnienia zmniejsza się wydajność.
- jeśli opóźnienie wzrasta, następuje retransmisja, co pogarsza sytuację.
- algorytm przeciekającego wiadra
- kiedy host chce wysłać pakiet, pakiet jest wrzucany do wiadra.
- wiadro przecieka ze stałą szybkością, co oznacza, że interfejs sieciowy przesyła pakiety ze stałą szybkością.
- w praktyce bucket jest skończoną kolejką, która wychodzi ze skończoną szybkością.
- algorytm Token bucket
- w regularnych odstępach czasu żetony są wrzucane do wiadra. ƒ
- łyżka ma maksymalną pojemność. ƒ
- jeśli istnieje gotowy pakiet, token jest usuwany z zasobnika, a Pakiet jest wysyłany.
- jeśli w koszyku nie ma tokena, pakiet nie może zostać wysłany.
sposoby, w których token bucket jest lepszy od przeciekającego wiadra:
algorytm leaky bucket kontroluje szybkość, z jaką pakiety są wprowadzane do sieci, ale ma bardzo konserwatywny charakter. Pewną elastyczność wprowadza algorytm Token bucket. W Koszyku tokenów tokeny algorytmu są generowane przy każdym tiku (do pewnego limitu). Aby pakiet przychodzący został przesłany, musi przechwycić token, a transmisja odbywa się w tym samym tempie. Stąd niektóre z busty pakietów są przesyłane w tym samym tempie, jeśli tokeny są dostępne, a tym samym wprowadza pewną elastyczność w systemie.
wzór: M * s = c + ρ * s
gdzie S – jest zajętym czasem
m-Maksymalna Prędkość wyjściowa
ρ-częstotliwość przylotu Tokena
C-Pojemność zasobnika tokena w bajtach