Algoritmus Nagle , pomenovaný po inžinierovi Johnom Nagleom, bol navrhnutý tak, aby znížil preťaženie siete spôsobené "malými paketovými problémami" s aplikáciami TCP . Implementácia UNIXu začala používať Naglov algoritmus v 80. rokoch minulého storočia a zostáva štandardnou súčasťou TCP.
Ako funguje algoritmus Nagle
Nagleov algoritmus spracováva dáta na odosielajúcej strane TCP aplikácií metódou nazývanou nagling . Detekuje správy s malou veľkosťou a nahromadí ich do väčších paketov TCP pred odoslaním údajov cez kábel, čím sa zabráni generovaniu zbytočne veľkého množstva malých paketov. Technická špecifikácia algoritmu Nagleho bola publikovaná v roku 1984 ako RFC 896. Rozhodnutia o množstve údajov, ktoré sa majú akumulovať, a o tom, ako dlho čakať medzi odosielaním, sú rozhodujúce pre celkovú výkonnosť.
Nagling môže efektívnejšie využiť šírku pásma pripojenia k sieti na úkor pridávania oneskorení ( latencia ). Príklad uvedený v dokumente RFC 896 ilustruje výhody potenciálnej šírky pásma a dôvod jej vytvorenia:
- Aplikácia TCP, ktorá zachyti klávesnicové klávesové skratky a chce komunikovať s každým znakom zadaným do prijímača, môže generovať sériu správ, z ktorých každý obsahuje 1 bajt dát.
- Predtým, než sa tieto správy môžu posielať po sieti, musia byť všetky balíky spolu s informáciami o hlavičke TCP, ako to vyžaduje protokol TCP / IP. Každá hlavička sa pohybuje v rozmedzí od 20 do 60 bajtov.
- Bez tohto narušenia by táto príkladová aplikácia vygenerovala sieťové správy pozostávajúce z 95% alebo viac informácií o hlavičke (najmenej 20 z 21 bajtov) a 5% alebo menej aktuálnych údajov z klávesnice odosielateľa. Pomocou Nagleho algoritmu by sa tie isté dáta dali dodať s oveľa menšou správou a 95% obsahu by bolo informáciou o klávesnici - veľmi veľké úspory šírky pásma.
Aplikácie kontrolujú používanie algoritmu Nagle s možnosťou programovania TCP_NODELAY socket . Systémy Windows, Linux a Java štandardne štandardne umožňujú Nagle, takže aplikácie napísané pre tieto prostredia musia špecifikovať TCP_NODELAY, keď chcú vypnúť algoritmus.
obmedzenia
Naglov algoritmus je použiteľný len s protokolom TCP. Ostatné protokoly vrátane UDP ho nepodporujú.
Aplikácie TCP, ktoré potrebujú rýchlu sieťovú odpoveď, napríklad internetové telefónne hovory alebo strieľačky z prvej osoby, nemusí fungovať správne, keď je Nagle povolený. Oneskorené oneskorenia, kedy algoritmus trvá dlhší čas na zostavovanie menších kusov dát, môže spôsobiť značné oneskorenie vizuálne na obrazovke alebo v digitálnom audio toku. Tieto aplikácie zvyčajne zakážu Nagle.
Tento algoritmus bol pôvodne vyvinutý v čase, keď počítačové siete podporovali oveľa menej šírky pásma, ako dnes. Príklad uvedený vyššie bol založený na skúsenostiach Johna Nagla v spoločnosti Ford Aerospace na začiatku osemdesiatych rokov minulého storočia, kedy nabádajúce kompromisy na ich pomalé, silne naplnené diaľkové siete mali dobrý zmysel. Existuje čoraz menej situácií, keď sieťové aplikácie môžu využiť jeho algoritmus dnes.