Skip to main content
Uber logo

Start ordering with Uber Eats

Order nowOrder now

Start ordering with Uber Eats

Install the appInstall the app
Mobile, Engineering

Employing QUIC Protocol to Optimize Uber’s App Performance

May 14, 2019 / Global
Featured image for Employing QUIC Protocol to Optimize Uber’s App Performance
Figure 1. Tail-end latencies vary across the major cities where Uber operates.
Figure 2: Charting tail-end latencies over two-kilometer hexagons in Delhi, India, we see major differences from two different carriers.
Figure 3: Tail-end latencies can vary considerably from day to day, on the same carrier.
Figure 4: TCP/TLS packet exchanges include a mechanism to retransmit lost packets.
Network MetricsValues
RTT in msecs [50%,75%, 95%,99%][350, 425, 725, 2300]
RTT variance in secsAverage ~ 1.2 seconds
Packet Loss Rate in lossy connectionsAverage ~3.5% (7% in congestion areas)
TCP Packet Loss StatsValue
Percentage of connections with at least 1 packet loss45%
Percentage of connections with loss that have packet loss during connection establishment30%
Percentage of connections with loss that have packet loss during data exchange76%
Distribution of delays in retransmission in seconds [50%, 75%, 95%,99%][1, 2.8, 15, 28]
Distribution of the number of retransmissions for a given packet or TCP segment[1,3,6,7]
Figure 5: QUIC sits under HTTP/3, absorbing the secure TLS layer which formerly ran under HTTP/2.
Figure 8: In our second experimental setup, we wanted to compare the latency of TCP and QUIC terminating at the Google Cloud versus using our own cloud-based proxy.
Rajesh Mahindra

Rajesh Mahindra

Rajesh Mahindra is a senior software engineer on Uber's Infrastructure Connectivity team.

Ethan Guo

Ethan Guo

Ethan Guo is a software engineer on Uber's Infrastructure Connectivity team.

Posted by Rajesh Mahindra, Jason, Ethan Guo