In order to transfer the data between 2 SCTP hosts, the both should negotiate and create an association.The SCTP user at an endpoint should use the ASSOCIATE primitive to initialize an SCTP association to another SCTP endpoint. Lets see this flow of information from two hosts (A and B).
Flow of information for SCTP Association
A sends INITchunk to B – The INITchunk contains the following information
Verification Tag ( A random number marked as TAG_A ranging from 1 to 4294967295).
After sending the INITchunk , A starts a timer T1-INIT and enters a COOKIE-WAIT state
B responds with an INIT-ACK chunk
Verification Tag (Contains TAG_A and a generated TAG_B)
STATE_COOKIE(at this stage B does not accept or respond to any other requests)
When INIT-ACK is received at A, it stops the T1-INITtimer and leaves the COOKIE-WAIT state and then A sends the STATE-COOKIE to the B in the COOKIE-ECHO chunk. A starts the T1-COOKIE timer and enters the COOKIE-ECHOED state
After receiving the COOKIE-ECHO chunk , B replies with the COOKIE-ACK chunk and moves to the ESTABLISHED state
Upon receiving the COOKIE-ACK , A stops the T1-COOKIE timer and will move from COOKIE-ECHOEDstate to ESTABLISHED state
In the IP terminology, a host is called multi-homed if it can be addressed by multiple IP addresses. Multihoming is used only for recovering from network failures and is not used, for example, for load balancing.
How multihoming is used in SCTP?
To make full use of the SCTP multi-homing, the host also needs to support multiple network interfaces,each of which has to be configured to work in a different sub-network.The SCTP implementation supports two paths per association. Normally data is sent through the primary path. If a network failure occurs in the primary network, SCTP resends unacknowledged data through the secondary path automatically. The application cannot see which path is used and it does not affect sending of data traffic in application level either. In this case, the SCTP stack takes care of all the details.The SCTP association works normally so that data runs through the primary path and SCTP heart beat runs through the secondary path . If something unexpected happens in the primary path, the SCTP usually has an alternative path available. The SCTP monitors a condition of the secondary
path all the time by using a heartbeat message. The following figure describes how the SCTP re-transmission works when both the primary and the secondary paths failed. The retransmission procedure starts always the same way; the first retransmission is done through the secondary path. The example above is based on the following SCTP parameters
SCTP – Stream control transport protocol is a transport layer protocol just like TCP and UDP.
The protocol was defined by the IETF Signaling Transport (SIGTRAN) working group in 2000,and is maintained by the IETF Transport Area (TSVWG) working group.
SCTP is a unicast protocol, and supports data exchange between exactly 2 endpoints, although these may be represented by multiple IP addresses.
SCTP provides reliable transmission, detecting when data is discarded, reordered, duplicated or corrupted, and retransmitting damaged data as necessary.
SCTP transmission is full duplex.
SCTP is message oriented and supports framing of individual message boundaries. In comparison, TCP is byte oriented and does not preserve any implicit structure within a transmitted byte stream without enhancement.
SCTP is rate adaptive similar to TCP, and will scale back data transfer to the prevailing load conditions in the network. It is designed to behave cooperatively with TCP sessions attempting to use the same bandwidth.