Isang Pangkalahatang-ideya ng Nagle Algorithm para sa TCP Network Communication

Talaan ng mga Nilalaman:

Isang Pangkalahatang-ideya ng Nagle Algorithm para sa TCP Network Communication
Isang Pangkalahatang-ideya ng Nagle Algorithm para sa TCP Network Communication
Anonim

Ang algorithm ng Nagle, na pinangalanan sa engineer na si John Nagle, ay idinisenyo upang mabawasan ang pagsisikip ng network na dulot ng maliliit na problema sa packet sa mga TCP application. Ang mga pagpapatupad ng UNIX ay nagsimulang gumamit ng Nagle algorithm noong 1980s, at nananatili itong karaniwang feature ng TCP ngayon.

Paano Gumagana ang Nagle Algorithm

Ang algorithm ng Nagle ay nagpoproseso ng data sa panig ng pagpapadala ng mga TCP application sa pamamagitan ng pamamaraang tinatawag na nagling. Nakikita nito ang mga maliliit na mensahe at iniipon ang mga mensaheng iyon sa mas malalaking TCP packet bago magpadala ng data sa wire. Iniiwasan ng prosesong ito ang pagbuo ng hindi kinakailangang malaking bilang ng maliliit na packet.

Ang teknikal na detalye para sa Nagle algorithm ay na-publish noong 1984 bilang RFC 896. Ang mga desisyon para sa kung gaano karaming data ang maiipon at kung gaano katagal maghihintay sa pagitan ng mga pagpapadala ay mahalaga sa pangkalahatang pagganap nito.

Ang Mga Benepisyo ng Nagling

Mahusay na magagamit ng Nagling ang bandwidth ng isang koneksyon sa network sa gastos ng pagdaragdag ng mga pagkaantala, o latency. Ang isang halimbawang inilarawan sa RFC 896 ay naglalarawan ng mga potensyal na benepisyo ng bandwidth at ang dahilan para sa paglikha nito:

  • Kung ang isang TCP application na humarang sa mga keyboard keystroke ay gustong ipaalam ang bawat character na tina-type sa isang receiver, maaari itong bumuo ng isang serye ng mga mensahe, bawat isa ay naglalaman ng 1 byte ng data.
  • Bago maipadala ang mga mensaheng ito sa buong network, dapat na naka-package ang bawat isa ng impormasyon ng TCP header ayon sa kinakailangan ng TCP/IP. Ang bawat header ay may sukat sa pagitan ng 20 at 60 byte.
  • Nang walang nangungulit, ang halimbawang application na ito ay bubuo ng mga mensahe sa network na binubuo ng 95 porsiyento o higit pang impormasyon ng header (hindi bababa sa 20 sa 21 byte) at 5 porsiyento o mas kaunting aktwal na data mula sa keyboard ng nagpadala. Gamit ang algorithm ng Nagle, maaaring maihatid ang parehong data gamit ang mas kaunting mga mensahe, na magreresulta sa malaking pagtitipid ng bandwidth.

Ang mga application ay kinokontrol ang kanilang paggamit ng Nagle algorithm gamit ang TCP_NODELA socket programming na opsyon. Karaniwang pinapagana ng Windows, Linux, at Java system ang Nagle bilang default. Samakatuwid, ang mga application na isinulat para sa mga environment na iyon ay kailangang tukuyin ang TCP_NODELAY upang i-off ang algorithm.

Image
Image

Limitations

Ang mga application na nangangailangan ng mabilis na pagtugon sa network, tulad ng mga video call at online gaming, ay maaaring hindi gumana nang maayos kapag naka-enable ang Nagle. Ang mga pagkaantala na dulot habang ang algorithm ay tumatagal ng dagdag na oras upang mag-assemble ng mas maliliit na chunks ng data ay maaaring mag-trigger ng kapansin-pansing lag sa isang screen o sa isang digital audio stream. Karaniwang hindi pinapagana ng mga naturang application ang Nagle.

Ang algorithm na ito ay orihinal na binuo sa panahon na ang mga computer network ay sumusuporta sa mas kaunting bandwidth kaysa sa ngayon. Ang halimbawang inilarawan sa itaas ay batay sa mga karanasan ni John Nagle sa Ford Aerospace noong unang bahagi ng 1980s, kung saan ang mabagal, mabigat na load, at malayuang network ng Ford ay naging makabuluhan. Mas kakaunti ang mga sitwasyon ngayon kung saan maaaring makinabang ang mga network application mula sa kanyang algorithm.

Ang Nagle algorithm ay magagamit lamang sa TCP. Hindi ito sinusuportahan ng ibang mga protocol, gaya ng UDP.

Inirerekumendang: