International Engineering Consortium
Web ProForums
Stream Control Transmission Protocol (SCTP)

2. Stream Control Transmission Protocol


Figure 1. SCTP Overview

As illustrated in Figure 1, the SCTP transport service layer is positioned between the SCTP user application and the network service being used. Since SCTP is based on interfacing two SCTP endpoints, there are certain application programming interfaces (APIs) that run in between the transport service layer and SCTP user layer. In addition, each endpoint hosts multiple IP addresses.

SCTP deploys multiple paths and streams to transport messages across two endpoints. In SCTP, data is transmitted between endpoints through a connection referred to as an "association." An association begins with an "initiation" and is maintained until all data has been successfully transmitted and received. Once all data is successfully received, the association is gracefully terminated through a "shutdown."

Within SCTP, user data and control information are assembled in chunks. Multiple chunks and a common header comprise a protocol data unit (PDU), also referred to as an "SCTP packet." SCTP packets contain data chunks and control chunks. SCTP provides ordered message delivery within "SCTP streams" and supports network fault tolerance in multi-homing environments.

The fundamental SCTP properties include the following:

  • Validation and Acknowledgement Mechanisms—During initiation, the validation mechanism bundles the data into a "cookie" that includes a secure hash of values and a secret key. Cookies are digitally signed with message authentication codes (MAC), which are used to prevent denial-of-service attacks. Within an association, selective acknowledgement (SACK) chunks acknowledge the receipt of data chunks. SACK chunks are also used to inform the endpoint of duplicated or missing chunks.
  • Path Selection and Monitoring—SCTP packets are routed to the destination IP address of a peer endpoint through a "primary path." The primary path allows the user to determine the primary route for data flow. In addition, alternate paths exist for each IP address that the peer endpoint supports. SCTP closely monitors the transmission paths to the peer endpoint using HEARTBEAT chunks that test the connectivity of a path. In SCTP, a path is considered "active" when it has been acknowledged by the peer endpoint or has been used previously for SCTP packet transfer. A path is considered "inactive" if previous path transmissions have failed.
  • Flow and Congestion Control—While SCTP flow control is based on each association, congestion control is established within each transmission path. The peer endpoint assigns a receiver-window variable for flow control. The receiver-window variable alerts the endpoint of the amount of space available in the peer endpoint's inbound buffer. SCTP deploys congestion control within each stream using a congestion-window variable. This variable limits the number of bytes that may be sent before an acknowledgement is received. A set of flow and congestion control parameters is subtly retained within the association and each transmission path.

These features give SCTP numerous advantages over TCP and UDP, as the following section elaborates.

Registered Users
Enjoy exclusive access to free On-Line Education and receive the biweekly IEC newsletter.

IEC Newsletter
Get the latest industry information including critical insights from key industry leaders, technology briefings, and an Analyst Corner.
Current
Subscribe

Newsroom

IEC Corporate Member

Advertising Kit