Giter Club home page Giter Club logo

cc's Introduction

Data Center Congestion Control Simulation in NS3

This repo includes the ns3 simulation environment for testing various congestion control in a typical 2-tier leaf-spine topologies. Currently, it contains the configuration for TIMELY, pFabric, DCTCP and TCP Reno. The code is intentionally developed in modules so that it can be extended with further congestion control schemes in the future. It has been tested with NS-3.33 and NS-3.35, but it should work with other versions as well.

Directories

  • ns-allinone-3.35 It contains the latest tested version of ns3 simulator. The simulation code is developed in modules, therefore it should also work with other versions as well. I put this directory here for the sake of simplicity in installation.
  • pfabric It contains the implementation for a pFabric switching device
  • timely It contains the implementation of Timely congestion control over UDP. For simplicity, it has two sender and receiver components. This directory also contains the Timely headers.
  • simulation This is the main directory to start the simulations. The contains the code necessary to build the data center topology, together with the flow-generator and the distribution for RPC's lengths.
  • traces Finally, this directory keeps track of the simulation results.

How to Run

N3 Installation

Here I show the commands required to install the ns3 within this repo. If you are willing to use an external code base, the steps should be similar.

git clone [email protected]:usi-systems/cc.git
cd cc/ns-allinone-3.35/ns-3.35/
./waf configure #<-d optimized> for faster execuation
./waf build # it takes a while
./waf --run "scratch/tcp-leafspine.cc --sType=X" # X=3:pFabric, 4:TCP, 5:DCTCP 
./waf --run "scratch/timely-leafspine.cc " # Timely

Simulation Configs

You can fully configure your simulation using command line arugments or some other global variables in the code. Below you may find a few of them. For more, please check the code.

option Type Description Plausible Values
--distro Command-Line The distribution file to generate RPCs from "Facebook_HadoopDist_All.txt"
--interval Command-Line The mean value for the pausing time between two sequential RPCs. The pausing time follows an exponential distribution "Facebook_HadoopDist_All.txt"
--TimelyThLow Command-Line Timely lower threshold "70us"
--TimelyThHigh Command-Line Timely higher threshold "170us"

Credits

  • Timely implementation is based on this repo
  • Burst Distributions are obtained from the Homa project

Known Issues

  • There is no PFC implementation.

Questions

For technical questions, please create an issue in this repo, so other people can benefit from your questions.

For other questions, please contact Ali ([email protected]).

cc's People

Contributors

fattaholmanan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.