Ultimamente, tomamos conhecimento de um problema de conexão TCP que se limita principalmente a usuários de Mac e Linux que navegam em nossos sites.
Do ponto de vista do usuário, ele se apresenta como um tempo de conexão muito longo para nossos sites (> 11 segundos).
Conseguimos rastrear a assinatura técnica desse problema, mas não conseguimos descobrir por que isso está acontecendo ou como corrigi-lo.
Basicamente, o que está acontecendo é que a máquina do cliente está enviando o pacote SYN para estabelecer a conexão TCP e o servidor da Web a recebe, mas não responde com o pacote SYN / ACK. Depois que o cliente enviou muitos pacotes SYN, o servidor finalmente responde com um pacote SYN / ACK e tudo fica bem pelo restante da conexão.
E, claro, o pontapé inicial do problema: é intermitente e não acontece o tempo todo (embora ocorra entre 10 a 30% do tempo)
Estamos usando o Fedora 12 Linux como sistema operacional e o Nginx como servidor da web.
Captura de tela da análise do wireshark
Atualizar:
Desativar o dimensionamento da janela no cliente interrompeu o problema. Agora eu só preciso de uma resolução do lado do servidor (não podemos fazer com que todos os clientes façam isso) :)
Atualização final:
A solução foi desativar o dimensionamento da janela TCP e os registros de data e hora do TCP em nossos servidores acessíveis ao público.