| rfc9260v2.txt | rfc9260.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) R. Stewart | Internet Engineering Task Force (IETF) R. Stewart | |||
| Request for Comments: 9260 Netflix, Inc. | Request for Comments: 9260 Netflix, Inc. | |||
| Obsoletes: 4460, 4960, 6096, 7053, 8540 M. Tüxen | Obsoletes: 4460, 4960, 6096, 7053, 8540 M. Tüxen | |||
| Category: Standards Track Münster Univ. of Appl. Sciences | Category: Standards Track Münster Univ. of Appl. Sciences | |||
| ISSN: 2070-1721 K. Nielsen | ISSN: 2070-1721 K. Nielsen | |||
| Kamstrup A/S | Kamstrup A/S | |||
| April 2022 | May 2022 | |||
| Stream Control Transmission Protocol | Stream Control Transmission Protocol | |||
| Abstract | Abstract | |||
| This document describes the Stream Control Transmission Protocol | This document describes the Stream Control Transmission Protocol | |||
| (SCTP) and obsoletes RFC 4960. It incorporates the specification of | (SCTP) and obsoletes RFC 4960. It incorporates the specification of | |||
| the chunk flags registry from RFC 6096 and the specification of the I | the chunk flags registry from RFC 6096 and the specification of the I | |||
| bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are | bit of DATA chunks from RFC 7053. Therefore, RFCs 6096 and 7053 are | |||
| also obsoleted by this document. In addition, RFCs 4460 and 8540, | also obsoleted by this document. In addition, RFCs 4460 and 8540, | |||
| skipping to change at line 128 ¶ | skipping to change at line 128 ¶ | |||
| Chunks | Chunks | |||
| 3.3.4. Selective Acknowledgement (SACK) (3) | 3.3.4. Selective Acknowledgement (SACK) (3) | |||
| 3.3.5. Heartbeat Request (HEARTBEAT) (4) | 3.3.5. Heartbeat Request (HEARTBEAT) (4) | |||
| 3.3.6. Heartbeat Acknowledgement (HEARTBEAT ACK) (5) | 3.3.6. Heartbeat Acknowledgement (HEARTBEAT ACK) (5) | |||
| 3.3.7. Abort Association (ABORT) (6) | 3.3.7. Abort Association (ABORT) (6) | |||
| 3.3.8. Shutdown Association (SHUTDOWN) (7) | 3.3.8. Shutdown Association (SHUTDOWN) (7) | |||
| 3.3.9. Shutdown Acknowledgement (SHUTDOWN ACK) (8) | 3.3.9. Shutdown Acknowledgement (SHUTDOWN ACK) (8) | |||
| 3.3.10. Operation Error (ERROR) (9) | 3.3.10. Operation Error (ERROR) (9) | |||
| 3.3.10.1. Invalid Stream Identifier (1) | 3.3.10.1. Invalid Stream Identifier (1) | |||
| 3.3.10.2. Missing Mandatory Parameter (2) | 3.3.10.2. Missing Mandatory Parameter (2) | |||
| 3.3.10.3. "Stale Cookie" Error (3) | 3.3.10.3. Stale Cookie (3) | |||
| 3.3.10.4. Out of Resource (4) | 3.3.10.4. Out of Resource (4) | |||
| 3.3.10.5. Unresolvable Address (5) | 3.3.10.5. Unresolvable Address (5) | |||
| 3.3.10.6. Unrecognized Chunk Type (6) | 3.3.10.6. Unrecognized Chunk Type (6) | |||
| 3.3.10.7. Invalid Mandatory Parameter (7) | 3.3.10.7. Invalid Mandatory Parameter (7) | |||
| 3.3.10.8. Unrecognized Parameters (8) | 3.3.10.8. Unrecognized Parameters (8) | |||
| 3.3.10.9. No User Data (9) | 3.3.10.9. No User Data (9) | |||
| 3.3.10.10. Cookie Received While Shutting Down (10) | 3.3.10.10. Cookie Received While Shutting Down (10) | |||
| 3.3.10.11. Restart of an Association with New Addresses (11) | 3.3.10.11. Restart of an Association with New Addresses (11) | |||
| 3.3.10.12. User-Initiated Abort (12) | 3.3.10.12. User-Initiated Abort (12) | |||
| 3.3.10.13. Protocol Violation (13) | 3.3.10.13. Protocol Violation (13) | |||
| skipping to change at line 2195 ¶ | skipping to change at line 2195 ¶ | |||
| Cause Code: 16 bits (unsigned integer) | Cause Code: 16 bits (unsigned integer) | |||
| Defines the type of error conditions being reported. | Defines the type of error conditions being reported. | |||
| +=======+==============================================+ | +=======+==============================================+ | |||
| | Value | Cause Code | | | Value | Cause Code | | |||
| +=======+==============================================+ | +=======+==============================================+ | |||
| | 1 | Invalid Stream Identifier | | | 1 | Invalid Stream Identifier | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 2 | Missing Mandatory Parameter | | | 2 | Missing Mandatory Parameter | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 3 | "Stale Cookie" Error | | | 3 | Stale Cookie | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 4 | Out of Resource | | | 4 | Out of Resource | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 5 | Unresolvable Address | | | 5 | Unresolvable Address | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 6 | Unrecognized Chunk Type | | | 6 | Unrecognized Chunk Type | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 7 | Invalid Mandatory Parameter | | | 7 | Invalid Mandatory Parameter | | |||
| +-------+----------------------------------------------+ | +-------+----------------------------------------------+ | |||
| | 8 | Unrecognized Parameters | | | 8 | Unrecognized Parameters | | |||
| skipping to change at line 2276 ¶ | skipping to change at line 2276 ¶ | |||
| | Missing Param Type #N-1 | Missing Param Type #N | | | Missing Param Type #N-1 | Missing Param Type #N | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Number of Missing params: 32 bits (unsigned integer) | Number of Missing params: 32 bits (unsigned integer) | |||
| This field contains the number of parameters contained in the | This field contains the number of parameters contained in the | |||
| Cause-Specific Information field. | Cause-Specific Information field. | |||
| Missing Param Type: 16 bits (unsigned integer) | Missing Param Type: 16 bits (unsigned integer) | |||
| Each field will contain the missing mandatory parameter number. | Each field will contain the missing mandatory parameter number. | |||
| 3.3.10.3. "Stale Cookie" Error (3) | 3.3.10.3. Stale Cookie (3) | |||
| Indicates the receipt of a valid State Cookie that has expired. | Indicates the receipt of a valid State Cookie that has expired. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Cause Code = 3 | Cause Length = 8 | | | Cause Code = 3 | Cause Length = 8 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Measure of Staleness (usec.) | | | Measure of Staleness (usec.) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at line 5335 ¶ | skipping to change at line 5335 ¶ | |||
| ICMP9) If the ICMP type is "Destination Unreachable", the | ICMP9) If the ICMP type is "Destination Unreachable", the | |||
| implementation MAY move the destination to the unreachable | implementation MAY move the destination to the unreachable | |||
| state or, alternatively, increment the path error counter. | state or, alternatively, increment the path error counter. | |||
| SCTP MAY provide information to the upper layer indicating | SCTP MAY provide information to the upper layer indicating | |||
| the reception of ICMP messages when reporting a network | the reception of ICMP messages when reporting a network | |||
| status change. | status change. | |||
| These procedures differ from [RFC1122] and from its requirements for | These procedures differ from [RFC1122] and from its requirements for | |||
| processing of port-unreachable messages and the requirements that an | processing of port-unreachable messages and the requirements that an | |||
| implementation MUST abort associations in response to a "protocol | implementation MUST abort associations in response to a protocol | |||
| unreachable" message. Port-unreachable messages are not processed, | unreachable message. Port-unreachable messages are not processed, | |||
| since an implementation will send an ABORT chunk, not a port- | since an implementation will send an ABORT chunk, not a port- | |||
| unreachable message. The stricter handling of the "protocol | unreachable message. The stricter handling of the protocol | |||
| unreachable" message is due to security concerns for hosts that do | unreachable message is due to security concerns for hosts that do not | |||
| not support SCTP. | support SCTP. | |||
| 11. Interface with Upper Layer | 11. Interface with Upper Layer | |||
| The Upper Layer Protocols (ULPs) request services by passing | The Upper Layer Protocols (ULPs) request services by passing | |||
| primitives to SCTP and receive notifications from SCTP for various | primitives to SCTP and receive notifications from SCTP for various | |||
| events. | events. | |||
| The primitives and notifications described in this section can be | The primitives and notifications described in this section can be | |||
| used as a guideline for implementing SCTP. The following functional | used as a guideline for implementing SCTP. The following functional | |||
| description of ULP interface primitives is shown for illustrative | description of ULP interface primitives is shown for illustrative | |||
| skipping to change at line 6459 ¶ | skipping to change at line 6459 ¶ | |||
| - Reserved for Congestion Window Reduced (CWR) | - Reserved for Congestion Window Reduced (CWR) | |||
| - Shutdown Complete (SHUTDOWN COMPLETE) | - Shutdown Complete (SHUTDOWN COMPLETE) | |||
| - Reserved for IETF-defined Chunk Extensions | - Reserved for IETF-defined Chunk Extensions | |||
| * In the "Chunk Parameter Types" registry, IANA has replaced the | * In the "Chunk Parameter Types" registry, IANA has replaced the | |||
| registry reference to [RFC4960] with a reference to this document. | registry reference to [RFC4960] with a reference to this document. | |||
| IANA has changed the name of the "Unrecognized Parameters" chunk | ||||
| parameter type to "Unrecognized Parameter" in the "Chunk Parameter | ||||
| Types" registry. | ||||
| In addition, each reference to [RFC4960] has been replaced with a | In addition, each reference to [RFC4960] has been replaced with a | |||
| reference to this document for the following chunk parameter | reference to this document for the following chunk parameter | |||
| types: | types: | |||
| - Heartbeat Info | - Heartbeat Info | |||
| - IPv4 Address | - IPv4 Address | |||
| - IPv6 Address | - IPv6 Address | |||
| - State Cookie | - State Cookie | |||
| - Unrecognized Parameters | - Unrecognized Parameter | |||
| - Cookie Preservative | - Cookie Preservative | |||
| - Host Name Address | - Host Name Address | |||
| - Supported Address Types | - Supported Address Types | |||
| IANA has added a reference to this document for the following | IANA has added a reference to this document for the following | |||
| chunk parameter type: | chunk parameter type: | |||
| skipping to change at line 6517 ¶ | skipping to change at line 6521 ¶ | |||
| - T bit | - T bit | |||
| IANA has replaced the reference to [RFC4960] with a reference to | IANA has replaced the reference to [RFC4960] with a reference to | |||
| this document for the following SHUTDOWN COMPLETE chunk flag: | this document for the following SHUTDOWN COMPLETE chunk flag: | |||
| - T bit | - T bit | |||
| * In the "Error Cause Codes" registry, IANA has replaced the | * In the "Error Cause Codes" registry, IANA has replaced the | |||
| registry reference to [RFC4960] with a reference to this document. | registry reference to [RFC4960] with a reference to this document. | |||
| IANA has changed the name of the "User Initiated Abort" error | ||||
| cause to "User-Initiated Abort" and the name of the "Stale Cookie | ||||
| Error" error cause to "Stale Cookie" in the "Error Cause Codes" | ||||
| registry. | ||||
| In addition, each reference to [RFC4960] has been replaced with a | In addition, each reference to [RFC4960] has been replaced with a | |||
| reference to this document for the following cause codes: | reference to this document for the following cause codes: | |||
| - Invalid Stream Identifier | - Invalid Stream Identifier | |||
| - Missing Mandatory Parameter | - Missing Mandatory Parameter | |||
| - "Stale Cookie" Error | - Stale Cookie | |||
| - Out of Resource | - Out of Resource | |||
| - Unresolvable Address | - Unresolvable Address | |||
| - Unrecognized Chunk Type | - Unrecognized Chunk Type | |||
| - Invalid Mandatory Parameter | - Invalid Mandatory Parameter | |||
| - Unrecognized Parameters | - Unrecognized Parameters | |||
| End of changes. 10 change blocks. | ||||
| 11 lines changed or deleted | 20 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||