Para o OpenBSD, foi implementada uma configuração que inclui o modo TCP_NODELAY para todo o sistema.

Job Snijders, um renomado desenvolvedor do OpenBSD, líder de um dos comitês da IETF (Internet Engineering Task Force), autor de 11 RFCs relacionados à roteamento e RPKI, e criador do IRRd (Internet Routing Registry Daemon), publicou um conjunto de patches para o OpenBSD que adiciona um novo parâmetro sysctl "net.inet.tcp.nodelay" para desativar o algoritmo de Nagle em todo o sistema. Esse parâmetro libera os desenvolvedores de aplicativos de precisarem definir a flag TCP_NODELAY para cada socket individualmente.

O algoritmo de Nagle é utilizado para agrupar pequenas mensagens com o objetivo de reduzir o tráfego. Ele suspende o envio de novos segmentos TCP até a recepção de uma confirmação de que os dados anteriormente enviados foram recebidos, ou até que um timeout ocorra. Por exemplo, sem o uso de agrupamento, ao enviar 1 byte, mais 40 bytes são enviados junto com os cabeçalhos TCP e IP do pacote. Com a aplicação do algoritmo de Nagle, as mensagens enviadas antes da recepção da confirmação do lado remoto são acumuladas e enviadas em um único pacote. Devido à otimização "delayed ACK", que retarda o envio de pacotes ACK, o sinal através dos pacotes de confirmação, na prática, não funciona, e o envio das mensagens acumuladas ocorre quando o timeout é alcançado.

Snijders acredita que, nas condições atuais, o algoritmo de Nagle, desenvolvido em uma época em que diversos usuários competiam por uma largura de banda de 1200 bps, está obsoleto e em redes de alta velocidade traz mais danos do que benefícios. Recentemente, uma posição similar foi expressa por Marc Brooker da Amazon Web Services (AWS). Os argumentos a favor da desativação do algoritmo de Nagle por padrão podem ser encontrados em uma nota divulgada há alguns dias.

Para desativar o algoritmo de Nagle, existe a opção TCP_NODELAY, que pode ser configurada para sockets de rede individuais. O modo TCP_NODELAY já é amplamente utilizado em muitas aplicações do OpenBSD, incluindo openssh, httpd, iscsid, relayd, bgpd e unwind, e, segundo Snijders, chegou o momento de proporcionar a possibilidade de sua ativação para todos os sockets TCP em nível de sistema. Snijders também sugere discutir a adoção do TCP_NODELAY por padrão e a transformação do algoritmo de Nagle em uma opção ativa separada.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster