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:
- TCP-aplikaĵo, kiu interrompas klavajn ŝlosilojn kaj volas komuniki ĉiun karakteron, kiu estas tajpita al ricevilo, povas produkti serion da mesaĝoj ĉiu kun 1 bitto da datumoj.
- Antaŭ ol ĉi tiuj mesaĝoj povas esti senditaj trans la reto, ĉiu devas esti pakita kune kun TCP-titolaj informoj laŭ la postulo de TCP / IP. Ĉiu kaplinio ampleksas inter 20 kaj 60 bajtoj.
- Sen agrabla, ĉi tiu ekzemplo aperus generi mesaĝojn de reto konsistanta el 95% aŭ pli da informaj informoj (almenaŭ 20 el 21 bajtoj) kaj 5% aŭ malpli realaj datumoj de la klavaro de la sendinto. Uzante la algoritmon de Nagle, la samaj datumoj povus anstataŭe esti transdonitaj uzante multajn malpli da mesaĝojn kaj havante 95% de la enhavo klavara informo - tre larĝan bandon-ŝparadon.
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.