Ultimamente, siamo venuti a conoscenza di un problema di connessione TCP che è principalmente limitato agli utenti Mac e Linux che navigano nei nostri siti Web.
Dal punto di vista dell'utente, si presenta come un tempo di connessione molto lungo ai nostri siti Web (> 11 secondi).
Siamo riusciti a rintracciare la firma tecnica di questo problema, ma non possiamo capire perché sta accadendo o come risolverlo.
Fondamentalmente, ciò che sta accadendo è che la macchina del client sta inviando il pacchetto SYN per stabilire la connessione TCP e il server Web lo riceve, ma non risponde con il pacchetto SYN / ACK. Dopo che il client ha inviato molti pacchetti SYN, il server risponde infine con un pacchetto SYN / ACK e tutto va bene per il resto della connessione.
E, naturalmente, il kicker del problema: è intermittente e non si verifica continuamente (sebbene avvenga tra il 10-30% delle volte)
Stiamo usando Fedora 12 Linux come sistema operativo e Nginx come server web.
Schermata dell'analisi dei cavi
Aggiornare:
La disattivazione del ridimensionamento delle finestre sul client ha impedito il verificarsi del problema. Ora ho solo bisogno di una risoluzione lato server (non possiamo fare in modo che tutti i client lo facciano) :)
Aggiornamento finale:
La soluzione era quella di spegnere sia il TCP window scaling e il protocollo TCP timestamp sui nostri server che sono accessibili al pubblico.