Supposons qu'un client réalise de nombreuses connexions de courte durée avec un serveur.Quel est le coût de beaucoup de TIME_WAIT côté serveur?
Si le client ferme la connexion, il y aura plusieurs ports dans l'état TIME_WAIT
côté client. Comme le client est à court de ports locaux, il devient impossible de faire une nouvelle tentative de connexion rapidement.
Si le serveur ferme la connexion, je verrai beaucoup de TIME_WAIT
côté serveur. Cependant, cela fait-il du mal? Le client (ou d'autres clients) peut continuer à effectuer des tentatives de connexion car il ne court jamais sur les ports locaux et le nombre d'états TIME_WAIT
augmentera du côté serveur. Qu'est-ce qui se passe finalement? Est-ce que quelque chose de mal arrive? (ralentissement, plantage, perte de connexion, etc.)
Veuillez noter que ma question n'est pas "Quel est l'objectif de TIME_WAIT
?" mais "Que se passe-t-il s'il y a autant d'états TIME_WAIT
sur le serveur?" Je sais déjà ce qui se passe quand une connexion est fermée en TCP/IP et pourquoi l'état TIME_WAIT
est requis. Je n'essaie pas de résoudre le problème mais je veux juste savoir quel est le problème potentiel avec cela. Pour mettre simplement, disons netstat -nat | grep :8080 | grep TIME_WAIT | wc -l
imprime 100000
. Ce qui se passerait? La pile réseau O/S ralentit-elle? "Trop de fichiers ouverts" erreur? Ou, juste pas de quoi s'inquiéter?
Certains systèmes voient des problèmes sur "32K' TIME_WAIT'" http://serverfault.com/a/212127/87017 – Pacerier
Pour linux il y a un ([papier] https://tools.ietf.org/html/draft- faber-time-wait-avoidance-00) basé sur des données via Webstone Benchmark. Aussi "[* L'état' TIME-WAIT' dans TCP et son effet sur les serveurs occupés *] (https://scholar.google.com/scholar?cluster=2607037814764769062&hl=fr&as_sdt=0,5&sciodt=0,5) ". – Pacerier