Zum Hauptinhalt springen

4. Heartbeat-Anfrage- und Antwortnachrichten

Die Heartbeat-Protokollnachrichten bestehen aus ihrem Typ, einer beliebigen Nutzlast (payload) und einem Padding.

struct {
HeartbeatMessageType type;
uint16 payload_length;
opaque payload[HeartbeatMessage.payload_length];
opaque padding[padding_length];
} HeartbeatMessage;

Die Gesamtlänge einer HeartbeatMessage DARF (MUST NOT) 2^14 oder max_fragment_length bei Aushandlung, wie in [RFC6066] definiert, NICHT überschreiten.

type: Der Nachrichtentyp, entweder heartbeat_request oder heartbeat_response.

payload_length: Die Länge der Nutzlast.

payload: Die Nutzlast besteht aus beliebigem Inhalt.

padding: Das Padding ist zufälliger Inhalt, der vom Empfänger ignoriert werden MUSS (MUST). Die Länge einer HeartbeatMessage ist TLSPlaintext.length für TLS und DTLSPlaintext.length für DTLS. Darüber hinaus beträgt die Länge des type-Feldes 1 Byte und die Länge der payload_length 2. Daher ist die padding_length TLSPlaintext.length - payload_length - 3 für TLS und DTLSPlaintext.length - payload_length - 3 für DTLS. Die padding_length MUSS (MUST) mindestens 16 betragen.

Der Sender einer HeartbeatMessage MUSS (MUST) ein zufälliges Padding von mindestens 16 Bytes verwenden. Das Padding einer empfangenen HeartbeatMessage-Nachricht MUSS (MUST) ignoriert werden.

Wenn die payload_length einer empfangenen HeartbeatMessage zu groß ist, MUSS (MUST) die empfangene HeartbeatMessage stillschweigend verworfen werden.

Wenn eine HeartbeatRequest-Nachricht empfangen wird und das Senden einer HeartbeatResponse nicht wie an anderer Stelle in diesem Dokument beschrieben verboten ist, MUSS (MUST) der Empfänger eine entsprechende HeartbeatResponse-Nachricht senden, die eine exakte Kopie der Nutzlast der empfangenen HeartbeatRequest enthält.

Wenn eine empfangene HeartbeatResponse-Nachricht nicht die erwartete Nutzlast enthält, MUSS (MUST) die Nachricht stillschweigend verworfen werden. Wenn sie die erwartete Nutzlast enthält, MUSS (MUST) der Wiederholungstimer gestoppt werden.