3 votes

Le protocole TCP Keep-Alive est-il bidirectionnel ?

J'utilise une connexion socket tcp entre une application iPhone et un serveur NodeJS pour transmettre des données en temps réel. Lorsqu'un client se connecte au serveur, j'active la fonction "keep-alive" sur le socket pour éviter les déconnexions "silencieuses" dues à l'inactivité.

Les "pings" de maintien en activité sont-ils unidirectionnels du serveur au client ? Le côté client de la connexion tcp a-t-il une intelligence inhérente pour détecter si les pings ont cessé d'arriver ?

3voto

David M. Syzdek Points 4297

Si vous utilisez les keepalives TCP sur une socket Unix via socket(), le serveur doit répondre par un ACK ou la socket considérera que la connexion est morte après que les délais et les tentatives aient été atteints.

Le RFC lié traite des top keepalives :

https://www.rfc-editor.org/rfc/rfc1122#page-101

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X