Abstract
Quick UDP Internet (QUIC) protocol is a transport and application layer solution developed by Google, which is the strong competitor to popular and well established Transmission Control Protocol (TCP). The QUIC protocol is being updated faster resulting into many new versions of the protocol. In this paper, the performance of Modified QUIC (ModQUIC) protocol has been tested with respect to congestion control using India’s rapidly growing Internet service provider, the Reliance Jio 4G network (JioFi), which has captured 17% of the market share in a short time. This experimental study investigated ModQUIC protocol performance with congestion control mechanisms CUBIC and Bottleneck Bandwidth Round-trip-propagation-time (BBR) in the JioFi network. The experiment is conducted using a testbed, developed with JioFi and RaspberryPi-3 wireless router along with network emulator: Netem. The ModQUIC performance is verified using test video files stored on Google drive. The performance is tested in packet loss and packet reorder situations using metrics, Throughput and Retransmission Ratio (RTR). We observed that overall ModQUIC/BBR performance is better than ModQUIC/CUBIC in the current Internet. We observed that Reliance Jio is an economical solution for highly populated countries like India, but not a contemporary solution to fulfill India’s newly launched digitization project.
Introduction
The Quick UDP Internet Connections (QUIC) protocol is a transport and application layer protocol proposed by Google in 2013, which preserves most of the TCP properties. As shown in Fig. 1, QUIC is placed on top of UDP. The development of QUIC is very fast and at the present stage QUIC version 43 is at our service. The QUIC has been deployed by reputed companies such as Google and Akamai, whereas other companies like Microsoft, Mozilla, Verizon, and Facebook are in the process of deployment. The developer of QUIC is Google which has the highest deployment. Google has reported that 85% of requests go from Chrome browsers using QUIC to Google servers [14]. A QUIC is widely deployed and currently accounts for approximately 30% of aggregate traffic through Google services like YouTube, Google Cloud and Google Market and approximately equal to 7% of global Internet traffic [18,25]. According to Google-report QUIC improved Page Load Time (PLT) by 3% and reduced buffering time on YouTube by 18%. Other researchers also evaluated QUIC performance but due to limited investigation and testing environment, they fail to provide comprehensive root cause analysis to understand the performance [5,18]. Recently, the Government of India promoted the digitization of government services. This demands an improvement of online infrastructure and Internet connectivity to empower India digitally. Reliance Jio has brought digital empowerment to all Indians through connectivity with affordable data. The Reliance Jio has captured 16.02% of the market share of subscribers for a total of 160.09 million subscribers, as of now [9].
In this experimental study, the performance has been evaluated using emulated network conditions, against servers those run by Google using the current version of QUIC. The ModQUIC performance is tested with CUBIC and Bottleneck Bandwidth Round-trip-propagation-time (BBR) congestion control mechanisms for Throughput and packet Retransmission Ratio (RTR) and following are the key findings noticed through this experimental study.
For small file size ModQUIC/BBR Throughput suffers with increase in loss. This is due to insufficient time for BBR to calculate estimates of Bottleneck Bandwidth (BtlBw) and Round Trip propagation (RTprop) and converge to preemptively react to congestion. For large file sizes with higher loss, ModQUIC/CUBIC Throughput drops significantly. This is because that CUBIC is loss-based congestion control and queue buildup creates bufferbloat. In the case of packet retransmission; with an increase in loss the retransmission ratio decreases for both BBR and CUBIC. For smaller file sizes, BBR has fewer transmissions than it does for higher file sizes. This is because it has not had the convergence time necessary to correct the congestion. In the case of Reliance Jio it is observed that this is an economical solution but not sufficient to fulfill the current nation needs in terms of bandwidth.
QUIC: Background with congestion control and related work
This section provide background information about QUIC and a short survey on experimental work related to this study.
Background
A QUIC is an experimental transport layer protocol proposed in 2012 and publicly announced in 2013 by Jim Roskind from Google [24]. As shown in Fig. 1, QUIC is a secure and multiplexed protocol with UDP as a base protocol. A QUIC support flow and congestion control using bandwidth estimation technique with reduced connection and transport latency.

QUIC placement in protocol stack.
The following are the properties of QUIC [11].
Multiplexed streaming: QUIC multiplex different streams over the same UDP connection, this solves Head Of Line (HOL) blocking as the impact of the lost packet for that specific stream.
Less connection establishment latency: The time taken to set-up connection by QUIC is at most one Round Trip Time (RTT) and if in case the client has already communicated with the server, it takes zero-RTT. This reduces connection establishment latency as compared to traditional TCP. Even in an authentic and secure connection, QUIC (QUIC-Crypto) will take one-RTT whereas TCP+TLS needs three-RTTs.
Authenticated and encrypted header and the payload: To secure data delivery in terms of avoiding third-party manipulation, QUIC packets are authenticated and payload part is encrypted. However, if the payload is partially encrypted, it still gets authenticated by the receiver.
Stream and connection flow control: QUIC consists of connection level (like TCP) and stream level (within connection different streams are present) flow control mechanism. Based on QUIC receiver capacity it will advertise the absolute bytes of data within each stream or connection (aggregate stream data). As data is sent and received successfully on a particular connection or stream, the receiver requests for window updates to increase the sending rate in terms of a number of packets. Like TCP, QUIC also has auto-tuning functionality which is helpful for flow control as per application demand.
Flexible congestion control: QUIC has flexible congestion control mechanism in terms of pluggable congestion control. Also, both original and retransmitted packets carry different sequence numbers. As their recognition is easy, QUIC can provide richer information to congestion control algorithms compare to TCP. At present QUIC uses CUBIC [10,30] as a default congestion control with packet pacing mechanism. The packet pacing mechanism is useful to handle busty data. In packet pacing technique transmission rate is computed based on an estimate of the relative forward delay. Relative forward delay defined as the difference between the inter-arrival time of two consecutive data packets at the receiver and the inter-departure time of the same packets at the sender. In QUIC, ACK frame support up to 256, Not an ACK (NACK) (duplicate ACK in TCP) ranges, so QUIC withstand more effectively in reordering situation than TCP with Selective-ACK (SACK).
Connection migration: QUIC connections are identified by a 64 bit connection ID (instead of four-tuple in TCP), randomly generated by the client. QUIC connection ID remains same throughout communication time so that it can survive for IP address changes and Network Address Translation (NAT) re-bindings. Also, the same session key is used so that automatic authentication and cryptographic verification of migrating client is possible.
There are several congestion control techniques available [1,15,20,29] of which QUIC is available with CUBIC and BBR. Right now QUIC/CUBIC is more stable and default present in stack, whereas QUIC/BBR is still experimental.
CUBIC
The Ha et al. [10] proposed an enhanced version of Binary Increase Congestion-control (BIC) as a CUBIC in which they have introduced RTT independent Congestion Window (
Window size reduction at the time of loss event is

Congestion window growth with respect to cubic function.
Figure 2 shows the behavior of CUBIC for cubic function, where whenever packet dropping event occurs, the
Today TCP’s loss-based congestion control including QUIC’s current default scheme, CUBIC, is the primary cause of major delay in modern fast networks, especially over large distances. This is due to CUBIC interpreting packet loss as congestion, an equivalence which was more or less valid at the time of the algorithm’s conception. As the Internet speed in the modern-day transitioning from Kbps to Gbps, the equivalence of packet loss with congestion is not quite so straightforward. A bottleneck in a QUIC connection, Internet Explorer the slowest link, is the rate-determining factor for information transfer. A bottleneck often goes hand in hand with a queue formed due to arrival rate exceeding departure rate. Thus solving the problem of bottleneck will go a long way towards increasing goodput and minimizing delay during information transfer. In the current CUBIC implementation, when bottleneck buffers are large, the loss-based nature of CUBIC keeps them full, causing bufferbloat. When bottleneck buffers are small, CUBIC misinterprets loss as a signal of congestion as per its design, leading to low throughput.
To overcome these demerits of CUBIC, Google suggested distributed congestion-control protocol which reacts to actual congestion, not packet loss or transient queue delay and converges to an optimal operating point. This distributed approach to control congestion based on measuring the two parameters that characterize a path: Bottleneck-Bandwidth (BtlBw) and Round-Trip-time-propagation (RTprop) as shown in Fig. 3.
The key features of BBR are as follows:
Considers RTprop and BtlBw as constraints for transport performance. These can be thought of as length (RTprop) and minimum diameter (BtlBw) of network pipe. Fewer data in pipe: RTprop determines, otherwise BtlBw, BBR measures these two parameters to accurately react to congestion, not loss or queuing effects.
A connection has maximum throughput and minimum delay when
Rate Balance:
Full Pipe:

BBR response with respect to delivery rate and round trip time v/s amount of data in flight [3].
In Fig. 3 constraint lines intersect at
Thus, CUBIC assumes loss and buffer occupancy to capture the behavior of congestion, which is not realistic. However, BBR characterize congestion based on how it occurs through RTT based BtlBw and RTprop estimation. BBR maintains small queue size and optimum network utilization through distributed control loop with the help of packet pacing and control over the sending rate.
Most of the literature on QUIC is available in the form of Internet drafts [8,11–13,17,24,27,28] proposed by researchers from Google.
As the present work is an experimental study of the QUIC protocol, this related work section, is confined only to the experimental studies that have been undertaken. Carlucci et al. [4] made a first-time experimental investigation with QUIC in which they have employed two testbeds to investigate congestion control dynamics and web PLT. They verified QUIC performance using goodput, resource utilization, and PLT. They observed with Forwarding Error Correction (FEC)1
In 2016 FEC functionality is removed from QUIC due to lack of significant contribution.
Das [7] in his M.S. work evaluated QUIC performance in Mahimahi: a web performance measurement toolkit. He found QUIC performance was very good for low bandwidth and high RTT links. Cook et al. [6] used local and remote testbeds and tested QUIC performance in which scenario is most efficient. They have investigated QUIC performance for the type of access network in presence of packet loss and adding a delay in the link. They concluded that QUIC outperforms HTTP/2 over TCP/TLS in unstable networks such as wireless/mobile but in the case of stable and reliable networks there has been no significant contribution. Srivastava [26] in his M.Sc. thesis has been compared QUIC performance with TCP for throughput, delay, and fairness. He has found that for an added delay and loss QUIC outperform and in case of competing flows QUIC was unfair while comparing with TCP. Kakhki et al. [14] carried out extensive experimentation for a variety of network conditions. They found that QUIC outperforms TCP/HTTP in nearly every scenario, QUIC is very sensitive with out of order delivery and shows very poor performance. They found that QUIC is unfair when competing with TCP flows. In this work we have performed a comparative performance analysis of QUIC protocol concerning CUBIC and BBR congestion control mechanism. Also we have explored BBR congestion control mechanism investigation in terms of RTR and Goodput is not done in prior work.
ModQUIC is our contribution to improved network performance in terms of throughput and delay [20]. ModQUIC is a transport layer solution to improve network performance by reducing control overhead and window update delay. In ModQUIC, the window update frame is attached with the ACK frame instead of being sent separately. This modification avoids the control signal required to trigger window update, which helps in reducing transport latency along with fine-tuning of
Experimentation and result analysis
To verify the performance of the ModQUIC protocol a testbed setup shown in Fig. 4 has been prepared in a public domain and the performance is tested for parameter space given in Table 1. The BBR functionality is enabled by modifying the flag bit in the Chromium source code available at chromium/src/net/quic/core/quic_flags_list.h. The default status of this flag is set to false enables CUBIC as the default congestion control mechanism. Video files were uploaded on Google drive with sizes of 1 MB, 3 MB, and 5 MB. The net-internals tool of Chromium was used to monitor all network activities. This tool records network parameters like protocol used, packets sent, packets lost, packets received, throughput for all live connections serviced by ModQUIC.
Testbed setup with parameter space used for experiment
During experimental analysis, the main objectives are to examine the performance of ModQUIC in real network congestion for live streaming. As shown in Fig. 4, JioFi2
WAN: LTE (2300/1800/850 MHz) IEEE 802.11b/g/n 2.4 G.
Intel Core i5 CPU @ 2.5 GHz with 4 GB RAM running MacOS Sierra 10.12.6 (64 bit) and Chromium version was 63.0.3229.0 (64 bit), whereas Darwin kernel version was 16.7.0.
Raspberry Pi-3 running Ubuntu MATE with Netem installed,
The dnsmasq and hostapd packages for DHCP allocation of incoming WLAN,
NAT input forwarding to WLAN for wireless broadcast.

Testbed setup built with ModQUIC server provided as part of Chromium source code, Netem enabled Raspberry-Pi wireless router with Jio as a source with RTT of 20 ms.
To the serve-side, Google drive has been used to serve requests from the client due to the relative rarity of live ModQUIC enabled server. The Google services, such as Drive and YouTube, use ModQUIC as a native protocol, as opposed to other web servers where QUIC has limited deployment. It is also possible to build a ModQUIC server-client topology from the chromium code base as given in [23]. This implementation of a ModQUIC server has been used to test results from the laptop specified.
The Netem’s Traffic Control (Tc) was used to introduce latencies, packet loss, and packet reordering to all outgoing packets according to the parameter space in Table 1. This wireless router served the ModQUIC enabled Chromium Client4
Intel Core i5 CPU @ 2.5 GHz with 4 GB RAM running MacOS Sierra 10.12.6 (64 bit). A Chromium version is 63.0.3229.0 (64 bit) and Darwin kernel version is 16.7.0
Parameter hyperspace used for experiment
The variation of data speeds observed through the Jio network during the experimentation process was noted using a Python script and graphically shown in Fig. 5 to reflect the real behavior.

24-hour time series analysis of Jio data rate variations.
Two parameters, RTR and Throughput has been analyzed across varying link capacity and loss for different file sizes, whereas calculated by using equations (2) and (3).
The performance of ModQUIC with CUBIC and BBR in presence of loss for various file sizes has been presented in Tables 2, 3 and 4. The RTR and Throughput values presented across 5 epochs for all file sizes. The values for packets transmitted, packet loss, packet received, packet retransmitted, retransmit ratio, download time and throughput is logged.
Throughput and RTR performance of ModQUIC with CUBIC and BBR for 0% loss
Throughput and RTR performance of ModQUIC with CUBIC and BBR for 0% loss
Throughput and RTR performance of ModQUIC with CUBIC and BBR for 2% loss
Throughput and RTR performance of ModQUIC with CUBIC and BBR for 5% loss

Throughput and RTR performance of ModQUIC with CUBIC and BBR for different loss rates and file sizes.
The net-internals tool is used to calculate RTR and Throughput over all permutations of the hyperspace detailed in Table 1. Figure 6 shows trend of the Throughput and packet retransmission. For small video files, BBR throughput suffers from increase in loss, as seen in Fig. 6(a). This is due to insufficient time for BBR to calculate estimates of BtlBw and RTprop and converge pre-emptively to react for congestion. In this case, loss based congestion control reacts to the loss, faster than BBR can build the model. However, as file sizes increases, BBR shows a clear improvement in throughput over CUBIC in all scenarios, as seen in Fig. 6(b). Even as the loss increases, due to an increase in convergence time BBR can accurately prevent congestion by modifying the transmission data rate. This effect is amplified for the large file size of 5 MB, where CUBIC throughput drops significantly for higher loss, whereas BBR reacts pre-emptively to prevent bufferbloat, as seen in Fig. 6(c).
The RTR analysis was relatively straightforward as the trends were consistent across all scenarios. For a given file size, as shown in Fig. 6, it is observed that there is a direct correlation between loss and RTR in all cases with an increase in loss the RTR decreases for both BBR and CUBIC. For smaller file sizes in Fig. 6(d), BBR has fewer transmissions than it does for higher file sizes as seen in Figs 6(e) and 6(f), as it has not had the convergence time necessary to correct the congestion. This behavior manifests itself in larger file sizes due to corrective measures being applied by BBR. A CUBIC shows constant behavior in its loss-based retransmission system for all file sizes, with a decrease from a higher starting RTR for the smallest file size, as seen in the Fig. 6(d).
There is a substantial improvement in BBR congestion control over CUBIC as BBR is not using loss as an indicator of congestion. To utilize the full bandwidth, currently existing loss-based congestion control schemes such as CUBIC require the loss rate to be less than the inverse square of the BDP [21]. The behavior with varying loss is examined by Google for 60-second flow on 100 Mbps/100 ms link with 0.001% to 50% of random loss serviced by HTTP/2 over TCP/IP [3]. A Google observed CUBIC’s throughput to decrease tenfold at 0.1% loss and totally stall above 1%. The maximum theoretical possible throughput for a network is the link rate times fraction delivered (
As the experimental analysis was carried out in a wireless environment, it realizes that packet loss becomes an incredibly significant measure of importance for the quality of a connection. The FEC feature would aid in minimizing local loss due to bit error. However, due to inconclusive results as to its efficiency [17], the FEC functionality of QUIC was removed from Chromium by Google in 2016. This is the reason that focus has shifted to a more efficient congestion control to correct losses, as is reflected in our attempts to analyze BBR. The result analysis shows a clear advantage in terms of Throughput and as verified by RTR for BBR over CUBIC in situations of congestion in live wireless networks. This study recommends the use of BBR in ModQUIC as a measure, to more accurately model and predict congestion in middleboxes as opposed to reacting to packet loss, once there is a buffer overflow. However, there were limitations in JioFi, like limited data rate else the results would have been far better as reported here.
