RFC 4960 - Stream Control Transmission Protocol (SCTP)
- Stato : Proposed Standard
- Pubblicato : settembre 2007
- Stream : IETF
- Obsoleta : RFC 2960, RFC 3309
- Obsoletata da : RFC 9260
- Errata : Nessun errata
Sintesi
Questo documento rende obsoleti gli RFC 2960 e RFC 3309. Descrive lo Stream Control Transmission Protocol (SCTP). L'SCTP è stato progettato originariamente per trasportare messaggi di segnalazione della rete telefonica pubblica a commutazione di circuito (PSTN) su reti IP, ma è adatto ad applicazioni più ampie.
L'SCTP è un protocollo di trasporto affidabile che opera su una rete a pacchetto senza connessione come IP. Offre i seguenti servizi:
- Trasferimento dati utente confermato, senza errori e senza duplicati
- Frammentazione dei dati utente per rispettare l'MTU del percorso rilevata
- Consegna ordinata dei messaggi utente all'interno di flussi multipli, con opzione di consegna in ordine di arrivo per singoli messaggi utente
- Raggruppamento opzionale di più messaggi utente in un singolo pacchetto SCTP
- Tolleranza ai guasti a livello di rete tramite multi-homing su entrambi o uno degli endpoint di un'associazione
La progettazione dell'SCTP include un comportamento adeguato di avoidance della congestione e resistenza ad attacchi di flooding e masquerade.
Sommario
-
- 1.1 Motivazione
- 1.2 Panoramica architetturale dell'SCTP
- 1.3 Termini chiave
- 1.4 Abbreviazioni
- 1.5 Panoramica funzionale dell'SCTP
- 1.5.1 Avvio e chiusura dell'associazione
- 1.5.2 Consegna ordinata all'interno dei flussi
- 1.5.3 Frammentazione dei dati utente
- 1.5.4 Acknowledgement e avoidance della congestione
- 1.5.5 Raggruppamento dei chunk
- 1.5.6 Convalida dei pacchetti
- 1.5.7 Gestione dei percorsi
- 1.6 Aritmetica dei numeri di sequenza
- 1.7 Modifiche rispetto alla RFC 2960
-
- 3.1 Descrizione dei campi dell'header comune SCTP
- 3.2 Descrizione dei campi dei chunk
- 3.2.1 Formato dei parametri opzionali/variabili
- 3.2.2 Segnalazione dei parametri non riconosciuti
- 3.3 Definizioni dei chunk SCTP
- 3.3.1 Payload Data (DATA)
- 3.3.2 Initiation (INIT)
- 3.3.3 Acknowledgement di init (INIT ACK)
- 3.3.4 Selective Acknowledgement (SACK)
- 3.3.5 Heartbeat Request (HEARTBEAT)
- 3.3.6 Heartbeat Acknowledgement (HEARTBEAT ACK)
- 3.3.7 Abort dell'associazione (ABORT)
- 3.3.8 Shutdown (SHUTDOWN)
- 3.3.9 Shutdown Acknowledgement (SHUTDOWN ACK)
- 3.3.10 Operational Error (ERROR)
- 3.3.11 Cookie Echo (COOKIE ECHO)
- 3.3.12 Cookie Acknowledgement (COOKIE ACK)
- 3.3.13 Shutdown Complete (SHUTDOWN COMPLETE)
-
5. Inizializzazione dell'associazione
- 5.1 Stabilimento normale di un'associazione
- 5.2 Gestione di INIT, INIT ACK, COOKIE ECHO duplicati o inattesi
- 5.3 Altri problemi di inizializzazione
- 5.4 Verifica del percorso
-
6. Trasferimento dei dati utente
- 6.1 Trasmissione dei chunk DATA
- 6.2 Acknowledgement alla ricezione dei chunk DATA
- 6.3 Gestione del timer di ritrasmissione
- 6.4 Endpoint SCTP multi-homed
- 6.5 Stream Identifier e Stream Sequence Number
- 6.6 Consegna ordinata e non ordinata
- 6.7 Segnalazione dei buchi nei TSN DATA ricevuti
- 6.8 Calcolo del checksum CRC32c
- 6.9 Frammentazione e reassembly
- 6.10 Raggruppamento
-
7. Controllo della congestione
- 7.1 Differenze dal controllo della congestione TCP
- 7.2 Slow start e avoidance della congestione dell'SCTP
- 7.3 Scoperta dell'MTU del percorso
-
- 8.1 Rilevamento di guasto dell'endpoint
- 8.2 Rilevamento di guasto del percorso
- 8.3 Heartbeat del percorso
- 8.4 Gestione dei pacchetti "Out of the Blue"
- 8.5 Verification Tag
-
9. Terminazione dell'associazione
- 9.1 Abort di un'associazione
- 9.2 Chiusura di un'associazione
-
10. Interfaccia con il livello superiore
- 10.1 ULP verso SCTP
- 10.2 SCTP verso ULP
-
11. Considerazioni sulla sicurezza
- 11.1 Obiettivi di sicurezza
- 11.2 Risposte dell'SCTP alle minacce potenziali
- 11.3 Interazioni dell'SCTP con i firewall
- 11.4 Protezione degli host non compatibili SCTP
-
- 13.1 Parametri necessari all'istanza SCTP
- 13.2 Parametri necessari per associazione
- 13.3 Dati per indirizzo di trasporto
- 13.4 Altri parametri generali necessari
-
- 14.1 Registrazione dei tipi di chunk IETF
- 14.2 Estensione parametro chunk definita da IETF
- 14.3 Cause di errore aggiuntive definite da IETF
- 14.4 Payload Protocol Identifier
- 14.5 Registro dei numeri di porta
Appendici
- Appendice A. Explicit Congestion Notification (ECN)
- Appendice B. Calcolo del checksum CRC32c
- Appendice C. Gestione ICMP
Riferimenti
Risorse correlate
- Testo ufficiale : RFC 4960
- Pagina ufficiale : RFC 4960 DataTracker
- Errata : RFC Editor Errata