Skip to content

gauravbyte/congestion-window-tcp-comparison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚦 TCP Congestion Control Comparison using GNS3

This project demonstrates and compares the behavior of various TCP congestion control algorithms using simulations built in GNS3. It visualizes how different algorithms handle congestion under varying network conditions and analyzes their performance based on congestion window growth and packet loss behavior.


📌 Algorithms Compared

  1. TCP NewReno
  2. TCP HighSpeed
  3. TCP Veno
  4. TCP Vegas

Each algorithm was tested under identical conditions to provide a fair comparison.


⚙️ Network Configuration

  • Channel Bandwidth: 2 Mbps (default)
  • Application Data Rate: 2 Mbps (default)
  • Additional scenario tested with:
    • Bandwidth: 6 Mbps
    • Data Rate: 0.5 Mbps

📊 Results Summary

Algorithm Packet Loss Count Characteristics
NewReno 38 Classic loss-based; steep drop on congestion; curved recovery
HighSpeed 38 Modified Reno; sharper edges; aggressive window growth for high-speed networks
Veno 38 Reno + Vegas hybrid; distinguishes wireless loss; smoother congestion control
Vegas 38 Delay-based detection; early congestion response; stable and efficient windows

📈 Graphical Insights

TCP NewReno

NewReno

  • Linear growth in slow start.
  • Curved drop at congestion.
  • High slope when window is small; stabilizes as window grows.

TCP HighSpeed

HighSpeed

  • Similar to NewReno with sharper drops during timeouts.
  • Tuned for large bandwidth-delay product (BDP) networks.

TCP Veno

Veno

  • Designed for wireless networks.
  • Differentiates between congestion and random packet loss.
  • Smoother curves compared to NewReno.

TCP Vegas

Vegas

  • Uses RTT to detect congestion early.
  • Maintains a higher minimum congestion window.
  • Very stable throughput without large drops.

🔁 Network Load Variations

Case 1: 2 Mbps Bandwidth, 2 Mbps App Rate

2Mbps

  • Congestion window peaks around 16000.
  • Small, random drops observed.
  • Congestion not significantly impacted by further bandwidth increase.

Case 2: 6 Mbps Bandwidth, 0.5 Mbps App Rate

0.5Mbps

  • Ample bandwidth leads to reduced congestion.
  • Much smoother congestion window behavior.

📦 Tools Used

  • GNS3 for network simulation
  • Custom monitoring scripts to record congestion window evolution
  • TCP implementations from Linux kernel modules

📚 References

  • RFC 6582 – The NewReno Modification to TCP's Fast Recovery Algorithm
  • TCP Vegas: End to End Congestion Avoidance on a Global Internet
  • HighSpeed TCP for Large Congestion Windows (RFC 3649)
  • TCP Veno: TCP Enhancement for Transmission over Wireless Access Networks

📬 Contact

Gaurav Chaudhari
📧 Email
🔗 LinkedIn
💻 GitHub


About

this is project made for comparing different tcp congestion control algorithm using gns3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages