Passa al contenuto principale

2. Estensione Heartbeat Hello

Il supporto degli Heartbeat è indicato con le estensioni Hello (Hello Extensions). Un peer può non solo indicare che la sua implementazione supporta gli Heartbeat, ma può anche scegliere se è disposto a ricevere messaggi HeartbeatRequest e rispondere con messaggi HeartbeatResponse, oppure se è disposto solo a inviare messaggi HeartbeatRequest. Il primo caso è indicato utilizzando peer_allowed_to_send come HeartbeatMode; il secondo è indicato utilizzando peer_not_allowed_to_send come modalità Heartbeat. Questa decisione può essere modificata ad ogni rinegoziazione. I messaggi HeartbeatRequest NON DEVONO (MUST NOT) essere inviati a un peer che indica peer_not_allowed_to_send. Se un endpoint che ha indicato peer_not_allowed_to_send riceve un messaggio HeartbeatRequest, l'endpoint DOVREBBE (SHOULD) scartare il messaggio silenziosamente e PUÒ (MAY) inviare un messaggio di avviso (Alert) unexpected_message.

Il formato dell'estensione Heartbeat Hello è definito come segue:

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

struct {
HeartbeatMode mode;
} HeartbeatExtension;

Al ricevimento di una modalità sconosciuta, DEVE (MUST) essere inviato in risposta un messaggio di avviso (Alert) di errore utilizzando illegal_parameter come AlertDescription.