Ang Nagle Algorithm para sa TCP Network Communication

Ang Nagle algorithm , na pinangalanang pagkatapos ng engineer na si John Nagle, ay idinisenyo upang bawasan ang kasikipan ng network na dulot ng "mga maliliit na packet problem" sa mga aplikasyon ng TCP . Nagsimula ang pagpapatupad ng UNIX gamit ang algorithm ng Nagle noong dekada 1980, at nananatili itong karaniwang tampok ng TCP ngayon.

Paano gumagana ang Nagle Algorithm

Ang algorithm ng Nagle ay nagpoproseso ng data sa pagpapadala ng bahagi ng mga aplikasyon ng TCP sa pamamagitan ng isang pamamaraan na tinatawag na nagling . Nakikita nito ang mga maliliit na mensahe at naipon ang mga ito sa mas malaking mga packet ng TCP bago magpadala ng data sa kabuuan ng kawad, at sa gayon pag-iwas sa henerasyon ng mga hindi kailangang malaking bilang ng mga maliliit na packet. Ang teknikal na detalye para sa algorithm ng Nagle ay na-publish noong 1984 bilang RFC 896. Ang mga desisyon para sa maraming data na maipon at kung gaano katagal maghintay sa pagitan ng pagpapadala ay kritikal sa pangkalahatang pagganap nito.

Maaaring mas mahusay na magagamit ang Nagling ang bandwidth ng isang koneksyon sa network sa gastos ng pagdaragdag ng mga pagkaantala ( latency ). Ang isang halimbawa na inilarawan sa RFC 896 ay naglalarawan ng mga potensyal na bandwidth na benepisyo at ang dahilan para sa paglikha nito:

Kinokontrol ng mga application ang kanilang paggamit ng algorithm ng Nagle gamit ang opsyon sa TCP_NODELAY programming module. Ang lahat ng mga sistema ng Windows, Linux, at Java ay karaniwang nagagamit ang Nagle sa pamamagitan ng default, kaya ang mga application na isinulat para sa mga environment na kailangan upang tukuyin ang TCP_NODELAY kapag gustong lumipat ang algorithm.

Mga Limitasyon

Ang algorithm ng Nagle ay magagamit lamang sa TCP. Ang iba pang mga protocol kabilang ang UDP ay hindi sinusuportahan ito.

Ang mga aplikasyon ng TCP na nangangailangan ng mabilis na pagtugon sa network, tulad ng pagtawag sa telepono sa internet o mga laro ng tagabaril ng unang tao, ay maaaring hindi gumana nang maayos kapag nagagamit ang Nagle. Ang mga pagkaantala na sanhi habang ang algorithm ay tumatagal ng dagdag na oras upang magtipon ng mas maliliit na chunks ng data magkasama ay maaaring mag-trigger ng kapansin-pansin lag visual na sa isang screen o sa isang digital audio stream. Ang mga application na ito ay karaniwang hindi paganahin ang Nagle.

Ang algorithm na ito ay orihinal na binuo sa isang pagkakataon kapag sinusuportahan ng mga network ng computer ang mas kaunting bandwidth kaysa sa ginagawa nila ngayon. Ang halimbawa na inilarawan sa itaas ay batay sa mga karanasan ni John Nagle sa Ford Aerospace noong unang bahagi ng dekada ng 1980, kung saan ang pagling ng tradeoffs sa kanilang mabagal, mabigat na na-load na long distance network ay may mabuting kahulugan. May mga mas kaunting mga sitwasyon kung saan ang mga application ng network ay maaaring makinabang mula sa kanyang algorithm ngayon.