3. Formato del pacchetto SCTP
Questo capitolo descrive il formato di un pacchetto SCTP, inclusi l'header comune e i chunk.
3.1. Descrizione dei campi dell'header comune SCTP
Un pacchetto SCTP è composto da un header comune di 12 ottetti seguito da uno o più chunk. L'header comune contiene i seguenti campi:
| Campo | Dimensione | Descrizione |
|---|---|---|
| Source Port Number | 16 bit | Numero di porta sorgente |
| Destination Port Number | 16 bit | Numero di porta di destinazione |
| Verification Tag | 32 bit | Verification tag dell'associazione |
| Checksum | 32 bit | Checksum CRC32c |
La porta sorgente e la porta di destinazione identificano gli endpoint dell'associazione. Il verification tag garantisce che il pacchetto appartenga all'associazione stabilita. Il checksum consente di rilevare gli errori di trasmissione.
3.2. Descrizione dei campi dei chunk
Ogni chunk inizia con un byte di identificazione del tipo, seguito da un byte di flag, da un campo di lunghezza a 16 bit (lunghezza del chunk includendo l'header del chunk, ma non il padding) e dai parametri o dai dati secondo il tipo.
3.2.1. Formato dei parametri opzionali/variabili
I parametri opzionali o variabili seguono un formato TLV (Type-Length-Value): un tipo a 16 bit, una lunghezza a 16 bit e il valore. Il padding è aggiunto se necessario per allineare il chunk su un limite di 4 ottetti.
3.2.2. Segnalazione dei parametri non riconosciuti
Se viene incontrato un parametro non riconosciuto, il comportamento dipende dal bit «U» (Report Type) del parametro: viene ignorato (skip), fermato (stop) o segnalato in un chunk ERROR secondo il caso.
3.3. Definizioni dei chunk SCTP
I tipi di chunk definiti dall'IETF includono: DATA, INIT, INIT ACK, SACK, HEARTBEAT, HEARTBEAT ACK, ABORT, SHUTDOWN, SHUTDOWN ACK, ERROR, COOKIE ECHO, COOKIE ACK, ECNE, CWR e SHUTDOWN COMPLETE. Il formato e la semantica di ciascun tipo sono descritti in dettaglio nelle sezioni seguenti.