Passa al contenuto principale

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.