Re: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)
Christian Huitema <huitema@huitema.net> Thu, 26 November 2020 17:53 UTC
Return-Path: <huitema@huitema.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 80CCB3A15B4 for <quic@ietfa.amsl.com>; Thu, 26 Nov 2020 09:53:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 1Y-CuovMsOUL for <quic@ietfa.amsl.com>; Thu, 26 Nov 2020 09:53:47 -0800 (PST)
Received: from mx43-out1.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (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 AADBB3A15B3 for <quic@ietf.org>; Thu, 26 Nov 2020 09:53:46 -0800 (PST)
Received: from xse416.mail2web.com ([66.113.197.162] helo=xse.mail2web.com) by mx16.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1kiLSb-00078C-9K for quic@ietf.org; Thu, 26 Nov 2020 18:53:42 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4Chljn5PS5z1MCf for <quic@ietf.org>; Thu, 26 Nov 2020 09:53:33 -0800 (PST)
Received: from [10.5.2.18] (helo=xmail08.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1kiLSX-0003rn-JN for quic@ietf.org; Thu, 26 Nov 2020 09:53:33 -0800
Received: (qmail 20453 invoked from network); 26 Nov 2020 18:00:47 -0000
Received: from unknown (HELO [192.168.1.105]) (Authenticated-user:_huitema@huitema.net@[172.58.46.222]) (envelope-sender <huitema@huitema.net>) by xmail08.myhosting.com (qmail-ldap-1.03) with ESMTPA for <kazuhooku@gmail.com>; 26 Nov 2020 18:00:46 -0000
Subject: Re: Packet number spaces in multipath (was Re: What to do about multipath in QUIC)
To: Markus.Amend@telekom.de, jri.ietf@gmail.com
Cc: quic@ietf.org, Dirk.von-Hugo@telekom.de, kazuhooku@gmail.com
References: <538215d1-3b9e-4784-920d-03be4c3a503a.miaoji.lym@alibaba-inc.com> <CAHgerOGGyAkE=TbCSuTO=T6HK9EM_+m+ASwPRm=o33HBrx7p3Q@mail.gmail.com> <CANatvzz_KSBws_upnx00P7JK=MbgyDRrR5n2VJcr1_=y=P6dfQ@mail.gmail.com> <062fe812-8afb-d946-8336-1f4dc5ebeaaf@uclouvain.be> <7540ef46-9948-c76c-3617-5755be3cdf37@huitema.net> <CANatvzymE+XRXUMBH2quGi=VEUNXDR_Eoer+o6p9+nkD-KFisQ@mail.gmail.com> <3bb7f359-ebe5-7a54-0224-bb1f5f1754af@huitema.net> <CANatvzxyj3nXP+GrnMkexWV-VN7Og4EGXysq1o0W2e2JGWzDrw@mail.gmail.com> <651e0ae1-0a5e-89e9-55c0-c33439599da6@huitema.net> <CANatvzw4Yg9aX2qyaGfc9sS=oEFOHxp-ZLSLF0EYNa8t6uN-iA@mail.gmail.com> <4b96dbb8-e72c-7f99-0bb3-9ee27b7bda78@huitema.net> <CANatvzz_H205MPP67Vnuqp0mwhM0TUbHvA5CfVGeoivCLcUdgw@mail.gmail.com> <850c5bdd-948e-269a-1488-77a77843d5e6@huitema.net> <CACpbDccY3f2wMd5vFzK=NC=Me=EhgmFWMDS7TTBZFtG2bm=JSg@mail.gmail.com> <LEJPR01MB0635984DC5E548E2D7859A4EFAF90@LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <2c6150d9-968c-8c8b-af45-505e9529c910@huitema.net>
Date: Thu, 26 Nov 2020 09:53:31 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0
MIME-Version: 1.0
In-Reply-To: <LEJPR01MB0635984DC5E548E2D7859A4EFAF90@LEJPR01MB0635.DEUPRD01.PROD.OUTLOOK.DE>
Content-Type: multipart/alternative; boundary="------------52B54BD628A8A44D2D985A6B"
Content-Language: en-US
X-Originating-IP: 66.113.197.162
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.197.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.197.0/24@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0fJVsTFCFA1YlcTpjJcy6PSpSDasLI4SayDByyq9LIhVUZbR67CQ7/vm /hHDJU4RXkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGDcnqpk5VeF3xR4kF6iVwRtbgN zB/4Jkrw1eDLcif59ft1FwUlqyW9aLgCKbY9vF0+U7Tmz6iKnkQL9gqsxD347235Nhqq+/HvroPq 8GSPg+5hmwN8D4LrepG7AX8WNwY8X2XX9bIsGDSYq5OAASmskY6jSvfpO+1kZkomjtjB6X5Q5Q9f RUeIpTIC2ySfqvnqLwoxlgatmaBb0rBiK9xbkDrUqzcKIief90MVLZY9LbIZh9+IQ1oS9LBn3VIP 95Jz7ujRlJ9wSMlhvaudJXZ9EIBG/qaR+8r9SKFMmPJLf850OvZYsmoVQuOIhwKLK6IKBNB4LZ0v UHHKTzJX7b1JhLSQQ4vSj0QEim26t/Moy0UPX5E73H1QfrH/5kkrV/Cr0bm2vWdo8usP65i82q1C dZgGrpL44wdx9eXqjQjbvUopOMQJvQ/Ck3iiU+4DQAj3fuQgzT3K9JUHTNiGwfwAm9uTq5jW+H8q XQEUfWldI9mTKljyBuI7LCehsWeGXQOJ2VWOXbE3kvQCCGONX8h/2iI6YUrWqkuiHt9VIJOybYAv UwPy3x0FYtCNEb10sHyQCLHEvD1OqP6bgZ4L66GcgBg66gs5OuzYxJgw5atIxeNDvjI/CYe5WPy0 +t1RP0azkUQOB+A1Y6zvsc5SL1bZZpxMPnetLBJMh51NiRRoHID7nwVsDvP9wUSrxPexxvkvmiK7 x42VjdzChZMe6O/Did+/hGXTmfhE+Dx2/NyzMXronnOWE/FW8fvzdgQvo9YVvOnCUbNPgcPcQwzM gKHyQxUo+ql2ySTkvEFH/23XMww2BnTTFGX5/yI4Ky+1ZJcbGqc5H4PEZHeoI/d6LWFf332z7LMw LGdoi9FMQ5j9dQUvMi1YKAun15JQSJLyCT5k+MTObVKxHy/dols381l9r9ft9daDonlwd6LnuX+J u10=
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/T0dhUO2va6DdsI7qhsvzRWjZ7ak>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Nov 2020 17:53:50 -0000
If you want to send unreliable data with sequencing information, it might be simpler to use STREAM frame in "unreliable" mode than to use Datagram frames. On 11/26/2020 3:34 AM, Markus.Amend@telekom.de wrote: > > Dear all, > > sry for hijacking this conversation. I’m not very familiar with the > different multipath designs for QUIC, however I want to draw attention > to multipath re-ordering which probably becomes important when > multipath is combined with DATAGRAM. > > As long as multipath QUIC is operated with strict reliability (similar > to TCP), re-ordering on receiver side is a simple process known from > MPTCP. Introducing unreliable DATAGRAM transmission makes it more > challenging on receiver side to maintain the packet order, because it > is not easy to differentiate between delayed and lost packets. To > avoid HoL, a multipath re-ordering process may benefit from having > connection and path sequencing. In > https://tools.ietf.org/html/draft-amend-iccrg-multipath-reordering-01 > <https://tools.ietf.org/html/draft-amend-iccrg-multipath-reordering-01> > we intend to describe this in section 5.6, how fast packet loss > detection can be applied using these different packet sequence spaces. > Still the description is meaningless und will be updated until next > IETF, however we have successfully implemented this approach in a > MP-DCCP prototype, which faces similar challenges in terms of > re-ordering. That means, fast packet loss detection is very beneficial > for the receiver re-ordering process to not lose time until an > outstanding packet is assumed lost. > > Br > > Markus > > ** > > *From:*QUIC <quic-bounces@ietf.org> *On Behalf Of *Jana Iyengar > *Sent:* Mittwoch, 25. November 2020 04:35 > *To:* Christian Huitema <huitema@huitema.net> > *Cc:* IETF QUIC WG <quic@ietf.org>; Kazuho Oku <kazuhooku@gmail.com> > *Subject:* Packet number spaces in multipath (was Re: What to do about > multipath in QUIC) > > (I'm taking Spencer's suggestion to spin off a new thread.) > > Christian, Kazuho, > > Slowly catching up on this, and apologies if I'm missing anything that > was previously discussed in the centi-thread earlier. > > If I understand the design correctly, it makes sense to me, and is > very close to what we had implemented in Chromium a while ago. > > Having thought about this problem several times in the past, I'd like > to share a few points that come to mind. > > First though, a point on terminology: the receiver maintains a > separate "ReceivedPackets" for each CID, probably for each CID > sequence number (CSN). Let's please not call this a SACK Dashboard, to > avoid confusion. > > On the question of sending more than 2^32 packets, I think that > resetting the packet number (PN) is ok on new CIDs. I don't see why a > sender would need to maintain continuity across multiple paths > anyways, since the CC and loss recovery contexts are going to be > different across paths. A sender _could_ still maintain these packets > in the same "SentPackets" structure if it wants to, it would need an > internal representation of CSN+PN to key off. > > ACK Frames: > > ------------------ > > Kazuho pointed out that when acknowledging, the ACK frame format > should include CSN. I agree. I would argue for a design where a > receiver uses an ACK frame per CSN (and encodes the CSN explicitly). > There are multiple values for doing this, the primary being that you > benefit from compression when PNs are contiguous within a CSN. > > Return Path: > > ----------------- > > There are other ways to decide which return path to send an ACK on > this, but I would propose that a receiver respond on the most recently > active forward path. That is, the path on which a packet was most > recently received. This has the natural effect that a sender that > wants to distribute traffic in a particular way also causes ACKs to be > distributed similarly across the corresponding reverse paths. > > RTT measurements: > > --------------------------- > > The return path for ACK frames will impact RTT measurements. That is > fine. It is more important that information reach the sender as soon > as possible than that it should not affect RTT measurements; we can > fix the sender to measure and compensate as necessary. The estimated > RTT statistics reflect the distribution of samples, and if both paths > are being used, then the SmoothedRTT will reflect the expected value > based on the traffic distribution across paths. > > That said, it might be useful to track some new stats, especially > about how much later is a "late ack" -- an ACK frame that contains no > useful information -- is received. I'd have to think a bit more about > this, but I think we can devise a stat here. This gives us useful > information on the longest return path, which we can then explicitly > use as part of the PTO computations, to compensate for the fact that > the RTT is based on the shortest return path. (I would _not_ use this > stat in the time-based loss detection timer, but PTO ought to be fine.) > > - jana > > On Tue, Nov 17, 2020 at 9:42 AM Christian Huitema <huitema@huitema.net > <mailto:huitema@huitema.net>> wrote: > > I have been thinking about variations of that. I think we are > making progress here. > > If we follow your design, we get two constraints: > > 1) That the receive maintains an acknowledgement list based on the > CID through which the packets are received. > > 2) That the senders guarantee that the same sequence number will > not be used more than once with a specific CID. > > The main implementation cost is for receivers. They have to > allocate and maintain a "SACK Dashboard" in the context of each > CID that they issue. > > Senders have lots of control. For example, the "only once" > condition is also met if a simple sender uses a single number > space, as long as it does not send more than 2^32 packets. That > makes the design reasonably easy to implement for constrained > implementations. > > Zero length CID are still possible, but that means the receiver > supports only one PN space per sender. Multipath is not > impossible, but you end up managing a single RTT and a single > recovery structure. Not very good, but similar to what happens if > multipath is implemented at the IP level. > > There is still an issue for coordinating the take down of a path. > Suppose that a client was using both Wi-Fi and LTE, and moves out > of Wi-Fi range. The server will find out eventually that the > packets sent to the Wi-Fi path are never acknowledged, but that > may take some time. It would be better if the client could send a > message saying something like "Abandon this path". That's not the > same semantic as "retire this CID". We need a new frame for that. > > "Abandon this path" is an extreme case. There are half-way steps, > like manage the relative priority of a path. >
- What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Martin Duke
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Jana Iyengar
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Lucas Pardue
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Lucas Pardue
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Lucas Pardue
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Olivier Bonaventure
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Lucas Pardue
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Roberto Peon
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Lars Eggert
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Lars Eggert
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Roberto Peon
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Martin Thomson
- Re: What to do about multipath in QUIC Yanmei Liu
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Terminology for multipath QUIC (was Re: What to d… Lucas Pardue
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: Terminology for multipath QUIC (was Re: What … Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Mirja Kuehlewind
- Re: What to do about multipath in QUIC Mirja Kuehlewind
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Re: What to do about multipath in QUIC Yanmei Liu
- Re: What to do about multipath in QUIC Behcet Sarikaya
- Re: What to do about multipath in QUIC Yanmei Liu
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: Re: What to do about multipath in QUIC Ma, Yunfei
- Re: What to do about multipath in QUIC Yunfei Ma
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Florentin Rochet
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Mikkel Fahnøe Jørgensen
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Kazuho Oku
- Re: What to do about multipath in QUIC Christian Huitema
- Re: What to do about multipath in QUIC Spencer Dawkins at IETF
- Packet number spaces in multipath (was Re: What t… Jana Iyengar
- RE: Packet number spaces in multipath (was Re: Wh… Markus.Amend
- Re: Packet number spaces in multipath (was Re: Wh… Christian Huitema
- RE: Packet number spaces in multipath (was Re: Wh… Markus.Amend
- RE: Packet number spaces in multipath (was Re: Wh… Mikkel Fahnøe Jørgensen
- RE: Packet number spaces in multipath (was Re: Wh… Mikkel Fahnøe Jørgensen
- Re: Packet number spaces in multipath (was Re: Wh… Roberto Peon
- RE: Packet number spaces in multipath (was Re: Wh… Markus.Amend
- Re: Packet number spaces in multipath (was Re: Wh… Mirja Kuehlewind
- Re: Packet number spaces in multipath (was Re: Wh… Jana Iyengar
- Re: Packet number spaces in multipath (was Re: Wh… Quentin De Coninck
- Re: Packet number spaces in multipath (was Re: Wh… Mikkel Fahnøe Jørgensen
- Re: Packet number spaces in multipath (was Re: Wh… Kazuho Oku
- Re: Packet number spaces in multipath (was Re: Wh… Quentin De Coninck
- Re: Packet number spaces in multipath (was Re: Wh… Martin Thomson
- Re: Packet number spaces in multipath (was Re: Wh… Kazuho Oku
- RE: Packet number spaces in multipath (was Re: Wh… Mike Bishop