SCTP, Stream Control Transmission Protocol |
Description | Glossary | RFCs | Publications | Obsolete RFCs |
Protocol suite: | TCP/IP. |
Protocol type: | Transport layer protocol. |
IP Protocol: | 132. |
SNMP MIBs: | iso.org.dod.internet.mgmt.mib-2.sctpMIB (1.3.6.1.2.1.104). |
Working groups: |
sigtran, Signaling Transport. tcpm, TCP Maintenance and Minor Extensions. tsvwg, Transport Area Working Group. |
Links: |
IANA: SCTP parameters. sctp.org. |
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:
- Acknowledged error-free non-duplicated transfer of user data.
- Data fragmentation to conform to discovered path MTU size.
- Sequenced delivery of user messages within multiple streams, with an option for order-of-arrival delivery of individual user messages.
- Optional bundling of multiple user messages into a single SCTP packet.
- Network-level fault tolerance through supporting of multi-homing at either or both ends of an association.
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:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Source port | Destination port | ||||||||||||||||||||||||||||||
Verification tag | |||||||||||||||||||||||||||||||
Checksum | |||||||||||||||||||||||||||||||
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.
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 type | Description | References |
---|---|---|
0 | DATA, Payload Data. | RFC 2960 |
1 | INIT, Initiation. | RFC 2960 |
2 | INIT ACK, Initiation Acknowledgement. | RFC 2960 |
3 | SACK, Selective Acknowledgement. | RFC 2960 |
4 | HEARTBEAT, Heartbeat Request. | RFC 2960 |
5 | HEARTBEAT ACK, Heartbeat Acknowledgement. | RFC 2960 |
6 | ABORT, Abort. | RFC 2960 |
7 | SHUTDOWN, Shutdown. | RFC 2960 |
8 | SHUTDOWN ACK, Shutdown Acknowledgement. | RFC 2960 |
9 | ERROR, Operation Error. | RFC 2960 |
10 | COOKIE ECHO, State Cookie. | RFC 2960 |
11 | COOKIE ACK, Cookie Acknowledgement. | RFC 2960 |
12 | ECNE, Reserved for Explicit Congestion Notification Echo. | RFC 2960 |
13 | CWR, Reserved for Congestion Window Reduced. | RFC 2960 |
14 | SHUTDOWN COMPLETE, Shutdown Complete. | RFC 2960 |
15 | AUTH, Authentication Chunk. | RFC 4895 |
16 - 62 | ||
63 | reserved for IETF-defined chunk extensions. | |
64 - 126 | ||
127 | reserved for IETF-defined chunk extensions. | |
128 | ASCONF-ACK, Address Configuration Acknowledgment. | RFC 5061 |
129 - 131 | ||
132 | PAD, Padding Chunk. | RFC 4820 |
133 - 191 | ||
192 | Forward TSN. | RFC 3758 |
193 | ASCONF, Address Configuration Change Chunk. | RFC 5061 |
194 - 254 | ||
255 | reserved 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.
Identifier | Description | References |
---|---|---|
0 | ||
1 | IUA, ISDN Q.921-User Adaptation. | RFC 4233 |
2 | M2UA, MTP2-User Adaptation. | RFC 3331 |
3 | M3UA, MTP3-User Adaptation. | RFC 3332, RFC 4666 |
4 | SUA, Signalling Connection Control Part User Adaptation Layer. | RFC 2960 |
5 | M2PA, MTP2 User Peer-to-peer Adaptation Layer. | RFC 2960 |
6 | V5UA, V5.2-User Adaptation. | RFC 3807 |
7 | H.248. | |
8 | BICC / Q.2150.3. | |
9 | TALI, Transport Adapter Layer Interface. | RFC 3094 |
10 | DUA. | RFC 4129 |
11 | ASAP, Aggregate Server Access Protocol. | RFC 5352 |
12 | ENRP, Enpoint Name Resolution Protocol. | RFC 5353 |
13 | H.323. | |
14 | Q.IPC / Q.2150.3. | |
15 | SIMCO. | |
16 | DDP Segment Chunk. | RFC 5043 |
17 | DDP Stream Session Control. | RFC 5043 |
18 | S1AP, S1 Application Protocol. | |
19 | RUA. | |
20 | HNBAP. | |
21 | ForCES-HP. | |
22 | ForCES-MP. | |
23 | ForCES-LP. | |
24 | SBc-AP. | |
25 | NBAP. | |
26 | ||
27 | X2AP. |
RFCs:
[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).
Description | Glossary | RFCs | Publications | Obsolete RFCs |