Hierarchical Token Bucket: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
GaZeL (dyskusja | edycje)
Nie podano opisu zmian
GaZeL (dyskusja | edycje)
Nie podano opisu zmian
Linia 14:
== Token Bucket ==
 
[[Algorytm]] '''Token Bucket''' na wiele znaczeń najlepiej jednak jest to rozumieć w kontekście sterowania natężenia ruchu w sieci ([[język angielski|ang.]] ([http://en.wikipedia.org/wiki/Traffic_shaping ''Traffic Shaping''] {{lang|en}}) lub ograniczania pasma ([[język angielski|ang.]] ''[http://en.wikipedia.org/wiki/Rate_limiting Rate Limiting'']{{lang|en}}). Algorytm jest wykorzystywany do kontrolowania ilości danych transmitowanych w sieci, pozwalając na szybsze ich wysłanie.
 
== Algorytmy sterowania natężeniem ruchu ==
Istnieją dwie dominujące metody sterowania ruchem: model „cieknącego wiadra” ([[język angielski|ang.]] ''[[http://en.wikipedia.org/wiki/Leaky_bucket Leaky Bucket]]'') i model „wiadra z żetonami” ([[język angielski|ang.]] ''[http://en.wikipedia.org/wiki/Token_bucket Token Bucket'']). Często algorytm [[Leaky Bucket]] utożsamiany jest niesłusznie z algorytmem Token Bucket. Obydwa modele mają odrębne działanie i są używane do różnych celów. Ich różnica polega głównie na tym, że algorytm Leaky Bucket nakłada duży limit na szybkość transmitowanych danych, podczas gdy algorytm Token Bucket pozwala na dokładne ustalenie ograniczenia [[Przepustowość|prędkości transmisji]] w odniesieniu do różnorodnej wielkości napływających pakietów danych.
 
== Zasada działania algorytmu Token Bucket ==
Token Bucket to mechanizm kontrolujący, który dyktuje kiedy pakiety danych mogą być przesłane. Token Bucket posługuje się wzorcem w postaci [[Bufor (programowanie)|bufora]] –kubełka (Bucket), do którego wpadają „żetony” (Tokens) z określonym administracyjnie natężeniem. Wysyłanie określonych porcji danych z kolejki powoduje skasowanie żetonu z kubełka. Przepływ danych może więc opróżnić kubełek z żetonów i na skutek tego zostać chwilowo wstrzymany, ograniczając pasmo. Jego brak czy spowolnienie może wypełnić bufor żetonami (tylko do pojemności bufora), pozostawiając pewną rezerwę na chwilowy wzrost natężenia ruchu.
Sytuacje które występują w algorytmie Token Bucket:
*dane wchodzą do TBF ([[język angielski|ang.]] ''Token Bucket Filter'') z natężeniem przepływu żetonów. Wówczas każda porcja ma swój odpowiadający żeton i przechodzi przez filtr.
*dane wchodzą do TBF z natężeniem przepływu mniejszym niż żetony. Ponieważ tylko część żetonów jest „zabierana” przez wychodzące dane, kubełek wypełnia się niewykorzystanymi żetonami.
*jeżeli natężenie danych jest większe niż ustalone natężenie żetonów to mamy doczynieniado czynienia z przeciążeniem filtra. Pakiety danych mogą być wysyłane do chwili kiedy nie zostaną zużyte wszystkie żetony, które mogły by się tam nagromadzić. Jeżeli w kubełku nie ma już żetonów pakiety są kasowane.