3. Format de paquet SCTP
Ce chapitre décrit le format d'un paquet SCTP, y compris l'en-tête commun et les chunks.
3.1. Description des champs de l'en-tête commun SCTP
Un paquet SCTP se compose d'un en-tête commun de 12 octets suivi d'un ou plusieurs chunks. L'en-tête commun contient les champs suivants :
| Champ | Taille | Description |
|---|---|---|
| Source Port Number | 16 bits | Numéro de port source |
| Destination Port Number | 16 bits | Numéro de port destination |
| Verification Tag | 32 bits | Tag de vérification de l'association |
| Checksum | 32 bits | Somme de contrôle CRC32c |
Le port source et le port destination identifient les points d'extrémité de l'association. Le tag de vérification garantit que le paquet appartient à l'association établie. La somme de contrôle permet de détecter les erreurs de transmission.
3.2. Description des champs de chunk
Chaque chunk commence par un octet d'identifiant de type, suivi d'un octet de drapeaux, d'un champ de longueur de 16 bits (longueur du chunk incluant l'en-tête de chunk, mais pas le bourrage) et des paramètres ou données selon le type.
3.2.1. Format des paramètres optionnels/variables
Les paramètres optionnels ou variables suivent un format TLV (Type-Length-Value) : un type de 16 bits, une longueur de 16 bits et la valeur. Le bourrage est ajouté si nécessaire pour aligner le chunk sur une limite de 4 octets.
3.2.2. Signalement des paramètres non reconnus
Si un paramètre non reconnu est rencontré, le comportement dépend du bit « U » (Report Type) du paramètre : il est ignoré (skip), stoppé (stop), ou signalé dans un chunk ERROR selon le cas.
3.3. Définitions des chunks SCTP
Les types de chunk définis par l'IETF incluent : DATA, INIT, INIT ACK, SACK, HEARTBEAT, HEARTBEAT ACK, ABORT, SHUTDOWN, SHUTDOWN ACK, ERROR, COOKIE ECHO, COOKIE ACK, ECNE, CWR et SHUTDOWN COMPLETE. Chaque type possède un format et une sémantique détaillés dans les sections suivantes.