Heim >häufiges Problem >Was bedeutet Herzschlagmechanismus?
Der Heartbeat-Mechanismus ist ein Mechanismus, der regelmäßig ein benutzerdefiniertes Heartbeat-Paket sendet, um der anderen Partei mitzuteilen, dass sie noch aktiv ist, um die Gültigkeit der Verbindung sicherzustellen sendet regelmäßig einfache Informationen an den Server, um mir mitzuteilen, dass ich es noch habe.
Der Heartbeat-Mechanismus besteht darin, regelmäßig eine benutzerdefinierte Struktur (Heartbeat-Paket) zu senden, um die andere Partei darüber zu informieren, dass sie noch am Leben ist stellen Sie den Wirkungsmechanismus sicher.
Konzepteinführung
Das Empfangen und Senden von Daten im Netzwerk wird über SOCKET im Betriebssystem implementiert. Wenn diese Buchse jedoch nicht angeschlossen ist, wird es definitiv zu Problemen beim Senden und Empfangen von Daten kommen. Doch wie stellt man fest, ob diese Steckdose noch verwendet werden kann? Dies erfordert die Schaffung eines Heartbeat-Mechanismus im System. Tatsächlich hat TCP für uns bereits einen Mechanismus namens Heartbeat implementiert. Wenn Sie einen Heartbeat festlegen, sendet TCP innerhalb eines bestimmten Zeitraums (z. B. 3 Sekunden) die von Ihnen festgelegte Anzahl von Heartbeats (z. B. 2 Mal) und diese Informationen haben keinen Einfluss auf das von Ihnen definierte Protokoll . . Der sogenannte „Heartbeat“ besteht darin, regelmäßig eine benutzerdefinierte Struktur (Heartbeat-Paket oder Heartbeat-Frame) zu senden, um der anderen Partei mitzuteilen, dass sie „online“ ist. um die Gültigkeit des Links sicherzustellen.
Das sogenannte Heartbeat-Paket besteht darin, dass der Client regelmäßig einfache Informationen an den Server sendet, um ihm mitzuteilen, dass ich noch da bin. Der Code besteht darin, alle paar Minuten eine feste Nachricht an den Server zu senden. Wenn der Server die Client-Nachricht nicht innerhalb weniger Minuten erhält, wird der Client als getrennt betrachtet. Wenn beispielsweise eine Kommunikationssoftware längere Zeit nicht verwendet wird und Sie wissen möchten, ob sie online oder offline ist, benötigen Sie Heartbeat-Pakete und müssen regelmäßig Pakete senden und empfangen. Vertragsaussteller: Dies kann der Client oder der Server sein, je nachdem, was bequemer und sinnvoller ist. Normalerweise der Kunde. Der Server kann auch regelmäßig Heartbeats abfragen und senden. Der Grund, warum das Heartbeat-Paket Heartbeat-Paket genannt wird, besteht darin, dass es zu einem festen Zeitpunkt wie ein Heartbeat gesendet wird, um dem Server mitzuteilen, dass der Client noch am Leben ist. Tatsächlich dient dies dazu, eine lange Verbindung aufrechtzuerhalten. Für den Inhalt dieses Pakets gibt es keine besonderen Vorschriften, es handelt sich jedoch im Allgemeinen um ein sehr kleines Paket oder ein leeres Paket, das nur den Header enthält.
Im TCP-Mechanismus gibt es einen Heartbeat-Paketmechanismus, der eine TCP-Option ist. Die Standardeinstellung des Systems ist eine Herzschlagfrequenz von 2 Stunden. Es kann jedoch keine Stromausfälle der Maschine, das Herausziehen des Netzwerkkabels oder die Unterbrechung der Firewall erkennen. Darüber hinaus ist die Logikschicht möglicherweise nicht so einfach mit Verbindungsabbrüchen umzugehen. Im Allgemeinen ist es in Ordnung, wenn es nur dazu dient, dich am Leben zu halten. Heartbeat-Pakete werden im Allgemeinen durch das Senden leerer Pakete auf der logischen Ebene implementiert. Der nächste Timer sendet in einem bestimmten Zeitintervall ein leeres Paket an den Client, und dann gibt der Client das gleiche leere Paket zurück. Wenn der Server das vom Client gesendete Feedback-Paket nicht innerhalb eines bestimmten Zeitraums erhält, kann er dies nur tun feststellen Sagte, es sei offline. Einfach senden oder empfangen. Wenn das Ergebnis Null ist, bedeutet dies, dass es offline ist.
Bei einer langen Verbindung kann es jedoch sein, dass für längere Zeit kein Datenaustausch stattfindet. Theoretisch ist diese Verbindung immer verbunden, in der Praxis ist es jedoch schwierig festzustellen, ob auf dem Zwischenknoten ein Fehler vorliegt. Was noch schlimmer ist, ist, dass einige Knoten (Firewalls) Verbindungen, die keine Dateninteraktion haben, innerhalb eines bestimmten Zeitraums automatisch trennen. Zu diesem Zeitpunkt benötigen wir unser Heartbeat-Paket, um lange Verbindungen aufrechtzuerhalten und am Leben zu erhalten. Nachdem die Serverlogik von der Trennung erfahren hat, muss sie möglicherweise einige Dinge tun, z. B. die Daten nach der Trennung bereinigen und die Verbindung wiederherstellen. Dies wird natürlich von der Logikschicht entsprechend den Anforderungen durchgeführt. Im Allgemeinen werden Heartbeat-Pakete hauptsächlich zur Keep-Alive- und Trennungsverarbeitung langer Verbindungen verwendet. Für allgemeine Anwendungen ist eine Beurteilungszeit von 30–40 Sekunden relativ gut. Wenn die Anforderungen wirklich hoch sind, stellen Sie sie auf 6-9 Sekunden ein.
Das obige ist der detaillierte Inhalt vonWas bedeutet Herzschlagmechanismus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!