a new internet transport presenter: jana iyengar quic

Post on 24-Jun-2022

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

QUICA New Internet Transport

Presenter: Jana Iyengar

QUIC and the IETF

Nov 2013 Early design and experience (TSVAREA)Mar 2015 QUIC handshake (SAAG)Mar 2015 onwards Replacing QUIC's handshake with TLS1.3July 2015 BarBoF, experimental resultsNov 2015 Cubic bug in QUIC, TCP (TCPM)

July 2016 BoF

2

The QUIC Experiment

TLS

HTTP/2

TCP

IP

QUIC Experiment(so far)

UDP

HTTP over QUIC

3

The IETF Proposal

TLS

HTTP/2

TCP

IP

QUIC

TCP-like congestion control, loss recovery

UDP

HTTP over QUIC

TLS 1.3

4

Standardized QUIC

TLS

HTTP/2

TCP

IP

QUIC

TCP-like congestion control, loss recovery

UDP

Application

Crypto handshake

5

● Deployability and evolvability

QUIC Design Aspirations

6

● Deployability and evolvability● Low latency connection establishment

QUIC Design Aspirations

7

● Deployability and evolvability● Low latency connection establishment● Multistreaming and per-stream flow control

QUIC Design Aspirations

8

● Deployability and evolvability● Low latency connection establishment● Multistreaming and per-stream flow control● Better loss recovery and flexible congestion control

QUIC Design Aspirations

9

● Deployability and evolvability● Low latency connection establishment● Multistreaming and per-stream flow control● Better loss recovery and flexible congestion control● Resilience to NAT-rebinding

QUIC Design Aspirations

10

● Deployability and evolvability● Low latency connection establishment● Multistreaming and per-stream flow control● Better loss recovery and flexible congestion control● Resilience to NAT-rebinding● Multipath for resilience and load sharing

QUIC Design Aspirations

11

Uses UDP as the substrateenables deployment through various middleboxesuserspace implementation enables rapid deployment

Deployability and Evolvability

12

Uses UDP as the substrateenables deployment through various middleboxesuserspace implementation enables rapid deployment

Version negotiationenables protocol wire format evolution

Deployability and Evolvability

13

Uses UDP as the substrateenables deployment through various middleboxesuserspace implementation enables rapid deployment

Version negotiationenables protocol wire format evolution

Fully authenticated and mostly encrypted headersavoids network ossification

Deployability and Evolvability

14

QUIC Streams

Multiplexed streams within a transport connectionmultiple streams avoids HoL blockingshared congestion control and loss recoverytwo levels of flow control: stream and connection

15

QUIC builds on decades of experience with TCP

Congestion Control & Loss Recovery

16

QUIC builds on decades of experience with TCP

Incorporates TCP best practices TCP-like congestion control (NewReno, Cubic)

Congestion Control & Loss Recovery

17

QUIC builds on decades of experience with TCP

Incorporates TCP best practices TCP-like congestion control (NewReno, Cubic) FACK, TLP, F-RTO, Early Retransmit, … (also, time-based loss detection)

Congestion Control & Loss Recovery

18

QUIC builds on decades of experience with TCP

Incorporates TCP best practices TCP-like congestion control (NewReno, Cubic) FACK, TLP, F-RTO, Early Retransmit, … (also, time-based loss detection)

Richer signaling than TCP

Congestion Control & Loss Recovery

19

Retransmitted packets consume new sequence number

no retransmission ambiguity

prevents loss of retransmission from causing RTO

Richer Signaling Than TCP

20

Retransmitted packets consume new sequence number

no retransmission ambiguity

prevents loss of retransmission from causing RTO

More verbose ACK

TCP supports up to 3 SACK ranges

QUIC supports up to 256 ACK ranges

explicit packet receive times

enables ACK decimation

Richer Signaling Than TCP

21

QUIC Implementations

Chromium (open source)https://cs.chromium.org/chromium/src/net/quic/

quic-go (open source implementation in Go)https://github.com/lucas-clemente/quic-go

Christian Huitema's implementation

22

Debugging Tools: Wireshark

23

Debugging Tools: Chrome

chrome://net-internals

24

top related