Zum Hauptinhalt springen

3. SCTP-Paketformat

Dieses Kapitel beschreibt das Format eines SCTP-Pakets einschließlich des gemeinsamen Headers und der Chunks.

3.1. Beschreibung der Felder des gemeinsamen SCTP-Headers​

Ein SCTP-Paket besteht aus einem 12 Oktetten großen gemeinsamen Header, gefolgt von einem oder mehreren Chunks. Der gemeinsame Header enthält folgende Felder:

FeldGrößeBeschreibung
Source Port Number16 BitQuell-Portnummer
Destination Port Number16 BitZiel-Portnummer
Verification Tag32 BitVerifikations-Tag der Assoziation
Checksum32 BitCRC32c-Prüfsumme

Quell- und Ziel-Port identifizieren die Endpunkte der Assoziation. Das Verifikations-Tag stellt sicher, dass das Paket zur aufgebauten Assoziation gehört. Die Prüfsumme dient der Erkennung von Übertragungsfehlern.

3.2. Beschreibung der Chunk-Felder​

Jeder Chunk beginnt mit einem Typ-Identifikationsbyte, gefolgt von einem Flag-Byte, einem 16-Bit-Längenfeld (Länge des Chunks einschließlich Chunk-Header, ohne Padding) und je nach Typ den Parametern oder Daten.

3.2.1. Format optionaler/variabler Parameter​

Optionale oder variable Parameter folgen einem TLV-Format (Type-Length-Value): ein 16-Bit-Typ, eine 16-Bit-Länge und der Wert. Bei Bedarf wird Padding hinzugefügt, um den Chunk auf eine 4-Oktet-Grenze auszurichten.

3.2.2. Meldung nicht erkannter Parameter​

Wird ein nicht erkannter Parameter angetroffen, hängt das Verhalten vom „U“-Bit (Report Type) des Parameters ab: er wird ignoriert (skip), gestoppt (stop) oder gemäß dem Fall in einem ERROR-Chunk gemeldet.

3.3. SCTP-Chunk-Definitionen​

Die von der IETF definierten Chunk-Typen umfassen: DATA, INIT, INIT ACK, SACK, HEARTBEAT, HEARTBEAT ACK, ABORT, SHUTDOWN, SHUTDOWN ACK, ERROR, COOKIE ECHO, COOKIE ACK, ECNE, CWR und SHUTDOWN COMPLETE. Format und Semantik jedes Typs werden in den folgenden Abschnitten im Detail beschrieben.