Re: New Version Notification for draft-huitema-quic-ts-05.txt

Christian Huitema <huitema@huitema.net> Thu, 18 March 2021 06:57 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 E15603A21B2 for <quic@ietfa.amsl.com>; Wed, 17 Mar 2021 23:57:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 v7BhQON-z1Qp for <quic@ietfa.amsl.com>; Wed, 17 Mar 2021 23:57:56 -0700 (PDT)
Received: from mx36-out10.antispamcloud.com (mx36-out10.antispamcloud.com [209.126.121.30]) (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 71C243A21A8 for <quic@ietf.org>; Wed, 17 Mar 2021 23:57:56 -0700 (PDT)
Received: from xse8.mail2web.com ([66.113.196.8] helo=xse.mail2web.com) by mx134.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1lMmbK-000JXw-WC for quic@ietf.org; Thu, 18 Mar 2021 07:57:52 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4F1HsL01XPz1HLh for <quic@ietf.org>; Wed, 17 Mar 2021 23:57:42 -0700 (PDT)
Received: from [10.5.2.17] (helo=xmail07.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 1lMmbF-0000xV-RE for quic@ietf.org; Wed, 17 Mar 2021 23:57:41 -0700
Received: (qmail 9180 invoked from network); 18 Mar 2021 06:57:41 -0000
Received: from unknown (HELO [192.168.1.104]) (Authenticated-user:_huitema@huitema.net@[172.58.43.146]) (envelope-sender <huitema@huitema.net>) by xmail07.myhosting.com (qmail-ldap-1.03) with ESMTPA for <quic@ietf.org>; 18 Mar 2021 06:57:40 -0000
To: Vidhi Goel <vidhi_goel@apple.com>
Cc: IETF QUIC WG <quic@ietf.org>
References: <161602961576.29713.5556006395853657310@ietfa.amsl.com> <a5d9bbf2-227d-90b6-fd22-52e05895713b@huitema.net> <2F127CC0-5D13-4DEB-9B4D-4EF89C8D9E0F@apple.com> <71a72a2c-b6eb-7640-391c-663d21afa8da@huitema.net> <25E11134-A5D7-43C2-9DA8-A055BA89B413@apple.com>
From: Christian Huitema <huitema@huitema.net>
Subject: Re: New Version Notification for draft-huitema-quic-ts-05.txt
Message-ID: <5bf0b642-d313-4514-b12c-5464b4e2e1c4@huitema.net>
Date: Wed, 17 Mar 2021 23:57:40 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
In-Reply-To: <25E11134-A5D7-43C2-9DA8-A055BA89B413@apple.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-Originating-IP: 66.113.196.8
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.196.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.196.0/24@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5x6h2yQpzTslcOqazQkKtAFKj/EwzSHE5FGYwwjsNRPCFjt yKCksmVtT7pFV+9JpzLmD6wdmZPcItWbGe10hXJtXL4FsauCVkDjmcYJdU3yWp7KuHNaaKdg7iBE ZefdsNUFWKwa/wzJUjmazeC7Imca+xnn3Ohf8XY5WZ+f/Kk3UxQ6V51u76v35b1wNe/MvdIN+Yj9 JT+HIE3AciYbXmyy2+J9PgaoF8SQHto3le4zsHTaeQtlKubP6iUTjj6yPARK6buALVaA782LKxg6 vRmng8N1aLhXqdc+jC1RcnVud53D5caUhbVtvqItBqoizkEt9O20UjkwI0v+LOlw05G4BS+iyyNq bT8dUMXMJ4tUCMj6G37ZfAMLceP5aNHPt26RBupu5v1nytoNnc138GfEJRQ2qC7jjynPIHPNqSn4 QTXUjLjYWQt1/5xnQymMoPsgr/U0flMcy2Vi/IcBgY4arPaiJ1W6hAyiRC61jekdwIcXNugoOEbH RyFULpSjm7jZ1h/HfDRQ5Ig8VhPsPE8NDxdyIeJZUl7T+dBx2dACj6vH0PZUsqM6/e5MEyOxH5Gm O4NoRlblGUYTmW5GN8vQDRojSVizNl0ce/s7u0P9b9Tml6eOMCV9kYYwkPx6ZsXvIUzTXkDAiiJi mGhLUFuSOTgtjQWHblEKb/bSn512wzpCmFxa3YOWL4q66FjpsLvZcpPgEJKLbDyaC/LdLvvY3v3e amwPeCVLmqoPffTppfpVB9v9zY0h8asEYmbGGsJkWjQ4xyeNtxxq2TXT/AfNsS2G+z0EO7vXRjel 7YjRXxX0XF3qP/dj48psOHFCwviQxKSBCGH0S84CnKX/NUAV3jR5NeVaJQBh0uawl0Cg8nrgSS6D 7FozWS6JHKREtqdEPzY64lXv2dr2sny4a4Sj0cqzvWDlDrFILmNCVZ/264kd2x35zAiBFPp64JaI ysAWfpirH8g1GOR1IFGt5BWm
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/aaQUXJXlUpUYOpdFXH9H8ps8q34>
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, 18 Mar 2021 06:57:59 -0000

On 3/17/2021 11:03 PM, Vidhi Goel wrote:
>>> 1. Abstract - QUIC is not used as an acronym.
>> Yes. I don't use it as an acronym either. But I realize I wrote "Quic" instead of "QUIC". I wonder whether WG members have strong feelings about that.
> It would be good to be consistent. I’d prefer it to be acronym (QUIC).

The transport specification states clearly:

QUIC: The transport protocol described by this document. QUIC is a name, 
not an acronym.

What you want is using the all capital name "QUIC", rather than my 
deviant spelling "Quic". I personally feel that as QUIC is a name, it 
should be written the way we spell other names like "John" or "Eric". 
But then, all the QUIC drafts use the all-capitals spelling, so I am not 
going to argue too long for this one...

>
>>> 2. Introduction:
>>>   An example would be the Low Extra Delay Background Transport (LEDBAT)
>>>     [RFC6817 <https://tools.ietf.org/html/rfc6817>] which uses variations in transmission delay ….
>>>
>>> I think you meant to say queuing delay here.
>> No. I do mean transmission delay, because that's what the LEDBAT implementations use. There is an assumption that the variations of transmission delays correspond to variations of queuing delays, but that's just an hypothesis.
>
> I am confused. RFC 6817 says the below which points to queuing delay varying while other delays remaining constant-ish.
>
> “End-to-end delay can be decomposed into transmission (or
>     serialization) delay, propagation (or speed-of-light) delay, queueing
>     delay, and processing delay.  On any given path, barring some noise,
>     all delay components except for queueing delay are constant.  To
>     observe an increase in the queueing delay in the network, a LEDBAT
>     sender separates the queueing delay component from the rest of the
>     end-to-end delay, as described below.”
Again, this is an hypothesis based on theory. Increase in one way delays 
are well correlated with queuing delay, but what is measure is the delay 
from sending the packet to receiving it. I am accustomed to describing 
that as the "transmission delay", but you are right that the term is 
often used as in RFC 6817, to describe the "serialization" delay. 
"End-to-end" delay might be the more appropriate term to describe what 
the nodes actually measure.
>
>
>>> 3. Introduction:
>>> Using 1WD solves these
>>>     issues.  Similar argument can be made for most delay-based
>>>     algorithms.
>>>
>>> I disagree that it can be said for most delay based CCAs. LEDBAT++ and Receive LEDBAT don’t use OWD.
>>> For delay based algorithms, I am of the opinion that we should consider RTT (instead of 1WD) as we should also be mindful of the ACK traffic on the return path, if it is congested and we can do that by slowing down the sender.
>> Well, I am on the opinion that LEDBAT++ should use one-way-delay when timestamps are available. It does fallback to RTT when timestamps are not available, but that's a fallback mechanism, not a design goal. In fact, section 4.5 of the LEDBAT++ draft (https://tools.ietf.org/html/draft-irtf-iccrg-ledbat-plus-plus-01#section-4.5) acknowledges that using RTT instead of one-way-delays "can lead to unnecessary slowdowns”
> Yes, and LEDBAT++ continues to say the below. For a delay based CC, how do you suggest the increased delay on reverse path (receiver to sender) be handled, if we don’t use RTT?
> "but in practice this
>     seems to benefit the workloads because bottleneck link can carry ACK
>     traffic in the other direction for the competing flows."
This is explaining that they err on the side of caution, which is OK 
because LEDBAT is for low priority traffic anyhow. But if you remove the 
"low priority" property, this is not OK.
>
>>> 7. Section 2.3
>>> For congestion control, TIMESTAMP frames are treated like ACK frames.
>>>
>>> I don’t understand why this should be the case. I think TIMESTAMP frame should be guarded by CC limits.
>> This text is based on a suggestion by Ian Swett, `The draft says "TIME_STAMP frames are not ack-eliciting. Their loss does not require retransmission." I (Ian)  believe the draft should clarify whether adding a TIME_STAMP frame to a packet causes it to count as in-flight as PADDING would, or not in-flight as an ACK frame would. I (Ian) believe treating it like an ACK frame is the ideal option, personally.`
>>
>> The whole point of adoption by the WG is that we can discuss this issue in the WG.
> Sorry, I am not too familiar with IETF procedures. Does this mean we can discuss in the next IETF meeting or something else?

Mailing list, github, interim, IETF... The way we do things.

-- Christian Huitema

>
>
>> On Mar 17, 2021, at 9:39 PM, Christian Huitema <huitema@huitema.net> wrote:
>>
>> Thanks for the review, Vidhi.
>>
>> A few comments in line.
>>
>> On 3/17/2021 8:44 PM, Vidhi Goel wrote:
>>> Thanks Christian.
>>>
>>> I have some comments.
>>>
>>> 1. Abstract - QUIC is not used as an acronym.
>> Yes. I don't use it as an acronym either. But I realize I wrote "Quic" instead of "QUIC". I wonder whether WG members have strong feelings about that.
>>> 2. Introduction:
>>>   An example would be the Low Extra Delay Background Transport (LEDBAT)
>>>     [RFC6817 <https://tools.ietf.org/html/rfc6817>] which uses variations in transmission delay ….
>>>
>>> I think you meant to say queuing delay here.
>> No. I do mean transmission delay, because that's what the LEDBAT implementations use. There is an assumption that the variations of transmission delays correspond to variations of queuing delays, but that's just an hypothesis.
>>> 3. Introduction:
>>> Using 1WD solves these
>>>     issues.  Similar argument can be made for most delay-based
>>>     algorithms.
>>>
>>> I disagree that it can be said for most delay based CCAs. LEDBAT++ and Receive LEDBAT don’t use OWD.
>>> For delay based algorithms, I am of the opinion that we should consider RTT (instead of 1WD) as we should also be mindful of the ACK traffic on the return path, if it is congested and we can do that by slowing down the sender.
>> Well, I am on the opinion that LEDBAT++ should use one-way-delay when timestamps are available. It does fallback to RTT when timestamps are not available, but that's a fallback mechanism, not a design goal. In fact, section 4.5 of the LEDBAT++ draft (https://tools.ietf.org/html/draft-irtf-iccrg-ledbat-plus-plus-01#section-4.5) acknowledges that using RTT instead of one-way-delays "can lead to unnecessary slowdowns". The text in that section goes on explaining how they mitigate that, but using one-way-delays would definitely be cleaner than relying on mitigations.
>>
>> And yes, it is worth monitoring congestion on the return path, but the proper response there is not to "do as if the direct path was congested." Other mechanisms are available, such as sending fewer ACKs or fewer data on that path.
>>
>>
>>> 4. Section 2.1
>>> 2 or 3 MUST NOT send these frames if the other
>>>     peer does not announce advertise
>>>
>>> Typo  - either announce or advertise
>> Yes. Will fix that in the next iteration.
>>> 5. Section 2.2
>>>
>>> Following successful sending negotiation…
>>>
>>> “Sending” is probably extraneous here.
>> Yes. Will fix that too.
>>> 6. Section 2.2
>>>   They MAY be sent either before or after the ACK frame.
>>>
>>> I think replacing “sent” with “added” would be better here.
>> Yes.
>>> 7. Section 2.3
>>> For congestion control, TIMESTAMP frames are treated like ACK frames.
>>>
>>> I don’t understand why this should be the case. I think TIMESTAMP frame should be guarded by CC limits.
>> This text is based on a suggestion by Ian Swett, `The draft says "TIME_STAMP frames are not ack-eliciting. Their loss does not require retransmission." I (Ian)  believe the draft should clarify whether adding a TIME_STAMP frame to a packet causes it to count as in-flight as PADDING would, or not in-flight as an ACK frame would. I (Ian) believe treating it like an ACK frame is the ideal option, personally.`
>>
>> The whole point of adoption by the WG is that we can discuss this issue in the WG.
>>
>>> 8. Section 2.3
>>> The same applies to packets
>>>     containing only TIMESTAMP frames
>>>
>>> For my curiosity, when do you think packets containing only TS frame would be useful? Also, based on Section 2.6, such a packet wouldn’t be used for 1wd computation.
>>> Is it better to prohibit such a packet?
>> I would rather not introduce another failure condition. I have at least one use case, measuring one way delays on seldom used paths in a multi-path configuration. It is not exactly compelling, but at the same time there is no strong reason to prohibit it.
>>
>>> 9. Section 2.6
>>>   latest_1wd = timestamp - send_time_of_largest_acked - phase_shift
>>>
>>> I think ack_delay should also be subtracted to remove the processing delay from the 1wd.
>>>
>>> Alternatively, one could change how timestamp is encoded. The current text in Section 2.3 says
>>>
>>> "The timestamp encodes the number of microseconds since the beginning
>>>     of the epoch, as measured by the peer at the time at which the packet
>>>     is sent.”
>>>
>>> This could be changed to “time at which the packet was received by the peer”. That would eliminate the processing delay.
>> Good point.  I think the computation should mention the ACK delay.
>>
>> I like the timestamp being exactly the time at which the packet is sent, because that keeps the specification very clean. It also helps scenarios in which the timestamp is used with something else than an ACK -- challenge response comes to mind, but there are probably other possibilities when composing timestamps with other frames. Maybe composing timestamps and datagrams in real time applications.
>>
>>> Thats all for now. Will let you know if something else comes to mind.
>>>
>> Thanks for the feedback!
>>
>> -- Christian Huitema
>>
>>
>