Passa al contenuto principale

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:

CampoDimensioneDescrizione
Source Port Number16 bitNumero di porta sorgente
Destination Port Number16 bitNumero di porta di destinazione
Verification Tag32 bitVerification tag dell'associazione
Checksum32 bitChecksum 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.