Blokování čela fronty
Blokování čela fronty (anglicky Head-of-line blocking, HOL blocking) je jev v počítačových sítích omezující výkonnost, ke kterému dochází, pokud je fronta paketů zdržována zpracováním prvního paketu. K blokování čela fronty dochází například u síťových přepínačů se vstupními vyrovnávacími paměťmi, při doručování mimo pořadí, a pokud se při HTTP pipeliningu zpracovává více než jeden požadavek.
Síťové přepínače
Síťový přepínač se obvykle skládá ze vstupních portů s vyrovnávací pamětí, přepojovací sítě (anglicky switch fabric) a výstupních portů s vyrovnávací pamětí. Pokud vstupní vyrovnávací paměti pracující metodou FIFO, je pro forwardování dostupný pouze nejstarší paket. Pokud nejstarší paket nemůže být forwardován, například protože jeho cíl nereaguje, nemůže být forwardován žádný další paket.
K zablokování výstupu může dojít, pokud dochází k soupeření o prostředky na výstupu (viz diagram), nebo když je výstupní vyrovnávací paměť plná kvůli zahlcení (například když součet rychlostí vstupů je větší než výstupní rychlost).
Bez blokování čela fronty by nově příchozí pakety mohly být forwardovány bez ohladu na zaseknutý nejstarší paket na požadované cíle. Jev může v systémech se vstupními vyrovnávacími paměťmi vést k závažnému snížení výkonnosti.
Popsaný jev omezuje propustnost přepínačů. Pro jednoduchý model s buňkami pevné velikosti posílanými na rovnoměrně rozdělené cíle a použití vstupní vyrovnávací paměti pracující metodou FIFO, je omezení propustnosti až 58.6 % pro velký počet linek[1].
Jednou z možností jak zabránit tomuto omezení je používání virtuálních výstupních front[2].
Blokování čela fronty se objevuje pouze u přepínačů s vyrovnávacími paměťmi na vstupu. Při dostatečné interní šířce pásma je použití vyrovnávacích pamětí na vstupu zbytečné; vyrovnávací paměti jsou použity pouze na výstupech a k blokování čela fronty nemůže dojít. Architektura bez vstupních vyrovnávacích pamětí je obvyklá u malých na středně velkých ethernetových přepínačů.
Doručování mimo pořadí
K doručování mimo pořadí dochází, když jsou seřazené pakety doručeny ve špatném pořadí. Může k tomu dojít, kvůli posíláním paketů různými cestami, nebo kvůli zahazování nebo opakovanému přenosu paketů. Blokování čela fronty může vést k výraznému zvýšení změn pořadí paketů[3][4].
Spolehlivé všesměrové vysílání zpráv v síti, ve které dochází ke ztrátám paketů, mezi velkým počtem uzlů je obtížný problém. Algoritmy atomického broadcastu sice řeší problém jediného bodu selhání centralizovaných serverů, ale přinášejí problém blokování čela fronty. Bimodal Multicast algoritmus je pravděpodobnostní algoritmus používající gossip protokol, který se vyhýbá blokování čela fronty tím, že dovoluje, aby některé zprávy byly přijaty mimo pořadí.[5]
Odkazy
Reference
V tomto článku byl použit překlad textu z článku Head-of-line blocking na anglické Wikipedii.
- Input Versus Output Queuing on a Space-Division Packet Switch. IEEE Transactions on Communications. Prosinec 1987. DOI 10.1109/TCOM.1987.1096719.
- Achieving 100% Throughput in an Input-Queued Switch. IEEE Transactions on Communication. Srpen 1999. Dostupné online. DOI 10.1109/26.780463.
- Packet reordering is not pathological network behavior (Přerovnání paketů není patologickým chováním sítě). IEEE/ACM Transactions on Networking. Prosinec 1999. DOI 10.1109/90.811445.
- BENNETT, J. C. R.; PARTRIDGE, C.; SHECTMAN, N. Packet Reordering is Not Pathological Network Behavior (Přerovnávání paketů není patologickým chováním sítě) [Slidy] [online]. Duben 2000 [cit. 2018-11-16]. Dostupné v archivu pořízeném dne 2017-08-20.
- Tyler McMullen. "It Probably Works". acmqueue 2015.
Související články
- Bufferbloat
- Metoda FIFO
- HTTP pipelining
- Síťový plánovač
- Pipeline stall
- Fronta (datová struktura)