SCTP is a new alternative to TCP, a protocol which is a backbone of today's internet. Very much like TCP itself, SCTP has some features which make it to be an ideal candidate for networking stacks in making.
Similar to TCP, SCTP has following features
- Connection Oriented
- Full Duplex
- Reliable data transfer
The extra functionalities that SCTP bring are very interesting. TCP does an ordered data delivery meaning every data is recieved in same order as was sent, however this comes with a price. Say if the first data packet does not arrive then other packets in the sequence have to be either hold up or discarded. This is called “Head of Line Blocking problem”. SCTP is designed to addess this need and it solves it in 2 ways.
- Un-ordered Messages
- Muti streaming
Un-ordered messages you can easily see is a feature of UDP. SCTP provides an option for marking the transmission as ordered or un-ordered.
Multi-streaming : Actually name of SCTP - Stream Control Transmission protocol is derived because of this feature. This means that data can be partitioned into multiple streams that have the property of independently sequenced delivery within that stream and not delivery in other streams. Just to mention it, TCP is a single byte stream based protocol. An excellent example of multi-streaming is that delivery of multimedia documents. Since they consists of different objects, each object can be transported in its own stream. The same can be achieved by TCP by opening several connections (one per stream) which would lead to additional overhead. SCTP does it in one association.
One of the core features that SCTP has is called Multi-homing. This means that each of the 2 endpoints during SCTP association setup can specify multiple points of attachment. Having multiple interfaces allow data to be automatically sent to alternate addresses when failure occur and important part here is that it happens without application ever knowing low level failure.Such fault tolerance is not available in TCP, which binds each endpoint to a single interface.
RFCs for SCTP and general information can be found at : http://www.sctp.org