Extending the ns-3 QUIC Module

The recently proposed QUIC protocol has been widely adopted at the transport layer of the Internet over the past few years. Its design goals are to overcome some of TCP's performance issues, while maintaining the same properties and basic application interface. Two of the main drivers of its success were the integration with the innovative Bottleneck Bandwidth and Round-trip propagation time (BBR) congestion control mechanism, and the possibility of multiplexing different application streams over the same connection. Given the strong interest in QUIC shown by the ns-3 community, we present an extension to the native QUIC module that allows researchers to fully explore the potential of these two features. In this work, we present the integration of BBR into the QUIC module and the implementation of the necessary pacing and rate sampling mechanisms, along with a novel scheduling interface, with three different scheduling flavors. The new features are tested to verify that they perform as expected, using a web traffic model from the literature.

[1]  Wim Lamotte,et al.  Resource Multiplexing and Prioritization in HTTP/2 over TCP Versus HTTP/3 over QUIC , 2019, WEBIST.

[2]  Phuoc Tran-Gia,et al.  An HTTP web traffic model based on the top one million visited web pages , 2012, Proceedings of the 8th Euro-NF Conference on Next Generation Internet NGI 2012.

[3]  Maurizio Casoni,et al.  Next-generation TCP for ns-3 simulator , 2016, Simul. Model. Pract. Theory.

[4]  Yiping Chen,et al.  Is HTTP/2 really faster than HTTP/1.1? , 2015, 2015 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS).

[5]  Luca De Cicco,et al.  HTTP over UDP: an experimental investigation of QUIC , 2015, SAC.

[6]  Gorry Fairhurst,et al.  De-Ossifying the Internet Transport Layer: A Survey and Future Perspectives , 2017, IEEE Communications Surveys & Tutorials.

[7]  Van Jacobson,et al.  BBR: Congestion-Based Congestion Control , 2016, ACM Queue.

[8]  Natale Patriciello A SACK-based Conservative Loss Recovery Algorithm for ns-3 TCP: a Linux-inspired Proposal , 2017, WNS3.

[9]  Cristina Nita-Rotaru,et al.  Taking a long look at QUIC: an approach for rigorous evaluation of rapidly evolving transport protocols , 2017, Internet Measurement Conference.

[10]  Thomas A. Limoncelli Are You Load Balancing Wrong? , 2016, ACM Queue.

[11]  Aruna Balasubramanian,et al.  Improving User Perceived Page Load Times Using Gaze , 2017, NSDI.

[12]  Federico Chiariotti,et al.  A QUIC Implementation for ns-3 , 2019, WNS3.

[13]  Jan Rüth,et al.  A First Look at QUIC in the Wild , 2018, PAM.

[14]  A LimoncelliThomas Are You Load Balancing Wrong , 2016 .

[15]  Mike Bishop Hypertext Transfer Protocol (HTTP) over QUIC , 2018 .

[16]  Olivier Bonaventure,et al.  Multipath QUIC: Design and Evaluation , 2017, CoNEXT.

[17]  Mike Bishop,et al.  Hypertext Transfer Protocol Version 3 (HTTP/3) , 2020 .

[18]  Hari Balakrishnan,et al.  Polaris: Faster Page Loads Using Fine-grained Dependency Tracking , 2016, NSDI.

[19]  Ian Swett,et al.  QUIC Loss Detection and Congestion Control , 2020, RFC.

[20]  Leonard Kleinrock,et al.  Power and deterministic rules of thumb for probabilistic problems in computer communications , 1979 .

[21]  Ren Wang,et al.  TCP westwood: Bandwidth estimation for enhanced transport over wireless links , 2001, MobiCom '01.

[22]  Martin Thomson,et al.  QUIC: A UDP-Based Multiplexed and Secure Transport , 2020, RFC.

[23]  Mohit P. Tahiliani,et al.  Design and implementation of TCP BBR in ns-3 , 2018, WNS3 '18.

[24]  Federico Chiariotti,et al.  A Survey on Recent Advances in Transport Layer Protocols , 2018, IEEE Communications Surveys & Tutorials.

[25]  Fan Yang,et al.  The QUIC Transport Protocol: Design and Internet-Scale Deployment , 2017, SIGCOMM.

[26]  Martin Thomson,et al.  Hypertext Transfer Protocol Version 2 (HTTP/2) , 2015, RFC.