Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
H
hddemux
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dkg
hddemux
Commits
315863fa
Commit
315863fa
authored
7 years ago
by
dkg
Browse files
Options
Downloads
Patches
Plain Diff
more clarification around HTTP/1.x vs HTTP/2
parent
49ab0880
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
draft-dkg-dprive-demux-dns-http.md
+11
-9
11 additions, 9 deletions
draft-dkg-dprive-demux-dns-http.md
with
11 additions
and
9 deletions
draft-dkg-dprive-demux-dns-http.md
+
11
−
9
View file @
315863fa
---
title: Demultiplexing Streamed DNS from HTTP
title: Demultiplexing Streamed DNS from HTTP
/1.x
docname: draft-dkg-dprive-demux-dns-http-02
date: 2017-05-03
category: info
...
...
@@ -77,13 +77,13 @@ should place no constraints on it or any higher version of HTTP.
Introduction
============
DNS and HTTP/1.
1
are both client-speaks-first protocols capable of
DNS and HTTP/1.
x
are both client-speaks-first protocols capable of
running over stream-based transport like TCP, or as the payload of a
typical TLS {{RFC5246}} session.
There are some contexts where it is useful for a server to be able to
decide what protocol is used by an incoming TCP stream, to choose
dynamically between DNS and HTTP/1.
1
on the basis of the stream itself
dynamically between DNS and HTTP/1.
x
on the basis of the stream itself
(rather than a port designation or other explicit demultiplexing).
For example, a TLS terminator listening on port 443 and receiving
...
...
@@ -135,7 +135,7 @@ initial few octets sent by the client.
While it's tempting to consider distinguishing at multiple points in
the stream, the complexities of determining the specific end of an
HTTP/1.
1
request body and handling HTTP/1.x error cases make this more
HTTP/1.
x
request body and handling HTTP/1.x error cases make this more
difficult to implement on the side of a DNS client configured to talk
to such a server. Interleaving the responses themselves on a stream
with multiple data elements is also challenging. So do not use this
...
...
@@ -150,11 +150,13 @@ HTTP/2 is not always client-speaks-first
While this demultiplexing technique functions for HTTP/1.0 and
HTTP/1.1, it does not work for HTTP/2 {{RFC7540}} because HTTP/2 is
not guaranteed to be a client-speaks-first protocol. In the event
that HTTP/2 is to be transported over TLS, the ALPN token negotiated
in the TLS session is "h2", which allows the server to know as soon as
the handshake is complete that it can start pushing data to the
client.
not guaranteed to be a client-speaks-first protocol. In particular,
many HTTP/2 servers prefer to send a SETTINGS frame immediately
without waiting for data from the client, if they already know they're
speaking HTTP/2. In the event that HTTP/2 is to be transported over
TLS, the ALPN token negotiated in the TLS handshake is "h2", which
allows the server to know as soon as the handshake is complete that it
can start pushing data to the client.
A standard DNS-over-TLS client connecting to a server that might be
multiplexing DNS with HTTP on the same listener MUST NOT indicate an
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment