Notificare explicită de congestie

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 19 noiembrie 2019; verificarea necesită 1 editare .

Notificarea explicită de congestionare ( ECN , din  engleză  -  „Notificare explicită de congestie”) este o extensie a protocolului IP descris în RFC 3168 . ECN permite ambelor părți ale rețelei să știe când are loc o congestie pe ruta către o anumită gazdă sau o rețea, fără a pierde pachete. Aceasta este o caracteristică opțională care este utilizată numai atunci când ambele puncte finale de comunicare indică faptul că doresc să o utilizeze.

Concepte de bază

De obicei, gazdele din rețelele TCP/IP raportează congestie prin eliminarea pachetelor. Dacă o sesiune ECN este stabilită cu succes, routerele activate pentru ECN pot semnala începutul congestiei prin setarea de biți în antetul IP, mai degrabă decât prin eliminarea pachetelor. Receptorul pachetelor informează expeditorul despre congestie, care ar trebui să reacționeze ca și cum ar fi fost detectat un pachet scăpat.

ECN folosește doi biți în regiunea DiffServ din antetul IP , pentru IPv4 în octetul TOS și în IPv6 în octetul clasei de transfer al pachetului. Acești doi biți pot fi utilizați pentru a fi setați la una dintre următoarele valori:

Unele echipamente de rețea vechi sau de testare vor renunța la pachete cu biți ECN setați în loc să le ignore [1] .

Utilizare

Utilizarea ECN necesită suportul acestuia la nivelul transportului.

Utilizare în TCP/IP

În plus față de cei doi biți ECN din antetul IP, TCP utilizează două steaguri de antet TCP pentru a semnala o congestie către expeditor și pentru a reduce cantitatea de informații pe care o trimite.

Utilizarea ECN în conexiunile TCP este opțională.

Utilizare în alte protocoale de transport

Extensia ECN este definită și pentru alte protocoale de nivel de transport care efectuează controlul congestiei rețelei, în special DCCP și SCTP . Utilizarea generală este similară cu TCP, deși detaliile de codificare sunt diferite.

În principiu, puteți utiliza extensia ECN cu protocoale care se află la nivelurile de deasupra UDP . Cu toate acestea, UDP necesită ca controlul congestiei să se facă la nivel de aplicație, iar capabilitățile actuale ale aplicației pentru rețele nu le permit accesul la biții ECN.

Performanță

Utilizarea ECN este eficientă numai în combinație cu o politică de management activ al cozilor (AQM), iar utilitatea ECN depinde de utilizarea corectă a AQM.

Din punct de vedere empiric, s-a constatat că ECN are un efect negativ asupra performanței unei rețele puternic congestionate dacă sunt utilizați algoritmi AQM care nu aruncă niciodată pachete [2] . Implementările moderne ale AQM evită această problemă, înlocuind marcarea pachetelor cu eliminarea acestora în caz de congestie critică.

Implementare

Multe implementări moderne ale protocolului TCP/IP au suport ECN, dar de obicei sunt livrate cu ECN dezactivat.

Suport server

Windows Server 2008 și Windows Vista acceptă extensia ECN, dar este dezactivată implicit [3] . Suportul ECN poate fi activat cu următoarea comandă:

netsh interface tcp set global ecncapability=enabled

Mac OS X 10.5 acceptă ECN în mod implicit. Managementul se face folosind interfața sysctl [4]  :

net.inet.tcp.ecn_negotiate_in net.inet.tcp.ecn_initiate_out

Nucleul Linux acceptă extensia ECN de ceva timp, dar este dezactivat implicit. În majoritatea versiunilor de kernel, acesta poate fi activat prin interfața Sysctl  :

sysctl net.ipv4.tcp_ecn=1

FreeBSD 8.0 acceptă extensia ECN. Poate fi activat prin interfața Sysctl :

sysctl net.inet.tcp.ecn.enable=1

Suport pe routere

Marcarea câmpurilor ECN de către routere depinde într-o anumită formă de coada activă . Routerele trebuie să fie configurate corespunzător pentru a marca câmpurile ECN.

Routerele Cisco IOS efectuează etichetare ECN dacă WRED este configurat începând cu Versiunea 12.2(8)T.

Note

  1. Măsurarea interacțiunilor dintre protocoalele de transport și cutiile de mijloc. Alberto Medina, Mark Allman și Sally Floyd. Internet Measurement Conference 2004, august 2004.
  2. Aleksandar Kuzmanovic. Puterea notificării explicite de congestie. În Proceedings of the 2005 Conference on Applications, technologies, architectures, and protocoals for computer communications . 2005
  3. „Noi funcții de rețea în Windows Server 2008 și Windows Vista” (downlink) . Arhivat din original pe 15 aprilie 2012. 
  4. „ECN (Explicit Congestion Notification) în TCP/IP” (downlink) . Arhivat din original pe 15 aprilie 2012. 

Vezi și

Link -uri