6. Trasferimento dei dati utente
Questo capitolo descrive il trasferimento dei dati utente.
6.1. Trasmissione dei chunk DATA
I chunk DATA sono trasmessi secondo l'ordine dei flussi e i vincoli del controllo della congestione. I flag U/B/E indicano rispettivamente un messaggio non ordinato, l'inizio e la fine di un messaggio utente.
6.2. Acknowledgement alla ricezione dei chunk DATA
Alla ricezione, viene generato un SACK per confermare il TSN cumulativo e segnalare eventuali buchi.
6.3. Gestione del timer di ritrasmissione
Per ogni chunk DATA non confermato è mantenuto un timer di ritrasmissione (RTO). Alla scadenza, il chunk è ritrasmesso e l'RTO è raddoppiato (backoff esponenziale).
6.4. Endpoint SCTP multi-homed
Un endpoint può possedere più indirizzi. Il traffico utilizza il percorso principale e commuta su un percorso alternativo in caso di guasto.
6.5. Stream Identifier e Stream Sequence Number
Ogni messaggio appartiene a un flusso identificato da uno Stream Identifier e porta uno Stream Sequence Number per la consegna ordinata.
6.6. Consegna ordinata e non ordinata
La consegna ordinata è garantita per flusso tramite lo Stream Sequence Number. Il flag U disattiva l'ordine per un singolo messaggio.
6.7. Segnalazione dei buchi nei TSN DATA ricevuti
I Gap Ack Blocks del SACK descrivono gli intervalli di TSN ricevuti oltre il TSN cumulativo confermato.
6.8. Calcolo del checksum CRC32c
Il checksum del pacchetto utilizza CRC32c, calcolato sull'intero pacchetto eccetto il campo checksum stesso.
6.9. Frammentazione e reassembly
Un messaggio utente che supera l'MTU del percorso è frammentato in più chunk DATA (B/E) e riassemblato alla ricezione.
6.10. Raggruppamento
Più chunk possono essere raggruppati in un singolo pacchetto SCTP, entro i limiti dell'MTU e dell'allineamento a 4 ottetti.