Qu'est-ce qui provoque l'envoi d'un indicateur de réinitialisation TCP / IP (RST)?

StackOverflow https://stackoverflow.com/questions/251243

  •  05-07-2019
  •  | 
  •  

Question

J'essaie de comprendre pourquoi la connexion TCP / IP de mon application continue à faire du hoquet toutes les 10 minutes (exactement, dans un délai de 1 à 2 secondes). J'ai utilisé Wireshark et découvert qu'après 10 minutes d'inactivité, l'autre extrémité envoyait un paquet avec l'indicateur de réinitialisation (RST) défini. Une recherche sur Google me dit "le drapeau RESET signifie que le destinataire est devenu confus et veut donc interrompre la connexion" mais c'est un peu court du détail dont j'ai besoin. Qu'est-ce qui peut causer cela? Et est-il possible qu’un routeur le long du chemin en soit responsable ou que cela vienne toujours de l’autre point de terminaison?

Modifier: Un routeur (en particulier un Linksys WRT-54G) se trouve entre mon ordinateur et l'autre point de terminaison. Y a-t-il quelque chose que je devrais rechercher dans les paramètres du routeur?

Était-ce utile?

La solution

Un "routeur" peut faire n'importe quoi - en particulier le NAT, qui peut impliquer une quantité importante de problèmes liés au trafic ...

Une des raisons pour lesquelles un périphérique enverra un RST est en réponse à la réception d'un paquet pour une socket fermée.

Il est difficile de donner une réponse ferme mais générale, car chaque perversion possible a été visitée sur TCP depuis sa création, et toutes sortes de personnes pourraient insérer des RST dans le but de bloquer le trafic. (Certains "pare-feu nationaux" fonctionnent de la sorte, par exemple.)

Autres conseils

Exécutez un renifleur de paquet (par exemple, Wireshark) également sur l'homologue pour voir si c'est l'homologue qui envoie le fichier RST ou quelqu'un au milieu.

Je viens de passer un certain temps à résoudre ce problème. Aucune des solutions proposées n'a fonctionné. Il s’est avéré que notre administrateur système avait attribué par erreur la même adresse IP statique à deux serveurs indépendants, appartenant à des groupes différents mais situés sur le même réseau. Les résultats finaux étaient des connexions vnc abandonnées par intermittence, un navigateur qui devait être rafraîchi plusieurs fois pour aller chercher la page Web et d’autres choses étranges.

Certains pare-feu le font si une connexion est inactive pendant x minutes. Certains fournisseurs d'accès configurent leurs routeurs pour faire cela pour diverses raisons également.

De nos jours, vous devez gérer (rétablir au besoin) avec élégance cette condition.

RST est envoyé par le côté effectuant la fermeture active car c’est le côté qui envoie le dernier ACK. Donc, s'il reçoit FIN du côté effectuant la fermeture passive dans un état incorrect, il envoie un paquet RST qui indique à l'autre côté qu'une erreur s'est produite.

Si un routeur utilise la traduction d'adresses réseau, en particulier un routeur bas de gamme avec peu de ressources, il vieillira d'abord les sessions TCP les plus anciennes. Pour ce faire, il active l’indicateur RST dans le paquet qui indique effectivement à la station réceptrice de fermer (de manière très ingrate) la connexion. ceci est fait pour économiser des ressources.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top