Voor OpenBSD is een configuratie geïmplementeerd die de TCP_NODELAY-modus voor het hele systeem inschakelt

Job Snijders, een gerenommeerde ontwikkelaar van OpenBSD en hoofd van een van de commissies binnen de IETF (Internet Engineering Task Force), auteur van 11 RFC's gerelateerd aan routering en RPKI, en maker van IRRd (Internet Routing Registry Daemon), heeft een set patches gepubliceerd voor OpenBSD die een nieuwe sysctl-parameter "net.inet.tcp.nodelay" toevoegt om het Nagle-algoritme op systeemniveau uit te schakelen. Deze parameter bevrijdt ontwikkelaars van applicaties van de noodzaak om de TCP_NODELAY-vlag voor individuele sockets in te stellen.

Het Nagle-algoritme wordt gebruikt voor het aggregeren van kleine berichten om de verkeer te verminderen. Het algoritme stopt de verzending van nieuwe TCP-segmenten totdat er een bevestiging is ontvangen voor de eerder verzonden gegevens of totdat een timeout optreedt. Bijvoorbeeld, zonder het gebruik van aggregatie, wanneer 1 byte wordt verzonden, worden er nog eens 40 bytes met TCP- en IP-kopteksten van het pakket verzonden, terwijl met het Nagle-algoritme de berichten die vóór de bevestiging van de externe kant zijn verzonden, worden verzameld en in één pakket worden verzonden. Vanwege de optimalisatie "delayed ACK", die de verzending van ACK-pakketten vertraagt, werkt het signaal via bevestigingspakketten in feite niet, en de verzending van de verzamelde berichten vindt plaats bij het optreden van een timeout.

Snijders is van mening dat het Nagle-algoritme, dat is ontwikkeld in een tijd waarin meerdere gebruikers concurreerden om de bandbreedte van 1200 baud, verouderd is in de hoog-snelheidsnetwerken en meer schade dan voordeel oplevert. Onlangs heeft Marc Brooker van Amazon Web Services (AWS) ook soortgelijke opmerkingen gemaakt. De argumenten voor het standaard uitschakelen van het Nagle-algoritme zijn te vinden in een onlangs gepubliceerde opmerking.

Om het Nagle-algoritme uit te schakelen, is er de optie TCP_NODELAY, die kan worden ingesteld voor individuele netwerk-sockets. De TCP_NODELAY-modus wordt al lang ingesteld in veel OpenBSD-applicaties, waaronder openssh, httpd, iscsid, relayd, bgpd en unwind, en volgens Snijders is het tijd om de mogelijkheid te bieden deze in te schakelen voor alle TCP-sockets op systeemniveau. Snijders stelt ook voor om de mogelijkheid van standaard inschakeling van TCP_NODELAY te bespreken en het Nagle-algoritme te verplaatsen naar de categorie van afzonderlijke in te schakelen opties.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster