skip to main content
research-article

CUBIC: a new TCP-friendly high-speed TCP variant

Published:01 July 2008Publication History
Skip Abstract Section

Abstract

CUBIC is a congestion control protocol for TCP (transmission control protocol) and the current default TCP algorithm in Linux. The protocol modifies the linear window growth function of existing TCP standards to be a cubic function in order to improve the scalability of TCP over fast and long distance networks. It also achieves more equitable bandwidth allocations among flows with different RTTs (round trip times) by making the window growth to be independent of RTT -- thus those flows grow their congestion window at the same rate. During steady state, CUBIC increases the window size aggressively when the window is far from the saturation point, and the slowly when it is close to the saturation point. This feature allows CUBIC to be very scalable when the bandwidth and delay product of the network is large, and at the same time, be highly stable and also fair to standard TCP flows. The implementation of CUBIC in Linux has gone through several upgrades. This paper documents its design, implementation, performance and evolution as the default TCP algorithm of Linux.

References

  1. Git logs for CUBIC updates. http://git.kernel.org/?p=linux/kernel/git/davem/net-2.6.git;a=history;f=net/ipv4/tcpcubic.c;h=eb5b9854c8c7330791ada69b8c9e8695f7a73f3d;hb=HEAD.Google ScholarGoogle Scholar
  2. Iperf. http://sourceforge.net/projects/iperf.Google ScholarGoogle Scholar
  3. Linux CUBIC source navigation. http://lxr.linux.no/linux/net/ipv4/tcp_cubic.c.Google ScholarGoogle Scholar
  4. TCP Testing Wiki. http://netsrv.csc.ncsu.edu/wiki/index.php/TCP_Testing.Google ScholarGoogle Scholar
  5. Testing setup for Linux and FreeBSD. http://netsrv.csc.ncsu.edu/wiki/index.php/Testing_Setup_of_kernel_2.6.23.9.Google ScholarGoogle Scholar
  6. Pluggable congestion avoidance modules. http://lwn.net/Articles/128681/ (2005).Google ScholarGoogle Scholar
  7. Aikat, J., Kaur, J., Smith, F., and Jeffay, K. Variability in TCP round-trip times. In Proceedings of the ACM SIGCOMM Internet Measurement Conference (Miami, FL, October 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Andrew, L., Marcondes, C., Floyd, S., Dunn, L., Guillier, R., Gang, W., Eggert, L., Ha, S., and Rhee, I. Towards a common TCP evaluation suite. In Proceedings of the fourth PFLDNet Workshop (UK, March 2008).Google ScholarGoogle Scholar
  9. Barford, P., and Crovella, M. Generating representative web workloads for network and server performance evaluation. In Measurement and Modeling of Computer Systems (1998), pp. 151--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Brakmo, L., and Peterson, L. TCP vegas: End to end congestion avoidance on a global internet. IEEE Journal of Selected Areas in Communications (October 1995). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bullot, H., Cottrell, R. L., and Hughes-Jones, R. Evaluation of advanced TCP stacks on fast long-distance production networks. In Proceedings of the third PFLDNet Workshop (Illinois, February 2004).Google ScholarGoogle ScholarCross RefCross Ref
  12. Cai, H., Eun, D., Ha, S., Rhee, I., and Xu, L. Stochastic ordering for internet congestion control and its applications. In Proceedings of IEEE INFOCOM (Anchorage, Alaska, May 2007).Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Caini, C., and Firrincieli, R. TCP hybla: a TCP enhancement for heterogeneous networks. International Journal of Satellite Communication and Networking 22, 5 (September 2004), 547--566.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Casetti, C., Gerla, M., Mascolo, S., Sanadidi, M. Y., and Wang, R. TCP Westwood: Bandwidth estimation for enhanced transport over wireless links. In Proceedings of ACM Mobicom (Rome, Italy, July 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Floyd, S. HighSpeed TCP for Large Congestion Windows. RFC 3649 (Experimental), Dec. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Floyd, S., Handley, M., and Padhye, J. A Comparison of Equation-Based and AIMD Congestion Control, May 2000.Google ScholarGoogle Scholar
  17. Fu, C. P., and Liew, S. C. TCP Veno: TCP Enhancement for Transmission Over Wireless Access Networks. IEEE Journal of Selected Areas in Communications (Feb 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ha, S. Cubic v2.0-pre patch. http://netsrv.csc.ncsu.edu/twiki/pub/Main/BIC/cubickernel-2.6.13.patch.Google ScholarGoogle Scholar
  19. Hatano, T., Fukuhara, M., Shigeno, H., and Okada, K. TCP-friendly SQRT TCP for High Speed Networks. In Proceedings of APSITT (November 2003), pp. 455--460.Google ScholarGoogle Scholar
  20. Hemminger, S. Cubic root benchmark code. http://lkml.org/lkml/2007/3/13/331.Google ScholarGoogle Scholar
  21. Hemminger, S. Linux TCP Performance Improvements. Linux World 2004 (2004).Google ScholarGoogle Scholar
  22. Hemminger, S. Network Emulation with NetEm. Linux Conf Au (2005).Google ScholarGoogle Scholar
  23. Hemminger, S. TCP infrastructure split out. http://lwn.net/Articles/128626/ (2005).Google ScholarGoogle Scholar
  24. Jin, C., Wei, D. X., and Low, S. H. FAST TCP: motivation, architecture, algorithms, performance. In Proceedings of IEEE INFOCOM (Hong Kong, March 2004).Google ScholarGoogle Scholar
  25. Kelly, T. Scalable TCP: Improving performance in highspeed wide area networks. ACM SIGCOMM Computer Communication Review 33, 2 (April 2003), 83--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Liu, S., Basar, T., and Srikant, R. TCP-Illinois: A loss and delay-based congestion control algorithm for high-speed networks. In Proceedings of VALUETOOLS (Pisa, Italy, October 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Rhee, I., and Xu, L. CUBIC: A new TCP-friendly high-speed TCP variant. In Proceedings of the third PFLDNet Workshop (France, February 2005).Google ScholarGoogle Scholar
  28. Shorten, R. N., and Leith, D. J. H-TCP: TCP for high-speed and long-distance networks. In Proceedings of the Second PFLDNet Workshop (Argonne, Illinois, February 2004).Google ScholarGoogle Scholar
  29. Tarreau, W. Cubic optimization. http://git.kernel.org/?p=linux/kernel/git/davem/net2.6.git;a=commit;h=7e58886b45bc4a309aeaa8178ef89ff767daaf7f.Google ScholarGoogle Scholar
  30. Xu, L., Harfoush, K., and Rhee, I. Binary increase congestion control for fast long-distance networks. In Proceedings of IEEE INFOCOM (Hong Kong, March 2004).Google ScholarGoogle Scholar
  31. Zhang, Y., Duffield, N., Paxson, V., and Shenker, S. On the constancy of Internet path properties. In Proceedings of ACM SIGCOMM Internet Measurement Workshop (November 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. CUBIC: a new TCP-friendly high-speed TCP variant

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGOPS Operating Systems Review
        ACM SIGOPS Operating Systems Review  Volume 42, Issue 5
        Research and developments in the Linux kernel
        July 2008
        113 pages
        ISSN:0163-5980
        DOI:10.1145/1400097
        Issue’s Table of Contents

        Copyright © 2008 Authors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 July 2008

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader