3.3. Définitions des Chunks SCTP (SCTP Chunk Definitions) - Suite
3.3.3. Accusé de Réception d'Initialisation (Initiation Acknowledgement, INIT ACK) (2)
Le chunk INIT ACK est utilisé pour accuser réception de l'initiation d'une association SCTP.
La partie paramètre de INIT ACK est formatée de manière similaire au chunk INIT. Il utilise deux paramètres variables supplémentaires: le State Cookie et le paramètre non reconnu.
Le format du chunk INIT ACK est illustré ci-dessous:
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 d'Initiation): 32 bits (entier non signé)
Le récepteur de INIT ACK enregistre la valeur du paramètre Initiate Tag. Cette valeur DOIT (MUST) être placée dans le champ Verification Tag de chaque paquet SCTP que le récepteur INIT ACK transmet dans cette association.
Le Initiate Tag NE DOIT PAS (MUST NOT) prendre la valeur 0. Voir la section 5.3.1 pour plus d'informations sur la sélection de la valeur Initiate Tag.
Si la valeur du Initiate Tag dans un chunk INIT ACK reçu est trouvée à 0, le récepteur DOIT (MUST) détruire l'association en rejetant son TCB. Le récepteur PEUT (MAY) envoyer un ABORT à des fins de débogage.
Advertised Receiver Window Credit (a_rwnd, Crédit de Fenêtre du Récepteur Annoncé): 32 bits (entier non signé)
Cette valeur représente l'espace tampon dédié, en nombre d'octets, que l'expéditeur du INIT ACK a réservé en association avec cette fenêtre. Pendant la durée de vie de l'association, cet espace tampon NE DEVRAIT PAS (SHOULD NOT) être réduit (c'est-à-dire, les tampons dédiés retirés de cette association).
Number of Outbound Streams (OS, Nombre de Flux Sortants): 16 bits (entier non signé)
Définit le nombre de flux sortants que l'expéditeur de ce chunk INIT ACK souhaite créer dans cette association. La valeur 0 NE DOIT PAS (MUST NOT) être utilisée, et la valeur NE DOIT PAS (MUST NOT) être supérieure à la valeur MIS envoyée dans le chunk INIT.
Note: Un récepteur d'un INIT ACK avec la valeur OS définie à 0 DEVRAIT (SHOULD) détruire l'association en rejetant son TCB.
Number of Inbound Streams (MIS, Nombre de Flux Entrants): 16 bits (entier non signé)
Définit le nombre maximum de flux que l'expéditeur de ce chunk INIT ACK autorise l'extrémité homologue à créer dans cette association. La valeur 0 NE DOIT PAS (MUST NOT) être utilisée.
Note: Il n'y a pas de négociation du nombre réel de flux, mais les deux extrémités utiliseront min(demandé, offert). Voir la section 5.1.1 pour plus de détails.
Note: Un récepteur d'un INIT ACK avec la valeur MIS définie à 0 DEVRAIT (SHOULD) détruire l'association en rejetant son TCB.
Initial TSN (I-TSN, TSN Initial): 32 bits (entier non signé)
Définit le TSN initial que l'expéditeur INIT ACK utilisera. La plage valide va de 0 à 4294967295. Ce champ PEUT (MAY) être défini à la valeur du champ Initiate Tag.
Paramètres Fixes Statut
----------------------------------------------
Initiate Tag Obligatoire
Advertised Receiver Window Credit Obligatoire
Number of Outbound Streams Obligatoire
Number of Inbound Streams Obligatoire
Initial TSN Obligatoire
Paramètres Variables Statut Valeur Type
-------------------------------------------------------------
State Cookie Obligatoire 7
IPv4 Address (Note 1) Optionnel 5
IPv6 Address (Note 1) Optionnel 6
Unrecognized Parameter Optionnel 8
Reserved for ECN Capable (Note 2) Optionnel 32768 (0x8000)
Host Name Address (Note 3) Optionnel 11
Note 1: Les chunks INIT ACK peuvent contenir un nombre quelconque de paramètres d'adresse IP qui peuvent être IPv4 et/ou IPv6 dans n'importe quelle combinaison.
Note 2: Le champ ECN Capable est réservé pour une utilisation future de la notification de congestion explicite.
Note 3: Les chunks INIT ACK NE DOIVENT PAS (MUST NOT) contenir plus d'un paramètre Host Name Address. De plus, l'expéditeur de INIT ACK NE DOIT PAS (MUST NOT) combiner d'autres types d'adresses avec Host Name Address dans INIT ACK. Le récepteur de INIT ACK DOIT (MUST) ignorer les autres types d'adresses si le paramètre Host Name Address est présent.
3.3.3.1. Paramètres Optionnels ou de Longueur Variable
State Cookie (Cookie d'État)
Valeur du Type de Paramètre: 7
Longueur du Paramètre: Taille variable, selon la taille du Cookie.
Valeur du Paramètre:
Cette valeur de paramètre DOIT (MUST) contenir toutes les informations d'état et de paramètre nécessaires pour que l'expéditeur de ce INIT ACK crée l'association, ainsi qu'un code d'authentification de message (MAC). Voir la section 5.1.3 pour plus de détails sur la définition du State Cookie.
Unrecognized Parameter (Paramètre Non Reconnu):
Valeur du Type de Paramètre: 8
Longueur du Paramètre: Taille variable.
Valeur du Paramètre:
Ce paramètre est renvoyé à l'origine du chunk INIT lorsque l'INIT contient un paramètre non reconnu qui a une valeur indiquant qu'il doit être signalé à l'expéditeur. Ce champ de valeur de paramètre contiendra les paramètres non reconnus copiés du chunk INIT complets avec les champs Parameter Type, Length et Value.
3.3.4. Accusé de Réception Sélectif (Selective Acknowledgement, SACK) (3)
Ce chunk est envoyé à l'extrémité homologue pour accuser réception des chunks DATA reçus et pour informer l'extrémité homologue des lacunes dans les sous-séquences reçues de chunks DATA telles que représentées par leurs TSN.
Le SACK DOIT (MUST) contenir les champs Cumulative TSN Ack, Advertised Receiver Window Credit (a_rwnd), Number of Gap Ack Blocks et Number of Duplicate TSNs.
Par définition, la valeur du paramètre Cumulative TSN Ack est le dernier TSN reçu avant une rupture dans la séquence de TSN reçus; la valeur TSN suivante suivant celle-ci n'a pas encore été reçue à l'extrémité envoyant le SACK. Ce paramètre accuse donc réception de tous les TSN inférieurs ou égaux à sa valeur.
Le traitement de a_rwnd par le récepteur du SACK est discuté en détail dans la section 6.2.1.
Le SACK contient également zéro ou plusieurs Gap Ack Blocks. Chaque Gap Ack Block accuse réception d'une sous-séquence de TSN reçus suivant une rupture dans la séquence de TSN reçus. Par définition, tous les TSN accusés par les Gap Ack Blocks sont supérieurs à la valeur du 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 (Indicateurs de Chunk): 8 bits
Défini à tous les '0' à la transmission et ignoré à la réception.
Cumulative TSN Ack (TSN Cumulatif Accusé): 32 bits (entier non signé)
Ce paramètre contient le TSN du dernier chunk DATA reçu dans la séquence avant une lacune. Dans le cas où aucun chunk DATA n'a été reçu, cette valeur est définie au TSN initial de l'homologue moins un.
Advertised Receiver Window Credit (a_rwnd, Crédit de Fenêtre du Récepteur Annoncé): 32 bits (entier non signé)
Ce champ indique l'espace tampon de réception mis à jour en octets de l'expéditeur de ce SACK; voir la section 6.2.1 pour plus de détails.
Number of Gap Ack Blocks (Nombre de Blocs Gap Ack): 16 bits (entier non signé)
Indique le nombre de Gap Ack Blocks inclus dans ce SACK.
Number of Duplicate TSNs (Nombre de TSN Dupliqués): 16 bits
Ce champ contient le nombre de TSN dupliqués que l'extrémité a reçus. Chaque TSN dupliqué est listé après la liste Gap Ack Block.
Gap Ack Blocks (Blocs d'Accusé de Réception de Lacune):
Ces champs contiennent les Gap Ack Blocks. Ils sont répétés pour chaque Gap Ack Block jusqu'au nombre de Gap Ack Blocks défini dans le champ Number of Gap Ack Blocks. Tous les chunks DATA avec des TSN supérieurs ou égaux à (Cumulative TSN Ack + Gap Ack Block Start) et inférieurs ou égaux à (Cumulative TSN Ack + Gap Ack Block End) de chaque Gap Ack Block sont supposés avoir été reçus correctement.
Gap Ack Block Start (Début du Bloc Gap Ack): 16 bits (entier non signé)
Indique le décalage TSN de début pour ce Gap Ack Block. Pour calculer le numéro TSN réel, le Cumulative TSN Ack est ajouté à ce numéro de décalage. Ce TSN calculé identifie le premier TSN de ce Gap Ack Block qui a été reçu.
Gap Ack Block End (Fin du Bloc Gap Ack): 16 bits (entier non signé)
Indique le décalage TSN de fin pour ce Gap Ack Block. Pour calculer le numéro TSN réel, le Cumulative TSN Ack est ajouté à ce numéro de décalage. Ce TSN calculé identifie le TSN du dernier chunk DATA reçu dans ce Gap Ack Block.
Duplicate TSN (TSN Dupliqué): 32 bits (entier non signé)
Indique le nombre de fois qu'un TSN a été reçu en double depuis le dernier envoi de SACK. Chaque fois qu'un récepteur reçoit un TSN dupliqué (avant d'envoyer le SACK), il l'ajoute à la liste des doublons. Le compteur de doublons est réinitialisé à zéro après l'envoi de chaque SACK.
3.3.5. Requête de Battement de Cœur (Heartbeat Request, HEARTBEAT) (4)
Une extrémité devrait envoyer ce chunk à son extrémité homologue pour sonder l'accessibilité d'une adresse de transport de destination particulière définie dans l'association présente.
Le champ de paramètre contient les informations de battement de cœur, qui est une structure de données opaque de longueur variable comprise uniquement par l'expéditeur.
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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
Heartbeat Length (Longueur du Battement de Cœur): 16 bits (entier non signé)
Défini à la taille du chunk en octets, y compris l'en-tête du chunk et le champ Heartbeat Information.
Heartbeat Information (Information de Battement de Cœur): longueur variable
Défini comme un paramètre de longueur variable utilisant le format décrit dans la section 3.2.1, c'est-à-dire:
Paramètres Variables Statut Valeur Type
-------------------------------------------------------------
Heartbeat Info Obligatoire 1
Le champ Sender-Specific Heartbeat Info devrait normalement inclure des informations sur l'heure actuelle de l'expéditeur lorsque ce chunk HEARTBEAT est envoyé et l'adresse de transport de destination à laquelle ce HEARTBEAT est envoyé (voir section 8.3). Ces informations sont simplement réfléchies par le récepteur dans le message HEARTBEAT ACK (voir section 3.3.6). Notez également que le message HEARTBEAT est à la fois pour la vérification de l'accessibilité et pour la vérification du chemin (voir section 5.4). Lorsqu'un chunk HEARTBEAT est utilisé à des fins de vérification de chemin, il DOIT (MUST) contenir un nonce aléatoire de 64 bits.
3.3.6. Accusé de Réception de Battement de Cœur (Heartbeat Acknowledgement, HEARTBEAT ACK) (5)
Une extrémité devrait envoyer ce chunk à son extrémité homologue en réponse à un chunk HEARTBEAT (voir section 8.3). Un HEARTBEAT ACK est toujours envoyé à l'adresse IP source du datagramme IP contenant le chunk HEARTBEAT auquel ce ack répond.
Le champ de paramètre contient une structure de données opaque de longueur variable.
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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
Heartbeat Ack Length (Longueur d'Accusé de Battement de Cœur): 16 bits (entier non signé)
Défini à la taille du chunk en octets, y compris l'en-tête du chunk et le champ Heartbeat Information.
Heartbeat Information (Information de Battement de Cœur): longueur variable
Ce champ DOIT (MUST) contenir le paramètre Heartbeat Information de la requête Heartbeat à laquelle cet accusé de réception de battement de cœur répond.
Paramètres Variables Statut Valeur Type
-------------------------------------------------------------
Heartbeat Info Obligatoire 1
3.3.7. Abandon d'Association (Abort Association, ABORT) (6)
Le chunk ABORT est envoyé à l'homologue d'une association pour fermer l'association. Le chunk ABORT peut contenir des paramètres de cause pour informer le récepteur de la raison de l'abandon. Les chunks DATA NE DOIVENT PAS (MUST NOT) être regroupés avec ABORT. Les chunks de contrôle (à l'exception de INIT, INIT ACK et SHUTDOWN COMPLETE) PEUVENT (MAY) être regroupés avec un ABORT, mais ils DOIVENT (MUST) être placés avant l'ABORT dans le paquet SCTP ou ils seront ignorés par le récepteur.
Si une extrémité reçoit un ABORT avec une erreur de format ou si aucun TCB n'est trouvé, elle DOIT (MUST) le rejeter silencieusement. De plus, en toutes circonstances, une extrémité qui reçoit un ABORT NE DOIT PAS (MUST NOT) répondre à cet ABORT en envoyant son propre 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 (Indicateurs de Chunk): 8 bits
Reserved (Réservé): 7 bits
Défini à 0 à la transmission et ignoré à la réception.
T bit (Bit T): 1 bit
Le bit T est défini à 0 si l'expéditeur a rempli le Verification Tag attendu par l'homologue. Si le Verification Tag est réfléchi, le bit T DOIT (MUST) être défini à 1. Réfléchir signifie que le Verification Tag envoyé est le même que celui reçu.
Note: Des règles spéciales s'appliquent à ce chunk pour la vérification; veuillez consulter la section 8.5.1 pour plus de détails.
Length (Longueur): 16 bits (entier non signé)
Défini à la taille du chunk en octets, y compris l'en-tête du chunk et tous les champs Error Cause présents.
Voir la section 3.3.10 pour les définitions des causes d'erreur.
3.3.8. Arrêt d'Association (Shutdown Association, SHUTDOWN) (7)
Une extrémité dans une association DOIT (MUST) utiliser ce chunk pour initier une fermeture progressive de l'association avec son homologue. Ce chunk a le format suivant.
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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
Length (Longueur): 16 bits (entier non signé)
Indique la longueur du paramètre. Défini à 8.
Cumulative TSN Ack (TSN Cumulatif Accusé): 32 bits (entier non signé)
Ce paramètre contient le TSN du dernier chunk reçu dans la séquence avant toute lacune.
Note: Étant donné que le message SHUTDOWN ne contient pas de Gap Ack Blocks, il ne peut pas être utilisé pour accuser réception des TSN reçus hors séquence. Dans un SACK, l'absence de Gap Ack Blocks qui étaient précédemment inclus indique que le récepteur de données a renié les chunks DATA associés. Étant donné que SHUTDOWN ne contient pas de Gap Ack Blocks, le récepteur du SHUTDOWN ne devrait pas interpréter l'absence d'un Gap Ack Block comme un reniement. (Voir la section 6.2 pour des informations sur le reniement.)
3.3.9. Accusé de Réception d'Arrêt (Shutdown Acknowledgement, SHUTDOWN ACK) (8)
Ce chunk DOIT (MUST) être utilisé pour accuser réception de la réception du chunk SHUTDOWN à l'achèvement du processus d'arrêt; voir la section 9.2 pour plus de détails.
Le chunk SHUTDOWN ACK n'a pas de paramètres.
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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
3.3.10. Erreur d'Opération (Operation Error, ERROR) (9)
Une extrémité envoie ce chunk à son extrémité homologue pour lui notifier certaines conditions d'erreur. Il contient une ou plusieurs causes d'erreur. Une erreur d'opération n'est pas considérée comme fatale en soi, mais peut être utilisée avec un chunk ABORT pour signaler une condition fatale. Il a les paramètres suivants:
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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
Length (Longueur): 16 bits (entier non signé)
Défini à la taille du chunk en octets, y compris l'en-tête du chunk et tous les champs Error Cause présents.
Les causes d'erreur sont définies comme des paramètres de longueur variable utilisant le format décrit dans la section 3.2.1, c'est-à-dire:
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 (Code de Cause): 16 bits (entier non signé)
Définit le type de conditions d'erreur signalées.
Valeur du Code de Cause Code de Cause
--------- ----------------
1 Identificateur de Flux Invalide
2 Paramètre Obligatoire Manquant
3 Erreur de Cookie Périmé
4 Manque de Ressources
5 Adresse Non Résolvable
6 Type de Chunk Non Reconnu
7 Paramètre Obligatoire Invalide
8 Paramètres Non Reconnus
9 Pas de Données Utilisateur
10 Cookie Reçu Pendant l'Arrêt
11 Redémarrage d'une Association avec de Nouvelles Adresses
12 Abandon Initié par l'Utilisateur
13 Violation de Protocole
Cause Length (Longueur de Cause): 16 bits (entier non signé)
Défini à la taille du paramètre en octets, y compris les champs Cause Code, Cause Length et Cause-Specific Information.
Cause-Specific Information (Information Spécifique à la Cause): longueur variable
Ce champ contient les détails de la condition d'erreur.
3.3.11. Écho de Cookie d'État (State Cookie Echo, COOKIE ECHO) (10)
Ce chunk est utilisé uniquement pendant l'initialisation d'une association. Il est envoyé de l'expéditeur INIT ACK à l'expéditeur INIT (voir section 5.1). Ce chunk DOIT (MUST) précéder tout chunk DATA ou SACK envoyé dans l'association, mais PEUT (MAY) être regroupé avec un ou plusieurs chunks DATA ou chunk SACK dans le même paquet 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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
Cookie: taille variable
Ce champ doit contenir le cookie exact reçu dans le paramètre State Cookie du INIT ACK précédent.
Une implémentation DEVRAIT (SHOULD) rendre le cookie aussi petit que possible pour assurer l'interopérabilité.
Note: Un Cookie Echo ne contient PAS de paramètre State Cookie; au lieu de cela, les données dans la valeur du paramètre du State Cookie deviennent les données dans la valeur du chunk du Cookie Echo. Cela permet à une implémentation de ne changer que les 2 premiers octets du paramètre State Cookie pour devenir un chunk COOKIE ECHO.
3.3.12. Accusé de Réception de Cookie (Cookie Acknowledgement, COOKIE ACK) (11)
Ce chunk est utilisé uniquement pendant l'initialisation d'une association. Il est utilisé pour accuser réception de la réception d'un chunk COOKIE ECHO. Ce chunk DOIT (MUST) précéder tout chunk DATA ou SACK envoyé dans l'association, mais PEUT (MAY) être regroupé avec un ou plusieurs chunks DATA ou chunks SACK dans le même paquet 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 (Indicateurs de Chunk): 8 bits
Défini à 0 à la transmission et ignoré à la réception.
3.3.13. Arrêt Complet (Shutdown Complete, SHUTDOWN COMPLETE) (14)
Ce chunk DOIT (MUST) être utilisé pour accuser réception de la réception du chunk SHUTDOWN ACK à l'achèvement du processus d'arrêt; voir la section 9.2 pour plus de détails.
Le chunk SHUTDOWN COMPLETE n'a pas de paramètres.
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 (Indicateurs de Chunk): 8 bits
Reserved (Réservé): 7 bits
Défini à 0 à la transmission et ignoré à la réception.
T bit (Bit T): 1 bit
Le bit T est défini à 0 si l'expéditeur a rempli le Verification Tag attendu par l'homologue. Si le Verification Tag est réfléchi, le bit T DOIT (MUST) être défini à 1. Réfléchir signifie que le Verification Tag envoyé est le même que celui reçu.
Note: Des règles spéciales s'appliquent à ce chunk pour la vérification, veuillez consulter la section 8.5.1 pour plus de détails.
Note: Ce document contient les sections 3.3.3 à 3.3.13, complétant la description complète des définitions de chunks SCTP. Le chapitre 4 et le contenu suivant seront poursuivis dans les documents ultérieurs.