Prehľad algoritmu Nagle pre sieťovú komunikáciu TCP

Prehľad algoritmu Nagle pre sieťovú komunikáciu TCP
Prehľad algoritmu Nagle pre sieťovú komunikáciu TCP
Anonim

Algoritmus Nagle, pomenovaný po inžinierovi Johnovi Nagleovi, bol navrhnutý na zníženie preťaženia siete spôsobeného problémami s malými paketmi s aplikáciami TCP. Implementácie UNIXu začali používať algoritmus Nagle v 80. rokoch minulého storočia a dnes zostáva štandardnou funkciou TCP.

Ako funguje algoritmus Nagle

Algoritmus Nagle spracováva údaje na odosielacej strane aplikácií TCP metódou nazývanou nagling. Zisťuje malé správy a akumuluje tieto správy do väčších paketov TCP pred odoslaním údajov cez drôt. Tento proces zabraňuje generovaniu zbytočne veľkého počtu malých paketov.

Technická špecifikácia pre algoritmus Nagle bola zverejnená v roku 1984 ako RFC 896. Rozhodnutia o tom, koľko údajov sa má zhromaždiť a ako dlho čakať medzi odoslaniami, sú rozhodujúce pre jeho celkový výkon.

Výhody Nagling

Nagling dokáže efektívne využívať šírku pásma sieťového pripojenia na úkor pridávania oneskorení alebo latencie. Príklad opísaný v RFC 896 ilustruje potenciálne výhody šírky pásma a dôvod jeho vytvorenia:

  • Ak chce aplikácia TCP, ktorá zachytáva stlačenia klávesov na klávesnici, komunikovať každý zadávaný znak do prijímača, môže vygenerovať sériu správ, z ktorých každá obsahuje 1 bajt údajov.
  • Pred odoslaním týchto správ cez sieť musí byť každá z nich zabalená s informáciami v hlavičke TCP, ako to vyžaduje TCP/IP. Veľkosť každej hlavičky sa pohybuje od 20 do 60 bajtov.
  • Bez otravovania by táto vzorová aplikácia generovala sieťové správy pozostávajúce z 95 percent alebo viac informácií hlavičky (najmenej 20 z 21 bajtov) a 5 percent alebo menej skutočných údajov z klávesnice odosielateľa. Použitím algoritmu Nagle by bolo možné doručiť rovnaké údaje pomocou menšieho počtu správ, čo by viedlo k veľkej úspore šírky pásma.

Aplikácie riadia svoje použitie algoritmu Nagle pomocou možnosti programovania soketu TCP_NODELA. Systémy Windows, Linux a Java štandardne povoľujú Nagle. Preto aplikácie napísané pre tieto prostredia musia špecifikovať TCP_NODELAY na vypnutie algoritmu.

Image
Image

Obmedzenia

Aplikácie, ktoré vyžadujú rýchlu odozvu siete, ako sú videohovory a online hry, nemusia fungovať správne, keď je povolený Nagle. Oneskorenia spôsobené tým, že algoritmus potrebuje viac času na zostavenie menších kúskov údajov, môžu spôsobiť viditeľné oneskorenie vizuálne na obrazovke alebo v digitálnom audio streame. Takéto aplikácie zvyčajne vypnú Nagle.

Tento algoritmus bol pôvodne vyvinutý v čase, keď počítačové siete podporovali menšiu šírku pásma ako dnes. Vyššie opísaný príklad bol založený na skúsenostiach Johna Nagleho z Ford Aerospace na začiatku osemdesiatych rokov, kde malo zmysel dotierať kompromisy na pomalej, silne zaťaženej sieti Ford na dlhé vzdialenosti. V súčasnosti je čoraz menej situácií, v ktorých môžu sieťové aplikácie ťažiť z jeho algoritmu.

Algoritmus Nagle je použiteľný iba s TCP. Iné protokoly, ako napríklad UDP, ho nepodporujú.

Odporúča: