rfc9653v1.txt   rfc9653.txt 
skipping to change at line 94 skipping to change at line 94
protection over that already provided by DTLS. However, computing protection over that already provided by DTLS. However, computing
the CRC32c checksum at the sender and receiver sides does consume the CRC32c checksum at the sender and receiver sides does consume
computational resources for no benefit. This is particularly computational resources for no benefit. This is particularly
important for endpoints that are computationally limited and use SCTP important for endpoints that are computationally limited and use SCTP
over DTLS. over DTLS.
The extension described in this document allows an SCTP endpoint to The extension described in this document allows an SCTP endpoint to
declare that it accepts SCTP packets with a checksum of zero when declare that it accepts SCTP packets with a checksum of zero when
using a specific alternate error detection method. This declaration using a specific alternate error detection method. This declaration
happens during the setup of the SCTP association and allows endpoints happens during the setup of the SCTP association and allows endpoints
supporting this extension to be interoperable with endpoints not that support this extension to be interoperable with endpoints that
supporting the extension described in this document. To provide this don't. To provide this backwards compatibility, endpoints using this
backwards compatibility, endpoints using this extension still need to extension still need to implement the CRC32c checksum algorithm.
implement the CRC32c checksum algorithm.
2. Conventions 2. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Alternate Error Detection Methods 3. Alternate Error Detection Methods
skipping to change at line 165 skipping to change at line 164
packets satisfying some method-specific constraints. packets satisfying some method-specific constraints.
2. Using an alternate error detection method MUST NOT result in a 2. Using an alternate error detection method MUST NOT result in a
path failure for more than two retransmission timeouts (RTOs) due path failure for more than two retransmission timeouts (RTOs) due
to middleboxes on the path expecting correct CRC32c checksums. to middleboxes on the path expecting correct CRC32c checksums.
To fulfill the second requirement, alternate error detection methods To fulfill the second requirement, alternate error detection methods
could use a heuristic to detect the existence of such middleboxes and could use a heuristic to detect the existence of such middleboxes and
use correct CRC32c checksums on these affected paths. use correct CRC32c checksums on these affected paths.
One example fulfilling the first requirement is using DTLS as the Using DTLS as the lower layer of SCTP as specified in [RFC8261] is
lower layer of SCTP as specified in [RFC8261]. Another example is one example that fulfills the first requirement. Another example is
using SCTP Authentication as specified in [RFC4895]. Of course, this using SCTP Authentication as specified in [RFC4895]. Of course, this
only applies to each SCTP packet having an AUTH chunk as its first only applies to each SCTP packet having an AUTH chunk as its first
chunk. However, using SCTP Authentication without any heuristic does chunk. However, using SCTP Authentication without any heuristic does
not fulfill the second requirement. Since using DTLS as the lower not fulfill the second requirement. Since using DTLS as the lower
layer of SCTP as specified in [RFC8261] also fulfills the second layer of SCTP as specified in [RFC8261] also fulfills the second
requirement, it can be used as an alternate error detection method requirement, it can be used as an alternate error detection method
(see Section 6). (see Section 6).
If an alternate error detection method is used, the computation of If an alternate error detection method is used, the computation of
the CRC32c checksum consumes computational resources without the CRC32c checksum consumes computational resources without
skipping to change at line 205 skipping to change at line 204
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0x8001 | Length = 8 | | Type = 0x8001 | Length = 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Detection Method Identifier (EDMID) | | Error Detection Method Identifier (EDMID) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Zero Checksum Acceptable Chunk Parameter Figure 2: Zero Checksum Acceptable Chunk Parameter
Type: 16 bits (unsigned integer). This field holds the IANA defined Type: 16 bits (unsigned integer)
parameter type for the "Zero Checksum Acceptable" chunk parameter. This field holds the IANA-defined parameter type for the "Zero
IANA has assigned the value 32769 (0x8001) for this parameter Checksum Acceptable" chunk parameter. IANA has assigned the value
type. 32769 (0x8001) for this parameter type.
Length: 16 bits (unsigned integer). This field holds the length in Length: 16 bits (unsigned integer)
bytes of the chunk parameter; the value MUST be 8. This field holds the length in bytes of the chunk parameter; the
value MUST be 8.
Error Detection Method Identifier (EDMID): 32 bits (unsigned Error Detection Method Identifier (EDMID): 32 bits (unsigned
integer). An IANA-registered value specifying the alternate error integer)
detection method the sender of this parameter is willing to use An IANA-registered value specifying the alternate error detection
for received packets. method the sender of this parameter is willing to use for received
packets.
All transported integer numbers are in network byte order, a.k.a. big All transported integer numbers are in network byte order, a.k.a. big
endian. endian.
The Zero Checksum Acceptable Chunk Parameter MAY appear in INIT and The Zero Checksum Acceptable Chunk Parameter MAY appear in INIT and
INIT ACK chunks and MUST NOT appear in any other chunk. The INIT ACK chunks and MUST NOT appear in any other chunk. The
Parameter MUST NOT appear more than once in any chunk. Parameter MUST NOT appear more than once in any chunk.
If an endpoint not supporting the extension described in this If an endpoint not supporting the extension described in this
document receives this parameter in an INIT or INIT ACK chunk, it is document receives this parameter in an INIT or INIT ACK chunk, it is
skipping to change at line 295 skipping to change at line 296
the alternate error detection method that was announced by the peer the alternate error detection method that was announced by the peer
before sending packets with an incorrect checksum of zero. before sending packets with an incorrect checksum of zero.
If none of the above restrictions apply, an endpoint SHOULD use zero If none of the above restrictions apply, an endpoint SHOULD use zero
as the checksum when sending an SCTP packet. as the checksum when sending an SCTP packet.
5.3. Receiver-Side Considerations 5.3. Receiver-Side Considerations
If an endpoint has sent the Zero Checksum Acceptable Chunk Parameter If an endpoint has sent the Zero Checksum Acceptable Chunk Parameter
indicating the support of an alternate error detection method in an indicating the support of an alternate error detection method in an
INIT or INIT ACK chunk, it MUST accept SCTP packets fulfilling the INIT or INIT ACK chunk, in addition to SCTP packets containing the
requirements of the announced alternate error detection method using correct CRC32c checksum value it MUST accept SCTP packets that have
an incorrect checksum value of zero in addition to SCTP packets an incorrect checksum value of zero and that fulfill the requirements
containing the correct CRC32c checksum value for this association. of the announced alternate error detection method used for this
Otherwise, the endpoint MUST drop all SCTP packets with an incorrect association. Otherwise, the endpoint MUST drop all SCTP packets with
CRC32c checksum. an incorrect CRC32c checksum.
In addition to processing OOTB packets with a correct CRC32c checksum In addition to processing OOTB packets with a correct CRC32c checksum
as specified in [RFC9260], an SCTP implementation MAY also process as specified in [RFC9260], an SCTP implementation MAY also process
OOTB packets having an incorrect zero checksum. Doing so might OOTB packets having an incorrect zero checksum. Doing so might
result in faster SCTP association failure detection. result in faster SCTP association failure detection.
6. Error Detection via SCTP over DTLS 6. Error Detection via SCTP over DTLS
Using SCTP over DTLS as specified in [RFC8261] provides a stronger Using SCTP over DTLS as specified in [RFC8261] provides a stronger
error detection method than using the CRC32c checksum algorithm. error detection method than using the CRC32c checksum algorithm.
skipping to change at line 419 skipping to change at line 420
A designated expert (DE) is expected to ascertain the existence of A designated expert (DE) is expected to ascertain the existence of
suitable documentation (a specification) as described in [RFC8126] suitable documentation (a specification) as described in [RFC8126]
and to verify that the document is permanently and publicly and to verify that the document is permanently and publicly
available. Furthermore, the DE is expected to ensure that the above available. Furthermore, the DE is expected to ensure that the above
four points have been addressed appropriately. four points have been addressed appropriately.
9. Security Considerations 9. Security Considerations
This document does not change the considerations given in [RFC9260]. This document does not change the considerations given in [RFC9260].
Using an alternate error detection method provides an equal or better Due to the first requirement in Section 3, using an alternate error
level of data integrity than the one provided by using the CRC32c detection method provides an equal or better level of data integrity
checksum algorithm due to the first requirement of alternate error than the one provided by using the CRC32c checksum algorithm. The
detection methods. The second requirement of alternate error second requirement in Section 3 ensures that the existence of
detection methods ensures that the existence of middleboxes expecting middleboxes expecting correct CRC32c checksums does not result in
correct CRC32c checksums does not result in permanent path failures. permanent path failures.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
 End of changes. 7 change blocks. 
28 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.48.