Pour OpenBSD, un paramétrage a été mis en place, incluant le mode TCP_NODELAY pour l'ensemble du système.

Job Snijders, développeur renommé d'OpenBSD, responsable d'un des comités de l'IETF (Internet Engineering Task Force), auteur de 11 RFC liés au routage et à RPKI, ainsi que créateur d'IRRd (Internet Routing Registry Daemon), a publié un ensemble de patches pour OpenBSD ajoutant un nouveau paramètre sysctl « net.inet.tcp.nodelay » pour désactiver l'algorithme de Nagle au niveau du système entier. Ce paramètre libère les développeurs d'applications de définir le drapeau TCP_NODELAY pour chaque socket.

L'algorithme de Nagle est utilisé pour agréger de petits messages afin de réduire le trafic. L'algorithme suspend l'envoi de nouveaux segments TCP jusqu'à la réception d'une confirmation de réception des données précédemment envoyées ou jusqu'à l'expiration d'un délai. Par exemple, sans agrégation, l'envoi de 1 octet entraîne l'envoi supplémentaire de 40 octets avec les en-têtes TCP et IP, tandis qu'avec l'algorithme de Nagle, les messages envoyés avant la réception de la confirmation de la partie distante sont accumulés et envoyés en un seul paquet. En raison de l'optimisation « delayed ACK », qui retarde l'envoi des paquets ACK, le signal via les paquets de confirmation ne fonctionne en réalité pas, et l'envoi des messages accumulés se fait lors de l'expiration du délai.

Snijders est d'avis que, dans les réalités modernes, l'algorithme de Nagle, développé à une époque où plusieurs utilisateurs luttaient pour une bande passante de 1200 bps, est obsolète et dans les réseaux à haut débit est plus nuisible que bénéfique. Récemment, Marc Brooker d'Amazon Web Services (AWS) a également exprimé un avis similaire. Les arguments en faveur de la désactivation par défaut de l'algorithme de Nagle peuvent être consultés dans un article publié il y a quelques jours.

Pour désactiver l'algorithme de Nagle, une option TCP_NODELAY est disponible, qui peut être définie pour des sockets réseau individuels. Le mode TCP_NODELAY est déjà utilisé depuis longtemps dans de nombreuses applications OpenBSD, notamment openssh, httpd, iscsid, relayd, bgpd et unwind, et, selon Snijders, il est temps de permettre son activation pour tous les sockets TCP au niveau du système entier. Snijders propose également de discuter de la question de l'activation de TCP_NODELAY par défaut et de considérer l'algorithme de Nagle comme une option distincte activable.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster