Algoritmi Nagle për Komunikimin e Rrjetit TCP

Algoritmi Nagle , i quajtur me emrin inxhinier John Nagle, u hartua për të zvogëluar bllokimin e rrjetit të shkaktuar nga "problemet e vogla të paketave" me aplikimet TCP . Implementimet UNIX filluan të përdorin algoritmin e Nagle-it në vitet 1980, dhe mbetet një tipar standard i TCP sot.

Si funksionon algoritmi i Nagle-it

Algoritmi i Nagle përpunon të dhënat në anën e dërgimit të aplikacioneve TCP me një metodë të quajtur nagling . Zbulon mesazhe të vogla dhe i grumbullon ato në pako më të mëdha TCP përpara se të dërgojë të dhëna nëpër tela, duke shmangur kështu prodhimin e një numri të panevojshëm të paketave të vogla. Specifikimi teknik për algoritmin e Nagle u botua në vitin 1984 si RFC 896. Vendimet për shumë të dhëna për të grumbulluar dhe për sa kohë duhet të presin mes dërgimeve janë kritike për performancën e saj të përgjithshme.

Nagling mund të përdorë në mënyrë më efikase bandwidth e një lidhje të rrjetit në kurriz të shtimit të vonesave ( latente ). Një shembull i përshkruar në RFC 896 ilustron përfitimet potenciale të bandës dhe arsyeja për krijimin e saj:

Aplikacionet kontrollojnë përdorimin e tyre të algoritmit Nagle me opsionin e programimit TCP_NODELAY socket . Sistemet Windows, Linux dhe Java të gjitha normalisht mundësojnë Nagle-in me paracaktim, kështu që aplikacionet e shkruara për ato mjedise duhet të specifikojnë TCP_NODELAY kur dëshirojnë të ndërrojnë algoritmin.

kufizimet

Algoritmi i Nagle-it është i përdorshëm vetëm me TCP. Protokollet e tjera duke përfshirë UDP nuk e mbështesin atë.

Aplikacionet TCP që kanë nevojë për përgjigje të shpejtë të rrjetit, si thirrjet telefonike në Internet ose lojërat e parë të personave, mund të mos funksionojnë mirë kur Nagle është aktivizuar. Vonesat e shkaktuara kur algoritmi merr kohë shtesë për të grumbulluar grupe të vogla të të dhënave së bashku mund të shkaktojë vonesë të dukshme vizuale në një ekran ose në një transmetim dixhital audio. Këto aplikacione zakonisht çaktivizojnë Nagle.

Ky algoritëm u zhvillua fillimisht në një kohë kur rrjetet kompjuterike mbështetën bandwidth shumë më pak se sa ata sot. Shembulli i përshkruar më sipër ishte bazuar në përvojat e John Nagle në Ford Hapësirë ​​ajrore në fillim të viteve 1980, ku tregjet e ngushta në rrjetin e tyre të ngadaltë dhe të ngarkuar me rreze të gjatë kishin një kuptim të mirë. Ka gjithnjë e më pak situata ku aplikimet e rrjetit mund të përfitojnë nga algoritmi i tij sot.