Zum Hauptinhalt springen

2. Heartbeat Hello-Erweiterung

Die Unterstützung von Heartbeats wird mit Hello-Erweiterungen (Hello Extensions) angezeigt. Ein Peer kann nicht nur anzeigen, dass seine Implementierung Heartbeats unterstützt, sondern auch wählen, ob er bereit ist, HeartbeatRequest-Nachrichten zu empfangen und mit HeartbeatResponse-Nachrichten zu antworten, oder ob er nur bereit ist, HeartbeatRequest-Nachrichten zu senden. Ersteres wird durch die Verwendung von peer_allowed_to_send als HeartbeatMode angezeigt; Letzteres wird durch die Verwendung von peer_not_allowed_to_send als Heartbeat-Modus angezeigt. Diese Entscheidung kann bei jeder erneuten Verhandlung geändert werden. HeartbeatRequest-Nachrichten dürfen NICHT (MUST NOT) an einen Peer gesendet werden, der peer_not_allowed_to_send anzeigt. Wenn ein Endpunkt, der peer_not_allowed_to_send angezeigt hat, eine HeartbeatRequest-Nachricht empfängt, SOLLTE (SHOULD) der Endpunkt die Nachricht stillschweigend verwerfen und KANN (MAY) eine unexpected_message-Warnmeldung (Alert) senden.

Das Format der Heartbeat Hello-Erweiterung ist wie folgt definiert:

enum {
peer_allowed_to_send(1),
peer_not_allowed_to_send(2),
(255)
} HeartbeatMode;

struct {
HeartbeatMode mode;
} HeartbeatExtension;

Beim Empfang eines unbekannten Modus MUSS (MUST) als Antwort eine Fehler-Warnmeldung (Alert) mit illegal_parameter als AlertDescription gesendet werden.