Re: RE: RE: [External] New Version Notification for draft-chen-quic-quicu-01.txt

Yongyi Yu <yuyongyi.yyy@bytedance.com> Fri, 30 September 2022 07:24 UTC

Return-Path: <yuyongyi.yyy@bytedance.com>
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 3E561C1524CE for <quic@ietfa.amsl.com>; Fri, 30 Sep 2022 00:24:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=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 (2048-bit key) header.d=bytedance-com.20210112.gappssmtp.com
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 8m01D2WuKtd1 for <quic@ietfa.amsl.com>; Fri, 30 Sep 2022 00:23:57 -0700 (PDT)
Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9AB8EC1524AC for <quic@ietf.org>; Fri, 30 Sep 2022 00:23:57 -0700 (PDT)
Received: by mail-pj1-x102a.google.com with SMTP id l12so3314829pjh.2 for <quic@ietf.org>; Fri, 30 Sep 2022 00:23:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:in-reply-to:references:mime-version :from:from:to:cc:subject:date; bh=5WX9ofJ+DcMyfBVvvfZKx9O47zO49owzvlbt+BHmL8M=; b=duN1mQlaphqpBDuynYYVvY/KYbeNOZFuEkrv8HFWk7iDrDtdoOCkTsGRqIe6E3LoWa lCGlUpLbceSsNmPJLxT/SsabceekqrsKIs7SpP3ysdstknvkBngfG8964NTYiQ2szg5q swidK/skHAtepWVcQJGx7eQegacK66jUFvECYXH2/8db+iyo4kL4U9+/QoUS7RDhFv6G WL4J+gMfsT/kNlALxEVSlPpP3JxOvyxhzjlg8jjVhnXZhPW8DsDx2tireUVycGNTp/jw +Kv4FaFZOsbf74eY8gRMgzx6tbmXbz23nLjyAPjVpSm+RZFT/HWUkmh3D379qSTtY/TP BU8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:in-reply-to:references:mime-version :from:x-gm-message-state:from:to:cc:subject:date; bh=5WX9ofJ+DcMyfBVvvfZKx9O47zO49owzvlbt+BHmL8M=; b=kHyr1oHAcREHpXFzBxgiK5o8t6k5Nf95B2Iu3dQMhUnk6ZOlNArgzTL0PBgdEwx3Ba D0m40nNBSeE6DHOzuoJrba9hzy2a6c/p6h9yl+ybeRhZjBFT4SykshVf53HXwPWEpPVA 435EsgH3A4la+7+2hcb5YzwA6h7lx1aoXF0mgQw6vtTo8HSP6gTIw46MDkMd5zrXSWVB XBSsqs7RsEd56Hs8+Ud8UXPrgU3Sq2dCLczgzOe9Z+IGxG9vNGEUDeyUMd7TEvwgNcKK xyHf2PcjXBEYs1ko4TwB/htig0BfFyaJoF7KO9DwO6EoEAmvORcgEBxDnHQOvbwdrfxq ZWhg==
X-Gm-Message-State: ACrzQf0/nBzw4r44IDs6e0nwhCrAC8Fm8TQCwVclFr8q/mEfZAyzyR0S Jf2buNbG7N8lh75t3tc/Nxo24SF4a7wRCwc4Ioz6Xw==
X-Google-Smtp-Source: AMsMyM5/LedG8HWfGsNKupzlEc9M0mjQHATs0GzDzvXxE7amnoB7wrtsqQd7GJU5TAqdHEUe87Z0NTMKwkI6nzyLi6s=
X-Received: by 2002:a17:90b:1e0b:b0:205:bce5:467f with SMTP id pg11-20020a17090b1e0b00b00205bce5467fmr20397213pjb.24.1664522635758; Fri, 30 Sep 2022 00:23:55 -0700 (PDT)
Received: from 349319672217 named unknown by gmailapi.google.com with HTTPREST; Fri, 30 Sep 2022 00:23:55 -0700
From: Yongyi Yu <yuyongyi.yyy@bytedance.com>
Mime-Version: 1.0
References: <166359205152.6422.10161941398731313578@ietfa.amsl.com> <CAGAnozYePCwo5S-EUTN4X=-EixNFVgF+1MwiD60-GDogw7ojnA@mail.gmail.com> <CAJ_4DfS8n5sZXEk0=Eojq_DEK6QGvgG6-KjOiVnHv8etxzCSkQ@mail.gmail.com> <AE5493E8-DFAD-42F2-A41C-4B924B8602EF@apple.com> <CAGAnozZHFChVbK2MNkxVm5XbF3msGyHuRy1er7OjAGPzE_EMLQ@mail.gmail.com> <d0f85f1306c94e8d92ad4ad706e9f48f@akamai.com> <CAGAnozaGaYNPFFcv3SXM9wqWJ+NWUh_+bTKFcp_D0_fuQUd0Aw@mail.gmail.com> <5f9517bfd0a34301b33a80c2dc90a984@akamai.com>
In-Reply-To: <5f9517bfd0a34301b33a80c2dc90a984@akamai.com>
Date: Fri, 30 Sep 2022 00:23:55 -0700
Message-ID: <CAGAnozaiKvomOGCAFgRHOswMMt3k7tuWLpDbgYEroS32Pugahw@mail.gmail.com>
Subject: Re: RE: RE: [External] New Version Notification for draft-chen-quic-quicu-01.txt
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: Tommy Pauly <tpauly@apple.com>, Ryan Hamilton <rch=40google.com@dmarc.ietf.org>, "quic@ietf.org" <quic@ietf.org>, 陈鉴平 <chenjianping.ireader@bytedance.com>, 景君羡 <jingjunxian@bytedance.com>, 刘天一 <liutianyi.lty@bytedance.com>
Content-Type: multipart/alternative; boundary="0000000000006d509005e9dfe04c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/4LxIaM9KgwEXylOWtOz_u_RWaGM>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
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: Fri, 30 Sep 2022 07:24:01 -0000

Hi Igor,

Currently the data expired is treated just as normally received so the
receiver will enlarge the flow control window accordingly as usual.  And we
really miss out the case where some data blocks are so large that they
exceed the flow control window size. Will a negotiation to decide the
minimum flow control window size during handshake help deal with this,
since all data blocks then would have size not exceeding the minimum flow
control window size?

About the APIs, we hope to provide an additional API to receive data
blocks. But the receiver could also read a byte stream by buffering data
blocks received and reading content from them. This could be implemented by
the transport layer and the application layer could be not aware of it.

Thanks,
Yongyi.

From: "Lubashev, Igor"<ilubashe@akamai.com>
Date: Wed, Sep 28, 2022, 00:11
Subject: RE: RE: [External] New Version Notification for
draft-chen-quic-quicu-01.txt
To: "Yongyi Yu"<yuyongyi.yyy@bytedance.com>
Cc: "Tommy Pauly"<tpauly@apple.com>, "Ryan Hamilton"<
rch=40google.com@dmarc.ietf.org>, "quic@ietf.org"<quic@ietf.org>, "陈鉴平"<
chenjianping.ireader@bytedance.com>, "景君羡"<jingjunxian@bytedance.com>,
"刘天一"<liutianyi.lty@bytedance.com>

Yongyi,



Without going into the question of whether partially reliable streams are
necessary (as Matt said, Meta implemented them but is not using that
implementation in production), here are a few comments I have.



   1. Have you thought about the interaction of you draft with stream and
   connection flow control?  95% of the time I spent on my design was spent on
   thinking of ways to augment flow control to avoid extra round trips just to
   open a flow control window, while still ensuring that the resulting
   protocol is resilient against an adversarial endpoint forcing the peer to
   commit an unreasonable amount of resources (memory) to the connection.



   - 1. Our proposal splits a QUIC stream into many data blocks by Boundary
   Frame. The receiver would provide data to the application layer only when a
   data block is completely received. Therefore, the application layer needn't
   be aware of the gap at the expiration point or discard data already read.
   - 2. Because the stream is split into blocks, the sender could send or
   expire data by data blocks. Then the transport layer could track the
   message boundaries instead of the application layer.



   1. Section 4.4* Data Receiving* of your draft is saying the same.  It
   seems wrong to have the transport protocol specify the behavior of the QUIC
   library APIs so precisely.  It is ok to try to enable a particular library
   API, but the transport protocol’s specification ought to limit itself to
   the semantics of bytes on the wire.



Very best,



   - Igor





*From:* Yongyi Yu <yuyongyi.yyy@bytedance.com>
*Sent:* Tuesday, September 27, 2022 11:04 AM

Hi Igor,



Thanks for your replying. Our proposal indeed shares similar ideas with
yours, but there are also some difference. We'd like to update our draft to
clarify the difference in detail, and to briefly summary here, there are
three major points.



1. Our proposal splits a QUIC stream into many data blocks by Boundary
Frame. The receiver would provide data to the application layer only when a
data block is completely received. Therefore, the application layer needn't
be aware of the gap at the expiration point or discard data already read.



2. Because the stream is split into blocks, the sender could send or expire
data by data blocks. Then the transport layer could track the message
boundaries instead of the application layer.



3. With the introduction of Correlation Frame, we can combine multiple QUIC
streams into single data stream while avoiding head of line blocking. This
feature could be quite useful in many scenarios, e.g., transmitting both
video and audio data through single HTTP response.



Please do let me know if you have any further advice, and please do not
hesitate to point out if I make any mistakes.



Thanks,

Yongyi.

From: "Lubashev, Igor"< <ilubashe@akamai.com>ilubashe@akamai.com>

Date: Mon, Sep 26, 2022, 00:29

Subject: RE: [External] New Version Notification for
draft-chen-quic-quicu-01.txt

To: "Yongyi Yu"< <yuyongyi.yyy@bytedance.com>yuyongyi.yyy@bytedance.com>,
"Tommy Pauly"< <tpauly@apple.com>tpauly@apple.com>

Cc: "Ryan Hamilton"< <rch=40google.com@dmarc.ietf.org>
rch=40google.com@dmarc.ietf.org>, " <quic@ietf.org>quic@ietf.org"<
<quic@ietf.org>quic@ietf.org>, "陈鉴平"< <chenjianping.ireader@bytedance.com>
chenjianping.ireader@bytedance.com>, "景君羡"< <jingjunxian@bytedance.com>
jingjunxian@bytedance.com>, "刘天一"< <liutianyi.lty@bytedance.com>
liutianyi.lty@bytedance.com>

Are you trying to implement something like
<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-02__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLrwTi38kR$>*https://datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-02
<https://datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-02>*
or
<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-03__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr-kT71BO$>*https://datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-03
<https://datatracker.ietf.org/doc/html/draft-lubashev-quic-partial-reliability-03>*?
(The -02 and -3 versions have somewhat different properties, and some
people prefer -02 version.)



   - Igor



*From:* Yongyi Yu < <yuyongyi.yyy@bytedance.com>*yuyongyi.yyy@bytedance.com
<yuyongyi.yyy@bytedance.com>*>
*Sent:* Friday, September 23, 2022 1:11 AM
*To:* Tommy Pauly < <tpauly@apple.com>*tpauly@apple.com <tpauly@apple.com>*>
*Cc:* Ryan Hamilton <
<rch=40google.com@dmarc.ietf.org>*rch=40google.com@dmarc.ietf.org
<rch=40google.com@dmarc.ietf.org>*>; <quic@ietf.org>*quic@ietf.org
<quic@ietf.org>*; 陈鉴平 <
<chenjianping.ireader@bytedance.com>*chenjianping.ireader@bytedance.com
<chenjianping.ireader@bytedance.com>*>; 景君羡 <
<jingjunxian@bytedance.com>*jingjunxian@bytedance.com
<jingjunxian@bytedance.com>*>; 刘天一 <
<liutianyi.lty@bytedance.com>*liutianyi.lty@bytedance.com
<liutianyi.lty@bytedance.com>*>
*Subject:* Re: [External] New Version Notification for
draft-chen-quic-quicu-01.txt



Thanks for your replying. I agree "partial reliability" fits our draft
better, since we do retransmit lost data and provide in-order transmission.
And, our proposal could be compatible with H3, should we clarify the
behavior in the draft? Please do let me know if you have any further
advice.



Thanks,

Yongyi.

From: "Tommy Pauly"< <tpauly@apple.com>*tpauly@apple.com <tpauly@apple.com>*
>

Date: Thu, Sep 22, 2022, 11:32

Subject: Re: [External] New Version Notification for
draft-chen-quic-quicu-01.txt

To: "Ryan Hamilton"<
<rch=40google.com@dmarc.ietf.org>*rch=40google.com@dmarc.ietf.org
<rch=40google.com@dmarc.ietf.org>*>

Cc: "于涌溢"< <yuyongyi.yyy@bytedance.com>*yuyongyi.yyy@bytedance.com
<yuyongyi.yyy@bytedance.com>*>, " <quic@ietf.org>*quic@ietf.org
<quic@ietf.org>*"< <quic@ietf.org>*quic@ietf.org <quic@ietf.org>*>, "陈鉴平"<
<chenjianping.ireader@bytedance.com>*chenjianping.ireader@bytedance.com
<chenjianping.ireader@bytedance.com>*>, "景君羡"<
<jingjunxian@bytedance.com>*jingjunxian@bytedance.com
<jingjunxian@bytedance.com>*>, "刘天一"<
<liutianyi.lty@bytedance.com>*liutianyi.lty@bytedance.com
<liutianyi.lty@bytedance.com>*>

I noticed that this draft does reference RFC 9221, and DATAGRAM frames.



If I’m understanding correctly, it seems like this is trying to define an
approach for what’s more commonly referred to as “partial reliability”,
which was something DATAGRAM explicitly didn’t try to include.



If this is the case, I think it would be useful to reframe the document in
terms of that, since the heavy use of “unreliable” is quite confusing. It
also isn’t clear to me how this proposal would work with specific
application protocols on top of QUIC — is this something that’s meant to be
compatible with H3, or is it for entirely separate use cases?



Best,

Tommy



On Sep 21, 2022, at 3:17 PM, Ryan Hamilton <
<rch=40google.com@dmarc.ietf.org>*rch=40google.com@dmarc.ietf.org
<rch=40google.com@dmarc.ietf.org>*> wrote:



QUIC has support for unreliable data via the DATAGRAM frame, *RFC 9221*
<https://urldefense.com/v3/__https:/www.rfc-editor.org/info/rfc9221__;!!GjvTz_vk!VHC6upHgCOojEiYhln21JerQBPYz1cbPLifo7gevl5sFTM-5qEoTkN-TxpvuKG1MQfnSBiZsXrrQ2OC2qjWu1aws$>.
It seems that this new proposal attempts to add unreliable data support not
to QUIC, but to QUIC *streams*. QUIC streams, of course, offer a reliable,
in-order, sequence of bytes. Did you consider starting with DATAGRAMs, and
building from there instead?



Cheers,


Ryan



On Wed, Sep 21, 2022 at 1:14 AM 于涌溢 <
<yuyongyi.yyy@bytedance.com>*yuyongyi.yyy@bytedance.com
<yuyongyi.yyy@bytedance.com>*> wrote:

Deal all,



We would like to introduce an extension of the QUIC protocol for unreliable
data transmission called QUIC Unreliable (QUICU) . The following draft is
submitted for your consideration and comments. We would also like to
present this at IETF 115 to discuss further.



To summarize on this draft: it describes an extension of the QUIC protocol
for unreliable data transmission called QUIC Unreliable (QUICU), which
mainly through the definition and use of three new types of frames, namely
the Expire Offset Frame, Boundary Frame, and Correlation Frame. The main
purpose of this extension is to reduce data delivery delay. Through
controlling the timing and scope of packet losses, QUICU reduces useless
transmission to improve transmission efficiency, reduces head-of-line
blocking to improve transmission timeliness, which are beneficial to
delay-sensitive applications, especially audio and video applications. This
document describes the motivation, the operations, and the wire formats of
the three new types of frames.



Link to html:
<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-chen-quic-quicu-01__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr-8Nui-W$>*https://datatracker.ietf.org/doc/html/draft-chen-quic-quicu-01
<https://datatracker.ietf.org/doc/html/draft-chen-quic-quicu-01>*



Please feel free to reach us for any comments or questions on this.



Thanks,

Yongyi.



---------- Forwarded message ---------

From: <internet-drafts@ietf.org>*internet-drafts@ietf.org
<internet-drafts@ietf.org>*

Date: Mon, Sep 19, 2022, 20:54

Subject: [External] New Version Notification for
draft-chen-quic-quicu-01.txt

To: "Jianping Chen"<
<chenjianping.ireader@bytedance.com>*chenjianping.ireader@bytedance.com
<chenjianping.ireader@bytedance.com>*>, "Junxian Jing"<
<jingjunxian@bytedance.com>*jingjunxian@bytedance.com
<jingjunxian@bytedance.com>*>, "Tianyi Liu"<
<liutianyi.lty@bytedance.com>*liutianyi.lty@bytedance.com
<liutianyi.lty@bytedance.com>*>, "Yongyi Yu"<
<yuyongyi.yyy@bytedance.com>*yuyongyi.yyy@bytedance.com
<yuyongyi.yyy@bytedance.com>*>

A new version of I-D, draft-chen-quic-quicu-01.txt

has been successfully submitted by Yongyi Yu and posted to the

IETF repository.



Name:                draft-chen-quic-quicu

Revision:        01

Title:                An Unreliable Extension to QUIC

Document date:        2022-09-19

Group:                Individual Submission

Pages:                10

URL:
<https://urldefense.com/v3/__https:/www.ietf.org/archive/id/draft-chen-quic-quicu-01.txt__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr-yI1P_H$>*https://www.ietf.org/archive/id/draft-chen-quic-quicu-01.txt
<https://www.ietf.org/archive/id/draft-chen-quic-quicu-01.txt>*

Status:
<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/draft-chen-quic-quicu/__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr5p48dO1$>*https://datatracker.ietf.org/doc/draft-chen-quic-quicu/
<https://datatracker.ietf.org/doc/draft-chen-quic-quicu/>*

Htmlized:
<https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-chen-quic-quicu__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr8jsZIQp$>*https://datatracker.ietf.org/doc/html/draft-chen-quic-quicu
<https://datatracker.ietf.org/doc/html/draft-chen-quic-quicu>*

Diff:
<https://urldefense.com/v3/__https:/www.ietf.org/rfcdiff?url2=draft-chen-quic-quicu-01__;!!GjvTz_vk!SCWoZpCVuR1gPftuxMF-fSS9CnLF_2nRKJitWu1H7d-btWOpFeCmdioeIafLXaj7vRbOtpP7gGi3BCMLr2ccQ-Yz$>*https://www.ietf.org/rfcdiff?url2=draft-chen-quic-quicu-01
<https://www.ietf.org/rfcdiff?url2=draft-chen-quic-quicu-01>*



Abstract:

  QUIC Unreliable (QUICU) is an extension of the QUIC protocol for

  unreliable data transmission, mainly through the definition and use

  of three new types of frames, namely the Expire Offset Frame,

  Boundary Frame, and Correlation Frame. The main purpose of this

  extension is to reduce data delivery delay. Through controlling the

  timing and scope of packet losses, QUICU reduces useless transmission

  to improve transmission efficiency, reduces head-of-line blocking to

  improve transmission timeliness, which are beneficial to delay-

  sensitive applications, especially audio and video applications.



  This document describes the motivation, the operations, and the wire

  formats of the three new types of frames.









The IETF Secretariat