La Nagle Algoritmo por TCP Network Communication

La algoritmo de Nagle , nomata laŭ inĝeniero John Nagle, estis desegnita por redukti reton-kongeston kaŭzitan de "malgrandaj pakoj-problemoj" kun TCP-aplikoj . UNIKSO implementoj komencis uzi la algoritmon de Nagle en la 1980-aj jaroj, kaj ĝi restas norma trajto de TCP hodiaŭ.

Kiel funkcias la Nagle Algoritm

La algoritmo de Nagle procesas datumojn sur la sendanta flanko de TCP-aplikoj per metodo nomata nagling . Ĝi detektas malgrandajn grandajn mesaĝojn kaj amasigas ilin en pli grandajn TCP-pakojn antaŭ sendi datumojn tra la drato, evitante la generacion de nenecese grandaj nombroj da malgrandaj pakoj. La teknika specifaĵo por la algoritmo de Nagle estis publikigita en 1984 kiel RFC 896. La decidoj por multe da datumoj amasigi kaj kiom longe atendi inter la sendoj estas kritikaj al ĝia ĝenerala agado.

Nagling povas pli efike utiligi la larĝan bandon de reto-rilato koste aldoni malfruojn ( latencia ). Ekzemplo priskribita en RFC 896 ilustras la potencajn larĝajn avantaĝojn kaj la kialon por ĝia kreado:

Aplikoj kontrolas sian uzon de la Nagle-algoritmo kun la eblo de programado de toksilo TCP_NODELAY. Sistemoj de Windows, Linukso kaj Java ĉiuj kutime ebligas Nagle defaŭlte, do aplikoj skribitaj por tiuj medioj devas specifi TCP_NODELAY, kiam ili volas ŝanĝi la algoritmon.

Limigoj

Nagle-algoritmo estas nur uzebla kun TCP. Aliaj protokoloj inkluzive de UDP ne subtenas ĝin.

TCP-aplikaĵoj, kiuj bezonas rapidan reton-respondon, kiel telefonaj telefonoj aŭ ludoj de unua persono, eble ne funkcios bone kiam Nagle estas ebligita. La malfruoj kaŭzitaj dum la algoritmo prenas kroman tempon kolekti pli malgrandajn datumojn kune povas malkaŝi rimarkindan malfortecon en ekrano aŭ en ciferecaj fluoj. Ĉi tiuj aplikoj kutime malŝaltas Nagle.

Ĉi tiu algoritmo estis origine evoluigita samtempe, kiam komputilaj retoj subtenis multe malpli larĝan bandon ol nun. La ekzemplo priskribita surbaze baziĝis sur la spertoj de John Nagle ĉe Ford Aerospace komence de la 1980-aj jaroj, kie svingaj komercoj sur sia malrapida, tre multe ŝarĝita longa distanco reale sentis. Estas ĉiufoje pli malmultaj situacioj kie retaj aplikoj povas profitigi hodiaŭ de sia algoritmo.