Stream Control Transport Protocol, or SCTP as it is commonly known, is a protocol typically used for connection oriented, message-based transport over an IP network. It is similar in function to TCP in that it is reliable, but it also has a number of features that provide an improvement over TCP's congestion avoidance mechanisms, as well as additional reliability features, such as SCTP Heartbeat, multihoming, and a more complex and featureful state model than TCP.

Describing SCTP in comparison to TCP would be easiest. Whereas TCP has a SYN, ACK, SYN/ACK, SCTP has a complex, step-based state model, which goes something like INIT, INIT ACK, SACK, HEARTBEAT, HEARTBEAT ACK... you get the picture. This model offers for many more features and some mediocre quality of service features which make SCTP very attractive in comparison with TCP, but it also has significantly more overhead.

As its name implies, SCTP is a streaming protocol. Multiple streams can take place inside an SCTP session. Individual streams can be controlled independently from the context of the protocol session as a whole - for instance, your RTP data could react differently than your HTTP data but they could both use SCTP. Or, SCTP connectivity to a given port could provide two different levels of protocol service for different types of messages - i.e., HTTP data vs HTTP GET.

SCTP also supports a feature called multihoming as stated before. The protocol permits data to pass outbound via two different IP addresses assigned to a machine, offering the flexibility to use an alternate data path if the first one isn't available (for instance, if HEARTBEAT ACK is not seen). The protocol has a concept of both primary path and alternate path, and will fall back to the primary if it returns to an available state. This is very good news, since TCP, while it has the capability of being aware if a connection has died or not acknowledged, doesn't have this "re-establishment" feature.

In summary, SCTP offers a powerful alternative to TCP for those users who need features above and beyond traditional congestion avoidance and reliability. While SCTP's mechanisms are similar, they provide more reliability in situations where the network quality is suboptimal.

SCTP is defined by RFC2960.

Log in or register to write something here or to contact authors.