Maison >Java >javaDidacticiel >Voici quelques titres d'articles basés sur des questions qui capturent l'essence de votre contenu : **Se concentrer sur le point principal :** * **Les connexions socket TCP durent-elles éternellement ? Explorer les délais d'attente Keep-Alive** *
Connexions socket TCP et Keep-Alive
Le concept de TCP Keep-Alive est souvent associé à HTTP, mais il s'applique également aux standards Connexions de socket TCP. Contrairement à HTTP Keep-Alive, qui permet une connexion persistante pour plusieurs requêtes, TCP Keep-Alive a un objectif différent.
Une connexion Socket TCP reste-t-elle automatiquement ouverte pour toujours ?
Non, une connexion socket TCP ne reste pas automatiquement ouverte indéfiniment. Il existe un mécanisme appelé TCP Keep-Alive qui impose un délai d'attente.
Processus TCP Keep-Alive
TCP Keep-Alive fonctionne sur trois paramètres configurables :
S'il n'y a aucune activité sur une connexion TCP pendant le tcp_keepalive_time spécifié, le système enverra un paquet Keep-Alive (un ACK vide). Si le serveur répond par un ACK, le processus se réinitialise. Si aucune réponse n'est reçue après le nombre spécifié de tcp_keepalive_probes (avec l'intervalle tcp_keepalive_intvl entre les sondes), la connexion se termine par un RST.
Gotchas
Modification des délais d'expiration TCP
Les paramètres de délai d'expiration TCP peuvent être modifiés au niveau du système d'exploitation. Cependant, cela affectera toutes les connexions TCP sur le système.
Linux
Utilisez les commandes suivantes pour modifier les paramètres de toutes les connexions :
Mac OS X
Utilisez sysctl pour afficher et modifier les paramètres :
Windows
Les paramètres TCP Keep-Alive se trouvent dans le registre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!