"Faster than a speeding bullet. More powerful than a locomotive. Able to leap tall buildings in a single bound---Look! Up in the sky"???
NO...It's not a bird or a plane or Superman---Look out on the Net--it's SCTP! Stream Control Transmission Protocol is being hyped asone of the Top 10 Hottest Technologies of 2001 by TelecommunicationsMagazine. According to a marketing blurb accompanying the book,
Stream Control Transmission Protocol (SCTP):A Reference Guide byRandall R. Stewart and Qiaobing Xie,
" SCTP is considered by many tobe the TCP of the future....more robust and secure...the technology ofchoice
for building next-generation commercial grade infrastructuresfor telecommunications and e-commerce."
To understand this new protocol, it is important to know the lineage of SCTP. The protocol was directly motivated by the need to transport telecommunication signalingmessages over an IP-based network. The signaling system SS7 hasbeen the dominant bearer of control information in telecommunicationnetworks where high performance and reliability are critical toexisting services and applications. However,the SS7 signaling network is logically a separate network which requires dedicated network infrastructure and only shares some physicalresources with regular user traffic. The IETF working group, 'Signalling Transport (SIGTRAN)' is proposing a different approach for the transport ofsignaling messages: Stream Control Transmission Protocol. Stream Control Transmission Protocol is primarily defined within rfc2960 as a new IP transport protocol existing at the same level as UDP and TCP.In this approach, signaling messages are exchanged over a commonpacket-switched (IP-based) network instead of a logically separatenetwork but, it is instructive to note, this new protocol has beenshaped largely by the fact that telephony signaling has rigid timing and reliability requirements often prescribed by government regulations.
Time to look under the hood!We'll address the questions:
SCTP Core Features.
The primary distinguishing features of this new protocol are "multi-homing" and "multi-streaming". A connection between 2 endpoints in this context is called an "association".
Multi-homing is defined as the ability of an association to supportmultiple IP addresses or interfaces at a given end point. In itscurrent form SCTP does not do load-sharing. The benefit of multi-homingis potentially greater survivability of the session in case of networkfailures. Use of more than one address could allow re-routing of packets in event of failure and also provide an alternate path for retransmissions. Endpoints can exchange lists of addresses during initiation of theassociation. One address is designated as the primary address to receivedata. A single port number is used across the entire addresslist at an endpoint for a specific session. Heartbeat chunks are usedto monitor availibility of alternate paths with thresholds set todetermine failure of alternate and primary paths.
Multi-streaming does not refer to multiple streams in the TCPsense but rather each stream represents a sequence of messages withina single association--thesemay be short or long messages which include flags for control ofsegmentation and reassembly. Stream Identifiers and Stream Sequencenumbers are included in the data packet to allow sequencing of messages on a per-stream basis. This can mean thatthere would be no unnecessary head-of-line blockingbetween independent streams of messages in case of loss in one stream.SCTP also provides a mechanism for designating order-of-arrival delivery as opposed to ordered delivery.
Comparisons to TCP.
Like TCP, SCTP:
SCTP applications.
Applications would benefit most that:
Applications would benefit little that:
Implementations
A. The SCTP library being developed by the Computer Networking Group at the University of Essen (Germany) and Siemens AG (Germany).
SCTP for Beginners by Andreas Jungmaier isa very good place to start to understand SCTP. The online tutorialis well documented giving the important information and links relatingto SCTP. Thank you Andreas!
This user-space implementation is multifaceted and consists of:
We wrote an application modeled on the well-known ttcp but using theSCTP library client/server model and raw sockets. Since we are interested in optimizing bulk transfers in high delay/bandwidth networks, we wanted to see how well the implementation performed. Bearing in mind that this is not a kernel implementation so would not be expected to be as optimized for speed andthat file transfer has been identified above as an applicationthat would benefit little or none from SCTP's features, we did not findSCTP performed well for bulk transfers.
B. The Linux kernel implementation being developed by La Monte Yarroll (Motorola) and others.
This is still in the development stage and, while we wouldexpect a better performance from a kernel implementation, given the needs of bulk transfer and the key features of SCTP, we do not expectthis will provide a great performance improvement over TCP.Since SCTP is block-oriented and not byte-oriented, it should bemuch easier to do OS-bypass and get better performance.