rfc9768v11.txt   rfc9768.txt 
skipping to change at line 659 skipping to change at line 659
The procedures for retransmission of SYNs or SYN/ACKs are given in The procedures for retransmission of SYNs or SYN/ACKs are given in
Section 3.1.4. Section 3.1.4.
It is RECOMMENDED that the AccECN protocol be implemented alongside It is RECOMMENDED that the AccECN protocol be implemented alongside
Selective Acknowledgement (SACK) [RFC2018]. If SACK is implemented Selective Acknowledgement (SACK) [RFC2018]. If SACK is implemented
with AccECN, Duplicate Selective Acknowledgement (D-SACK) [RFC2883] with AccECN, Duplicate Selective Acknowledgement (D-SACK) [RFC2883]
MUST also be implemented. MUST also be implemented.
3.1.2. Backward Compatibility 3.1.2. Backward Compatibility
The setting of all three flags to 1 in order to indicate AccECN The TCP flags used to indicate AccECN support on the SYN were
support on the SYN was carefully chosen to enable natural fall-back carefully chosen to enable natural fall-back to prior stages in the
to prior stages in the evolution of ECN. Table 2 tabulates all the evolution of ECN. Table 2 tabulates all the negotiation
negotiation possibilities for ECN-related capabilities that involve possibilities for ECN-related capabilities that involve at least one
at least one AccECN-capable host. The entries in the first two AccECN-capable host. The entries in the first two columns have been
columns have been abbreviated, as follows: abbreviated, as follows:
AccECN: Supports more Accurate ECN feedback (the present AccECN: Supports more Accurate ECN feedback (the present
specification). specification).
Nonce: Supports ECN-nonce feedback [RFC3540]. Nonce: Supports ECN-nonce feedback [RFC3540].
ECN: Supports 'Classic' ECN feedback [RFC3168]. ECN: Supports 'Classic' ECN feedback [RFC3168].
No ECN: Not ECN-capable. Implicit congestion notification using No ECN: Not ECN-capable. Implicit congestion notification using
packet drop. packet drop.
skipping to change at line 1513 skipping to change at line 1513
RFC 3168 says that a router that changes ECT to Not-ECT is invalid RFC 3168 says that a router that changes ECT to Not-ECT is invalid
but safe. However, from a host's viewpoint, this transition is but safe. However, from a host's viewpoint, this transition is
unsafe because it could be the result of two transitions at different unsafe because it could be the result of two transitions at different
routers on the path: ECT to CE (safe) then CE to Not-ECT (unsafe). routers on the path: ECT to CE (safe) then CE to Not-ECT (unsafe).
This scenario could well happen where an ECN-enabled home router This scenario could well happen where an ECN-enabled home router
congests its upstream mobile broadband bottleneck link, then the congests its upstream mobile broadband bottleneck link, then the
ingress to the mobile network clears the ECN field [Mandalari18]. ingress to the mobile network clears the ECN field [Mandalari18].
3.2.2.4. Testing for Zeroing of the ACE Field 3.2.2.4. Testing for Zeroing of the ACE Field
NOTE: This section concerns the ACE field after the three way Note that this section concerns the ACE field after the three way
handshake. It does not concern the case where the ACE field is zero handshake. It does not concern the case where the ACE field is zero
when the handshake encoding has been used on the ACK of the SYN/ACK when the handshake encoding has been used on the ACK of the SYN/ACK
under the carefully worded conditions in Section 3.2.2.1 under the carefully worded conditions in Section 3.2.2.1
Section 3.2.2 required the Data Receiver to initialize the r.cep Section 3.2.2 required the Data Receiver to initialize the r.cep
counter to a non-zero value. Therefore, in either direction the ACE counter to a non-zero value. Therefore, in either direction the ACE
counter ought to be non-zero in the first feedback packet (with or counter ought to be non-zero in the first feedback packet (with or
without data) that arrives at a host in AccECN mode after the three- without data) that arrives at a host in AccECN mode after the three-
way handshake. However, if reordering occurs, the first feedback way handshake. However, if reordering occurs, the first feedback
packet that arrives will not necessarily be the same as the first packet that arrives will not necessarily be the same as the first
skipping to change at line 2277 skipping to change at line 2277
* In Section 6.1.2 (The TCP Sender) of [RFC3168], all mentions of a * In Section 6.1.2 (The TCP Sender) of [RFC3168], all mentions of a
congestion response to an ECN-Echo (ECE) ACK packet are updated by congestion response to an ECN-Echo (ECE) ACK packet are updated by
Section 3.2 of the present specification to mean an increment to Section 3.2 of the present specification to mean an increment to
the sender's count of CE-marked packets, s.cep. And the the sender's count of CE-marked packets, s.cep. And the
requirements to set the CWR flag no longer apply, as specified in requirements to set the CWR flag no longer apply, as specified in
Section 3.1.5 of the present specification. Otherwise, the Section 3.1.5 of the present specification. Otherwise, the
remaining requirements in Section 6.1.2 (The TCP Sender) of remaining requirements in Section 6.1.2 (The TCP Sender) of
[RFC3168] still stand. [RFC3168] still stand.
It will be noted that [RFC8311] already updates a number of the Note that [RFC8311] already updates a number of the requirements
requirements in Section 6.1.2 (The TCP Sender) of [RFC3168]. in Section 6.1.2 (The TCP Sender) of [RFC3168]. Section 6.1.2 of
Section 6.1.2 of [RFC3168] extended standard TCP congestion [RFC3168] extended standard TCP congestion control [RFC5681] to
control [RFC5681] to cover ECN marking as well as packet drop. cover ECN marking as well as packet drop. Whereas, [RFC8311]
Whereas, [RFC8311] enables experimentation with alternative enables experimentation with alternative responses to ECN marking,
responses to ECN marking, if specified for instance by an if specified for instance by an Experimental RFC produced by the
Experimental RFC produced by the IETF Stream. [RFC8311] also IETF Stream. [RFC8311] also strengthened the statement that
strengthened the statement that "ECT(0) SHOULD be used" to a "ECT(0) SHOULD be used" to a "MUST" (see [RFC8311] for the
"MUST" (see [RFC8311] for the details). details).
* The whole of Section 6.1.3 (The TCP Receiver) of [RFC3168] is * The whole of Section 6.1.3 (The TCP Receiver) of [RFC3168] is
updated by Section 3.2 of the present specification, with the updated by Section 3.2 of the present specification, with the
exception of the last paragraph (about congestion response to drop exception of the last paragraph (about congestion response to drop
and ECN in the same round trip), which still stands. and ECN in the same round trip), which still stands.
Incidentally, this last paragraph is in the wrong section, because Incidentally, this last paragraph is in the wrong section, because
it relates to "TCP Sender" behaviour. it relates to "TCP Sender" behaviour.
* The following text within Section 6.1.5 (Retransmitted TCP * The following text within Section 6.1.5 (Retransmitted TCP
packets) of [RFC3168]: packets) of [RFC3168]:
skipping to change at line 3154 skipping to change at line 3154
In order to be backward compatible with RFC 3168, AccECN continues In order to be backward compatible with RFC 3168, AccECN continues
this approach, using the 3rd least significant TCP header flag that this approach, using the 3rd least significant TCP header flag that
had previously been allocated for the ECN-nonce (now Historic). had previously been allocated for the ECN-nonce (now Historic).
Then, whatever form of Server an AccECN Client encounters, the Then, whatever form of Server an AccECN Client encounters, the
connection can fall back to the highest version of feedback protocol connection can fall back to the highest version of feedback protocol
that both ends support, as explained in Section 3.1. that both ends support, as explained in Section 3.1.
If AccECN capability negotiation had used the more orthodox approach If AccECN capability negotiation had used the more orthodox approach
of a TCP Option, it would still have had to set the two ECN flags in of a TCP Option, it would still have had to set the two ECN flags in
the main TCP header, in order to be able to fall back to Classic ECN the main TCP header to be able to fall back to Classic ECN [RFC3168],
[RFC3168], or to disable ECN support, without another round of or to disable ECN support, without another round of negotiation.
negotiation. Then AccECN would also have had to handle all the Then AccECN would also have had to handle all the different ways that
different ways that Servers currently respond to settings of the ECN Servers currently respond to settings of the ECN flags in the main
flags in the main TCP header, including all of the conflicting cases TCP header, including all of the conflicting cases where a Server
where a Server might have said it supported one approach in the flags might have said it supported one approach in the flags and another
and another approach in a new TCP Option. And AccECN would have had approach in a new TCP Option. And AccECN would have had to deal with
to deal with all of the additional possibilities where a middlebox all of the additional possibilities where a middlebox might have
might have mangled the ECN flags, or removed TCP Options. Thus, mangled the ECN flags, or removed TCP Options. Thus, usage of the
usage of the 3rd reserved TCP header flag simplified the protocol. 3rd reserved TCP header flag simplified the protocol.
The third flag was used in a way that could be distinguished from the The third flag was used in a way that could be distinguished from the
ECN-nonce, in case any nonce deployment was encountered. Previous ECN-nonce, in case any nonce deployment was encountered. Previous
usage of this flag for the ECN-nonce was integrated into the original usage of this flag for the ECN-nonce was integrated into the original
ECN negotiation. This further justified the third flag's use for ECN negotiation. This further justified the third flag's use for
AccECN, because a non-ECN usage of this flag would have had to use it AccECN, because a non-ECN usage of this flag would have had to use it
as a separate single bit, rather than in combination with the other 2 as a separate single bit, rather than in combination with the other 2
ECN flags. ECN flags.
Indeed, having overloaded the original uses of these three flags for Indeed, having overloaded the original uses of these three flags for
 End of changes. 4 change blocks. 
26 lines changed or deleted 26 lines changed or added

This html diff was produced by rfcdiff 1.48.