Récemment, nous avons été informés d'un problème de connexion TCP qui se limite principalement aux utilisateurs de Mac et de Linux qui naviguent sur nos sites web.
Du point de vue de l'utilisateur, cela se traduit par un temps de connexion très long à nos sites web (>11 secondes).
Nous avons réussi à identifier la signature technique de ce problème, mais nous n'arrivons pas à comprendre pourquoi il se produit ni comment le résoudre.
En fait, la machine du client envoie le paquet SYN pour établir la connexion TCP et le serveur web le reçoit, mais ne répond pas avec le paquet SYN/ACK. Après que le client a envoyé de nombreux paquets SYN, le serveur répond finalement par un paquet SYN/ACK et tout se passe bien pour le reste de la connexion.
Et, bien sûr, le nœud du problème : il est intermittent et ne se produit pas tout le temps (bien qu'il se produise entre 10 et 30 % du temps).
Nous utilisons Fedora 12 Linux comme système d'exploitation et Nginx comme serveur web.
Capture d'écran de l'analyse wireshark
Mise à jour :
La désactivation de la mise à l'échelle des fenêtres sur le client a empêché le problème de se produire. Il ne me reste plus qu'à trouver une solution côté serveur (nous ne pouvons pas obliger tous les clients à le faire) :)
Dernière mise à jour :
La solution a consisté à désactiver les deux Mise à l'échelle de la fenêtre TCP et Horodatage TCP sur nos serveurs accessibles au public.