Re: Proposal: Run QUIC over DTLS

Christian Huitema <> Fri, 09 March 2018 17:42 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E00FC1270AB for <>; Fri, 9 Mar 2018 09:42:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 39GW4GPjp1_1 for <>; Fri, 9 Mar 2018 09:42:51 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C26EF1241FC for <>; Fri, 9 Mar 2018 09:42:50 -0800 (PST)
Received: from ([]) by with esmtps (TLSv1:AES256-SHA:256) (Exim 4.89) (envelope-from <>) id 1euM2U-0000Mg-3j for; Fri, 09 Mar 2018 18:42:42 +0100
Received: from [] ( by with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from <>) id 1euM2R-0003gI-On for; Fri, 09 Mar 2018 12:42:40 -0500
Received: (qmail 27450 invoked from network); 9 Mar 2018 17:42:38 -0000
Received: from unknown (HELO []) ([]) (envelope-sender <>) by (qmail-ldap-1.03) with ESMTPA for <>; 9 Mar 2018 17:42:38 -0000
To: Gabriel Montenegro <>, Leif Hedstrom <>, Martin Duke <>
Cc: Ted Hardie <>, "" <>, Eric Rescorla <>
References: <> <> <> <> <> <> <> <> <> <>
From: Christian Huitema <>
Message-ID: <>
Date: Fri, 9 Mar 2018 09:42:36 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
Subject: Re: Proposal: Run QUIC over DTLS
Authentication-Results:; auth=pass smtp.auth=
X-AntiSpamCloud-Outgoing-Class: unsure
X-AntiSpamCloud-Outgoing-Evidence: Combined (0.25)
X-Recommended-Action: accept
X-Filter-ID: EX5BVjFpneJeBchSMxfU5iRw0q8k9Ov4wVlKKjRvZ6J602E9L7XzfQH6nu9C/Fh9KJzpNe6xgvOx q3u0UDjvO37pNwwF1lRXh5rzvPzo9Jts1ujulqUFmMITHM77eiVigRlKcvAsIgdFbq8EdMyefc7i TvJ2/ZGzVWB9scFAaCdIFaUvXN+CI+RGy3Me16pBCnY1T4UEFfy74vbELeG6IB/TBCf6oYXAWGet lavcAjD9ytQxIHf9lN5jjLJaPK8lRJSPf/SXbEnDSsal/zZzc4n9VZdr7RAFD5mRwooUYhwMPaBP aKeQW+/QlaOdv8isl/qMm08Zpim2AHUKEWvQ6G/bWfgucjnNmABpGhD9TTttrFCuZ0NkwnSz2Luu o1u9uevuNfM1HjkNEFwape+IgNezYqxGMqsKjARq8PBC4qjSYb8Ll5Ew7esaVIVXxqL4mdySlZou 9qHIGOZDEEo7Oyc1nq0gsY582CWqKjiRB3ukywmZtiDkyd4mEBjJGGEJgawbllbHk+xyUKopM6rc KCaQX/lIXcRWtobViGg9fpW4c1OgHtPoe1bkMdZgVo8qbyehtyV7tpwonXkci8Jzobtbzh8VeqoI JHX4GB0qxgBz1HQkoj+jjvmw3UQ3Zextr+7/jg66NXUoieIpLIJirIV7hPvBDpgDmC+XXO9ws5qS dbWrmlMqpoC2dVXCySAV5ZxrRnRt4PqMzH3k7hTkr1YE7tCqypI5WX0qWh4YQLCw+Br0BizoMfgx dFd5tqYVbr8Ks0SqCpRWIiXMtOo8/pI8jnU4taLGlA8rnD8bXLVBfU8ctw02+BCtWDMNtlI8QKHY 6H+wSCoVvwvquzDDiBiyp9ZnkUf43DmQkwMxjMGYdub/YU/cH64QiTAnRDmAKMFEHS3+vt/Njsed NDmPw/Ld14/y82ebPziYNS9mrGcHWFhVQvKDd9aHm1tzPaYBnxycJOQKmrvtOUL1jquCMfd5HnMi k4ibTRVHi8subW0=
Archived-At: <>
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 09 Mar 2018 17:42:53 -0000

On 3/9/2018 9:24 AM, Gabriel Montenegro wrote:

> Another interesting result of this discussion is Subodh’s suggestion to clarify the interfaces between subsystems (“layering structure”): QUIC transport and packetization vs crypto on stream 0 vs UDP. 

In fact, the current QUIC design is a good example of the evolution in
protocol architecture from "layering" to "functional decomposition". The
layering approach, as popularized by the OSI model, consider the system
as a set of filters layered on top of each other. It is a powerful
approach, but it has limitations. The biggest limitation is tied to the
design principle: each layer obscures the view of the other layers; to
mitigate that, the layer API needs a set of pass-through functions, such
as for example passing a setsockopt to TCP across TLS.

In contrast, functional decomposition looks at big functions such as
reliability, forward error correction, real time delivery, and arranges
the protocol as an assembly of these functions. This is very much the
direction pointed to by TAPS. In the case of QUIC, the relation with TLS
is an example of such functional decomposition, treating TLS as a black
box that negotiates keys.

We can certainly agree that the stream zero approach is not ideal. It
may very well be that a set of TLS oriented frame types would be much
cleaner. But in my mind a strict layering approach on top of DTLS would
not be architecturally cleaner. I believe that it would be a step backward.

-- Christian Huitema