SlideShare a Scribd company logo
1 of 14
Taking a Long Look at QUIC:
An Approach for Rigorous Evaluation of Rapidly
Evolving Transport Protocols
Arash Molavi Kakhki1, Samuel Jero2, David Choffnes1,
Cristina Nita-Rotaru1, and Alan Mislove1
1Northeastern University
2Purdue University
IMC 2017
1.2.3.4
5.6.7.8
0111
0101
QUIC
TCP
✤ No ACK ambiguity
✤ Better RTT/BW estimation
QUIC (Quick UDP Internet Connections)
2
Cubic
BBR
HTTP/2
TLS
TCP
IP
UDP
HTTP/2 API
QUIC
user space
kernel space
Samuel Jero IMC 2017
• Improve performance for HTTP traffic
• Reduce handshake time (0-RTT)
• Prevent head-of-line blocking
• Improve loss recovery
• Modular congestion control
• Connection migration across IPs
• Avoid middlebox meddling
• Protect user data
• Facilitate rapid deployment
QUIC (Quick UDP Internet Connections)
• Significant deployment today
• Google, Akamai
• >85% of requests from Chrome to Google use QUIC
• >7% of Total Internet Traffic
• IETF standardization ongoing
• -07 drafts
• 20+ implementations in progress
Samuel Jero IMC 2017 3
Google Data, from: https://www.ietf.org/proceedings/96/slides/slides-96-quic-3.pdf
Existing Evaluations of QUIC
Google’s evaluation
• 3% page load time improvement on Google search
• 8% latency reduction on Google search
• 18% reduction in buffer time on YouTube
4
• All aggregated statistics
• Limited controlled tests
• Not reproducible
Other QUIC evaluations
• Limited environments/networks
• Limited tests
• Old versions of QUIC
• Untuned implementations
• Results not statically sound
• No root cause analysis
Samuel Jero IMC 2017
Our Work
• Extensive calibration to ensure fair comparisons between
QUIC and TCP
• Methodology for automatic head-to-head comparisons,
including root-cause-analysis
• Statistical analysis of results
• Evaluation of QUIC’s performance compared to TCP
• Variety of emulated network conditions (loss, delay, jitter, …)
• Variety of network types (fixed-line, wireless, cellular, …)
• Variety of environments (desktop, mobile, …)
• Root cause analysis
Samuel Jero IMC 2017 5
Goal: Provide a rigorous evaluation of QUIC’s performance
compared to TCP
Outline
Samuel Jero IMC 2017 6
• Motivation
• Methodology
• Calibration
• QUIC’s performance for HTTP
compared with TCP
• Fairness of QUIC with TCP
• Summary
Methodology
Compare QUIC with TCP+TLS+HTTP/2 for HTTP
Samuel Jero IMC 2017 7
Network
Router
(OpenWRT+TC/NETEM)
Server
(Supports QUIC and TCP)
Client
QUIC
TCP
Compare
PLTs
(Page Load Times)
Ensures fair
comparison,
Provides similar
features
Primary use case
for QUIC today
Simple HTML pages
isolate workload
from performance Determine whether results
are statistically significant
using Welch’s t-test
Root-Cause Analysis
QUIC (and TCP) have many components, features,
and optimizations that make identifying the
causes of differences very challenging
Instrument QUIC server to capture congestion
control state machine traces to look for
differences in internal behavior
TCP
Calibration
8
Network
Router
(OpenWRT+TC/NETEM)
Server
(Supports QUIC and TCP)
Client
QUIC
TCP
Downloading a 10MB obj at 100Mbps
Server
QUIC
Samuel Jero IMC 2017
• Google Servers
• No control
• Toy QUIC server in Chromium
• Not performant
Tuned toy server by:
• Matching parameters with Google’s
• Fixing a bug regarding slow start
HTTP Performance: QUIC vs TCP
9
RTT = 36ms, loss = 1%
RTT = 112ms, loss = 0%
RTT = 112ms with re-ordering, loss = 0%
RTT = 112ms with re-ordering, loss = 0%
Our server on EC2
(Support QUIC and TCP)
Network
Router
(OpenWRT+TC/NETEM)
Client
QUIC
TCP
RTT = 36ms, loss = 0%
44%
45%
44%
Samuel Jero IMC 2017
QUIC is faster
TCP is faster
QUIC performs better than TCP, except under reordering, but
improvements diminish with transfer size
Object Size
Bandwidth
% of time spent in each state
Slow
Start
Cong.
Avoid.
App.
Limit.
Recovery
1.7% 91.5% 7.1% 0%
0.42% 40.6% 58.8% 0.2%
RTT = 36ms, loss = 0%
HTTP Performance: QUIC vs TCP
10
RTT = 36ms, loss = 0%
Samuel Jero IMC 2017
WIFI
Resource constraints limit mobile performance
HTTP Performance: QUIC vs TCP
11
Samuel Jero IMC 2017
Cellular
QUIC performs better than TCP in cellular networks, but
limited by reordering
0 2 4 6 8 10
Verizon - LTE
Sprint - LTE
Verizon - 3G
Sprint - 3G
Reordering (%)
0 0.01 0.02 0.03 0.04 0.05 0.06
Verizon - LTE
Sprint - LTE
Verizon - 3G
Sprint - 3G
Loss (%)
QUIC for 3G:
+ Lower bandwidth, higher loss
- Higher reordering
Fairness: QUIC vs TCP
12
Flow Avg. Tput
QUIC vs.
TCP
QUIC
TCP
2.71
1.62
QUIC vs.
TCPx2
QUIC
avg(TCP)
2.8
0.83
QUIC vs.
TCPx4
QUIC
avg(TCP)
2.75
0.41
5Mbps bottleneck link, RTT=36ms, buffer=30 KB
Samuel Jero IMC 2017
QUIC is very unfair to TCP, despite
both using CUBIC
A property of transport protocols that ensures that a flow does
not consume more than its fair share of bottleneck bandwidth
Not Responsible:
• TCP Segment Offload
• Delayed ACKs
• RTT estimation
Investigation still in progress
Summary
• Evaluated the performance of QUIC, an application-layer
transport protocol that is rapidly evolving and deployed at scale
• Focus on the performance and fairness of QUIC for HTTP in
comparison to TCP+TLS+HTTP/2
• Under a variety of network conditions
• In desktop, mobile, and cellular environments
• With careful calibration
• Ensuring statistical significance
• Root-cause analysis to understand our findings by instrumenting
the QUIC implementation
• Approach can be applied to future versions and protocols
13
Samuel Jero IMC 2017
Questions?
14
Samuel Jero
sjero@sjero.net
Samuel Jero IMC 2017
Check out the code! http://quic.ccs.neu.edu

More Related Content

Similar to Rigorous Evaluation of QUIC Transport Protocol Performance Compared to TCP

ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSDeepak Shankar
 
Security and Transport Performance in 5G
Security and Transport Performance in 5GSecurity and Transport Performance in 5G
Security and Transport Performance in 5GDirk Kutscher
 
Lets talk about QoS by Megis.pdf
Lets talk about QoS by Megis.pdfLets talk about QoS by Megis.pdf
Lets talk about QoS by Megis.pdfssusere31f1c
 
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdf
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdfA Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdf
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdfAPNIC
 
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-Study
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-StudyDo We Really Need TSN in Next-Generation Helicopters? Insights From a Case-Study
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-StudyRealTime-at-Work (RTaW)
 
AusNOG 2023: A quick look at QUIC
AusNOG 2023: A quick look at QUICAusNOG 2023: A quick look at QUIC
AusNOG 2023: A quick look at QUICAPNIC
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...Real-Time Innovations (RTI)
 
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...Edielson P. Frigieri
 
Introduction to SDN
Introduction to SDNIntroduction to SDN
Introduction to SDNNetCraftsmen
 
TCP Over Wireless
TCP Over WirelessTCP Over Wireless
TCP Over WirelessFarooq Khan
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Ram Vennam
 
Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshopKae Hsu
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsNitinder Mohan
 

Similar to Rigorous Evaluation of QUIC Transport Protocol Performance Compared to TCP (20)

ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERSROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
ROLE OF DIGITAL SIMULATION IN CONFIGURING NETWORK PARAMETERS
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
Security and Transport Performance in 5G
Security and Transport Performance in 5GSecurity and Transport Performance in 5G
Security and Transport Performance in 5G
 
Sky x technology
Sky x technologySky x technology
Sky x technology
 
Lets talk about QoS by Megis.pdf
Lets talk about QoS by Megis.pdfLets talk about QoS by Megis.pdf
Lets talk about QoS by Megis.pdf
 
UDT
UDTUDT
UDT
 
UDT
UDTUDT
UDT
 
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdf
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdfA Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdf
A Quick Look at QUIC, presentation for RIPE 85 by Geoff Huston.pdf
 
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-Study
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-StudyDo We Really Need TSN in Next-Generation Helicopters? Insights From a Case-Study
Do We Really Need TSN in Next-Generation Helicopters? Insights From a Case-Study
 
AusNOG 2023: A quick look at QUIC
AusNOG 2023: A quick look at QUICAusNOG 2023: A quick look at QUIC
AusNOG 2023: A quick look at QUIC
 
How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...How the fusion of time sensitive networking, time-triggered ethernet and data...
How the fusion of time sensitive networking, time-triggered ethernet and data...
 
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...
M2M Protocols for Constrained Environments in the Context of IoT: A Compariso...
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
 
Introduction to SDN
Introduction to SDNIntroduction to SDN
Introduction to SDN
 
TCP Over Wireless
TCP Over WirelessTCP Over Wireless
TCP Over Wireless
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Network and TCP performance relationship workshop
Network and TCP performance relationship workshopNetwork and TCP performance relationship workshop
Network and TCP performance relationship workshop
 
Latency considerations in_lte
Latency considerations in_lteLatency considerations in_lte
Latency considerations in_lte
 
Redesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge cloudsRedesigning MPTCP in Edge clouds
Redesigning MPTCP in Edge clouds
 
Sky x technology
Sky x technologySky x technology
Sky x technology
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Rigorous Evaluation of QUIC Transport Protocol Performance Compared to TCP

  • 1. Taking a Long Look at QUIC: An Approach for Rigorous Evaluation of Rapidly Evolving Transport Protocols Arash Molavi Kakhki1, Samuel Jero2, David Choffnes1, Cristina Nita-Rotaru1, and Alan Mislove1 1Northeastern University 2Purdue University IMC 2017
  • 2. 1.2.3.4 5.6.7.8 0111 0101 QUIC TCP ✤ No ACK ambiguity ✤ Better RTT/BW estimation QUIC (Quick UDP Internet Connections) 2 Cubic BBR HTTP/2 TLS TCP IP UDP HTTP/2 API QUIC user space kernel space Samuel Jero IMC 2017 • Improve performance for HTTP traffic • Reduce handshake time (0-RTT) • Prevent head-of-line blocking • Improve loss recovery • Modular congestion control • Connection migration across IPs • Avoid middlebox meddling • Protect user data • Facilitate rapid deployment
  • 3. QUIC (Quick UDP Internet Connections) • Significant deployment today • Google, Akamai • >85% of requests from Chrome to Google use QUIC • >7% of Total Internet Traffic • IETF standardization ongoing • -07 drafts • 20+ implementations in progress Samuel Jero IMC 2017 3 Google Data, from: https://www.ietf.org/proceedings/96/slides/slides-96-quic-3.pdf
  • 4. Existing Evaluations of QUIC Google’s evaluation • 3% page load time improvement on Google search • 8% latency reduction on Google search • 18% reduction in buffer time on YouTube 4 • All aggregated statistics • Limited controlled tests • Not reproducible Other QUIC evaluations • Limited environments/networks • Limited tests • Old versions of QUIC • Untuned implementations • Results not statically sound • No root cause analysis Samuel Jero IMC 2017
  • 5. Our Work • Extensive calibration to ensure fair comparisons between QUIC and TCP • Methodology for automatic head-to-head comparisons, including root-cause-analysis • Statistical analysis of results • Evaluation of QUIC’s performance compared to TCP • Variety of emulated network conditions (loss, delay, jitter, …) • Variety of network types (fixed-line, wireless, cellular, …) • Variety of environments (desktop, mobile, …) • Root cause analysis Samuel Jero IMC 2017 5 Goal: Provide a rigorous evaluation of QUIC’s performance compared to TCP
  • 6. Outline Samuel Jero IMC 2017 6 • Motivation • Methodology • Calibration • QUIC’s performance for HTTP compared with TCP • Fairness of QUIC with TCP • Summary
  • 7. Methodology Compare QUIC with TCP+TLS+HTTP/2 for HTTP Samuel Jero IMC 2017 7 Network Router (OpenWRT+TC/NETEM) Server (Supports QUIC and TCP) Client QUIC TCP Compare PLTs (Page Load Times) Ensures fair comparison, Provides similar features Primary use case for QUIC today Simple HTML pages isolate workload from performance Determine whether results are statistically significant using Welch’s t-test Root-Cause Analysis QUIC (and TCP) have many components, features, and optimizations that make identifying the causes of differences very challenging Instrument QUIC server to capture congestion control state machine traces to look for differences in internal behavior TCP
  • 8. Calibration 8 Network Router (OpenWRT+TC/NETEM) Server (Supports QUIC and TCP) Client QUIC TCP Downloading a 10MB obj at 100Mbps Server QUIC Samuel Jero IMC 2017 • Google Servers • No control • Toy QUIC server in Chromium • Not performant Tuned toy server by: • Matching parameters with Google’s • Fixing a bug regarding slow start
  • 9. HTTP Performance: QUIC vs TCP 9 RTT = 36ms, loss = 1% RTT = 112ms, loss = 0% RTT = 112ms with re-ordering, loss = 0% RTT = 112ms with re-ordering, loss = 0% Our server on EC2 (Support QUIC and TCP) Network Router (OpenWRT+TC/NETEM) Client QUIC TCP RTT = 36ms, loss = 0% 44% 45% 44% Samuel Jero IMC 2017 QUIC is faster TCP is faster QUIC performs better than TCP, except under reordering, but improvements diminish with transfer size Object Size Bandwidth
  • 10. % of time spent in each state Slow Start Cong. Avoid. App. Limit. Recovery 1.7% 91.5% 7.1% 0% 0.42% 40.6% 58.8% 0.2% RTT = 36ms, loss = 0% HTTP Performance: QUIC vs TCP 10 RTT = 36ms, loss = 0% Samuel Jero IMC 2017 WIFI Resource constraints limit mobile performance
  • 11. HTTP Performance: QUIC vs TCP 11 Samuel Jero IMC 2017 Cellular QUIC performs better than TCP in cellular networks, but limited by reordering 0 2 4 6 8 10 Verizon - LTE Sprint - LTE Verizon - 3G Sprint - 3G Reordering (%) 0 0.01 0.02 0.03 0.04 0.05 0.06 Verizon - LTE Sprint - LTE Verizon - 3G Sprint - 3G Loss (%) QUIC for 3G: + Lower bandwidth, higher loss - Higher reordering
  • 12. Fairness: QUIC vs TCP 12 Flow Avg. Tput QUIC vs. TCP QUIC TCP 2.71 1.62 QUIC vs. TCPx2 QUIC avg(TCP) 2.8 0.83 QUIC vs. TCPx4 QUIC avg(TCP) 2.75 0.41 5Mbps bottleneck link, RTT=36ms, buffer=30 KB Samuel Jero IMC 2017 QUIC is very unfair to TCP, despite both using CUBIC A property of transport protocols that ensures that a flow does not consume more than its fair share of bottleneck bandwidth Not Responsible: • TCP Segment Offload • Delayed ACKs • RTT estimation Investigation still in progress
  • 13. Summary • Evaluated the performance of QUIC, an application-layer transport protocol that is rapidly evolving and deployed at scale • Focus on the performance and fairness of QUIC for HTTP in comparison to TCP+TLS+HTTP/2 • Under a variety of network conditions • In desktop, mobile, and cellular environments • With careful calibration • Ensuring statistical significance • Root-cause analysis to understand our findings by instrumenting the QUIC implementation • Approach can be applied to future versions and protocols 13 Samuel Jero IMC 2017
  • 14. Questions? 14 Samuel Jero sjero@sjero.net Samuel Jero IMC 2017 Check out the code! http://quic.ccs.neu.edu

Editor's Notes

  1. QUIC stands for … Which I am very convinced they first came up with the name QUIC, then asked a poor intern to figure out what this could be abbreviation of QUIC is a protocol by Google, debuted in 2013 Was designed to achieve a number of goals. First of, it was proposed to improve HTTP performance it is meant to eventually be a general purpose transport protocol as an alternative for TCP for all types of traffic and not just for HTTP but currently it’s mostly uses with HTTP and very integrated with it So it this talk I am gonna stick to QUIC in HTTP context It reduces the connection establishment time from a few RTTs for TLS over TCP to potentially 0-RTTs It can multiplex multiple flows over the same connection without HOL bloc It has a better loss recovery mechanism It provides a modular plug and play CC It allows connection migration, so for example your connections do not break if you’re phone switched between WiFi and LTE and many other smaller hacks and optimizations but performance was not QUIC’s only goal Google engineers are very clear that they want to prevent modification and limit ossification of the protocol by middleboxes. and they do that by authenticating everything and encrypting most QUIC communications and Finally, QUIC has been designed to allow rapid experiment and deployments and for that, it has been implemented in the userspace, as opposed to TCP which are part of the kernel which means deploying a change can take a long time, sometimes years ————————————————————————————————— QUIC replaces most of the traditional HTTPS stack: HTTP/2, TLS, and TCP ————————————————————————————————— QUIC uses a cryptographic handshake that minimizes handshake latency for most connections by using known server credentials on repeat connections and by removing redundant handshake-overhead at multiple layers in the network stack. While network bandwidth has increased over time, the speed of light re- mains irreducible. Most connections on the Internet, and certainly most transactions on the web, are short transfers and are most impacted by this additional round trip. eliminates head-of-line blocking delays by using a lightweight data-structuring abstraction, streams, which are multiplexed within a single connection so that loss of a single packet blocks only streams that have data in that packet. It improves loss recovery by using unique packet numbers to avoid retransmission ambiguity and by using explicit signaling in ACKs for accurate RTT measurements.
  2. Google has been using QUIC since 2013 and now more than 85% … these statistics are very promising, but there are a number of problems here
  3. Now this is great, except there is one big issue here QUIC is experimental, and GOOGLE is the only one using it so when it comes to QUIC servers, we can either use 1- use Google servers 2- use the toy QUIC server in Chromium but neither of the works for our purpose let me show you why this plot is showing the time it take when we host our html pages on Google servers, and try to download a 10MB image. The red portion is the time it takes from when we send out the request until we receive the first bite and the blue part in the rest of the download. As you can see this wait time is huge, and even worse it random probably because there is some sort of proxy or load balancer and this is not acceptable for our PLT tests further, we have no control over Google servers if for example we want to change some configuration on the server so we’re left with the toy server. this is the same experiment when we setup our own toy server. The random large wait time is gone, which is good but now the receive time is much larger compare to Google servers so we had to make the toy server as performant as Google servers and for that, we had to extract the config that Google is using, some of which require gray box testing and after some tuning, and fixing a bug in chromium source, we got this Now we have a tuned and performant server and this is extremely important because not of the prior work went through this step and reported poor performance for QUIC, which we know it’s exactly because of not tuning the server
  4. Ok. So we took our testbed and tuned server, and did some HTTP PLT tests let’s start with desktop environment and see how QUIC and TCP compare when downloading different object sizes at different bottleneck BW I’m gonna show the page load time difference of the two protocol in percentage So for example when downloading a 5KB object, QUIC improves the DL time by about 45% Now to avoid bombarding you with numbers and make things easier to read, I am gonna turn these numbers into heatmaps where red means QUIC is doing better, blue means TCP is doing better and white means there is no significant difference between the two and this is the heatmap for different object sized at different BW when RTT is 36ms and loss is 0% This is the same test, but under 1% loss, again QUIC is doing better due to it’s better loss detection and recovery mechanism compare to TCP we increased the RTT, still QUIC outperforming TCP and finally we compared the two protocols in presence of packet re-ordering, and there are suddenly some very blue cells to see why this is happening, we looked at TCP code and also instrumented QUIC, and realized when packets are reordered, QUIC falsely thinks they’ve been lost! whereas TCP detect packet reordering and avoids false loss detections by increasing it’s NACK threshold to see if QUIC can benefit from the same mechanism that TCP has for increasing the NACK we tested QUIC with different NACK threshold if we look at the case downloading a 10MB object with the default NACK threshold of 3, QUIC is doing much worse than TCP in presence of packet reordering but as we increase that threshold, QUIC’s performance improves and those blue cells turn into red we have been in touch with QUIC engineers at Google regarding this issue, and they told us they are actually working on solutions that can handle packet re-ordering
  5. ok, these results showed QUIC does mostly better than TCP on a computer but what about mobile devices? let’s look at the simple low latency and loss case. we redid this using a mobile phone, and we found this QUIC is still doing better, but the gains have diminished, hence less red cells To find out why this is the case, we instrument the QUIC’s congestion control to generate state machine diagrams so if i take the 10MB example again, the congestion control state machines for mobile and desktop look like this they show what fraction of time was spent in each states and the transition probabilities Now it’s a bit difficult to compare state machines like this, but if I put them in the form of a table, things become much more clear this table is showing what percentage of time was spent in each state for the same test on a laptop and a mobile phone when using a phone QUIC spends most of it’s time in application limited state, That means the client is not able to process the data fast enough and the sender needs to slow down while for the same conditions, this number is only 7% on a laptop and this is the cost of implementing QUIC in application layer. It does fine on a powerful device like a laptop, but on a more resource-constraint phone the benefits diminish
  6. ok. one last thing I want to talk about QUIC it’s fairness Fairness is very important and if flows and protocols are not fair to each other we have an internet that performances are vastly more variable and possibly some applications that just get shut out by others So QUIC’s fairness is definitely something that can improve
  7. to recap, we evaluate a protocol that is changing rapidly with out public configuration parameters we carefully calibrated QUIC, an important step missing in previous work and conducted controlled experiments and by instrumenting the protocol we inferred state machines provided root cause analysis narrowed down some limitation and proposed some fixes And all of this can be applied to future versions of QUIC as they are rolled out or other flavors of TCP or even other protocols