Re: PUSH_HEADERS frame

Roberto Peon <fenix@fb.com> Thu, 21 June 2018 17:30 UTC

Return-Path: <prvs=9710e6ea57=fenix@fb.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 DAC05130EF4 for <quic@ietfa.amsl.com>; Thu, 21 Jun 2018 10:30:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level:
X-Spam-Status: No, score=-2.72 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_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=GkzGDLFl; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=UbudfgIF
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 sVFQVqbz0AGj for <quic@ietfa.amsl.com>; Thu, 21 Jun 2018 10:30:32 -0700 (PDT)
Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 DD95C130E19 for <quic@ietf.org>; Thu, 21 Jun 2018 10:30:32 -0700 (PDT)
Received: from pps.filterd (m0109333.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w5LHOPYI016168; Thu, 21 Jun 2018 10:30:26 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=c2ilMuuIAZq3yz99QVTu5ahIlzMEdcT///RfeV7GSIc=; b=GkzGDLFlLAehVzyEjmcYUtyxI75/hqHmqqi4LbJQki49N8ikQ/fhkEcxtLJ5gsZ2VKoT g064wBHjwf0/LuFRG1JOGI2Ycb6+5JVskwa7T3lGFBdJmqQy5Egw/sPYj2WSwXSx44L7 Iv8RjypYDGSTXeNOXC33cr8VQxbIPIE0JX0=
Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2jrg7381uy-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 21 Jun 2018 10:30:26 -0700
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.33) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 21 Jun 2018 13:30:24 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c2ilMuuIAZq3yz99QVTu5ahIlzMEdcT///RfeV7GSIc=; b=UbudfgIFO6JiGFpdM3D0SKrjpH+khRsk6jG4P1Er4Gn244rbSLtLt3IunN/bgFpbNNBirn9E8NOZk7paDI2wXtt7aRtRB8w0asCSui3hgvm3PTYxEsNIhFlRzIxu+rWD8kUe6o9lBG+HmNFsyw3sbk35vSjyOSIyjjaE3TLAgnY=
Received: from BYAPR15MB2312.namprd15.prod.outlook.com (52.135.197.146) by BYAPR15MB2326.namprd15.prod.outlook.com (52.135.197.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.17; Thu, 21 Jun 2018 17:30:22 +0000
Received: from BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::6597:ce9d:39a9:6851]) by BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::6597:ce9d:39a9:6851%2]) with mapi id 15.20.0863.016; Thu, 21 Jun 2018 17:30:22 +0000
From: Roberto Peon <fenix@fb.com>
To: Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Martin Thomson <martin.thomson@gmail.com>, Mike Bishop <mbishop@evequefou.be>
CC: QUIC WG <quic@ietf.org>
Subject: Re: PUSH_HEADERS frame
Thread-Topic: PUSH_HEADERS frame
Thread-Index: AdQItM9/wr2FRkmcSU6cCT2bnOJHwAACdGVFAAJIJNAACneDAAABXD6AABTyoYA=
Date: Thu, 21 Jun 2018 17:30:22 +0000
Message-ID: <B088118C-9290-40A8-AB29-2021E2FD8AEA@fb.com>
References: <BYAPR08MB3944A37B3230FAAA5448E16EDA770@BYAPR08MB3944.namprd08.prod.outlook.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB58F3A@bgb01xud1012> <BYAPR08MB394439B73E6495D7DCD09ECFDA770@BYAPR08MB3944.namprd08.prod.outlook.com> <CABkgnnU12bHq_OOz26EVjyGnaf41+VGCqriOk6sO8zZJkA83Ug@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB5B115@bgb01xud1012>
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A3BB5B115@bgb01xud1012>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.e.1.180613
x-originating-ip: [2620:10d:c090:200::7:c553]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR15MB2326; 7:69NUT21ynU+WlkBlfv9zk1vaPbp48/hkoKcE2CQOOosZPhtZs0bbPsAnq529qTLu1jwzRNUajatesYHe7SupcTmIocpmUI0Hsb9j2oui9OXm/lML6GhMAFdqw349kgX2Aq7Fn2a4eAMa303MwH4z/+irDupGeeLHUwovv/qapn7huWQUl+mcFseK4jFU46TyDpN9zm5OnULA1l6hNDZwWJ12wxjI/Jy1RwnibZxjQbPAX1kQKLYlgLF7GUmIxZ9r; 20:S6v9Xzx3Lfd7YrYHVykhTuPRPn5Sxe7cNG0njo62uH1FEBsziBR7Pz1pah0pwr6trl/L2Xw2u2ykw4yuFPQNK7bu/d211CreZgRSmJIAq8H9VqExSSNwGnr+EDnluZfTxifAZyvRJ8F/W7D3Cngm+cq0ebQAXKdI0V0Xmxiwr4A=
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: c61b6e17-1fcf-4c94-a372-08d5d79caafb
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR15MB2326;
x-ms-traffictypediagnostic: BYAPR15MB2326:
x-microsoft-antispam-prvs: <BYAPR15MB232644F4CEB1A677B016530ACD760@BYAPR15MB2326.namprd15.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(85827821059158)(67672495146484)(127952516941037)(17755550239193);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(11241501184)(944501410)(52105095)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123558120)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:BYAPR15MB2326; BCL:0; PCL:0; RULEID:; SRVR:BYAPR15MB2326;
x-forefront-prvs: 07106EF9B9
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(39860400002)(376002)(39380400002)(396003)(366004)(13464003)(189003)(199004)(51914003)(6506007)(11346002)(76176011)(53936002)(25786009)(3280700002)(46003)(5250100002)(81166006)(81156014)(186003)(58126008)(110136005)(316002)(93886005)(2906002)(486006)(39060400002)(476003)(53546011)(83716003)(36756003)(446003)(59450400001)(99286004)(4326008)(102836004)(2900100001)(2616005)(3660700001)(82746002)(6246003)(105586002)(478600001)(97736004)(6436002)(8936002)(86362001)(14454004)(6512007)(7736002)(305945005)(33656002)(7116003)(8676002)(68736007)(6116002)(106356001)(6486002)(5660300001)(229853002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR15MB2326; H:BYAPR15MB2312.namprd15.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: MEGTHyMiI7pAducLooexXDN4+XAlNKUPBUZ8uKaCLG2xRfGs5dLYqNBeE+5MmR6n0QqIwdGlFfnO1a3e/oPjQ/ddsfgv/SNGOnFYKcnuvVy8Bt7lxoMaGPrcRSh/qVopjYZdlCR8KaiP+KblFh7nP7TKeSpLsHFv7G7jZ0k/39Ytv5At8gQHGcRsdDHwS5eO8pzqgVQyiOn5H0dIztvhCujqZXeB96vXDPVUEZIjXzJpHtrn4yNF/TF7jmOfEx+ZlXFxyMFh/mYIUZfRmD2yJEoZhTNAbQNOnjShJrsYzAeudbcDgYDlBNwcu8eA6+nvRGdmkEdkIyZYX+IBwtTOhA==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <937642BB0F782A45A549F48C0F01B2B8@namprd15.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: c61b6e17-1fcf-4c94-a372-08d5d79caafb
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2018 17:30:22.4562 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2326
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-06-21_08:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5PgTFIxIeZlHM9Kf26FyxoMCxBY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.26
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, 21 Jun 2018 17:30:35 -0000

As Mike showed, typed frames and typed streams are very much not the same.
Lucas, are you arguing for typed *frames* or typed *streams*?
-=R

On 6/20/18, 5:31 PM, "Lucas Pardue" <Lucas.Pardue@bbc.co.uk> wrote:

    Well, I only partially buy the simplicity from reusing HEADERS. The client has juggling to do to parse push ID in order to correlate the response with request - I'd argue whether it is done inside or outside the frame equally trivial.
    
    Anecdotally, when explaning HTTP/QUIC server push to an audience not tracking WG progress so closely, it has struck people as quite a departure from H2 and GQUIC (for the better I might add). FWIW I think typed streams would make communication easier, as it makes the capability more conspicuous.
    
    Lucas
    ________________________________________
    From: Martin Thomson [martin.thomson@gmail.com]
    Sent: 21 June 2018 00:51
    To: Mike Bishop
    Cc: Lucas Pardue; Roberto Peon; QUIC WG
    Subject: Re: PUSH_HEADERS frame
    
    I agree with Mike.  FWIW, implementing push is trivial as a result of
    it using the same framing as requests and responses; I would be
    opposed to changing that.
    On Thu, Jun 21, 2018 at 4:58 AM Mike Bishop <mbishop@evequefou.be> wrote:
    >
    > Philosophically, I'd go a step further and say that, as in the PR, the semantics of the stream are entirely determined by the type byte.  Any internal divisions of regions within the bytestream are as needed by that type and defined by it.  Some, like the QPACK stream, won't actually need divided regions.
    >
    > The fact that push streams and control streams subdivide their regions using frames from the same type space as request streams is somewhere between a convenience due to push's similarity to things we already have (responses) and a historical legacy of H2.  There's no reason they would need to do so; there's just also no real reason to change.
    >
    > -----Original Message-----
    > From: Lucas Pardue [mailto:Lucas.Pardue@bbc.co.uk]
    > Sent: Wednesday, June 20, 2018 11:28 AM
    > To: Mike Bishop <mbishop@evequefou.be>; Martin Thomson <martin.thomson@gmail.com>; Roberto Peon <fenix@fb.com>
    > Cc: QUIC WG <quic@ietf.org>
    > Subject: RE: PUSH_HEADERS frame
    >
    > Thanks for the feedback. To be clear, I'm in favor of typed streams but to play devils advocate.
    >
    > > Unidirectional streams aren't required to use HTTP/QUIC frames;
    >
    > QPACK aside, the only examples we have use frames. So the question is: do we think it is in scope to support un-framed STREAM bytes as an HTTP/QUIC extension point?
    >
    > Back to PUSH_HEADERS, the change is a subtle one. I'd highlight the Header Block, which presently has two bearer frames HEADERS and PUSH_PROMISE. The main difference with push is that the stream ID cannot be used to correlate request and response. So we use a push ID that is framed everywhere *except* the push delivery stream. PUSH_HEADERS is a more honest approach to this quirk (at some small framing inconvenience), everything relevant to the Header Block is bundled together. It acts as a stream reservation mechanism that ties push response data, with request and response headers.
    >
    > It doesn't change much:
    >
    > Untyped streams (today): push ID + HEADERS + DATA (+ HEADERS) Typed streams: stream type byte + push ID + HEADERS + DATA (+ HEADERS) Untyped and framed streams:  PUSH_HEADERS (including push ID) + DATA (+HEADERS)
    >
    > I could try to make a weak argument that framing helps because you could at least skip over frames if you get their length but not the rest. The current design requires the full push ID to be received before HEADERS and DATA processing.
    >
    > Lucas