Maison  >  Article  >  Que signifie le mécanisme du rythme cardiaque ?

Que signifie le mécanisme du rythme cardiaque ?

藏色散人
藏色散人original
2020-06-29 09:44:333344parcourir

Le mécanisme de battement de cœur est un mécanisme qui envoie régulièrement un paquet de battement de cœur personnalisé pour faire savoir à l'autre partie qu'il est toujours en vie afin de garantir la validité de la connexion. Le soi-disant paquet de battement de cœur est un mécanisme dans lequel le client ; envoie régulièrement des informations simples au serveur pour dire que je l'ai toujours.

Que signifie le mécanisme du rythme cardiaque ?

Le mécanisme de battement de coeur consiste à envoyer régulièrement une structure personnalisée (paquet de battement de coeur) pour faire savoir à l'autre partie qu'elle est toujours en vie assurer le mécanisme de connexion de l’efficacité.

Introduction au concept

La réception et l'envoi de données sur le réseau sont implémentés à l'aide de SOCKET dans le système d'exploitation. Mais si cette prise a été débranchée, il y aura certainement des problèmes lors de l'envoi et de la réception de données. Mais comment déterminer si cette prise peut encore être utilisée ? Cela nécessite la création d'un mécanisme de battement de cœur dans le système. En fait, TCP a déjà implémenté pour nous un mécanisme appelé heartbeat. Si vous définissez un battement de cœur, TCP enverra le nombre de battements de cœur que vous avez défini (par exemple, 2 fois) dans un certain laps de temps (par exemple, vous l'avez défini sur 3 secondes), et ces informations n'affecteront pas le protocole que vous avez défini. . Ce qu'on appelle le « battement de cœur » consiste à envoyer régulièrement une structure personnalisée (paquet de battement de cœur ou trame de battement de cœur) pour faire savoir à l'autre partie qu'elle est « en ligne ». pour garantir la validité du lien.

Le soi-disant paquet de battement de coeur, c'est que le client envoie régulièrement des informations simples au serveur pour lui dire que je suis toujours là. Le code consiste à envoyer un message fixe au serveur toutes les quelques minutes, et le serveur répondra avec un message fixe après l'avoir reçu. Si le serveur ne reçoit pas le message client dans quelques minutes, le client sera considéré comme déconnecté. Par exemple, si un logiciel de communication n'est pas utilisé pendant une longue période, si vous souhaitez savoir si son état est en ligne ou hors ligne, vous avez besoin de paquets de battement de cœur et envoyez et recevez régulièrement des paquets. Expéditeur du contrat : il peut s'agir du client ou du serveur, selon ce qui est le plus pratique et le plus raisonnable. Généralement le client. Le serveur peut également interroger et envoyer périodiquement des battements de cœur. La raison pour laquelle le paquet de battements de cœur est appelé paquet de battements de cœur est qu'il est envoyé à chaque heure fixe, comme un battement de cœur, pour indiquer au serveur que le client est toujours en vie. En fait, il s'agit de maintenir une connexion longue. Quant au contenu de ce paquet, il n'y a pas de réglementation particulière, mais il s'agit généralement d'un très petit paquet, ou d'un paquet vide contenant uniquement l'en-tête.

Dans le mécanisme TCP, il existe un mécanisme de paquet de battement de cœur, qui est une option TCP. Le paramètre par défaut du système est une fréquence de battement de cœur de 2 heures. Mais il ne peut pas détecter les pannes de courant de la machine, le débranchement des câbles réseau ou les déconnexions du pare-feu. De plus, la couche logique n’est peut-être pas si facile à gérer en cas de déconnexion. D'une manière générale, ce n'est pas grave si c'est juste utilisé pour vous maintenir en vie. Les paquets Heartbeat sont généralement implémentés en envoyant des paquets vides au niveau de la couche logique. Le minuteur suivant envoie un paquet vide au client à un certain intervalle de temps, puis le client renvoie le même paquet vide. Si le serveur ne peut pas recevoir le paquet de retour envoyé par le client dans un certain laps de temps, il ne peut que le déterminer. J'ai dit que c'était hors ligne. Envoyez ou recevez simplement. Si le résultat est zéro, cela signifie qu'il est hors ligne.

Cependant, en cas de connexion longue, il se peut qu'il n'y ait pas d'échange de données pendant une longue période. Théoriquement, cette connexion est toujours connectée, mais en pratique, il est difficile de savoir s'il y a une panne sur le nœud intermédiaire. Ce qui est encore pire, c'est que certains nœuds (pare-feu) déconnecteront automatiquement les connexions qui n'ont aucune interaction de données au cours d'une certaine période de temps. À l’heure actuelle, nous avons besoin de notre paquet de battements de cœur pour maintenir de longues connexions et les maintenir en vie. Après avoir appris la déconnexion, la logique du serveur peut avoir besoin de faire certaines choses, comme nettoyer les données après la déconnexion et la reconnexion. Bien entendu, cela est naturellement fait par la couche logique en fonction des besoins. En général, les paquets de battements de cœur sont principalement utilisés pour le traitement du maintien en vie et de la déconnexion des connexions longues. Pour les applications générales, un temps de jugement de 30 à 40 secondes est relativement bon. Si les exigences sont vraiment élevées, réglez-la sur 6 à 9 secondes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn