SCTP stands for Stream Control Transmission Protocol.
SCTP as a protocol can be seen as a hybrid of UDP and TCP.
At its core, SCTP holds the following characteristics:
- Connection oriented. Similar to TCP, SCTP is connection oriented. It also offers a multi-homing capability that isn't used by WebRTC
- Optional reliability. Reliability is optional in SCTP and is up to the implementer using SCTP to decide if he needs this capability or not
- Optional ordering. Ordering of packets sent via SCTP is optional and is left for the implementer to decide if this is necessary for him or not
- Message oriented. SCTP makes sure that each message sent is properly parsed on the receiver end in the same manner in which it was sent
- Flow control. Similar to TCP, SCTP provides a flow control mechanism that makes sure the network doesn't get congested
SCTP is not implemented by all operating systems. In such cases, an application level implementation of SCTP will usually be used.
SCTP is used in WebRTC for the implementation and delivery of the Data Channel.
That costs time at connection setup. SCTP opens an association with a four-way handshake, which is two round trips before any application data moves. The middle of that exchange is an anti-spoofing cookie, and in WebRTC it is redundant: SCTP runs inside a DTLS association that has already authenticated the peer. SNAP removes those two round trips by moving SCTP's initialization parameters into the SDP offer/answer instead, and it is one of the pieces of WARP, the wider effort to get WebRTC setup from six round trips down to two.
Google is experimenting with the QUIC protocol as a future replacement to SCTP.



