Eu estava lendo o manual httpd do Apache on - line e me deparei com uma diretiva para permitir isso. Encontrou uma descrição na página de manual para tcp
:
TCP_DEFER_ACCEPT (since Linux 2.4)
Allow a listener to be awakened only when data arrives on the
socket. Takes an integer value (seconds), this can bound the
maximum number of attempts TCP will make to complete the
connection. This option should not be used in code intended
to be portable.
Encontrei este artigo, mas ainda não estou claro para que tipo de carga de trabalho isso seria útil. Estou assumindo que, se httpd
houver uma opção específica para isso, ela deve ter alguma relevância para os servidores web. Também estou assumindo que é uma opção e não apenas como httpd
as conexões de rede, que existem casos de uso em que você deseja e outros em que não.
Mesmo depois de ler o artigo, não tenho certeza de qual seria a vantagem de esperar pelo aperto de mão de três vias. Seria vantajoso garantir que não seja necessário trocar a httpd
instância relevante , enquanto o handshake ainda está em andamento, em vez de potencialmente causar esse atraso após a formação de uma conexão.
Para o artigo, também me parece que, independentemente do TCP_DEFER_ACCEPT
status de um soquete, você ainda precisará de quatro pacotes (aperto de mão e dados em cada caso). Não sei como eles diminuem a contagem para três, nem como isso fornece uma melhoria significativa.
Portanto, minha pergunta é basicamente: essa é apenas uma opção obsoleta antiga ou existe um caso de uso real para essa opção?