The document discusses Apache Traffic Server's plans to implement QUIC, including:
- Their goal is to start development of a QUIC implementation, with a first draft coming soon.
- QUIC is a new protocol that implements improved TCP and TLS over UDP. It includes congestion control and loss detection.
- There are 4 QUIC specifications covering the core transport, loss detection, TLS mapping, and HTTP mapping.
- They discussed initial prototype issues and a revised design, with milestones including experimental ATS support in 2018.
4. IETF QUIC
• It was mostly HTTP/2 over UDP + α
• It is something else over UDP + α
• Totally new protocol to ATS
≈ Improved TCP + TLS + Improved HTTP/2
HTTP over QUIC
UDP
TLS 1.3
QUIC
TCP-like congestion control, loss detection
5. 4 specifications & 2 layers
1.Core Transport Protocol
2.Loss Detection and Congestion Control
3.TLS Mapping
4.HTTP Mapping
6. 4 specifications & 2 layers
1.Core Transport Protocol
HTTP over QUIC (4)
UDP
TLS 1.3
QUIC (1,2,3)
TCP-like congestion control, loss detection
• Implements improved TCP with
modern technologies on UDP, in
userland
• Existing hardware should be
able to transfer QUIC traffic
without any change
• Protocol version is negotiable
7. 4 specifications & 2 layers
2.Loss Detection and Congestion Control
HTTP over QUIC (4)
UDP
TLS 1.3
QUIC (1,2,3)
TCP-like congestion control, loss detection
• Ensure reliable transfer
• Difference from TCP is “HOW”
• Modern algorithms
8. 4 specifications & 2 layers
3.TLS Mapping
HTTP over QUIC (4)
UDP
TLS 1.3
QUIC (1,2,3)
TCP-like congestion control, loss detection
• Current draft uses TLS 1.3
• Key exchange will be done at
the beginning of session on a
dedicated QUIC stream
• Need to implement it with low
level APIs in crypto libraries
9. 4 specifications & 2 layers
4.HTTP Mapping
HTTP over QUIC (4)
UDP
TLS 1.3
QUIC (1,2,3)
TCP-like congestion control, loss detection
• Some parts are the same as
HTTP/2
• Many parts of HTTP/2 will be
moved down to QUIC transport
layer
• Frame structure will be changed
• HPACK will be replaced
11. Issues
• TCP (stream) vs UDP (datagram)
• Code for UDP is not maintained
• Multiplexing is on transport layer
• HTTP over QUIC looks like HTTP/3 (totally different)
12. Current design (2nd try)
Too many things to talk here…
• No QUICNetAccept
• No changes for VIO itself
• ProxyClientSession isn’t
used for now
• Most parts will be into
iocore/quic/
13. Milestones
• 2017 May — Prepare for development
• 2017 Jul — Implement first implementation draft
• ATS Summit 2017 Fall — Report result of interop
• 2018 May — Add experimental support (ATS 8.0)