Passa al contenuto principale

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. Introduzione

    • 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
  • 2. Convenzioni

  • 3. Formato del pacchetto SCTP

    • 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)
  • 4. Diagramma degli stati dell'associazione SCTP

  • 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. Gestione dei guasti

    • 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
  • 12. Considerazioni sulla gestione di rete

  • 13. Parametri TCB consigliati

    • 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. Considerazioni IANA

    • 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
  • 15. Valori suggeriti dei parametri di protocollo SCTP

  • 16. Ringraziamenti

Appendici​

Riferimenti​


Risorse correlate​