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:
| Feld | Größe | Beschreibung |
|---|---|---|
| Source Port Number | 16 Bit | Quell-Portnummer |
| Destination Port Number | 16 Bit | Ziel-Portnummer |
| Verification Tag | 32 Bit | Verifikations-Tag der Assoziation |
| Checksum | 32 Bit | CRC32c-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.