Skip to content

Anjan50/tcp-dctcp-network-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

tcp-cubic-vs-dctcp

TCP Cubic vs DCTCP - Evaluating Congestion Control in Network Protocols

Author

πŸ‘€ Anjan Diyora

πŸ”— Project Link: TCP Cubic vs DCTCP - Evaluating Congestion Control in Network Protocols


πŸ“Œ Project Description

This project analyzes the behavior of TCP Cubic and DCTCP protocols under network contention conditions. A dumbbell topology is created to evaluate congestion control mechanisms and measure performance variations across different scenarios.

βš™οΈ Network Topology Setup

  • 2 Sender Nodes connected to Router 1
  • 2 Receiver Nodes connected to Router 2
  • Routers 1 & 2 are interconnected
  • Link Bandwidth: 1 Gbps

πŸ§ͺ Experimental Scenarios

1️⃣ TCP Cubic (Single Flow): Sender 1 transfers 50 MB to Receiver 1 using TCP Cubic.
2️⃣ TCP Cubic (Multiple Flows): Sender 1 & Sender 2 transfer 50 MB each to Receiver 1 & Receiver 2.
3️⃣ DCTCP (Single Flow): Sender 1 transfers 50 MB to Receiver 1 using DCTCP.
4️⃣ DCTCP (Multiple Flows): Sender 1 & Sender 2 transfer 50 MB each to Receiver 1 & Receiver 2 using DCTCP.
5️⃣ Hybrid Protocols: Sender 1 & Sender 2 use a mix of TCP Cubic and DCTCP to transfer 50 MB to respective receivers.


⚠️ Special Considerations

πŸ“Œ The project focuses on congestion behavior but does not account for router buffer size or queuing policies.
πŸ“Œ Results reflect a non-contention scenario due to the absence of buffer-based congestion modeling.


πŸ”§ System Requirements & Dependencies

The project is built using the NS-3 network simulator. Install the following dependencies before running the simulation:

πŸ›  Install Required Packages

sudo apt install git-all g++ python3 cmake

πŸ“₯ Install & Build NS-3 Simulator

wget https://www.nsnam.org/releases/ns-allinone-3.41.tar.bz2
tar xfj ns-allinone-3.41.tar.bz2
cd ns-allinone-3.41/ns-3.41
./ns3 configure --enable-examples --enable-tests
./ns3 build

βœ… Verify Installation

./test.py

πŸ“Œ Code Execution

Step 1: Copy the Code

Place the project file in the scratch folder of the NS-3 simulator (ns-allinone-3.41/ns-3.41).

Step 2: Compile & Run the Code

cd ns-allinone-3.41/ns-3.41
./ns3 run scratch/tcp_cubic_vs_dctcp.cc

Step 3: View Results

After execution, a CSV file tcp_cubic_vs_dctcp.csv will be generated containing performance metrics.


πŸ“Š Key Insights

πŸ“Œ Analyzes how congestion control mechanisms behave under different conditions.
πŸ“Œ Highlights differences in flow fairness, bandwidth utilization, and response times.
πŸ“Œ Evaluates efficiency of TCP Cubic vs DCTCP under various contention scenarios.

πŸ”— More Details: Project Page

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages