Zum Hauptinhalt springen

RFC 4960 - Stream Control Transmission Protocol (SCTP)

  • Status : Proposed Standard
  • Veröffentlicht : September 2007
  • Stream : IETF
  • Obsoletisiert : RFC 2960, RFC 3309
  • Obsoletisiert durch : RFC 9260
  • Errata : Keine Errata

Zusammenfassung​

Dieses Dokument obsoletisiert die RFC 2960 und RFC 3309. Es beschreibt das Stream Control Transmission Protocol (SCTP). SCTP wurde ursprünglich entwickelt, um Signalisierungsnachrichten des öffentlichen leitungsvermittelten Telefonnetzes (PSTN) über IP-Netze zu übertragen, ist jedoch für breitere Anwendungen geeignet.

SCTP ist ein zuverlässiges Transportprotokoll, das über einem verbindungslosen Paketnetz wie IP betrieben wird. Es bietet folgende Dienste:

  • Bestätigter, fehlerfreier und duplikatfreier Transport von Nutzerdaten
  • Fragmentierung von Nutzerdaten zur Einhaltung der ermittelten Pfad-MTU
  • Geordnete Zustellung von Nutzernachrichten innerhalb mehrerer Ströme sowie Option der Zustellung in Ankunftsreihenfolge für einzelne Nutzernachrichten
  • Optionales Bündeln mehrerer Nutzernachrichten in einem einzelnen SCTP-Paket
  • Netzwerkebene-Fehlertoleranz durch Multi-Homing an beiden Endpunkten oder einem Endpunkt einer Assoziation

Das SCTP-Design umfasst ein angemessenes Staukontrollverhalten sowie Widerstandsfähigkeit gegen Überflutungs- (Flooding-) und Maskerade-Angriffe.


Inhaltsverzeichnis​

  • 1. Einleitung

    • 1.1 Motivation
    • 1.2 Architekturüberblick des SCTP
    • 1.3 Schlüsselbegriffe
    • 1.4 Abkürzungen
    • 1.5 Funktionale Übersicht des SCTP
      • 1.5.1 Start und Beendigung der Assoziation
      • 1.5.2 Geordnete Zustellung innerhalb von Strömen
      • 1.5.3 Fragmentierung von Nutzerdaten
      • 1.5.4 Bestätigung und Staukontrolle
      • 1.5.5 Bündeln von Chunks
      • 1.5.6 Paketvalidierung
      • 1.5.7 Pfadverwaltung
    • 1.6 Sequenznummern-Arithmetik
    • 1.7 Änderungen gegenüber RFC 2960
  • 2. Konventionen

  • 3. SCTP-Paketformat

    • 3.1 Beschreibung der Felder des gemeinsamen SCTP-Headers
    • 3.2 Beschreibung der Chunk-Felder
      • 3.2.1 Format optionaler/variabler Parameter
      • 3.2.2 Meldung nicht erkannter Parameter
    • 3.3 SCTP-Chunk-Definitionen
      • 3.3.1 Payload Data (DATA)
      • 3.3.2 Initiation (INIT)
      • 3.3.3 Initiation-Bestätigung (INIT ACK)
      • 3.3.4 Selektive Bestätigung (SACK)
      • 3.3.5 Heartbeat-Anforderung (HEARTBEAT)
      • 3.3.6 Heartbeat-Bestätigung (HEARTBEAT ACK)
      • 3.3.7 Abbruch der Assoziation (ABORT)
      • 3.3.8 Beendigung (SHUTDOWN)
      • 3.3.9 Beendigungs-Bestätigung (SHUTDOWN ACK)
      • 3.3.10 Betriebsfehler (ERROR)
      • 3.3.11 Cookie-Echo (COOKIE ECHO)
      • 3.3.12 Cookie-Bestätigung (COOKIE ACK)
      • 3.3.13 Beendigungsabschluss (SHUTDOWN COMPLETE)
  • 4. SCTP-Assoziations-Zustandsdiagramm

  • 5. Initialisierung der Assoziation

    • 5.1 Normale Herstellung einer Assoziation
    • 5.2 Behandlung doppelter oder unerwarteter INIT/INIT ACK/COOKIE ECHO
    • 5.3 Weitere Initialisierungsprobleme
    • 5.4 Pfadüberprüfung
  • 6. Übertragung von Nutzerdaten

    • 6.1 Übertragung von DATA-Chunks
    • 6.2 Bestätigung beim Empfang von DATA-Chunks
    • 6.3 Verwaltung des Retransmission-Timers
    • 6.4 Multi-Homing-SCTP-Endpunkte
    • 6.5 Stream-Kennung und Stream-Sequenznummer
    • 6.6 Geordnete und ungeordnete Zustellung
    • 6.7 Meldung von Lücken in empfangenen DATA-TSNs
    • 6.8 Berechnung der CRC32c-Prüfsumme
    • 6.9 Fragmentierung und Reassemblierung
    • 6.10 Bündeln
  • 7. Staukontrolle

    • 7.1 Unterschiede zur TCP-Staukontrolle
    • 7.2 Slow Start und Stauvermeidung des SCTP
    • 7.3 Ermittlung der Pfad-MTU
  • 8. Fehlerverwaltung

    • 8.1 Erkennung von Endpunktfehlern
    • 8.2 Erkennung von Pfadfehlern
    • 8.3 Pfad-Heartbeat
    • 8.4 Behandlung von „Out of the Blue“-Paketen
    • 8.5 Verifikations-Tag
  • 9. Beendigung der Assoziation

    • 9.1 Abbruch einer Assoziation
    • 9.2 Beendigung einer Assoziation
  • 10. Schnittstelle zur oberen Schicht

    • 10.1 ULP zu SCTP
    • 10.2 SCTP zu ULP
  • 11. Sicherheitsüberlegungen

    • 11.1 Sicherheitsziele
    • 11.2 SCTP-Reaktionen auf potenzielle Bedrohungen
    • 11.3 Interaktion des SCTP mit Firewalls
    • 11.4 Schutz nicht-SCTP-fähiger Hosts
  • 12. Überlegungen zur Netzwerkverwaltung

  • 13. Empfohlene TCB-Parameter

    • 13.1 Für die SCTP-Instanz benötigte Parameter
    • 13.2 Pro Assoziation benötigte Parameter
    • 13.3 Daten pro Transportadresse
    • 13.4 Weitere benötigte allgemeine Parameter
  • 14. IANA-Überlegungen

    • 14.1 Registrierung von IETF-Chunk-Typen
    • 14.2 IETF-definierte Chunk-Parameter-Erweiterung
    • 14.3 Weitere IETF-definierte Fehlerursachen
    • 14.4 Payload-Protokoll-Kennungen
    • 14.5 Portnummern-Register
  • 15. Vorgeschlagene SCTP-Protokollparameterwerte

  • 16. Danksagungen

Anhänge​

Referenzen​


Zugehörige Ressourcen​