Stream Control Transmission Protocol
aus Wikipedia, der freien Enzyklopädie
Das Stream Control Transmission Protocol (SCTP) ist ein zuverlässiges Transportprotokoll, das auf einem potenziell unzuverlässigen verbindungslosen Paketdienst aufsetzt, beispielsweise auf IP.
Es wurde von der Internet engineering task force (IETF) als neues Transportprotokoll vorgeschlagen und im Oktober 2000 in RFC 2960 veröffentlicht. Eine Einführung findet sich auch in RFC 3286. Das zuständige Gremium bei der IETF ist die Arbeitsgruppe Signaling Transport, kurz SIGTRAN.
Als Transportprotokoll steht SCTP auf der selben Stufe des OSI-Referenzmodell wie TCP und UDP (Layer 4).
SCTP realisiert das Konzept einer Association: Hier wird eine Verbindung aufgebaut, in der mehrere Byte-Streams in sich reihenfolgenerhaltend (untereinander aber potentiell nicht-reihenfolgenerhaltend) transportiert werden. Zusätzlich können einzelne, zum Beispiel dringende, Datagramme separat und „out-of-order“ verschickt werden, die dadurch eventuell die In-Order-Datenströme „überholen“.
SCTP kennt außerdem Multistreaming und Multihoming (ein Host mit mehreren gültigen IP-Adressen). Es werden Heartbeats verwendet, um aktiv auf Verbindungsabriss zu testen.
Anders als TCP zeigt sich SCTP resistent gegen SYN-Flooding, eine Denial-of-Service-Attacke, bei der durch halboffene Verbindungen die Ressourcen des Servers aufgebraucht werden. Dazu verwendet es einen sogenannten Vier-Wege-Handshake. Hierbei speichert der Server bei einer Verbindungsanfrage (INIT-Paket) keine Zustandsinformationen, sondern schickt diese in Form eines Cookies (INIT-ACK-Paket) an den Client. Der Client muss dieses Cookie in seine Antwort (COOKIE-ECHO-Paket) einfügen und wird damit vom Server als zum Verbindungsaufbau berechtigt erkannt, was dieser ihm bestätigt (COOKIE-ACK-Paket).
Ursprünglich wurde SCTP als Transportprotokoll definiert, um Zeichengabenachrichten (SS7) aus Telefonnetzen auch über IP-Netzwerke übertragen zu können. Bei der Entwicklung stand insbesondere die Zuverlässigkeit des Protokolls im Vordergrund. SCTP ist aber auch für andere Anwendungen geeignet, da es Vorteile von TCP und UDP vereint. Eine wichtige, auf SCTP aufbauende Anwendung ist Reliable Server Pooling (RSerPool).
SCTP verwendet für Fluss- und Überlastkontrolle ähnliche Algorithmen wie TCP, verhält sich also in einem gemischten Netz (SCTP und TCP) neutral. ([1], PDF)