Quelques statistiques TCP, prises le matin, quand de nombreuses machines vont vérifier si des mises à jour sont présentes$ netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
18 CLOSE_WAIT
5 CLOSING
301 ESTABLISHED
17 FIN_WAIT1
84 FIN_WAIT2
2 LAST_ACK
10 LISTEN
432 SYN_RECV
4169 TIME_WAIT
Définitions :
ESTABLISHED:La socket a une connexion établie.
SYN_SENT: La socket attend activement d'établir une connexion.
SYN_RECV: Une requête de connexion a été reçue du réseau.
FIN_WAIT1: La socket est fermée, et la connexion est en cours de terminaison.
FIN_WAIT2: La connexion est fermée, et la socket attend une terminaison du distant.
TIME_WAIT: La socket attend le traitement de tous les paquets encore sur le réseau avant d'entreprendre la fermeture.
CLOSED: La socket n'est pas utilisée.
CLOSE_WAIT: Le distant a arrêté, attendant la fermeture de la socket.
LAST_ACK: Le distant termine, et la socket est fermée. Attente d'acquittement.
LISTEN: La socket est à l'écoute de connexions entrantes. Ces sockets ne sont affichées que si le paramètre -a,--listening est fourni.
CLOSING: Les deux socket sont arrêtées mais toutes les données locales n'ont pas encore été envoyées.
UNKNOWN: L'état du socket est inconnu.
Quand j'ai pris les statistiques, il y avait 5038 connexions TCP utilisées, mais seulement 301 utilisées.
La grande majorité sont en TIME_WAIT : L’état TIME-WAIT a deux buts : Le premier est d’empêcher les segments en retard d’être acceptés dans une connexion utilisant le même quadruplet (adresse source, port source, adresse cible, port cible). La RFC 1337 explique en détail ce qui peut arriver si l’état TIME-WAIT ne joue pas son rôle.
Le second but est d’assurer que l’hôte distant a bien fermé la connexion. Lorsque que le dernier ACK est perdu, l’hôte distant reste dans l’état LAST-ACK3. Si l’état TIME-WAIT n’existait pas, une connexion vers cet hôte pourrait être tentée. Le segment SYN peut alors être accueilli avec un RST.
La RFC 793 demande à ce que l’état TIME-WAIT dure au moins deux fois le MSL. Sur Linux, cette durée n’est pas configurable. Elle est définie dans include/net/tcp.h et vaut une minute
Source : http://vincent.bernat.im/fr/blog/2014-tcp-time-wait-state-linux.html (y'a des jolis dessins, je crois)