OVER the past few decades, packet-switched networks have merged with new technologies to facilitate more efficient communication channels within network systems. IP and telephony-based networks are converging to support the interworking of applications and services.
In addition, Integrated Services Digital Networks (ISDN), ATM networks, and mobile networks are increasingly routing their signaling traffic via IP networks. Stream Control Transmission Protocol (SCTP) provides flexible delivery and reliability.
Large-scale Interexchange Carriers (IXC) are realizing that more and more network traffic is data rather than voice. Therefore, the scope of present networks must be extended to accommodate application signaling and data services. The primary goal of several IXCs is to carry data and voice using the same transport, thereby reducing additional infrastructure costs.
Overview SCTP transport service layer is positioned between user application and the network service being used. Since SCTP is based on interfacing two SCTP endpoints, there are certain Application Programming Interfaces (API) 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 it, data is transmitted between endpoints through a connection called an “association.” This begins with “initiation” and is maintained until all data has been successfully transmitted and received. Once data is successfully received, the association is terminated through “shutdown.”
Within SCTP, user data and control information are assembled in chunks. Multiple chunks and a common header form Protocol Data Unit (PDU), also referred to as an “SCTP packet.” SCTP packets contain data chunks and control chunks, providing ordered message delivery within “SCTP streams” and supports network fault tolerance in multi-homing environments. Some properties of SCTP are:
1. Validation and acknowledgement mechanisms — during initiation, the validation mechanism bundles 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 receipt.
2. Path selection and monitoring — SCTP packets are routed to the destination IP address of a peer endpoint through a “primary path,” allowing the user to determine the primary route for data flow. Alternate paths also exist for each IP address that the peer endpoint supports. SCTP closely monitors 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.
3. 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, which alerts the endpoint of available space 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.
Advantages SCTP gains advantage over TCP by the virtue of its unique features, some of which include:
1. Multi-homing — this enables SCTP endpoints to support multiple IP addresses. Multi-homing protects an association from potential network failures by steering traffic to alternate IP addresses. During an association, SCTP endpoints exchange lists of IP addresses. Therefore, each endpoint can send and receive messages from any of the IP addresses listed at the remote endpoint.
Multi-homing is a step above conventional single-homed data exchange sessions (such as TCP). In single-homed environments, loss of session could be triggered by core network failures or by isolation of endpoints. Since multi-homing directs traffic on different paths to separate IP addresses, loss of session due to physical network failure is virtually non-existent in SCTP.
2. Multi-streaming — this separates and transmits user data on multiple SCTP streams, capable of independent, sequenced delivery. Message loss in a particular stream will only hinder delivery within that stream. Therefore, other streams within an association are not affected. Through multi-streaming, SCTP eliminates unnecessary blocking that often occurs in TCP transmissions. In TCP, a stream is defined as a sequence of bytes that conform to strict in-sequence delivery. In-sequence delivery results in a major drawback known as “head-of-the-queue blocking,” where messages within a stream are not allowed to bypass each other. Since SCTP streams are independent, retransmitted and high-priority messages can bypass less significant messages.
Features In the three stages of association, SCTP applies mechanisms that set it apart from TCP and UDP:
1. Initiation features — in contrast to the three-way handshake that occurs in TCP, SCTP uses a four-way handshake to initiate association. This protects against denial-of-service attempts caused by attackers bombarding SCTP nodes with counterfeit PDUs. In addition, SCTP packets that contain invalid verification tags are identified during initiation and removed from the transmission path. The verification tag values and the cookie mechanism shields the initiation procedure from blind attacks, common in TCP.
2. Data transmission features — during transmission, the chunk-bundling feature allows data to be multiplexed with control chunks. The peer endpoint acknowledges the receipt of a data chunk by sending a SACK chunk. SACK chunks contain Transmission Sequence Numbers (TSN) that reveal gaps in the sequence. Within each stream, SCTP packets are also assigned Stream Sequence Numbers (SSN), which determine the sequence of data delivery within each independent stream. If peer endpoint indicate gaps in SSN, then the message will not be delivered until it’s filled.
3. Shutdown features — this procedure has some significant advantages over TCP. For instance, a TCP connection is considered “half-open” when one endpoint continues to send data though the peer endpoint is no longer transmitting data. In contrast, SCTP implements a graceful close of an association by exchanging three messages. These messages acknowledge that both endpoints will cease in their transmissions of data.
SCTP packet format This includes the (a) source port address; (b) destination port address (c) verification tag; and (d) check sum of the entire packet
The source port number is used by the receiving endpoint to identify association to which the SCTP packet belongs. The destination port number is the SCTP receiver’s address. Each endpoint assigns a verification tag (32-bit value) that identifies the association. The checksum acts as a data integrity tool for each SCTP packet.
Chunk fields can be described as follows: (1) chunk-type field, which identifies the type of chunk being transmitted; (2) chunk flag, which specifies whether bits will be used; (3) chunk length, which determines the size of the entire chunk; (4) chunk data, which includes the actual data payload.
There are n number of chunks in a single SCTP packet, which is determined by the Maximum Transmission Unit (MTU) size of the transmission path. SCTP allows chunks to be multiplexed in one packet to full MTU capacity, with the exception of initiation (Init) and initiation-acknowledgement (Init Ack) chunks. There are 14 chunks in all and 13 control chunks. The data chunk contains the actual data payload.
SCTP’s appeal goes beyond being a robust transport protocol. SCTP can be seamlessly introduced into present IP networks, simply as a higher layer user of IP services. The applicability and enhanced efficiency of SCTP over existing transport protocols and its conformity with existing systems may establish it as a protocol of choice within present and future networking systems.
The writer is a student at the department of computer science, University of Karachi