Re: QPACK Design Input Needed

Roberto Peon <fenix@fb.com> Thu, 29 March 2018 15:35 UTC

Return-Path: <prvs=76268eed59=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 D426312D963 for <quic@ietfa.amsl.com>; Thu, 29 Mar 2018 08:35:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, 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=NabF+N0G; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=fQvDosn7
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 dKS0z-mlMI-x for <quic@ietfa.amsl.com>; Thu, 29 Mar 2018 08:35:12 -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 2D3FB12D95F for <quic@ietf.org>; Thu, 29 Mar 2018 08:35:12 -0700 (PDT)
Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w2TFUtxH016024; Thu, 29 Mar 2018 08:35:11 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=Ko/VjEFW53A47f6AcUjZdcAvCh0oaTi1kJSCcqREOgo=; b=NabF+N0G2IaWnPJ/D+FB3sLFMoAw0U00Wy69xImg8Myv6SBG0D7+w+glUju34NuncB+6 AzfJhSxO4YutFPy2rJMie6GM3eRYCpVi6nZkB0HdTZyzoBy0FUkOjAXUMlkWe9hyklAU YiSLRA2SUCTJmJgKAajNMoUKhc4wgO0QOGk=
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2h10ty8fsn-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 29 Mar 2018 08:35:11 -0700
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.17) with Microsoft SMTP Server (TLS) id 14.3.361.1; Thu, 29 Mar 2018 08:35:09 -0700
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; bh=Ko/VjEFW53A47f6AcUjZdcAvCh0oaTi1kJSCcqREOgo=; b=fQvDosn7YLJq+H4BzV9ea7PcnykoPmZL5dnGKKDWHMydBteFTYLCxo23ms9YuPEWAIVYOMs/ZhPHmzukgZaWzl2MO2BwG17bUc7O4BtI7ptdjjaCtddnRqvoW8hTxi9glszIQt7ZtW0y5gMinbaYvgLv6xT0aARK3E7IPnt+qf4=
Received: from BY2PR15MB0775.namprd15.prod.outlook.com (10.164.171.11) by BY2PR15MB0200.namprd15.prod.outlook.com (10.163.64.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.631.10; Thu, 29 Mar 2018 15:35:08 +0000
Received: from BY2PR15MB0775.namprd15.prod.outlook.com ([fe80::78a6:3a7a:1195:dd02]) by BY2PR15MB0775.namprd15.prod.outlook.com ([fe80::78a6:3a7a:1195:dd02%13]) with mapi id 15.20.0609.012; Thu, 29 Mar 2018 15:35:06 +0000
From: Roberto Peon <fenix@fb.com>
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Alan Frindell <afrind@fb.com>, QUIC WG <quic@ietf.org>
Subject: Re: QPACK Design Input Needed
Thread-Topic: QPACK Design Input Needed
Thread-Index: AQHTxvDZp1sSxMtKzUyCWryq5ndoqKPmmBkAgADBC8Y=
Date: Thu, 29 Mar 2018 15:35:05 +0000
Message-ID: <BY2PR15MB077570497015490EA3AB91E6CDA20@BY2PR15MB0775.namprd15.prod.outlook.com>
References: <C971130C-64E4-4D77-9FAB-B49905F167A6@fb.com>, <BY2PR0101MB0567D37A24F82E7E2BCFFBDDADA20@BY2PR0101MB0567.prod.exchangelabs.com>
In-Reply-To: <BY2PR0101MB0567D37A24F82E7E2BCFFBDDADA20@BY2PR0101MB0567.prod.exchangelabs.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [98.234.190.115]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BY2PR15MB0200; 7:XIGVmKx0CgdnepBS7feAIgdEQUxNb/8qvmWYMn6sKyIVyDLYYxKNrQTdMD6hT9Xz3nz2Dqr74O6j8MC3J0J+tQXC3ixMScvcPe1dBXdxu6ezN6Is8j0MuXL+21SxoD5ttya+2H7V2nHAyahxio30ZANIRl3XN63oQanbUTlBK0djf9qxL3Ij8wSBH8V6areOfkwLL0u+W9TCxN6Z4Rugmpe9JrqgEsKkuoyTxMXIMytJjprS5xbQXyFzezbGbUOu; 20:VplmKgw9OCWllaSz4alt6JAUpkPCjGB7IyQD6n79waNUCAluvypAvhYI8Fri5MU40Kui3EqUQty5OFEBDI5rystMOjBcMO1Tlnz13BTAgSC0ANPF0+FR8iVNfWBenaInSPEcqBQebnUKBdotSANA6QE36KgqzhUyOq11Wn6DORo=
x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR;
x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10019020)(396003)(366004)(346002)(376002)(39380400002)(39860400002)(199004)(189003)(53546011)(6506007)(102836004)(8936002)(97736004)(3480700004)(486005)(2906002)(486005)(476003)(59450400001)(11346002)(106356001)(186003)(6116002)(26005)(86362001)(3280700002)(25786009)(446003)(3846002)(5660300001)(229853002)(105586002)(76176011)(478600001)(6436002)(2900100001)(8676002)(81166006)(68736007)(81156014)(99286004)(74316002)(6246003)(5250100002)(110136005)(53936002)(33656002)(7736002)(14454004)(6306002)(7696005)(9686003)(3660700001)(316002)(54896002)(66066001)(55016002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR15MB0200; H:BY2PR15MB0775.namprd15.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
x-ms-office365-filtering-correlation-id: 27db250d-f2a8-4872-0e61-08d5958aa5ad
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BY2PR15MB0200;
x-ms-traffictypediagnostic: BY2PR15MB0200:
x-microsoft-antispam-prvs: <BY2PR15MB02009F29E063D494E8E2D682CDA20@BY2PR15MB0200.namprd15.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(67672495146484)(81439100147899);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231221)(11241501184)(944501327)(52105095)(3002001)(93006095)(93001095)(10201501046)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:BY2PR15MB0200; BCL:0; PCL:0; RULEID:; SRVR:BY2PR15MB0200;
x-forefront-prvs: 0626C21B10
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: 3VxX6aw54hmnSaTYa9zGDc0Yp6usq7Y1fAClvjzPAV89Ay4aumK+/itp2BUXo4jsBlQpG26kaFkeExOu8cQoGyJ+BEbxn/7F8lEKpWKgT0YSzusaECfkKyQIOkFW1YB9qZUxUzFLzlchsSDIZHOcQHEhIZNj3t2izXgMcK+Q9ZfJNh8xTN5ojsEd/9RsJpsOb05YvkXN95s4cj3R1OtXGdg5MCl2XCoi5jxN1d+PW3GYjdj4nrpiBLQw2AJ1IRe/NE6jdXDAWDF2UzS/2KtmZO6uJOEPxqYoW0+qnY7Mp3PfqYWzH5oWaOAxQAEboozBBWSHoDS9V/8dMV3vJw5X4w==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BY2PR15MB077570497015490EA3AB91E6CDA20BY2PR15MB0775namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 27db250d-f2a8-4872-0e61-08d5958aa5ad
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2018 15:35:05.8681 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR15MB0200
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-03-29_09:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3J5z4QUKDgZ-cXNUWfIBEGNnmbo>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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, 29 Mar 2018 15:35:16 -0000

Agreed: backwards compatibility is less important that the benefit.

For one thing, being not exactly backwards compatible sets a good precedent w.r.t. future changes.

-=R

Sent via the Samsung Galaxy S7, an AT&T 4G LTE smartphone


-------- Original message --------
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Date: 3/28/18 9:04 PM (GMT-08:00)
To: Alan Frindell <afrind@fb.com>, QUIC WG <quic@ietf.org>
Subject: Re: QPACK Design Input Needed

I vote “not important.”

 - Dmitri.

________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Alan Frindell <afrind@fb.com>
Sent: Wednesday, March 28, 2018 7:59:47 PM
To: QUIC WG
Subject: QPACK Design Input Needed

We need input from the working group about the importance of HPACK compatibility versus cleanliness of QPACK.  Mike’s PR (#1141), previously mentioned on list, reorganizes the instruction space, and makes a couple other compatibility-breaking changes.

The new instructions are cleaner[1] than re-using the HPACK instructions, and would allow us (now, or in the future), to increase the size of the static table without any negative compression impacts[2].

Re-using the HPACK instructions makes it easier to share code between an HPACK and QPACK implementation.  It would allow using an HPACK library directly in HTTP over QUIC with a zero byte dynamic table[3].

Which do you prefer?

Thanks

-Alan


[1] QPACK has two contexts for instructions, and all HPACK instructions are only valid in one of the contexts.  QPACK makes more efficient use of the instruction space and removes any notion of an “invalid” instruction.  My one-pass encoding PR (#1239) is kind of a hack, re-using some otherwise invalid instructions when a single instruction with a flag would be a cleaner design.

[2] In HPACK all dynamic indexes are serialized on the wire offset by the static table size.  If we increased the static table size, it would cost approximately one byte per dynamic indexed header field.  Mike’s PR replaces offsetting the index with a static bit.

[3] This is not a good idea for compression in general, as it only saves about 30% of header bytes on the wire, but it is nice for anyone trying to get an HTTP over QUIC implementation off the ground.