Últimamente, nos hemos dado cuenta de un problema de conexión TCP que se limita principalmente a los usuarios de Mac y Linux que navegan por nuestros sitios web.
Desde la perspectiva del usuario, se presenta como un tiempo de conexión muy largo con nuestros sitios web (> 11 segundos).
Hemos logrado rastrear la firma técnica de este problema, pero no podemos entender por qué está sucediendo o cómo solucionarlo.
Básicamente, lo que sucede es que la máquina del cliente está enviando el paquete SYN para establecer la conexión TCP y el servidor web lo recibe, pero no responde con el paquete SYN / ACK. Después de que el cliente ha enviado muchos paquetes SYN, el servidor finalmente responde con un paquete SYN / ACK y todo está bien para el resto de la conexión.
Y, por supuesto, la patada al problema: es intermitente y no ocurre todo el tiempo (aunque ocurre entre el 10 y el 30% del tiempo)
Estamos utilizando Fedora 12 Linux como sistema operativo y Nginx como servidor web.
Captura de pantalla del análisis de Wirehark
Actualizar:
Desactivar el escalado de la ventana en el cliente detuvo el problema. Ahora solo necesito una resolución del lado del servidor (no podemos hacer que todos los clientes hagan esto) :)
Actualización final:
La solución fue desactivar el escalado de ventanas TCP y las marcas de tiempo TCP en nuestros servidores que son accesibles al público.