O prezentare generală a algoritmului Nagle pentru comunicarea în rețea TCP

Cuprins:

O prezentare generală a algoritmului Nagle pentru comunicarea în rețea TCP
O prezentare generală a algoritmului Nagle pentru comunicarea în rețea TCP
Anonim

Algoritmul Nagle, numit după inginerul John Nagle, a fost conceput pentru a reduce congestionarea rețelei cauzată de mici probleme de pachete cu aplicațiile TCP. Implementările UNIX au început să utilizeze algoritmul Nagle în anii 1980 și rămâne o caracteristică standard a TCP astăzi.

Cum funcționează algoritmul Nagle

Algoritmul Nagle procesează datele din partea de trimitere a aplicațiilor TCP printr-o metodă numită nagling. Detectează mesajele de dimensiuni mici și acumulează aceste mesaje în pachete TCP mai mari înainte de a trimite date prin cablu. Acest proces evită generarea unui număr inutil de mare de pachete mici.

Specificația tehnică pentru algoritmul Nagle a fost publicată în 1984 ca RFC 896. Deciziile privind cât de multe date să acumuleze și cât timp să aștepte între trimiteri sunt esențiale pentru performanța sa generală.

Beneficiile Nagling

Nagling poate utiliza eficient lățimea de bandă a unei conexiuni de rețea în detrimentul adăugării de întârzieri sau latență. Un exemplu descris în RFC 896 ilustrează potențialele beneficii ale lățimii de bandă și motivul creării sale:

  • Dacă o aplicație TCP care interceptează tastele de la tastatură dorește să comunice unui receptor fiecare caracter tastat, poate genera o serie de mesaje, fiecare conținând 1 octet de date.
  • Înainte ca aceste mesaje să poată fi trimise în rețea, fiecare trebuie să fie împachetat cu informații de antet TCP, conform cerințelor TCP/IP. Dimensiunea fiecărui antet variază între 20 și 60 de octeți.
  • Fără a zâmbi, acest exemplu de aplicație ar genera mesaje de rețea constând din 95 la sută sau mai multe informații de antet (cel puțin 20 din 21 de octeți) și 5 la sută sau mai puțin date reale de la tastatura expeditorului. Folosind algoritmul Nagle, aceleași date ar putea fi livrate folosind mai puține mesaje, ceea ce duce la economii mari de lățime de bandă.

Aplicațiile controlează utilizarea algoritmului Nagle cu opțiunea de programare a soclului TCP_NODELA. Sistemele Windows, Linux și Java activează în mod implicit Nagle. Prin urmare, aplicațiile scrise pentru acele medii trebuie să specifice TCP_NODELAY pentru a dezactiva algoritmul.

Image
Image

Limitări

Aplicațiile care necesită un răspuns rapid în rețea, cum ar fi apelurile video și jocurile online, pot să nu funcționeze bine când Nagle este activat. Întârzierile cauzate în timp ce algoritmul necesită mai mult timp pentru a asambla bucăți mai mici de date pot declanșa un decalaj vizibil vizibil pe un ecran sau într-un flux audio digital. Astfel de aplicații dezactivează de obicei Nagle.

Acest algoritm a fost dezvoltat inițial într-o perioadă în care rețelele de computere acceptau mai puțină lățime de bandă decât în prezent. Exemplul descris mai sus s-a bazat pe experiențele lui John Nagle la Ford Aerospace la începutul anilor 1980, în care compromisurile neplăcute pe rețeaua lentă, puternic încărcată și pe distanțe lungi a Ford avea sens. Există din ce în ce mai puține situații astăzi în care aplicațiile de rețea pot beneficia de algoritmul său.

Algoritmul Nagle este utilizabil numai cu TCP. Alte protocoale, cum ar fi UDP, nu îl acceptă.

Recomandat: