Skip to content

S33mi/Research-Development-Datacenter-Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Research & Development: Data Center Networks – TCP Simulations for Data Center Networks with NS-3

Exploration of TCP performance and congestion control in modern data center networks using NS-3 simulator.

Key Focus Areas

  • TCP variants (Reno, NewReno, DCTCP, Vegas, Cubic, etc.) in datacenter topologies (Fat-Tree, BCube, etc.)

  • Metrics: Flow Completion Time (FCT), throughput, queue length, packet loss

  • Incast problem, long flows vs short flows, incast mitigation

  • Documentation: PDFs/reports on experiments, results graphs.

Contents

  • ns3-code/ → Custom modules, scratch simulations (.cc files)

  • configs/ → Simulation scripts/configs

  • docs/ → PDFs, reports, slides on TCP in datacenters

  • results/ → Graphs, logs, throughput/FCT plots

  • older-versions/ → Previous NS-3 setups/experiments

How to Run (example)

Requires NS-3 installed (bake.py or manual build)

cd ns-3-dev

./ns3 run "scratch/my-datacenter-sim --transport-protocol=TCP"





## Installation Guide – Ubuntu / Linux



This project uses **NS-3** (Network Simulator 3) to run data-center TCP simulations.



The instructions below are tested on **Ubuntu 20.04 / 22.04 / 24.04 LTS** (should also work on Debian and most modern Linux distributions).



### Prerequisites



Update your system and install required packages:



```bash

sudo apt update && sudo apt upgrade -y



sudo apt install -y \

  g++ python3 python3-dev pkg-config sqlite3 \

  cmake ninja-build git mercurial \

  qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools \

  gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz \

  gir1.2-gtk-3.0 ipython3 tcpdump wireshark gnuplot-x11 \

  libgtk-3-dev libxml2 libxml2-dev libsqlite3-dev \

  libeigen3-dev libboost-all-dev libgsl-dev libgtkmm-3.0-dev \

  libxml2-utils libsqlite3-dev libopenmpi-dev openmpi-bin \

  openmpi-common libopenmpi-dev doxygen graphviz imagemagick \

  python3-pip python3-setuptools python3-wheel



# Download NS-3 tarball or clone from git

wget https://www.nsnam.org/releases/ns-allinone-3.36.tar.bz2

tar xjf ns-allinone-3.36.tar.bz2

cd ns-allinone-3.36/ns-3.36



# Configure, build, test

./ns3 configure --enable-examples --enable-tests

./ns3 build

./ns3 test



# Or classic waf way (older versions)

./waf configure --enable-examples --enable-tests

./waf build

About

TCP Simulations for Data Center Networks with NS-3

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors