Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addressing all WGLC comments
Markku Kojo <kojo@cs.helsinki.fi> Wed, 17 May 2023 11:25 UTC
Return-Path: <kojo@cs.helsinki.fi>
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 6E460C151072 for <tcpm@ietfa.amsl.com>; Wed, 17 May 2023 04:25:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.helsinki.fi
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id krD2wT8KekMM for <tcpm@ietfa.amsl.com>; Wed, 17 May 2023 04:25:10 -0700 (PDT)
Received: from script.cs.helsinki.fi (script.cs.helsinki.fi [128.214.11.1]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DA0FFC14CE52 for <tcpm@ietf.org>; Wed, 17 May 2023 04:25:08 -0700 (PDT)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Wed, 17 May 2023 14:24:36 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; s=dkim20130528; bh=j18gjwvWltP2KPPV4 /BkP9v9p0nbD2rbEaynVhLigec=; b=MnO4hRxdPeqqKIQIbFRZrdhXuVStlaW5i S2H12Fi3l6BTv9Ui3+mCsYCT4LgTVEGFcOIBVGUBPjYmSWwnfWouaYEXjSyLCas6 csVTZXN6cfa3Yx7hr4pMXAlXV3OSNBwVt0G6OMA+ud1cwL0UpHPBlNaq/enG9RP8 j2Zuc24/KI=
Received: from hp8x-60.cs.helsinki.fi (85-76-151-73-nat.elisa-mobile.fi [85.76.151.73]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Wed, 17 May 2023 14:24:35 +0300 id 00000000005A011D.000000006464B973.000019BB
Date: Wed, 17 May 2023 14:24:33 +0300
From: Markku Kojo <kojo@cs.helsinki.fi>
To: tuexen@fh-muenster.de
cc: Bob Briscoe <ietf@bobbriscoe.net>, Yoshifumi Nishida <nsd.ietf@gmail.com>, Ian Swett <ianswett@google.com>, tcpm@ietf.org
In-Reply-To: <0DC11AC8-17AF-436D-913C-2154F41F4546@fh-muenster.de>
Message-ID: <c977a0a-6e16-84-a49-6036224e96e8@cs.helsinki.fi>
References: <168018573536.48656.14537661211462843182@ietfa.amsl.com> <adcb4b1d-a8a7-b676-71da-2971ca2db9f2@bobbriscoe.net> <0DC11AC8-17AF-436D-913C-2154F41F4546@fh-muenster.de>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_script-6612-1684322676-0001-2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/f9dy8crgRjugPq0iR_nQk9p5ymE>
Subject: Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addressing all WGLC comments
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
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: Wed, 17 May 2023 11:25:14 -0000
Hi Michael, all, On Sun, 14 May 2023, tuexen@fh-muenster.de wrote: >> On 30. Mar 2023, at 16:53, Bob Briscoe <ietf@bobbriscoe.net> wrote: >> >> Michael, Yoshi, Ian (as tcpm chairs), >> >> To close off the WGLC, I have just posted a new rev of accurate-ecn. Hyperlinks quoted at the end. >> You will see the diff is rather extensive. I won't give a summary of all the diffs like I usually do. Instead I can just refer to the summary I gave in the presentation on Monday: >> https://datatracker.ietf.org/meeting/116/materials/slides-116-tcpm-draft-ietf-tcpm-accurate-ecn >> >> Thank you again to the people who reviewed this during the WGLC: >> Michael Tüxen, Alex Burr, Gorry Fairhurst and Markku Kojo. >> >> All changes are editorial, apart from removing the para about not mistaking certain ACKs of ACKs for DupACKs, which I will add to a rev of the ECN++ draft, hopefully later this week. >> >> On the list, we have seen agreement from all the reviewers to these changes, except no response from Markku yet. >> On Monday, I told Markku that I would post the draft in a few days, so everyone can see the updates and diff. > Anyone having additional comments? In particular Markku regarding loss recovery? My apologies for being late with my reply to the author's comments on my review (I've been extremly busy with other issues since the wg mtng in Yokohama, including the rest of mtng week). I don't have much new comments but it seems that my major concern regarding the problem of sending ACKs of ACKs was not fully understood. The first thing where I think I was not quite clear is that the major problem with ACKs of ACKs is not that a pure Ack is made ECN-capable. Instead, the problem is in generating an Ack of an pure Ack and that is what one should prohibit to avoid problems. I understand that it might be problematic to formulate rules whether generating an Ack of an Ack is allowed (and when), instead of just disabling sending ECN-capable ACKs. I don't have a strong opinion which way the problems with ACKs of ACKs is avoided as long as they are avoided. I am preparing a few scenarios to illustriate the problems ACKs of ACks raise and will send them shortly once I have formulated a more thorough reasoning why sending ACKs of ACKs is not really a good idea and even seems to be unnecessary in most if not all cases, i.e., it just results in sending unnecessary packets with not much useful effect but creates a notable number of problems. It also seems not have been carefully enough considered in terms of the very basic rubustness principle of "be conservative in what you send ..." Given that this draft is intended to become a stds track RFC I am concerned of any text in this document that indicates (or even hints) that TCP could acknowledge pure ACKS (this holds particularly the rules and text in Sec 3.2.2.5.1 for the "Increment-Triggered ACKs"). If it is seen necessary that this doc should have such pieces of rules and text, I am fine if any such text is moved to an appendix as long as the appendix makes it cristal clear that the text is valid only in case one is implementing an experiment as per [I-D.ietf-tcpm-generalized-ecn]. Why? 1) It is well known that TCP does not acknowledge ACKs and Standards track TCP has not been specified to acknowledge ACKs. This means that a reader/implementer of this doc cannot correctly understand the rule for "Increment-Triggered ACKs" unless there is a normative reference to a spec that specifies ACKs of ACKs (or tells that it is even possible). 2) ACKs of ACKs tend to trigger duplicate Acks. There are tons of algorithms that rely on the packet conservation principle and the fact that TCP never injects a dupAck unless a *data* packet has arrived and left the network. This is enforced with "MUST NOT" in RFC 5681, Sec 4.2, because not conforming to this rule makes any algorithm that rely on the rule to work incorrectly. These algorithms include (triggering) Fast Retransmit, (controlling packet rate during) Fast Recovery, (detecting spurious RTOs in) F-RTO, (calculating PipeAck in) RFC 7661, (calculating DeliveredData in) PRR, etc. Furthermore, it would make imposible to come up with any new algorihms that rely on this important basic rule. In most cases such extra dupAcks make these algorithms too aggressive because any extra dupAck is likely to inject extra packet(s) to the network. So, it should be cristal clear that without SACK (or Timestamps) a TCP *MUST NOT* send ACKs of ACKs. 3) Even with SACK or Timestamps enabled it is not clear what an implementer should do. With SACK the AckECN authors seem to make an assumption, which seems obvious but is not, that an ACK of ACK would would never include SACK option and hence it could be distinguished from a dupAck. However, RFC 2018 specifies: "If sent at all, SACK options SHOULD be included in all ACKs which do not ACK the highest sequence number in the data receiver's queue. So, if there is a hole in the receiver's queue, the assumption is incorrect and it is unclear which SACK info to include into the SACK option. Whatever one selects to include, it makes DSACK (RFC 2883] void and breaks any DSACK-based algorithms unless RFC 2018 is updated. With Timestamps some algorithms like Eifel detection breaks. Moreover, there are other existing or potentially to-be-created heauristics, including various measurement tools, that rely on the fact that TCP does not echo a later Timestamp in a pure Ack than what arrived with the latest data packet. Any such mechanisms are subject to break. It might be good to hold discussing any details on what breaks and how/why and what are the consequences until I have sent my reply with scenarios to Richard. One additional comment regarding the "Change-Triggered ACKs" rule is that it would be useful to make it more clear how this plays with delayed Acks and how it alters acknowledgement rate. I am not sure that what the draft currently says is quite correct: "The approach can lead to some additional ACKs but it feeds back the timing and the order in which ECN marks are received with minimal additional complexity. If CE marks are infrequent, as is the case for most AQMs at the time of writing, or there are multiple marks in a row, the additional load will be low. For example, consider a scenario with bidirectional traffic between A and B where B has a hole in sequence resulting in every data packet in the current RTT to become acked (pure duplicate Acks). This may result in a packet flow from A to B where every second packet is a pure (duplicate) Ack. If there is congestion on the path from A to B such that a significant number of (data) packets get marked, it may result in acking every data packet from A to B. This does not necessarily result in low additional load? Best regards, /Markku > Best regards > Michael >> >> Cheers >> >> >> Bob >> >> On 30/03/2023 15:15, internet-drafts@ietf.org wrote: >>> A New Internet-Draft is available from the on-line Internet-Drafts >>> directories. This Internet-Draft is a work item of the TCP Maintenance and >>> Minor Extensions (TCPM) WG of the IETF. >>> >>> Title : More Accurate Explicit Congestion Notification (ECN) Feedback in TCP >>> Authors : Bob Briscoe >>> Mirja Kühlewind >>> Richard Scheffenegger >>> Filename : draft-ietf-tcpm-accurate-ecn-24.txt >>> Pages : 64 >>> Date : 2023-03-30 >>> >>> Abstract: >>> Explicit Congestion Notification (ECN) is a mechanism where network >>> nodes can mark IP packets instead of dropping them to indicate >>> incipient congestion to the endpoints. Receivers with an ECN-capable >>> transport protocol feed back this information to the sender. 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 TCP (DCTCP) >>> or Low Latency, Low Loss, and Scalable Throughput (L4S) need more >>> accurate ECN feedback information whenever more than one marking is >>> received in one RTT. This document updates the original ECN >>> specification in RFC 3168 to specify a scheme that provides more than >>> one feedback signal per RTT in the TCP header. Given TCP 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 to >>> feed back the IP-ECN field received during the 3-way handshake as >>> well. Supplementary feedback information can optionally be provided >>> in two new TCP option alternatives, which are never used on the TCP >>> SYN. The document also specifies the treatment of this updated TCP >>> wire protocol by middleboxes. >>> >>> The IETF datatracker status page for this Internet-Draft is: >>> https://datatracker.ietf.org/doc/draft-ietf-tcpm-accurate-ecn/ >>> >>> There is also an htmlized version available at: >>> https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-24 >>> >>> A diff from the previous version is available at: >>> https://author-tools.ietf.org/iddiff?url2=draft-ietf-tcpm-accurate-ecn-24 >>> >>> Internet-Drafts are also available by rsync at rsync.ietf.org::internet-drafts >>> >>> >>> _______________________________________________ >>> tcpm mailing list >>> tcpm@ietf.org >>> https://www.ietf.org/mailman/listinfo/tcpm >> >> -- >> ________________________________________________________________ >> Bob Briscoe http://bobbriscoe.net/ >> > >
- [tcpm] I-D Action: draft-ietf-tcpm-accurate-ecn-2… internet-drafts
- [tcpm] draft-ietf-tcpm-accurate-ecn-24 addressing… Bob Briscoe
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… tuexen
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Markku Kojo
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Bob Briscoe
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Markku Kojo
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Yoshifumi Nishida
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Bob Briscoe
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… tuexen
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… tuexen
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… tuexen
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Bob Briscoe (IC)
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Bob Briscoe (IC)
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Markku Kojo
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Markku Kojo
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Yoshifumi Nishida
- Re: [tcpm] draft-ietf-tcpm-accurate-ecn-24 addres… Bob Briscoe