Pregled Nagle algoritma za TCP mrežnu komunikaciju

Sadržaj:

Pregled Nagle algoritma za TCP mrežnu komunikaciju
Pregled Nagle algoritma za TCP mrežnu komunikaciju
Anonim

Nagleov algoritam, nazvan po inženjeru Johnu Nagleu, dizajniran je za smanjenje zagušenja mreže uzrokovanog problemima malih paketa s TCP aplikacijama. Implementacije UNIX-a počele su koristiti Nagle algoritam 1980-ih, a on je i danas ostao standardna značajka TCP-a.

Kako radi Nagleov algoritam

Nagle algoritam obrađuje podatke na strani slanja TCP aplikacija metodom koja se zove nagling. Otkriva male poruke i akumulira te poruke u veće TCP pakete prije slanja podataka preko žice. Ovaj proces izbjegava stvaranje nepotrebno velikog broja malih paketa.

Tehnička specifikacija za Nagleov algoritam objavljena je 1984. kao RFC 896. Odluke o tome koliko podataka akumulirati i koliko dugo čekati između slanja kritične su za njegovu ukupnu izvedbu.

Prednosti zanovijetanja

Nagling može učinkovito iskoristiti propusnost mrežne veze nauštrb dodavanja kašnjenja ili latencije. Primjer opisan u RFC 896 ilustrira potencijalne prednosti propusnosti i razlog za njegovu izradu:

  • Ako TCP aplikacija koja presreće pritiske na tipkovnici želi prenijeti svaki znak koji se upisuje primatelju, može generirati niz poruka, od kojih svaka sadrži 1 bajt podataka.
  • Prije nego što se ove poruke mogu poslati preko mreže, svaka od njih mora biti zapakirana s informacijama TCP zaglavlja prema zahtjevima TCP/IP-a. Veličina svakog zaglavlja je između 20 i 60 bajtova.
  • Bez zanovijetanja, ovaj bi primjer aplikacije generirao mrežne poruke koje se sastoje od 95 posto ili više informacija u zaglavlju (najmanje 20 od 21 bajta) i 5 posto ili manje stvarnih podataka s pošiljateljeve tipkovnice. Korištenjem Nagle algoritma, isti podaci mogu se isporučiti uz manje poruka, što rezultira velikom uštedom propusnosti.

Aplikacije kontroliraju svoju upotrebu Nagle algoritma s opcijom programiranja utičnice TCP_NODELA. Windows, Linux i Java sustavi obično omogućuju Nagle prema zadanim postavkama. Stoga aplikacije napisane za ta okruženja moraju navesti TCP_NODELAY da bi se algoritam isključio.

Image
Image

Ograničenja

Aplikacije koje zahtijevaju brz odgovor mreže, poput videopoziva i igranja na mreži, možda neće dobro raditi kada je Nagle omogućen. Kašnjenja uzrokovana dok je algoritmu potrebno dodatno vrijeme za sastavljanje manjih dijelova podataka mogu izazvati vidljivo kašnjenje na zaslonu ili u digitalnom audio streamu. Takve aplikacije obično onemogućuju Nagle.

Ovaj algoritam izvorno je razvijen u vrijeme kada su računalne mreže podržavale manju propusnost nego danas. Gore opisani primjer temeljio se na iskustvima Johna Naglea u Ford Aerospaceu ranih 1980-ih, gdje su mučni kompromisi s Fordovom sporom, teško opterećenom mrežom na velikim udaljenostima imali smisla. Danas je sve manje situacija u kojima mrežne aplikacije mogu imati koristi od njegovog algoritma.

Nagle algoritam se može koristiti samo s TCP-om. Drugi protokoli, kao što je UDP, ga ne podržavaju.

Preporučeni: