SCTP, Stream Control Transmission Protocol

Description Glossary RFCs Publications Obsolete RFCs


Protocol suite: TCP/IP.
Protocol type:Transport layer protocol.
IP Protocol:132.
Working groups: sigtran, Signaling Transport.
tcpm, TCP Maintenance and Minor Extensions.
tsvwg, Transport Area Working Group.
Links: IANA: SCTP parameters.

RFC 2960:

SCTP is designed to transport PSTN signaling messages over IP networks, but is capable of broader applications. SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP. It offers the following services to its users:

The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks.

MAC header IP header SCTP header Data :::

SCTP header:

0001020304050607 0809101112131415 1617181920212223 2425262728293031
Source port Destination port
Verification tag
Chunk [1.. n] :::

Source port. 16 bits.
The SCTP sender's port number. It can be used by the receiver in combination with the source IP address, the SCTP destination port and possibly the destination IP address to identify the association to which this packet belongs.

Destination port. 16 bits.
The SCTP port number to which this packet is destined. The receiving host will use this port number to de-multiplex the SCTP packet to the correct receiving endpoint/application.

Verification tag. 32 bits.
The receiver of this packet uses the Verification Tag to validate the sender of this SCTP packet. On transmit, the value of this Verification Tag MUST be set to the value of the Initiate Tag received from the peer endpoint during the association initialization, with the following exceptions:

An INIT chunk MUST be the only chunk in the SCTP packet carrying it.

Checksum. 32 bits.
Contains the checksum of this SCTP packet. SCTP uses the Adler-32 algorithm for calculating the checksum.

Chunk. Variable length.

0001020304050607 0809101112131415 1617181920212223 2425262728293031
Chunk type Chunk flags Chunk length
Chunk data :::

Chunk type. 8 bits, 0 to 255.
Identifies the type of information contained in the Chunk data. The value of 255 is reserved for future use as an extension field.

Chunk types are encoded such that the highest-order two bits specify the action that must be taken if the processing endpoint does not recognize the Chunk type.

The total length of a chunk MUST be a multiple of 4 bytes. If the length of the chunk is not a multiple of 4 bytes, the sender MUST pad the chunk with all zero bytes and this padding is not included in the chunk length field. The sender should never pad with more than 3 bytes. The receiver MUST ignore the padding bytes.

Chunk typeDescriptionReferences
0DATA, Payload Data. RFC 2960
1INIT, Initiation. RFC 2960
2INIT ACK, Initiation Acknowledgement. RFC 2960
3SACK, Selective Acknowledgement. RFC 2960
4HEARTBEAT, Heartbeat Request. RFC 2960
5HEARTBEAT ACK, Heartbeat Acknowledgement. RFC 2960
6ABORT, Abort. RFC 2960
7SHUTDOWN, Shutdown. RFC 2960
8SHUTDOWN ACK, Shutdown Acknowledgement. RFC 2960
9ERROR, Operation Error. RFC 2960
10COOKIE ECHO, State Cookie. RFC 2960
11COOKIE ACK, Cookie Acknowledgement. RFC 2960
12ECNE, Reserved for Explicit Congestion Notification Echo. RFC 2960
13CWR, Reserved for Congestion Window Reduced. RFC 2960
14SHUTDOWN COMPLETE, Shutdown Complete. RFC 2960
15AUTH, Authentication Chunk.RFC 4895
63reserved for IETF-defined chunk extensions. 
127reserved for IETF-defined chunk extensions. 
128ASCONF-ACK, Address Configuration Acknowledgment.RFC 5061
132PAD, Padding Chunk.RFC 4820
192Forward TSN. RFC 3758
193ASCONF, Address Configuration Change Chunk.RFC 5061
255reserved for IETF-defined chunk extensions.RFC 4960

Chunk flags. 8 bits.
The usage of these bits depends on the chunk type as given by the Chunk type. Unless otherwise specified, they are set to zero on transmit and are ignored on receipt.

Chunk length. 16 bits.
This size of the chunk in bytes including the Chunk type, Chunk flags, Chunk length, and Chunk data fields. Therefore, if the Chunk value field is zero-length, the Length field will be set to 4. This field does not count any padding.

Chunk data. Variable length.
The actual information to be transferred in the chunk. The usage and format of this field is dependent on the Chunk type.

Payload Protocol Identifiers.

1IUA, ISDN Q.921-User Adaptation. RFC 4233
2M2UA, MTP2-User Adaptation. RFC 3331
3M3UA, MTP3-User Adaptation. RFC 3332, RFC 4666
4SUA, Signalling Connection Control Part User Adaptation Layer.RFC 2960
5M2PA, MTP2 User Peer-to-peer Adaptation Layer.RFC 2960
6V5UA, V5.2-User Adaptation. RFC 3807
8BICC / Q.2150.3. 
9TALI, Transport Adapter Layer Interface. RFC 3094
10DUA. RFC 4129
11 ASAP, Aggregate Server Access Protocol. RFC 5352
12ENRP, Enpoint Name Resolution Protocol. RFC 5353
14Q.IPC / Q.2150.3. 
16DDP Segment Chunk.RFC 5043
17DDP Stream Session Control.RFC 5043
18S1AP, S1 Application Protocol. 



[RFC 2960] Stream Control Transmission Protocol.

[RFC 3257] Stream Control Transmission Protocol Applicability Statement.

[RFC 3286] An Introduction to the Stream Control Transmission Protocol (SCTP).

[RFC 3309] Stream Control Transmission Protocol (SCTP) Checksum Change.

[RFC 3331] Signaling System 7 (SS7) Message Transfer Part 2 (MTP2) - User Adaptation Layer.

[RFC 3332] Signaling System 7 (SS7) Message Transfer Part 3 (MTP3) - User Adaptation Layer (M3UA).

[RFC 3436] Transport Layer Security over Stream Control Transmission Protocol.

[RFC 3554] On the Use of Stream Control Transmission Protocol (SCTP) with IPsec.

[RFC 3708] Using TCP Duplicate Selective Acknowledgement (DSACKs) and Stream Control Transmission Protocol (SCTP) Duplicate Transmission Sequence Numbers (TSNs) to Detect Spurious Retransmissions.

[RFC 3758] Stream Control Transmission Protocol (SCTP) Partial Reliability Extension.

[RFC 3807] V5.2-User Adaptation Layer (V5UA).

[RFC 3873] Stream Control Transmission Protocol (SCTP) Management Information Base (MIB).

[RFC 4129] Digital Private Network Signaling System (DPNSS)/ Digital Access Signaling System 2 (DASS 2) Extensions to the IUA Protocol.

[RFC 4138] Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP and the Stream Control Transmission Protocol (SCTP).

[RFC 4166] Telephony Signalling Transport over Stream Control Transmission Protocol (SCTP) Applicability Statement.

[RFC 4168] The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol (SIP).

[RFC 4233] Integrated Services Digital Network (ISDN) Q.921-User Adaptation Layer.

[RFC 4460] Stream Control Transmission Protocol (SCTP) Specification Errata and Issues.

[RFC 5352] Aggregate Server Access Protocol (ASAP).

[RFC 6580] IANA Registries for the Remote Direct Data Placement (RDDP) Protocols.

[RFC 6581] Enhanced Remote Direct Memory Access (RDMA) Connection Establishment.


Obsolete RFCs:

Description Glossary RFCs Publications Obsolete RFCs