Possibilités de SYN des tcp entrantes

Cela pourrait être une question TCP générale.

Puis-je recevoir le package TCP SYN sur une connection établie OU une connection dans l'état TIME_WAIT?

Est-ce possible?

2 Solutions collect form web for “Possibilités de SYN des tcp entrantes”

Un SYN reçu sur une connection TCP ESTABLISHED ne devrait pas se produire. Il pourrait s'agir d'un package retardé, qu'il serait prudent de déposer silencieusement.

Il est possible de finir avec le server dans l'état ESTABLISHED et le client en état CLOSED si la connection est perdue et est expirée sur le client et non sur le server, ou si le client est redémarré. La tentative d'ouvrir une nouvelle connection dans ce scénario entraînerait la réception d'un package SYN dans l'état ESTABLISHED . Le résultat souhaité est que l'ancienne connection est fermée et une nouvelle est ouverte.

La façon dont ce résultat souhaité est atteint est la suivante:

  • Le client envoie un SYN pour créer une nouvelle connection.
  • Le server envoie un ACK pour la connection ESTABLISHED .
  • Le client répond à l' ACK avec un package RST provoquant la connection ESTABLISHED .
  • Le client retransmet le package SYN pour créer une nouvelle connection.

Un package SYN reçu dans l'état TIME_WAIT peut se produire après que le server a fermé la connection, et le client ouvre une nouvelle connection avec les mêmes numéros de port. Cela entraînera l'ouverture d'une nouvelle connection.

Ni … SYN n'est utilisé que lorsque la connection est configurée pour la première fois (la poignée de main à trois voies) ou lorsque le package est détruit.

En gros:

SYN (I want to start a connection) -> ACK/SYN (OK, I want to start a connection too) -> ACK (acknowledged connection, ready for data)

Les stream de conversation avec les packages ACK envoyés par les deux hôtes ont indiqué qu'ils recevaient les packages des uns et des autres.

À la fin, FIN est envoyé au server et TIME_WAIT est défini sur le socket. Lorsque le server répond avec un package FIN , le socket est diffusé.

  • Comment vérifier si le HDD est inactif?
  • Les services exceptés dans /etc/hosts.allow
  • Dans unix, quelle est la meilleure façon de réduire la taille d'un file journal massif qui est activement écrit?
  • J'ai mis à jour PHP à partir de la source ... Comment puis-je l'utiliser?
  • Comment configurer monit pour démarrer un process avec un user spécifique?
  • Combinez plusieurs commands Unix en une seule sortie
  • Déplace le file le plus ancien via cron
  • Logiciel Linux installé ou contrôlé par audit
  • Pourquoi `` head`` est-il suspendu et ne se termine pas?
  • Comment puis-je sauvegarder le file sur UNIX-AIX?
  • Arrêt de l'heure sur un système de files
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.