Aller au contenu principal

6. Transfert de données utilisateur

Ce chapitre décrit le transfert des données utilisateur.

6.1. Transmission des chunks DATA​

Les chunks DATA sont transmis selon l'ordre des flux et les contraintes de contrôle de congestion. Les drapeaux U/B/E indiquent respectivement un message non ordonné, le début et la fin d'un message utilisateur.

6.2. Accusé de réception à la réception des chunks DATA​

À la réception, un SACK est généré pour accuser le TSN cumulatif et signaler les trous éventuels.

6.3. Gestion de la minuterie de retransmission​

Un temporisateur de retransmission (RTO) est maintenu par chunk DATA non acquitté. En cas d'expiration, le chunk est retransmis et le RTO est doublé (backoff exponentiel).

6.4. Points d'extrémité SCTP multi-hébergés​

Un point d'extrémité peut posséder plusieurs adresses. Le trafic utilise le chemin principal, et bascule sur un chemin alternatif en cas de défaillance.

6.5. Identificateur de flux et numéro de séquence de flux​

Chaque message appartient à un flux identifié par un Stream Identifier, et porte un Stream Sequence Number pour la livraison ordonnée.

6.6. Livraison ordonnée et non ordonnée​

La livraison ordonnée est assurée par flux grâce au Stream Sequence Number. Le drapeau U désactive l'ordre pour un message donné.

6.7. Signalement des trous dans les TSN DATA reçus​

Les Gap Ack Blocks du SACK décrivent les plages de TSN reçus au-delà du TSN cumulatif acquitté.

6.8. Calcul de la somme de contrôle CRC32c​

La somme de contrôle du paquet utilise CRC32c, calculée sur tout le paquet sauf le champ checksum lui-même.

6.9. Fragmentation et réassemblage​

Un message utilisateur dépassant la MTU du chemin est fragmenté en plusieurs chunks DATA (B/E) et réassemblé à la réception.

6.10. Regroupement​

Plusieurs chunks peuvent être regroupés dans un seul paquet SCTP, dans la limite de la MTU et de l'alignement sur 4 octets.