| Familie: | Internetprotokollfamilie | ||||||||||||||||||||||||
| Einsatzgebiet: | Zuverlässiges, verbindungsorientiertes Transportprotokoll | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
DasStream Control Transmission Protocol (SCTP) ist einzuverlässiges,verbindungsorientiertesNetzwerkprotokoll. Es gehört zurTransportschicht und setzt auf einem potenziell unzuverlässigen, verbindungslosenPaketdienst auf.
SCTP wurde von derInternet Engineering Task Force (IETF) als neues Transportprotokoll vorgeschlagen und im Oktober 2000 in dem Standarddokument RFC 2960[1] veröffentlicht. Die Spezifikation wurde im September 2007 durch RFC 4960[2] und im Juni 2022 durch RFC 9260[3] ersetzt. Eine Einführung findet sich in RFC 3286.[4] Das zuständige Gremium bei der IETF ist die ArbeitsgruppeSignaling Transport, kurz SIGTRAN.
Als Transportprotokoll steht SCTP auf derselben Stufe desTCP/IP-Referenzmodells wieTCP undUDP (Schicht 4 des OSI-Modells).
SCTP realisiert das Konzept einerAssociation: Hier wird eine Verbindung aufgebaut, in dermehrere Nachrichten-Datenströme in sich reihenfolgenerhaltend (untereinander aber potentiell nicht-reihenfolgenerhaltend) transportiert werden. Zusätzlich können einzelne, zum Beispiel dringende,Datagramme separat und außer der Reihe verschickt werden, die dadurch eventuell die In-Order-Datenströme „überholen“.
SCTP kennt außerdemMultistreaming undMultihoming (ein Host mit mehreren gültigenIP-Adressen). Es werdenHeartbeats verwendet, um aktiv auf Verbindungsabriss zu testen.
Anders als TCP zeigt sich SCTP resistent gegenSYN-Flooding, eineDenial-of-Service-Attacke, bei der durch halboffene Verbindungen die Ressourcen des Servers aufgebraucht werden. Dazu verwendet es einen sogenanntenVier-Wege-Handshake. Hierbei speichert der Server bei einer Verbindungsanfrage (INIT-Paket) keine Zustandsinformationen, sondern schickt diese in Form einesCookies (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). Ein ähnliches Verfahren ist mit TCP ebenfalls möglich, sieheSYN-Cookies.
Ursprünglich wurde SCTP als Transportprotokoll definiert, um Zeichengabenachrichten (SS7) aus Telefonnetzen auch überIP-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 istReliable Server Pooling (RSerPool).
SCTP verwendet fürFluss- undÜberlastkontrolle ähnliche Algorithmen wie TCP, verhält sich also in einem gemischten Netz (SCTP und TCP) neutral.[5]
QUIC ist ebenfalls ein zuverlässiges und verbindungsorientiertes Netzprotokoll auf Transportschicht. Es wurde von Google entworfen und baut auf UDP auf. SCTP und QUIC unterscheiden sich im Funktionsumfang und möglichen Einsatzzwecken. So unterstützt QUIC kein Multihoming und keine redundanten Übertragungspfade. In QUIC istTransport Layer Security (TLS) zurkryptographischen Absicherung der Kommunikation integriert, wodurch Verbindungen immerverschlüsselt sind. QUIC wird von Protokollen wieHTTP/3 oderDNS over QUIC (DoQ) verwendet. QUIC wurde wie zuvor SCTP von der IETF standardisiert; eine Google-Variante gQUIC wird parallel fortgeführt.