From nobody Sat Feb  5 14:59:45 2022
Return-Path: <vidhi_goel@apple.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id CF2B43A1E83
 for <tcpm@ietfa.amsl.com>; Sat,  5 Feb 2022 14:59:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.675
X-Spam-Level: 
X-Spam-Status: No, score=-2.675 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.576, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
 header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id urNfLm9v1o03 for <tcpm@ietfa.amsl.com>;
 Sat,  5 Feb 2022 14:59:37 -0800 (PST)
Received: from rn-mailsvcp-ppex-lapp14.apple.com
 (rn-mailsvcp-ppex-lapp14.rno.apple.com [17.179.253.33])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 69B683A1E82
 for <tcpm@ietf.org>; Sat,  5 Feb 2022 14:59:37 -0800 (PST)
Received: from pps.filterd (rn-mailsvcp-ppex-lapp14.rno.apple.com [127.0.0.1])
 by rn-mailsvcp-ppex-lapp14.rno.apple.com (8.16.1.2/8.16.1.2) with
 SMTP id 215MpKTL005793; Sat, 5 Feb 2022 14:59:33 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com;
 h=content-type :
 content-transfer-encoding : from : mime-version : subject : date :
 message-id : references : cc : in-reply-to : to; s=20180706;
 bh=vH9owh7pC0d4sY3hC9qrbjz6jn0qJNGu8rysPOZHFwk=;
 b=muNB0khFm5yYU3hDMShzzPWVjYSeSm+XjbkIgvYckPw21XmQITuDsOEjy9fzOahyDLh1
 TNpIWvnsEhQct2LPPUzYKwyB9lwp7O4v4z3dva6Bcpidr/6xD/8Jpt2sng8I5w2d+OH4
 b9+IHys9HhTvMXYtrpO4MxsUOcQKku7maoBQq7lxPo0MEu6y8UIpeqR5nHodCMdo8qKB
 grdopO8RuNrHfDp/4pJXdohHY2l1VtVCxZHyPIDsnF9gIFTpTp9AAJHSHAdy7kL9ECaL
 N1YfVa0n1k7wSSV7/aQLpHzbKddSx6G+9VcqKpLBIivks/EFsIi2UzZYc7CaL1sXbLdg sQ== 
Received: from ma-mailsvcp-mta-lapp04.corp.apple.com
 (ma-mailsvcp-mta-lapp04.corp.apple.com [10.226.18.136])
 by rn-mailsvcp-ppex-lapp14.rno.apple.com with ESMTP id 3e1q0dntsx-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO);
 Sat, 05 Feb 2022 14:59:33 -0800
Received: from ma-mailsvcp-mmp-lapp01.apple.com
 (ma-mailsvcp-mmp-lapp01.apple.com [17.32.222.14])
 by ma-mailsvcp-mta-lapp04.corp.apple.com
 (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3
 2021))
 with ESMTPS id <0R6U002CFT78C000@ma-mailsvcp-mta-lapp04.corp.apple.com>; Sat,
 05 Feb 2022 14:59:32 -0800 (PST)
Received: from process_milters-daemon.ma-mailsvcp-mmp-lapp01.apple.com by
 ma-mailsvcp-mmp-lapp01.apple.com
 (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3
 2021)) id <0R6U00900SI9O900@ma-mailsvcp-mmp-lapp01.apple.com>; Sat,
 05 Feb 2022 14:59:32 -0800 (PST)
X-Va-A: 
X-Va-T-CD: 81ca60fce39c2560b6c4a7e5841f9b8f
X-Va-E-CD: d27b0bf1ec5e225c315eb75773194505
X-Va-R-CD: 7f6ba7ce084ea0aad2ff4f136dfa7fc9
X-Va-CD: 0
X-Va-ID: 9a0b082f-20cb-4682-929d-fd5e1b1c4790
X-V-A: 
X-V-T-CD: 81ca60fce39c2560b6c4a7e5841f9b8f
X-V-E-CD: d27b0bf1ec5e225c315eb75773194505
X-V-R-CD: 7f6ba7ce084ea0aad2ff4f136dfa7fc9
X-V-CD: 0
X-V-ID: 9b210405-7100-4f09-8b7c-6694241a158e
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.816
 definitions=2022-02-05_12:2022-02-03,
 2022-02-05 signatures=0
Received: from smtpclient.apple (unknown [17.10.30.3])
 by ma-mailsvcp-mmp-lapp01.apple.com
 (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3
 2021)) with ESMTPSA id <0R6U00P7FT77LI00@ma-mailsvcp-mmp-lapp01.apple.com>;
 Sat, 05 Feb 2022 14:59:32 -0800 (PST)
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: quoted-printable
From: Vidhi Goel <vidhi_goel@apple.com>
MIME-version: 1.0 (1.0)
Date: Sat, 05 Feb 2022 14:59:31 -0800
Message-id: <BB2835FB-58E6-409A-BEBE-273D874D0B55@apple.com>
References: <1cbe3dbe-241b-3f24-096f-f1a2ffe17d98@gmx.at>
Cc: Richard Scheffenegger <rscheff@gmx.at>,
 "tcpm@ietf.org Extensions" <tcpm@ietf.org>,
 Mirja Kuehlewind <ietf@kuehlewind.net>
In-reply-to: <1cbe3dbe-241b-3f24-096f-f1a2ffe17d98@gmx.at>
To: "Scheffenegger, Richard" <rs.ietf@gmx.at>
X-Mailer: iPhone Mail (19B5060d)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.816
 definitions=2022-02-05_12:2022-02-03,
 2022-02-05 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/hfLqWzSraTkgsmHn0eoJU2QyH7s>
Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-accurate-ecn-16.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>,
 <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>,
 <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Feb 2022 22:59:43 -0000

> As a middle ground, perhaps having these descriptions in a non-normative
> section, clearly stating these to be examples of what an impemented
> could choose to do?

This draft already covers some of the path mangling detection so it would be=
 good to cover all of it. I agree with your middle ground suggestion.

Vidhi

> On Feb 5, 2022, at 4:02 AM, Scheffenegger, Richard <rs.ietf@gmx.at> wrote:=

>=20
> =EF=BB=BFVidhi,
>=20
> Thanks for reading the draft very closely!
>=20
> Well, in the non-ECT SYN case, where the SYNACK indicates an ECT (ect0,
> ect1, ce) is the obvious - and fully semantically correct - use case of
> that possible use.
>=20
> For the set of three codepoints (ECT0, ECT1, CE) the only other possible
> valid detection scenario would be if a SYN+CE is sent (deliberately,
> althought one can argue that a sender should not originate CE-marked
> packets), but a SYNACK without CE is returned (full or partial
> bleaching). At least under the current RFC3168 definition of IP ECN
> codepoints.
>=20
> allowed transitions:
> nonECT -> nonECT
>=20
> ECT0 -> ECT0
> ECT0 -> ECT1
> ECT0 -> CE
>=20
> ECT1 -> ECT1
> ECT1 -> ECT0 (possibly)
> ECT1 -> CE
>=20
> CE -> CE
>=20
>=20
> Thinking about this aspect more, I am now unsure, if the higher level
> functions, such as detection of IP ECN codepoint mangling, or validating
> across multiple RTTs, should be in this document - or not rather be in a
> separate draft, in order to facilitate independent implementation and
> improvement of mechanisms in that space.
>=20
> However, the above table of allowed IP ECN transistions may be updated
> independently of AccECN - and performing extensive checks as part of a
> signal protocol ossifies this IMHO.
>=20
> As a middle ground, perhaps having these descriptions in a non-normative
> section, clearly stating these to be examples of what an impemented
> could choose to do?
>=20
> Richard
>=20
>> Am 05.02.2022 um 02:14 schrieb Vidhi Goel:
>> I like your response for all the points. I can review the diff for the
>> proposed changes, if you=E2=80=99d like before committing them to the dra=
ft.
>>=20
>> Sorry, I want to add a new comment for this text,
>>=20
>> If a TCP client has set the SYN to Not-ECT, but
>>    receives feedback that the IP-ECN field on the SYN arrived with a
>>    different codepoint, it can detect such middlebox interference and
>>    send Not-ECT for the rest of the connection.
>>=20
>>=20
>> This statement holds good for Not-ECT but doesn=E2=80=99t if lets say the=
 SYN
>> was ECT0 or ECT1 as those could be marked CE and still be valid. Should
>> we add a statement for ECT marked SYN as well?
>>=20
>> Thanks,
>> Vidhi
>>=20
>>> On Feb 4, 2022, at 5:44 AM, Bob Briscoe <ietf@bobbriscoe.net
>>> <mailto:ietf@bobbriscoe.net>> wrote:
>>>=20
>>> Vidhi,
>>>=20
>>> I've increased the table of contents to tocdepth =3D "4" which might
>>> help find the relevant sections better, because a lot of the meat in
>>> this draft is under sections 3.2.2 (ACE) and 3.2.3 (Option).
>>>=20
>>> I've responded below, but I'd prefer it if you would say these things
>>> on the list, so we have a better justification for changing the draft.
>>> Reviewing a draft that has just be re-posted shouldn't imply anything
>>> about whether Apple is implementing the draft or not.
>>>=20
>>> (BTW, regarding the proposed change to the initial value of r.e1b, I
>>> was going to send that  to the list once co-authors agreed to it. But
>>> it would be nice if some of the edits were not self-generated.)
>>>=20
>>> See [BB] inline for responses (which I'll repeat if you send to the list=
).
>>>=20
>>> On 04/02/2022 07:37, Vidhi Goel wrote:
>>>> Hello Bob and authors,
>>>>=20
>>>> I have read the draft a few times and will send my extensive review
>>>> at a later point. But right now, I want to ask some critical things
>>>> that an implementation could benefit from.
>>>>=20
>>>> The draft says,
>>>> /If a TCP client has set the SYN to Not-ECT, but/
>>>> /   receives feedback that the IP-ECN field on the SYN arrived with a/
>>>> /   different codepoint, it can detect such middlebox interference and/=

>>>> /   send Not-ECT for the rest of the connection/
>>>>=20
>>>> 1. On the forward path from client to server, the client will revert
>>>> to Not-ECT when it sees for example, that it sent a Non-ECT SYN but
>>>> received ACE encoding other than 0 1 0. What does the client do in
>>>> the last ACK of the 3WHS -
>>>>  a. does it stay in AccECN mode and still send AccECN encoding based
>>>> on the IP code point of SYN-ACK (Table 4)? This would mean that
>>>> client won=E2=80=99t participate in ECN on the sender half of the conne=
ction
>>>> and only provide AccECN feedback to the server as a receiver.
>>>>  b.  does it disable AccECN mode and set ACE=3D 0 0 0 so that a server
>>>> in AccECN mode can disable ECN based on Table4?
>>>>=20
>>>> While writing this, I realized that the intention is probably a.
>>>> Could you confirm? Also, when the sender sets Not-ECT in its data
>>>> packets, it should also disable acting upon any ACE feedback as we
>>>> could still receive false ACE feedback from the server if the
>>>> network, lets say, changed 00 (not ECT) to 01(ECT1). If you agree, we
>>>> should add some text around this. Based on the current text, the
>>>> sender will always respond to the ACE feedback even if it sends Not-ECT=
.
>>>>=20
>>>> TBH, this is a complicated scenario, where sender said to the network
>>>> - I don=E2=80=99t trust you so I can=E2=80=99t use ECN. Feel free to dr=
op my packets.
>>>> And the network mangles the IP to ECT1 and then set CE (when
>>>> congested) which would be feedback=E2=80=99ed from the receiver. Now, t=
he
>>>> packet wasn=E2=80=99t dropped which it should have been. So, is it bett=
er to
>>>> just ignore this feedback because sender doesn=E2=80=99t trust the netw=
ork or
>>>> just act on it and reduce cwnd in order to reduce congestion in the
>>>> network somewhere.
>>>=20
>>> [BB] Your points are all good ones.
>>> I'll address this last complex scenario first, because it has
>>> implications for the earlier questions. First I'll define some
>>> terminology:
>>>=20
>>> Simple mangling scenario:
>>>=20
>>>  * some network function, e.g. broken Diffserv ToS-byte remarking,
>>>    illegally remarks a Not-ECT  SYN to CE.
>>>=20
>>> Your complex mangling scenario, repeated here:
>>>=20
>>>  * some network function, e.g. broken Diffserv ToS-byte remarking,
>>>    illegally remarks a Not-ECT SYN to ECT0 or ECT1,
>>>  * then congestion at a subsequent bottleneck is marking some packets CE=

>>>=20
>>> Then potentially the client could tailor its behaviour after sending a
>>> Not-ECT SYN, If the SYN/ACK feedback is
>>>=20
>>> 1. ECT: disable sending ECT, but continue responding to ECN feedback
>>> 2. CE, disable sending ECT, and disable response to ECN feedback
>>>=20
>>> However, this is uncertain, because CE feedback on the SYN/ACK could
>>> indicate either the simple or the complex mangling scenario.
>>>=20
>>> A simpler alternative would be to always continue responding to ECN
>>> feedback. Rationale:
>>>=20
>>>  * Whether case #1 or #2, assume that mangling of the SYN might have
>>>    been Not-ECT to ECT, even if the feedback off the SYN is CE.
>>>  * Then as the connection progresses, if /all/ feedback is CE,
>>>    there's already a recommendation to fall-back to disabling
>>>    congestion response.
>>>=20
>>> If we do this, I think we ought to say "SHOULD continue to respond to
>>> ECN feedback", not "MUST".
>>>=20
>>> And we'll need to put this all to the WG.
>>>=20
>>> 1.a) Now back to the beginning of your point. The text you quote is
>>> from =C2=A72.5 which is in the non-normative "Overview and Rationale"
>>> section (=C2=A72).
>>> You really need the normative text from:
>>>=20
>>>=20
>>>          3.2.2.3.
>>>          <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-1=
6.html#section-3.2.2.3>Testing
>>>          for Mangling of the IP/ECN Field
>>>          <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-1=
6.html#name-testing-for-mangling-of-the>
>>>=20
>>>=20
>>> where it says (end of 1st para):
>>>=20
>>>    " ...for the remainder of the connection the client MUST NOT send
>>>    ECN-capable packets, but it MUST continue to feed back any ECN
>>>    markings on arriving packets."
>>>=20
>>> So, you're right, the answer is (a).
>>> It can't be (b), because, once in AccECN mode, 000 on the ACE field
>>> just becomes a counter value, and no longer negotiates the feedback mode=
.
>>>=20
>>> 1.b) As per the above, let's conservatively assume complex mangling.
>>> So, at the end of the first para quoted above I suggest we add:
>>>=20
>>>    " ...for the remainder of the connection the client MUST NOT send
>>>    ECN-capable packets *but**it**SHOULD continue to respond to ECN
>>>    feedback even though **it **is no longer sending ECN-capable
>>>    packets (see reasoning below)**. T**he client**MUST remain in the
>>>    same feedback mode and***it MUST continue to feed back any ECN
>>>    markings on arriving packets."
>>>=20
>>> I'll do the same for next para about the server.
>>> I'll work out some text for the reasoning, but I won't give it here.
>>>=20
>>> There are two other cases where it disables sending ECT, which don't
>>> say whether it continues to respond to congestion:
>>>=20
>>>  * "Testing for Mangling" section, penultimate para,  where it's
>>>    receiving solid CE:
>>>    "Once a Data Sender has entered AccECN mode it SHOULD check
>>>    whether all feedback received for the first three or four rounds
>>>    indicated that every packet it sent was CE-marked. If so, for the
>>>    remainder of the connection, the Data Sender SHOULD NOT send
>>>    ECN-capable packets*and it SHOULD NOT respond to ECN feedback*,
>>>    but *it MUST remain in the same feedback mode and *it MUST
>>>    continue to feed back any ECN markings on arriving packets*(in its
>>>    role as Data Receiver)*."
>>>  * Next section "Zeroing of the ACE Field", 2nd para:
>>>    "If the value of this ACE field is zero (0b000), the Data Sender
>>>    disables sending ECN-capable packets for the remainder of the
>>>    half-connection by setting the IP/ECN field in all subsequent
>>>    packets to Not-ECT, *but**it**SHOULD continue to respond to ECN
>>>    feedback even though **it **is no longer sending ECN-capable
>>>    packets.* *It MUST also remain in the same feedback mode and it
>>>    MUST continue to feed back any ECN markings on arriving packets
>>>    (in its role as Data Receiver).*"
>>>=20
>>> I'll also add reasoning (in the zeroing section, it already says that
>>> ACE=3D0b000 is not an unambiguous indication of mangling).
>>>=20
>>> And this prompts me to edit the bullet in an earlier section about the
>>> obligation of a sender to respond to congestion feedback:
>>>=20
>>>=20
>>>        3.1.5.
>>>        <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-16.=
html#section-3.1.5>Implications
>>>        of AccECN Mode
>>>        <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-16.=
html#name-implications-of-accecn-mode>
>>>=20
>>>=20
>>>    "It is still obliged to respond appropriately to AccECN feedback
>>>    that indicates there were ECN marks on *ECN-capable *packets it
>>>    had previously sent."
>>>=20
>>> And I'll add a bullet:
>>>=20
>>>    "*If the sender chooses not to send ECN-capable packets (e.g.
>>>    because path traversal of the ECN field is suspect), it can ignore
>>>    any **ECN **feedback about those packets if it is certain that it
>>>    cannot be valid (see Section 3.2.2, which gives normative
>>>    requirements for certain specific cases).*"
>>>=20
>>> I've said 'can' rather than 'MUST' because it's hard to cover all
>>> cases, e.g. single packets without ECT when it's not clear whether the
>>> feedback covered another packet that was ECT.
>>>=20
>>> How does all this sound?
>>>=20
>>>> 2. On the reverse path from server to client, if a server sends a
>>>> Not-ECT SYN-ACK and receives ACE handshake encoding on last ACK other
>>>> than 0 1 0, there is no text like above that says server should send
>>>> Not-ECT for the rest of the connection (or at least I didn=E2=80=99t fi=
nd
>>>> it). I think the server should also do same as client as the two
>>>> paths could be different. One could make it more complicated by
>>>> saying, if both client and server decide to not use ECN on their
>>>> corresponding sender half, then ECN should be disabled but let=E2=80=99=
s talk
>>>> about that later.
>>>=20
>>> [BB] It's in the second para of:
>>>=20
>>>=20
>>>          3.2.2.3.
>>>          <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-1=
6.html#section-3.2.2.3>Testing
>>>          for Mangling of the IP/ECN Field
>>>          <https://www.ietf.org/archive/id/draft-ietf-tcpm-accurate-ecn-1=
6.html#name-testing-for-mangling-of-the>
>>>=20
>>>=20
>>>> 3. In general, not setting the ECT (ECT0 or ECT1) code point on an
>>>> outgoing packet is different from supporting AccECN right as in the
>>>> host can still provide AccECN feedback on the receive path.
>>>=20
>>> [BB] Yup.
>>>=20
>>> Do you think any further explanation is needed in the above sections?
>>>=20
>>>=20
>>> Bob
>>>=20
>>>> =E2=80=A6.
>>>>=20
>>>> To be continued if more questions come to my mind.
>>>>=20
>>>>=20
>>>> Thanks,
>>>> Vidhi
>>>>=20
>>>>> On Feb 3, 2022, at 7:24 AM, Bob Briscoe <ietf@bobbriscoe.net> wrote:
>>>>>=20
>>>>> tcpm folks,
>>>>>=20
>>>>> This rev to accurate-ecn is the first of two. The second will
>>>>> hopefully follow on its heels in the next couple of days.
>>>>>=20
>>>>> Diffs between this first rev (-16) and -15:
>>>>>=20
>>>>> 1.  switches round two fairly large sections, so I've deferred other
>>>>> changes to a second rev so the diffs won't be masked by the switch
>>>>> round of sections.
>>>>> Suggested by Ilpo to match the order in which the tests in these
>>>>> sections will be executed:
>>>>> * Test for mangling the IP-ECN field (now 3.2.2.3),
>>>>> * Then test for zeroing the ACE field (now 3.2.2.4).
>>>>>=20
>>>>> 2. Ilpo suggested some clarifications in "3.2.3.2.5. Consistency
>>>>> between AccECN Feedback Fields", which is about the receiver of
>>>>> feedback ensuring consistency between the mandatory 3-bit ACE field
>>>>> and the optional 24-bit counters. In brief (paraphrasing) it
>>>>> previously only said "MUST consider both fields", when it is now
>>>>> clearer that it actually meant "MUST reconcile both fields", so that
>>>>> there is always a consistent baseline for subsequent ACKs.
>>>>>=20
>>>>> 3. A minor point is added in an appendix about the details that the
>>>>> pseudocode doesn't cover.
>>>>>=20
>>>>>=20
>>>>>=20
>>>>> Bob
>>>>>=20
>>>>> PS. #2 & #3 were added to the XML ages ago (Jul '21), so you will
>>>>> have seen them in the HTML. However, prob due to my clumsiness, the
>>>>> posted TXT didn't include them whereas the posted XML did (ironic
>>>>> for a section about consistency). In turn, inconsistency was only
>>>>> possible because I am having to manually post the TXT for this
>>>>> draft, due to an unresolved issue with v3 RFC XML tables.
>>>>>=20
>>>>>=20
>>>>> On 03/02/2022 14:43, internet-drafts@ietf.org wrote:
>>>>>> A New Internet-Draft is available from the on-line Internet-Drafts
>>>>>> directories.
>>>>>> This draft is a work item of the TCP Maintenance and Minor
>>>>>> Extensions WG of the IETF.
>>>>>>=20
>>>>>>         Title           : More Accurate ECN Feedback in TCP
>>>>>>         Authors         : Bob Briscoe
>>>>>>                           Mirja K=C3=BChlewind
>>>>>>                           Richard Scheffenegger
>>>>>> Filename        : draft-ietf-tcpm-accurate-ecn-16.txt
>>>>>> Pages           : 60
>>>>>> Date            : 2022-02-03
>>>>>>=20
>>>>>> Abstract:
>>>>>>    Explicit Congestion Notification (ECN) is a mechanism where networ=
k
>>>>>>    nodes can mark IP packets instead of dropping them to indicate
>>>>>>    incipient congestion to the end-points.  Receivers with an ECN-
>>>>>>    capable transport protocol feed back this information to the sende=
r.
>>>>>>    ECN was originally specified for TCP in such a way that only one
>>>>>>    feedback signal can be transmitted per Round-Trip Time (RTT).
>>>>>>  Recent
>>>>>>    new TCP mechanisms like Congestion Exposure (ConEx), Data Center T=
CP
>>>>>>    (DCTCP) or Low Latency Low Loss Scalable Throughput (L4S) need mor=
e
>>>>>>    accurate ECN feedback information whenever more than one marking i=
s
>>>>>>    received in one RTT.  This document specifies a scheme to provide
>>>>>>    more than one feedback signal per RTT in the TCP header.  Given TC=
P
>>>>>>    header space is scarce, it allocates a reserved header bit
>>>>>> previously
>>>>>>    assigned to the ECN-Nonce.  It also overloads the two existing ECN=

>>>>>>    flags in the TCP header.  The resulting extra space is exploited t=
o
>>>>>>    feed back the IP-ECN field received during the 3-way handshake as
>>>>>>    well.  Supplementary feedback information can optionally be provid=
ed
>>>>>>    in a new TCP option, which is never used on the TCP SYN.  The
>>>>>>    document also specifies the treatment of this updated TCP wire
>>>>>>    protocol by middleboxes.
>>>>>>=20
>>>>>>=20
>>>>>> The IETF datatracker status page for this draft is:
>>>>>> https://datatracker.ietf.org/doc/draft-ietf-tcpm-accurate-ecn/
>>>>>>=20
>>>>>> There is also an htmlized version available at:
>>>>>> https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-16=

>>>>>>=20
>>>>>> A diff from the previous version is available at:
>>>>>> https://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-tcpm-accurate-ecn-16
>>>>>>=20
>>>>>>=20
>>>>>> Internet-Drafts are also available by rsync at rsync.ietf.org
>>>>>> <http://rsync.ietf.org>::internet-drafts
>>>>>>=20
>>>>>>=20
>>>>>> _______________________________________________
>>>>>> tcpm mailing list
>>>>>> tcpm@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/tcpm
>>>>>=20
>>>>> --
>>>>> ________________________________________________________________
>>>>> Bob Briscoe http://bobbriscoe.net/
>>>>>=20
>>>>> _______________________________________________
>>>>> tcpm mailing list
>>>>> tcpm@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/tcpm
>>>>=20
>>>=20
>>> --
>>> ________________________________________________________________
>>> Bob Briscoehttp://bobbriscoe.net/
>>=20
>>=20
>> _______________________________________________
>> tcpm mailing list
>> tcpm@ietf.org
>> https://www.ietf.org/mailman/listinfo/tcpm

