Brett Levasseur, Mark Claypool, and Robert Kinicki
To allow network researchers to simulate currently deployed networks, ns-3 needs to incorporate as many standard networking technologies as possible. One such technology is TCP CUBIC, the default TCP congestion control algorithm in the Linux kernel and one of the most widely deployed variants of TCP. Despite this prevalence, ns-3 does not natively currently support TCP CUBIC. This paper presents the design and implementation of CUBIC in ns-3 based on literature describing the CUBIC algorithm and examination of Linux kernel source. Verification and validation of our ns-3 implementation, both within the simulator and in comparison to Linux measurements, show the ns-3 CUBIC mimics the key features of Linux CUBIC and performs better than TCP NewReno, the default TCP congestion control algorithm in ns-3.
This work is sponsored by the Department of the Air Force under Air Force Contract FA8721-05-C-0002. Opinions, interpretations, conclusions and recommendations are those of the author and not necessarily endorsed by the United States Government.