Comparative Study of TCP New Reno, CUBIC and BBR Congestion Control in ns-2

Comparative Study of TCP New Reno, CUBIC and BBR Congestion Control in ns-2

Project Domain / Category

Networking

Abstract / Introduction

TCP is one of the main protocols of TCP/IP Internet suite. Many popular Internet applications like the World Wide Web and E-mail use TCP as their transport protocol. A good understanding of TCP can serve the bigger objective of learning how Internet communication works.

Many variants of TCP protocol have been proposed over the years; the main differentiating point between each of these variants is their congestion handling. Our focus here will only be on three variants of TCP, namely: i) New Reno, ii) CUBIC and iii) BBR.

The objective of this project is to carry out comparative study and performance analysis of these three variants in network simulator ns-2. Working in ns-2 requires: i) understanding of basic commands of Linux operating systems (for ns-2 installation and running purposes), ii) good programming skills in C++ (for implementing TCP CUBIC and TCP BBR models), iii) programming in TCL (for writing simulation scripts), iv) understanding of AWK command (for trace text processing), and v) understanding GNUPLOT command (for drawing graphs).

The three TCP variants will be compared on the basis of their congestion control mechanism and their performance will be analyzed using different simulation scenarios. Students may use existing ns-2 implementations of CUBIC and BBR (written by other developers hosted on sites like github.com) but it is preferred that students implement these protocols themselves.

Intended Outcomes

  1. A theoretical comparison of TCP variants: New Reno, CUBIC, and BBR using different parameters.
  2. Performance analysis of the three TCP variants in network simulator ns-2 using different simulation scenarios.

Required Programming Skills

  1. Understanding of basic Linux commands
  2. C++, TCL, AWK and GNUPLOT (for working in ns-2)