QPACK Design Input Needed

Alan Frindell <afrind@fb.com> Wed, 28 March 2018 23:59 UTC

Return-Path: <prvs=76253a47eb=afrind@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 7E77D126CC4 for <quic@ietfa.amsl.com>; Wed, 28 Mar 2018 16:59:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com header.b=drosUZGe; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=f1gvlqfy
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 T_KVVL6FhBVz for <quic@ietfa.amsl.com>; Wed, 28 Mar 2018 16:59:50 -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 060601205F0 for <quic@ietf.org>; Wed, 28 Mar 2018 16:59:50 -0700 (PDT)
Received: from pps.filterd (m0109334.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w2SNvv4e029289 for <quic@ietf.org>; Wed, 28 Mar 2018 16:59:49 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=eciiMIj9unn5D2QxjI5tb5vJmGdXjwmcSoFXZAew9dU=; b=drosUZGezy+RMV0k69kSyC/OEwTisZ6MCLkVObvv+UcTLmrNi/qBudF7l9ImdYTZQy2h C0xJLmvoZdr7ufEZhQtMD9fMNRsfBIOLbzw+yqwVek18FrAqqpIvk2bj7wJw0zHUObBW odGGzXLOcUva0RFQzEZ1moU9awaqkMOqBzY=
Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2h0mrtg292-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT) for <quic@ietf.org>; Wed, 28 Mar 2018 16:59:49 -0700
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.13) with Microsoft SMTP Server (TLS) id 14.3.361.1; Wed, 28 Mar 2018 16:59:48 -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=eciiMIj9unn5D2QxjI5tb5vJmGdXjwmcSoFXZAew9dU=; b=f1gvlqfyrBNKTKYuyB2hwY0QODNejBv1CIij7mtYb2tWWnVTCHLOESqZAqNDvSBNfJRUrtUugjxWQAAzHNcgXDCH5OVMtHJEsMOGdmN0V5JuG6e8DMQuv2jx3tQpkW4SKtRlzCHa3vy+6ROs9BWbY3mvcfD9mb+mn8tI8ncL+UI=
Received: from CY4PR15MB1927.namprd15.prod.outlook.com (10.174.54.148) by CY4PR15MB1271.namprd15.prod.outlook.com (10.172.180.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Wed, 28 Mar 2018 23:59:47 +0000
Received: from CY4PR15MB1927.namprd15.prod.outlook.com ([fe80::209d:7ddd:f86b:195b]) by CY4PR15MB1927.namprd15.prod.outlook.com ([fe80::209d:7ddd:f86b:195b%17]) with mapi id 15.20.0609.012; Wed, 28 Mar 2018 23:59:47 +0000
From: Alan Frindell <afrind@fb.com>
To: QUIC WG <quic@ietf.org>
Subject: QPACK Design Input Needed
Thread-Topic: QPACK Design Input Needed
Thread-Index: AQHTxvDZp1sSxMtKzUyCWryq5ndoqA==
Date: Wed, 28 Mar 2018 23:59:47 +0000
Message-ID: <C971130C-64E4-4D77-9FAB-B49905F167A6@fb.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.9.0.180116
x-originating-ip: [2620:10d:c090:180::1:e9c3]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; CY4PR15MB1271; 7:Gloa9ot3HMWTYnSpK2ithm5S8RCmgiN5TbmY/pkYEVhaGrOLZTfUaLfN1pa8LTg6Qg168ZUVchxLvrpr3QOiNe8rvvvKa5Y3kB4Bt0pXCFCOk2g+ueiXceVDkXXt5qWypVkDwoutzc9DhI8KSNzyGgHGrjjGcINJm7BRMyCeeyDBT0PJg7j7Og47nqSIwJxXakuOufOSSyrn3XnmXlf449LrgjQvw+xYrogldB6VbzW8AVRdR22FKwjh0Kv/3V2r; 20:ECYmjK6wIbUgGIMb8JjnqPSwMzRTSSkHHDSgL5Yv21oOcNOB4XVr0SQcb+pEgdj7/Mt49+GMMiiQ7ToFKi3KsYXyBuZINlo6nPlC2svMfQfi/tUwJyWI9YsyFwiaESNFRMQlf1asTPdxUYwyd6Pbix9xZb4t1EIsga0Mk1dBoJU=
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 12827003-9d09-425e-f255-08d59507fc8a
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:CY4PR15MB1271;
x-ms-traffictypediagnostic: CY4PR15MB1271:
x-microsoft-antispam-prvs: <CY4PR15MB12712F2D5E67B83103E51A9DA7A30@CY4PR15MB1271.namprd15.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(11241501184)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:CY4PR15MB1271; BCL:0; PCL:0; RULEID:; SRVR:CY4PR15MB1271;
x-forefront-prvs: 06259BA5A2
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(346002)(39380400002)(396003)(39860400002)(189003)(199004)(486005)(486005)(476003)(5250100002)(58126008)(316002)(6512007)(6916009)(6486002)(2900100001)(6436002)(7736002)(25786009)(478600001)(305945005)(53936002)(83716003)(36756003)(97736004)(81166006)(81156014)(86362001)(8676002)(186003)(8936002)(106356001)(6346003)(2616005)(68736007)(82746002)(5660300001)(3480700004)(3660700001)(2906002)(6116002)(14454004)(102836004)(3280700002)(33656002)(6506007)(105586002)(46003)(99286004); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR15MB1271; H:CY4PR15MB1927.namprd15.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: q56Cp94RuMhRrq44dFmH6+aCpkCwHwUyKJBSolnuGodI1SnDDxGR0ISZeYdkIciFkt1iLaHmM6S8b5lCX8kW+1tT3OYKOrEowcs7UOyGZPg71+I+FaGQ/tQy40+fFA9rVKjDNn4j2O4AOADGsKtroo7dhNWDDFO2gcbftgTqiyPFSxgIcJnLtynzsSMjQx0cmxhIuGDqOx9xRUTGlVQHO7pMXoVrSDVh9YnI6LvGIxfHrJvPksT/O5bqRMsheM+U30wYMs5GDbk8q0TVkpT8CjBD0lRLZW45cCd35DpUcQBrbYVkcVpAqCQeHZW8VQbPNUVW+mbEYRh1AAeZ4m9zEA==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <B78CAF7F96A35F46A3CDEB447B94CF05@namprd15.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 12827003-9d09-425e-f255-08d59507fc8a
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2018 23:59:47.5973 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1271
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2018-03-28_08:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/BAQt_5PKv-pd9Nw8Q6JcO97aLRs>
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: Wed, 28 Mar 2018 23:59:51 -0000

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.