Die Nagle Algoritme vir TCP Netwerk Kommunikasie

Die Nagle-algoritme , vernoem na ingenieur John Nagle, is ontwerp om die netwerkopeenhoping wat veroorsaak word deur klein pakkieprobleme met TCP-toepassings, te verminder . UNIX- implementerings het in die 1980's begin met die gebruik van Nagle se algoritme, en dit bly vandag 'n standaard kenmerk van TCP.

Hoe die Nagle Algoritme Werk

Nagle se algoritme verwerk data op die stuurkant van TCP-toepassings deur 'n metode genaamd nagling . Dit ontdek klein boodskappe en versamel hulle in groter TCP-pakkies voordat data oor die draad gestuur word, waardeur die onnodige groot getalle klein pakkies geskep word. Die tegniese spesifikasie vir Nagle se algoritme is in 1984 gepubliseer as RFC 896. Die besluite dat baie data ophoop en hoe lank om te wag tussen stuur, is van kritieke belang vir die algehele prestasie.

Nagling kan meer doeltreffend gebruik maak van die bandwydte van 'n netwerkverbinding ten koste van die byvoeging van vertragings ( latensie ). 'N Voorbeeld beskryf in RFC 896 illustreer die potensiële bandwydte voordele en die rede vir die skepping daarvan:

Toepassings beheer hul gebruik van die Nagle-algoritme met die TCP_NODELAY-sokprogrammeringsopsie. Windows, Linux en Java-stelsels maak normaalweg gewoonlik Nagle aan. Daarom moet aansoeke wat geskryf word vir daardie omgewings, TCP_NODELAY spesifiseer wanneer die algoritme afgeskakel moet word.

beperkings

Nagle se algoritme is slegs bruikbaar met TCP. Ander protokolle insluitend UDP ondersteun dit nie.

TCP-toepassings wat 'n vinnige netwerkrespons nodig het, soos 'n Internet-telefoonoproep of eerstepersoons-shooter-speletjies, werk dalk nie goed wanneer Nagle aangeskakel is nie. Die vertragings wat veroorsaak word terwyl die algoritme ekstra tyd neem om kleiner stukke data bymekaar te voeg, kan visuele vertraging visueel op 'n skerm of in 'n digitale klankstroom aktiveer. Hierdie toepassings deaktiveer tipies Nagle.

Hierdie algoritme is oorspronklik ontwikkel in 'n tyd toe rekenaarnetwerke veel minder bandwydte ondersteun het as wat hulle vandag doen. Die voorbeeld wat hierbo beskryf is, is gebaseer op John Nagle se ervarings by Ford Aerospace in die vroeë 1980's, waar nageloffers op hul stadige, swaar gelaaide langafstandnetwerk goeie sin gemaak het. Daar is toenemend minder situasies waar netwerkprogramme vandag voordeel trek uit sy algoritme.