TCP tinklo ryšio Nagle algoritmo apžvalga

Turinys:

TCP tinklo ryšio Nagle algoritmo apžvalga
TCP tinklo ryšio Nagle algoritmo apžvalga
Anonim

Nagle algoritmas, pavadintas inžinieriaus Johno Nagle'o vardu, buvo sukurtas siekiant sumažinti tinklo perkrovą, kurią sukelia mažos TCP programų paketų problemos. UNIX diegimas pradėtas naudoti Nagle algoritmą devintajame dešimtmetyje, ir šiandien jis išlieka standartine TCP funkcija.

Kaip veikia Nagle algoritmas

Nagle algoritmas apdoroja duomenis TCP taikomųjų programų siuntimo pusėje metodu, vadinamu naglingu. Jis aptinka mažo dydžio pranešimus ir kaupia juos į didesnius TCP paketus prieš siųsdamas duomenis per laidą. Šis procesas leidžia išvengti bereikalingai didelio mažų paketų skaičiaus generavimo.

Techninė Nagle algoritmo specifikacija buvo paskelbta 1984 m. kaip RFC 896. Sprendimai, kiek duomenų sukaupti ir kiek laiko laukti tarp siuntimų, yra labai svarbūs bendram jo veikimui.

Nagling privalumai

Nagling gali efektyviai išnaudoti tinklo ryšio pralaidumą, padidindama delsą arba delsą. RFC 896 aprašytas pavyzdys iliustruoja galimą pralaidumo naudą ir jo sukūrimo priežastį:

  • Jei TCP programa, perimanti klaviatūros klavišų paspaudimus, nori perduoti kiekvieną įvedamą simbolį imtuvui, ji gali sugeneruoti pranešimų seriją, kurių kiekviename yra 1 baitas duomenų.
  • Kad šie pranešimai būtų siunčiami tinkle, kiekvienas iš jų turi būti supakuotas su TCP antraštės informacija, kaip reikalauja TCP/IP. Kiekvienos antraštės dydis svyruoja nuo 20 iki 60 baitų.
  • Be niurzgimo ši pavyzdinė programa generuotų tinklo pranešimus, sudarytus iš 95 procentų ar daugiau antraštės informacijos (bent 20 iš 21 baitų) ir 5 procentus ar mažiau faktinių duomenų iš siuntėjo klaviatūros. Naudojant „Nagle“algoritmą, tie patys duomenys gali būti pateikiami naudojant mažiau pranešimų, todėl sutaupoma daug pralaidumo.

Programos kontroliuoja Nagle algoritmo naudojimą su TCP_NODELA lizdo programavimo parinktimi. „Windows“, „Linux“ir „Java“sistemos paprastai įgalina „Nagle“pagal numatytuosius nustatymus. Todėl toms aplinkoms parašytose programose reikia nurodyti TCP_NODELAY, kad išjungtų algoritmą.

Image
Image

Apribojimai

Programos, kurioms reikalingas greitas tinklo atsakas, pvz., vaizdo skambučiai ir internetiniai žaidimai, gali neveikti gerai, kai įjungta „Nagle“. Delsimas, atsirandantis, kol algoritmas užtrunka daugiau laiko surinkti mažesnius duomenų gabalus, gali sukelti pastebimą vėlavimą vizualiai ekrane arba skaitmeniniame garso sraute. Tokios programos paprastai išjungia „Nagle“.

Šis algoritmas iš pradžių buvo sukurtas tuo metu, kai kompiuterių tinklai palaikė mažesnį pralaidumą nei šiandien. Aukščiau aprašytas pavyzdys buvo pagrįstas Johno Nagle'o patirtimi „Ford Aerospace“devintojo dešimtmečio pradžioje, kai lėtas, labai apkrautas „Ford“tolimųjų atstumų tinklas buvo prasmingas. Šiandien vis mažiau situacijų, kai tinklo programos gali pasinaudoti jo algoritmu.

Nagle algoritmą galima naudoti tik su TCP. Kiti protokolai, pvz., UDP, jo nepalaiko.

Rekomenduojamas: