In letzter Zeit sind wir auf ein TCP-Verbindungsproblem aufmerksam geworden, das sich hauptsächlich auf Mac- und Linux-Benutzer beschränkt, die auf unseren Websites surfen.
Aus Benutzersicht ergibt sich eine sehr lange Verbindungszeit zu unseren Websites (> 11 Sekunden).
Wir haben es geschafft, die technische Signatur dieses Problems zu finden, können aber nicht herausfinden, warum es passiert oder wie es behoben werden kann.
Grundsätzlich passiert, dass der Client das SYN-Paket sendet, um die TCP-Verbindung herzustellen, und der Webserver es empfängt, aber nicht mit dem SYN / ACK-Paket antwortet. Nachdem der Client viele SYN-Pakete gesendet hat, antwortet der Server schließlich mit einem SYN / ACK-Paket und für den Rest der Verbindung ist alles in Ordnung.
Und natürlich der Kicker des Problems: Es tritt nur sporadisch auf und kommt nicht immer vor (obwohl es in 10-30% der Fälle vorkommt).
Wir verwenden Fedora 12 Linux als Betriebssystem und Nginx als Webserver.
Screenshot der Wireshark-Analyse
Aktualisieren:
Das Deaktivieren der Fensterskalierung auf dem Client hat das Problem verhindert. Jetzt brauche ich nur eine serverseitige Auflösung (wir können nicht alle Clients dazu bringen, dies zu tun) :)
Endgültiges Update:
Die Lösung bestand darin, sowohl die TCP-Fensterskalierung als auch die TCP-Zeitstempel auf unseren öffentlich zugänglichen Servern zu deaktivieren.