J'ai un agent, disons A
, qui exécute et envoie des informations à mon serveur, disons S
. A
socket est configuré comme keepalive
, et lorsque le réseau entre A
et S
est faible, A
détecterait l'erreur de connexion et essayer de se reconnecter à S
. Je peux observer parfois l'état de connexion TCP sur A
est FIN_WAIT1
, ce qui signifie A
envoie un paquet FIN
et attend. Mais ce paquet FIN
semble perdu parce que sur S
je peux voir beaucoup de ESTABLISHED
connexions entre A
et S
, où normalement il devrait y avoir un seul.Que se passe-t-il si le premier paquet `FIN` est perdu dans les connexions TCP?
Le protocole TCP échoue-t-il dans cette situation, ou qu'est-ce qui me manque?
Si tous les paquets sont perdus, le socket finira par expirer, se fermer et être retiré. Les délais d'attente peuvent cependant prendre beaucoup de temps, s'ils sont ajustés donc –