Pentru OpenBSD a fost implementată o configurare care include modul TCP_NODELAY pentru întreaga sistem.

Job Snijders, un dezvoltator renumit OpenBSD, lider al uneia dintre comitetele IETF (Internet Engineering Task Force), autor a 11 RFC-uri legate de rutare și RPKI, și creator al IRRd (Internet Routing Registry Daemon), a publicat un set de patch-uri pentru OpenBSD care adaugă un nou parametru sysctl „net.inet.tcp.nodelay” pentru dezactivarea algoritmului Nagle la nivel de sistem. Acest parametru scapă dezvoltatorii aplicațiilor de obligația de a seta flag-ul TCP_NODELAY pentru socket-uri individuale.

Algoritmul Nagle este utilizat pentru agregarea mesajelor mici cu scopul de a reduce traficul. Algoritmul suspendă trimiterea de noi segmente TCP până la primirea confirmării pentru datele trimise anterior sau până la atingerea unui timeout. De exemplu, fără aplicarea agregării, la trimiterea a 1 byte, se trimit suplimentar 40 bytes cu antetele TCP și IP ale pachetului, iar cu aplicarea algoritmului Nagle — mesajele trimise până la primirea confirmării din partea laterală îndepărtată sunt acumulate și trimise într-un singur pachet. Din cauza optimizării „delayed ACK”, care întârzie trimiterea pachetelor ACK, semnalul prin pachetele de confirmare nu funcționează de fapt, iar trimiterea mesajelor acumulate se face la atingerea timeout-ului.

Snijders este de părere că, în realitățile moderne, algoritmul Nagle, dezvoltat în vremurile când mai mulți utilizatori concurau pentru o lățime de bandă de 1200 baud, este depășit și în rețelele de mare viteză este mai dăunător decât util. Recent, o poziție similară a fost exprimată și de Marc Brooker de la Amazon Web Services (AWS). Argumentele în favoarea dezactivării algoritmului Nagle în mod implicit pot fi găsite într-un articol publicat acum câteva zile.

Pentru dezactivarea algoritmului Nagle există opțiunea TCP_NODELAY, care poate fi setată pentru socket-uri de rețea individuale. Modul TCP_NODELAY a fost utilizat de mult timp în multe aplicații OpenBSD, printre care openssh, httpd, iscsid, relayd, bgpd și unwind, iar, în opinia lui Snijders, a sosit momentul să se ofere posibilitatea activării acestuia pentru toate socket-urile TCP la nivel de sistem. Snijders sugerează, de asemenea, discutarea activării TCP_NODELAY în mod implicit și mutarea algoritmului Nagle în categoria opțiunilor discrete disponibile.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster