[quicwg/base-drafts] QUIC header format/demultiplexing (#426)
Lars Eggert <notifications@github.com> Thu, 30 March 2017 13:46 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3DF72129401 for <quic-issues@ietfa.amsl.com>; Thu, 30 Mar 2017 06:46:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.296
X-Spam-Level:
X-Spam-Status: No, score=-9.296 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_HI=-5, RCVD_IN_MSPIKE_H2=-2.796, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
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 u3Nvy_4hC-NK for <quic-issues@ietfa.amsl.com>; Thu, 30 Mar 2017 06:46:53 -0700 (PDT)
Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2-ext2.iad.github.net [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C9E6D1293DA for <quic-issues@ietf.org>; Thu, 30 Mar 2017 06:46:53 -0700 (PDT)
Date: Thu, 30 Mar 2017 06:46:52 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1490881612; bh=R4z7WtYPJ8xj4ckPMJnjx58GVaF680c/125w0Scdkqw=; h=From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=xzE+iCFk7i15XSBFOB4tc6MXpfqwgy0NSvv21NnS5R9tVHbQ6SR41R7HzY6Ao+WSY DSTTu9Gd0F+BHBH2Sd9CqwmDBLKV1wJ03bVNkqUZr7sCsItjXtoliNv+NjoPZc5Bgk t3xgNxrg2ZF+K6XuSyptNodz2cqgyRGVhxMrSjHQ=
From: Lars Eggert <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab60f9ebd779ee5b6c3aae9e28cab545fe84d1a49d92cf0000000114f4ce4c92a169ce0d018204@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/426@github.com>
Subject: [quicwg/base-drafts] QUIC header format/demultiplexing (#426)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_58dd0c4c739fc_201b3fc08f96bc2c103c1"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: larseggert
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/yxgi5Z5S8yGSLfW3ruRepUdV6To>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Mar 2017 13:46:56 -0000
[I am raising this for @csperkins; text below is from him.]
If I understand correctly, the first octet of the new QUIC header is either:
```
+-+-+-+-+-+-+-+-+
|1| Type (7) | Long header packet
+-+-+-+-+-+-+-+-+
```
or
```
+-+-+-+-+-+-+-+-+
|0|C|K| Type (5)| Short header packet
+-+-+-+-+-+-+-+-+
```
Given the assigned types, this gives number values for the first octet in the ranges 0-3, 32-35, 64-67, 96-99, or 128-136.
RFC 7983 talks about how to demultiplex protocols running on a single UDP port, based on the values of the first octet. The important part is the new text table in Section 7, which demultiplexes based on the value of the first octet of the packet as follows:
```
+----------------+
| [0..3] -+--> forward to STUN
| |
| [16..19] -+--> forward to ZRTP
| |
packet --> | [20..63] -+--> forward to DTLS
| |
| [64..79] -+--> forward to TURN Channel
| |
| [128..191] -+--> forward to RTP/RTCP
+----------------+
```
The QUIC headers don’t fit cleanly into this. The result is that it’s not possible to run demultiplex QUIC and WebRTC running on the same UDP port, since WebRTC uses STUN, DTLS, TURN and RTP/RTCP. Demultiplexing these is probably desirable, since it would let you switch from web traffic to interactive WebRTC or very low latency streaming without de-doing the NAT bindings on a port.
The simplest fix to allow the protocols to be demultiplexed is to set the top two bits of the first octet of a QUIC packet to 1 and reduce the size of the type fields:
```
+-+-+-+-+-+-+-+-+
|1|1|1|Type (5) | Long header packet
+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+
|1|1|0|C|K|Type3| Short header packet
+-+-+-+-+-+-+-+-+
```
There are probably other options that keep a larger type field, if we accept a less obvious bit packing, although even these likely lose one bit from the type field.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/426
- [quicwg/base-drafts] QUIC header format/demultipl… Lars Eggert
- Re: [quicwg/base-drafts] QUIC header format/demul… Martin Thomson
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Mark Nottingham
- Re: [quicwg/base-drafts] QUIC header format/demul… Mark Nottingham
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… ianswett
- Re: [quicwg/base-drafts] QUIC header format/demul… Martin Thomson
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Marten Seemann
- Re: [quicwg/base-drafts] QUIC header format/demul… ianswett
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… Martin Thomson
- Re: [quicwg/base-drafts] QUIC header format/demul… ianswett
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Roni Even
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… Marten Seemann
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… ianswett
- Re: [quicwg/base-drafts] QUIC header format/demul… Colin Perkins
- Re: [quicwg/base-drafts] QUIC header format/demul… janaiyengar
- Re: [quicwg/base-drafts] QUIC header format/demul… Martin Thomson
- Re: [quicwg/base-drafts] QUIC header format/demul… Martin Thomson