3.3. Definizioni dei Chunk SCTP (SCTP Chunk Definitions) - Continua
3.3.3. Riconoscimento di Inizializzazione (Initiation Acknowledgement, INIT ACK) (2)
Il chunk INIT ACK viene utilizzato per confermare l'avvio di un'associazione SCTP.
La parte parametro di INIT ACK è formattata in modo simile al chunk INIT. Utilizza due parametri variabili aggiuntivi: lo State Cookie e il parametro non riconosciuto.
Il formato del chunk INIT ACK è mostrato di seguito:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 2 | Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initiate Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertised Receiver Window Credit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Outbound Streams | Number of Inbound Streams |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initial TSN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Optional/Variable-Length Parameters /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Initiate Tag (Tag di Avvio): 32 bit (intero senza segno)
Il ricevitore dell'INIT ACK registra il valore del parametro Initiate Tag. Questo valore DEVE (MUST) essere inserito nel campo Verification Tag di ogni pacchetto SCTP che il ricevitore INIT ACK trasmette all'interno di questa associazione.
L'Initiate Tag NON DEVE (MUST NOT) assumere il valore 0. Vedere la Sezione 5.3.1 per ulteriori informazioni sulla selezione del valore Initiate Tag.
Se il valore dell'Initiate Tag in un chunk INIT ACK ricevuto risulta essere 0, il ricevitore DEVE (MUST) distruggere l'associazione scartando il suo TCB. Il ricevitore PUÒ (MAY) inviare un ABORT a scopo di debug.
Advertised Receiver Window Credit (a_rwnd, Credito Finestra Ricevitore Annunciato): 32 bit (intero senza segno)
Questo valore rappresenta lo spazio buffer dedicato, in numero di byte, che il mittente dell'INIT ACK ha riservato in associazione con questa finestra. Durante la vita dell'associazione, questo spazio buffer NON DOVREBBE (SHOULD NOT) essere ridotto (cioè, buffer dedicati rimossi da questa associazione).
Number of Outbound Streams (OS, Numero di Flussi in Uscita): 16 bit (intero senza segno)
Definisce il numero di flussi in uscita che il mittente di questo chunk INIT ACK desidera creare in questa associazione. Il valore 0 NON DEVE (MUST NOT) essere utilizzato e il valore NON DEVE (MUST NOT) essere maggiore del valore MIS inviato nel chunk INIT.
Nota: Un ricevitore di un INIT ACK con il valore OS impostato a 0 DOVREBBE (SHOULD) distruggere l'associazione scartando il suo TCB.
Number of Inbound Streams (MIS, Numero di Flussi in Entrata): 16 bit (intero senza segno)
Definisce il numero massimo di flussi che il mittente di questo chunk INIT ACK consente all'estremità peer di creare in questa associazione. Il valore 0 NON DEVE (MUST NOT) essere utilizzato.
Nota: Non vi è negoziazione del numero effettivo di flussi, ma i due endpoint utilizzeranno min(richiesto, offerto). Vedere la Sezione 5.1.1 per i dettagli.
Nota: Un ricevitore di un INIT ACK con il valore MIS impostato a 0 DOVREBBE (SHOULD) distruggere l'associazione scartando il suo TCB.
Initial TSN (I-TSN, TSN Iniziale): 32 bit (intero senza segno)
Definisce il TSN iniziale che il mittente INIT ACK utilizzerà. L'intervallo valido va da 0 a 4294967295. Questo campo PUÒ (MAY) essere impostato al valore del campo Initiate Tag.
Parametri Fissi Stato
----------------------------------------------
Initiate Tag Obbligatorio
Advertised Receiver Window Credit Obbligatorio
Number of Outbound Streams Obbligatorio
Number of Inbound Streams Obbligatorio
Initial TSN Obbligatorio
Parametri Variabili Stato Valore Tipo
-------------------------------------------------------------
State Cookie Obbligatorio 7
IPv4 Address (Nota 1) Opzionale 5
IPv6 Address (Nota 1) Opzionale 6
Unrecognized Parameter Opzionale 8
Reserved for ECN Capable (Nota 2) Opzionale 32768 (0x8000)
Host Name Address (Nota 3) Opzionale 11
Nota 1: I chunk INIT ACK possono contenere un numero qualsiasi di parametri di indirizzo IP che possono essere IPv4 e/o IPv6 in qualsiasi combinazione.
Nota 2: Il campo ECN Capable è riservato per l'uso futuro della notifica di congestione esplicita.
Nota 3: I chunk INIT ACK NON DEVONO (MUST NOT) contenere più di un parametro Host Name Address. Inoltre, il mittente dell'INIT ACK NON DEVE (MUST NOT) combinare altri tipi di indirizzo con l'Host Name Address nell'INIT ACK. Il ricevitore dell'INIT ACK DEVE (MUST) ignorare gli altri tipi di indirizzo se il parametro Host Name Address è presente.
3.3.3.1. Parametri Opzionali o di Lunghezza Variabile
State Cookie (Cookie di Stato)
Valore del Tipo di Parametro: 7
Lunghezza del Parametro: Dimensione variabile, a seconda della dimensione del Cookie.
Valore del Parametro:
Questo valore del parametro DEVE (MUST) contenere tutte le informazioni di stato e parametro necessarie al mittente di questo INIT ACK per creare l'associazione, insieme a un Message Authentication Code (MAC). Vedere la Sezione 5.1.3 per i dettagli sulla definizione dello State Cookie.
Unrecognized Parameter (Parametro Non Riconosciuto):
Valore del Tipo di Parametro: 8
Lunghezza del Parametro: Dimensione variabile.
Valore del Parametro:
Questo parametro viene restituito all'originatore del chunk INIT quando l'INIT contiene un parametro non riconosciuto che ha un valore che indica che dovrebbe essere segnalato al mittente. Questo campo valore del parametro conterrà parametri non riconosciuti copiati dal chunk INIT completi di campi Parameter Type, Length e Value.
3.3.4. Riconoscimento Selettivo (Selective Acknowledgement, SACK) (3)
Questo chunk viene inviato all'endpoint peer per confermare i chunk DATA ricevuti e per informare l'endpoint peer delle lacune nelle sottosequenze ricevute di chunk DATA come rappresentate dai loro TSN.
Il SACK DEVE (MUST) contenere i campi Cumulative TSN Ack, Advertised Receiver Window Credit (a_rwnd), Number of Gap Ack Blocks e Number of Duplicate TSNs.
Per definizione, il valore del parametro Cumulative TSN Ack è l'ultimo TSN ricevuto prima di un'interruzione nella sequenza di TSN ricevuti; il valore TSN successivo a questo non è ancora stato ricevuto all'endpoint che invia il SACK. Questo parametro conferma quindi la ricezione di tutti i TSN inferiori o uguali al suo valore.
La gestione di a_rwnd da parte del ricevitore del SACK è discussa in dettaglio nella Sezione 6.2.1.
Il SACK contiene anche zero o più Gap Ack Blocks. Ogni Gap Ack Block conferma una sottosequenza di TSN ricevuti dopo un'interruzione nella sequenza di TSN ricevuti. Per definizione, tutti i TSN confermati dai Gap Ack Blocks sono maggiori del valore del Cumulative TSN Ack.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 3 |Chunk Flags | Chunk Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cumulative TSN Ack |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertised Receiver Window Credit (a_rwnd) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Gap Ack Blocks = N | Number of Duplicate TSNs = X |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gap Ack Block #1 Start | Gap Ack Block #1 End |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ ... \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gap Ack Block #N Start | Gap Ack Block #N End |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Duplicate TSN 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ ... \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Duplicate TSN X |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a tutti '0' in trasmissione e ignorato in ricezione.
Cumulative TSN Ack (TSN Cumulativo Confermato): 32 bit (intero senza segno)
Questo parametro contiene il TSN dell'ultimo chunk DATA ricevuto in sequenza prima di una lacuna. Nel caso in cui non sia stato ricevuto alcun chunk DATA, questo valore è impostato al TSN iniziale del peer meno uno.
Advertised Receiver Window Credit (a_rwnd, Credito Finestra Ricevitore Annunciato): 32 bit (intero senza segno)
Questo campo indica lo spazio buffer di ricezione aggiornato in byte del mittente di questo SACK; vedere la Sezione 6.2.1 per i dettagli.
Number of Gap Ack Blocks (Numero di Blocchi Gap Ack): 16 bit (intero senza segno)
Indica il numero di Gap Ack Blocks inclusi in questo SACK.
Number of Duplicate TSNs (Numero di TSN Duplicati): 16 bit
Questo campo contiene il numero di TSN duplicati che l'endpoint ha ricevuto. Ogni TSN duplicato è elencato dopo l'elenco Gap Ack Block.
Gap Ack Blocks (Blocchi di Conferma delle Lacune):
Questi campi contengono i Gap Ack Blocks. Vengono ripetuti per ogni Gap Ack Block fino al numero di Gap Ack Blocks definito nel campo Number of Gap Ack Blocks. Tutti i chunk DATA con TSN maggiori o uguali a (Cumulative TSN Ack + Gap Ack Block Start) e minori o uguali a (Cumulative TSN Ack + Gap Ack Block End) di ogni Gap Ack Block si presumono essere stati ricevuti correttamente.
Gap Ack Block Start (Inizio del Blocco Gap Ack): 16 bit (intero senza segno)
Indica l'offset TSN di inizio per questo Gap Ack Block. Per calcolare il numero TSN effettivo, il Cumulative TSN Ack viene aggiunto a questo numero di offset. Questo TSN calcolato identifica il primo TSN in questo Gap Ack Block che è stato ricevuto.
Gap Ack Block End (Fine del Blocco Gap Ack): 16 bit (intero senza segno)
Indica l'offset TSN di fine per questo Gap Ack Block. Per calcolare il numero TSN effettivo, il Cumulative TSN Ack viene aggiunto a questo numero di offset. Questo TSN calcolato identifica il TSN dell'ultimo chunk DATA ricevuto in questo Gap Ack Block.
Duplicate TSN (TSN Duplicato): 32 bit (intero senza segno)
Indica il numero di volte in cui un TSN è stato ricevuto in duplicato dall'ultimo invio del SACK. Ogni volta che un ricevitore riceve un TSN duplicato (prima di inviare il SACK), lo aggiunge all'elenco dei duplicati. Il conteggio dei duplicati viene reinizializzato a zero dopo l'invio di ogni SACK.
3.3.5. Richiesta di Heartbeat (Heartbeat Request, HEARTBEAT) (4)
Un endpoint dovrebbe inviare questo chunk al suo endpoint peer per sondare la raggiungibilità di un particolare indirizzo di trasporto di destinazione definito nell'associazione presente.
Il campo parametro contiene le informazioni di Heartbeat, che è una struttura dati opaca di lunghezza variabile compresa solo dal mittente.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 4 | Chunk Flags | Heartbeat Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Heartbeat Information TLV (Variable-Length) /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
Heartbeat Length (Lunghezza Heartbeat): 16 bit (intero senza segno)
Impostato alla dimensione del chunk in byte, inclusi l'intestazione del chunk e il campo Heartbeat Information.
Heartbeat Information (Informazioni Heartbeat): lunghezza variabile
Definito come parametro di lunghezza variabile utilizzando il formato descritto nella Sezione 3.2.1, cioè:
Parametri Variabili Stato Valore Tipo
-------------------------------------------------------------
Heartbeat Info Obbligatorio 1
Il campo Sender-Specific Heartbeat Info dovrebbe normalmente includere informazioni sull'ora corrente del mittente quando questo chunk HEARTBEAT viene inviato e l'indirizzo di trasporto di destinazione a cui questo HEARTBEAT viene inviato (vedere Sezione 8.3). Queste informazioni vengono semplicemente riflesse dal ricevitore nel messaggio HEARTBEAT ACK (vedere Sezione 3.3.6). Si noti inoltre che il messaggio HEARTBEAT è sia per il controllo della raggiungibilità che per la verifica del percorso (vedere Sezione 5.4). Quando un chunk HEARTBEAT viene utilizzato per scopi di verifica del percorso, DEVE (MUST) contenere un nonce casuale a 64 bit.
3.3.6. Conferma di Heartbeat (Heartbeat Acknowledgement, HEARTBEAT ACK) (5)
Un endpoint dovrebbe inviare questo chunk al suo endpoint peer come risposta a un chunk HEARTBEAT (vedere Sezione 8.3). Un HEARTBEAT ACK viene sempre inviato all'indirizzo IP di origine del datagramma IP contenente il chunk HEARTBEAT a cui questo ack risponde.
Il campo parametro contiene una struttura dati opaca di lunghezza variabile.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 5 | Chunk Flags | Heartbeat Ack Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ Heartbeat Information TLV (Variable-Length) /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
Heartbeat Ack Length (Lunghezza Heartbeat Ack): 16 bit (intero senza segno)
Impostato alla dimensione del chunk in byte, inclusi l'intestazione del chunk e il campo Heartbeat Information.
Heartbeat Information (Informazioni Heartbeat): lunghezza variabile
Questo campo DEVE (MUST) contenere il parametro Heartbeat Information della richiesta Heartbeat a cui questa conferma di Heartbeat risponde.
Parametri Variabili Stato Valore Tipo
-------------------------------------------------------------
Heartbeat Info Obbligatorio 1
3.3.7. Interruzione Associazione (Abort Association, ABORT) (6)
Il chunk ABORT viene inviato al peer di un'associazione per chiudere l'associazione. Il chunk ABORT può contenere parametri di causa per informare il ricevitore del motivo dell'interruzione. I chunk DATA NON DEVONO (MUST NOT) essere raggruppati con ABORT. I chunk di controllo (ad eccezione di INIT, INIT ACK e SHUTDOWN COMPLETE) POSSONO (MAY) essere raggruppati con un ABORT, ma DEVONO (MUST) essere posizionati prima dell'ABORT nel pacchetto SCTP o verranno ignorati dal ricevitore.
Se un endpoint riceve un ABORT con un errore di formato o non viene trovato alcun TCB, DEVE (MUST) scartarlo silenziosamente. Inoltre, in nessuna circostanza, un endpoint che riceve un ABORT DEVE (MUST NOT) rispondere a quell'ABORT inviando un proprio ABORT.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 6 |Reserved |T| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ zero or more Error Causes /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Reserved (Riservato): 7 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
T bit (Bit T): 1 bit
Il bit T è impostato a 0 se il mittente ha compilato il Verification Tag previsto dal peer. Se il Verification Tag è riflesso, il bit T DEVE (MUST) essere impostato a 1. Riflettere significa che il Verification Tag inviato è lo stesso di quello ricevuto.
Nota: Regole speciali si applicano a questo chunk per la verifica; si prega di vedere la Sezione 8.5.1 per i dettagli.
Length (Lunghezza): 16 bit (intero senza segno)
Impostato alla dimensione del chunk in byte, inclusi l'intestazione del chunk e tutti i campi Error Cause presenti.
Vedere la Sezione 3.3.10 per le definizioni delle cause di errore.
3.3.8. Arresto dell'Associazione (Shutdown Association, SHUTDOWN) (7)
Un endpoint in un'associazione DEVE (MUST) utilizzare questo chunk per avviare una chiusura graduale dell'associazione con il suo peer. Questo chunk ha il seguente formato.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 7 | Chunk Flags | Length = 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cumulative TSN Ack |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
Length (Lunghezza): 16 bit (intero senza segno)
Indica la lunghezza del parametro. Impostato a 8.
Cumulative TSN Ack (TSN Cumulativo Confermato): 32 bit (intero senza segno)
Questo parametro contiene il TSN dell'ultimo chunk ricevuto in sequenza prima di eventuali lacune.
Nota: Poiché il messaggio SHUTDOWN non contiene Gap Ack Blocks, non può essere utilizzato per confermare TSN ricevuti fuori ordine. In un SACK, la mancanza di Gap Ack Blocks che erano precedentemente inclusi indica che il ricevitore dei dati ha rinnegato i chunk DATA associati. Poiché SHUTDOWN non contiene Gap Ack Blocks, il ricevitore dello SHUTDOWN non dovrebbe interpretare la mancanza di un Gap Ack Block come un rinnegamento. (Vedere la Sezione 6.2 per informazioni sul rinnegamento.)
3.3.9. Conferma di Arresto (Shutdown Acknowledgement, SHUTDOWN ACK) (8)
Questo chunk DEVE (MUST) essere utilizzato per confermare la ricezione del chunk SHUTDOWN al completamento del processo di arresto; vedere la Sezione 9.2 per i dettagli.
Il chunk SHUTDOWN ACK non ha parametri.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 8 |Chunk Flags | Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
3.3.10. Errore di Operazione (Operation Error, ERROR) (9)
Un endpoint invia questo chunk al suo endpoint peer per notificargli determinate condizioni di errore. Contiene una o più cause di errore. Un errore di operazione non è considerato fatale di per sé, ma può essere utilizzato con un chunk ABORT per segnalare una condizione fatale. Ha i seguenti parametri:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 9 | Chunk Flags | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\ \
/ one or more Error Causes /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
Length (Lunghezza): 16 bit (intero senza segno)
Impostato alla dimensione del chunk in byte, inclusi l'intestazione del chunk e tutti i campi Error Cause presenti.
Le cause di errore sono definite come parametri di lunghezza variabile utilizzando il formato descritto nella Sezione 3.2.1, cioè:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cause Code | Cause Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Cause-Specific Information /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Cause Code (Codice Causa): 16 bit (intero senza segno)
Definisce il tipo di condizioni di errore segnalate.
Valore Codice Causa Codice Causa
--------- ----------------
1 Identificatore di Flusso Non Valido
2 Parametro Obbligatorio Mancante
3 Errore Cookie Scaduto
4 Mancanza di Risorse
5 Indirizzo Non Risolvibile
6 Tipo di Chunk Non Riconosciuto
7 Parametro Obbligatorio Non Valido
8 Parametri Non Riconosciuti
9 Nessun Dato Utente
10 Cookie Ricevuto Durante l'Arresto
11 Riavvio di un'Associazione con Nuovi Indirizzi
12 Interruzione Avviata dall'Utente
13 Violazione del Protocollo
Cause Length (Lunghezza Causa): 16 bit (intero senza segno)
Impostato alla dimensione del parametro in byte, inclusi i campi Cause Code, Cause Length e Cause-Specific Information.
Cause-Specific Information (Informazioni Specifiche della Causa): lunghezza variabile
Questo campo contiene i dettagli della condizione di errore.
3.3.11. Eco di State Cookie (State Cookie Echo, COOKIE ECHO) (10)
Questo chunk viene utilizzato solo durante l'inizializzazione di un'associazione. Viene inviato dal mittente INIT ACK al mittente INIT (vedere Sezione 5.1). Questo chunk DEVE (MUST) precedere qualsiasi chunk DATA o SACK inviato all'interno dell'associazione, ma PUÒ (MAY) essere raggruppato con uno o più chunk DATA o chunk SACK nello stesso pacchetto SCTP.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 10 |Chunk Flags | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ Cookie /
\ \
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
Cookie: dimensione variabile
Questo campo deve contenere l'esatto cookie ricevuto nel parametro State Cookie dall'INIT ACK precedente.
Un'implementazione DOVREBBE (SHOULD) rendere il cookie il più piccolo possibile per garantire l'interoperabilità.
Nota: Un Cookie Echo NON contiene un parametro State Cookie; invece, i dati all'interno del Parameter Value dello State Cookie diventano i dati all'interno del Chunk Value del Cookie Echo. Questo consente a un'implementazione di cambiare solo i primi 2 byte del parametro State Cookie per diventare un chunk COOKIE ECHO.
3.3.12. Conferma di Cookie (Cookie Acknowledgement, COOKIE ACK) (11)
Questo chunk viene utilizzato solo durante l'inizializzazione di un'associazione. Viene utilizzato per confermare la ricezione di un chunk COOKIE ECHO. Questo chunk DEVE (MUST) precedere qualsiasi chunk DATA o SACK inviato all'interno dell'associazione, ma PUÒ (MAY) essere raggruppato con uno o più chunk DATA o chunk SACK nello stesso pacchetto SCTP.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 11 |Chunk Flags | Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
3.3.13. Arresto Completo (Shutdown Complete, SHUTDOWN COMPLETE) (14)
Questo chunk DEVE (MUST) essere utilizzato per confermare la ricezione del chunk SHUTDOWN ACK al completamento del processo di arresto; vedere la Sezione 9.2 per i dettagli.
Il chunk SHUTDOWN COMPLETE non ha parametri.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 14 |Reserved |T| Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Chunk Flags (Flag del Chunk): 8 bit
Reserved (Riservato): 7 bit
Impostato a 0 in trasmissione e ignorato in ricezione.
T bit (Bit T): 1 bit
Il bit T è impostato a 0 se il mittente ha compilato il Verification Tag previsto dal peer. Se il Verification Tag è riflesso, il bit T DEVE (MUST) essere impostato a 1. Riflettere significa che il Verification Tag inviato è lo stesso di quello ricevuto.
Nota: Regole speciali si applicano a questo chunk per la verifica, si prega di vedere la Sezione 8.5.1 per i dettagli.
Nota: Questo documento contiene le Sezioni 3.3.3 fino a 3.3.13, completando la descrizione completa delle definizioni dei chunk SCTP. Il Capitolo 4 e il contenuto successivo saranno continuati nei documenti successivi.