Ai-je besoin de battement de coeur de garder une connexion TCP ouverte?

J'ai deux composants qui communiquent via le protocole TCP/IP. La composante A agit en tant que serveur/auditeur et le Composant B est le client. Les deux doivent communiquer le plus rapidement possible. Il ne peut jamais être une connexion à tout moment (bien que ce soit réservée à cette question). Un développeur senior en ma compagnie a dit j'ai besoin d'utiliser le niveau d'application des battements de cœur entre les deux composants pour s'assurer que la connexion reste ouverte.

Je pensais que la connexion reste ouverte avec le protocole TCP/IP mais j'ai lu un certain nombre de blogs/sites en disant: c'est assez pratique standard de pulsation entre ces applications.

Je connais une partie de la raison de la composante A des battements de cœur composant B est de sorte qu'il peut informer la prise en charge si il y a des problèmes de communication avec le composant B (le lien est en bas ou de composant B n'est pas en cours d'exécution). Sont les battements de cœur nécessaire pour toute autre raison? Comme pour s'assurer qu'il est souvent quelque chose "dans le tuyau" pour le garder ouvert?

Composant actuellement les pulsations de la composante B toutes les 20 secondes et ferme la connexion si rien n'a été reçu de composant B dans les 120 secondes. Il reprend ensuite à l'écoute pour les connexions sous l'hypothèse que la composante B périodiquement tenter une reconnexion si le lien est rompu. Cela fonctionne avec succès.

Réitérer ma question: est-ce les battements de cœur nécessaire pour garder une connexion TCP/IP à la vie?

  • Ce comportement pourrait-il également être mise en œuvre à charge? Est-ce quelque chose que spécifié dans le protocole TCP standard, ou est-ce qu'un détail d'implémentation? J'espère que quelqu'un d'autre peut répondre à cela.
  • C'est un détail d'implémentation, je dirais que pas tous les protocoles TCP/IP de mettre en œuvre tel qu'il est laissé entièrement à vous.
  • Oui - non pas parce que de TCP/IP - mais parce que, d'un autre matériel ou logiciel de connexion vous pouvez aller à travers comme les pare-feu et de la maison "routeurs", qui ont tendance à baisser inactif connexions TCP, connexes: stackoverflow.com/questions/3907537/...
InformationsquelleAutor Rob Gray | 2009-05-14