Skip to main content
Uber logo

Schedule rides in advance

Reserve a rideReserve a ride

Schedule rides in advance

Reserve a rideReserve a ride
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