Skip to content

mohammedalasmar/omnetpp-data-transport-model-ndp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Evaluating modern data centre transport protocols in OMNeT++/INET (NDP/TCP)

This repository includes the codes for our OMNeT++ Summit 2019 paper (see this link https://github.com/mohammedalasmar/ndpTcpDatacentreOmnetppModel/blob/master/datacentre-omnetpp.pdf).

The paper includes implementations for some data centre protocols in OMNeT++/INET. These implementations are as follows:
(1) FatTree topology
(2) Per-packet and per-flow ECMP
(3) A model of NDP protocol in INET
(4) Evaluating the performance of TCP and NDP in a FatTree topology
(5) A central traffic scheduler for scheduling flows in the simulated network and setting up simulation parameters for experimenting with the above-mentioned contributions.

=============================================

STEP1: compile omnetpp project:
(1) Open a new terminal and go to the omnetpp-5.2.1 directory

(2) omnetpp-5.2.1$ ./configure
(3) omnetpp-5.2.1$ . setenv
(4) omnetpp-5.2.1$ make cleanall
(5) omnetpp-5.2.1$ make -j4

See this video for the above steps:

Watch the video

STEP2: compile inet and ndp projects:
(1) Go to this directory: omnetpp-5.2.1/my-samples/inet-myprojects/inet
(2) inet$ make makefiles
(3) Go to this directory: omnetpp-5.2.1/my-samples/inet-myprojects/inet/src
(4) .. inet/src$ make -j4

See this video for the above steps:

Watch the video

STEP3: run an NDP example in the terminal:
(1) There is an ini file that shows an example for NDP model in this directory
omnetpp-5.2.1/my-samples/inet-myprojects/inet/src/inet/ndp/FatTreeNDP/exp1-1-seed1.ini

(2) There is a shell script that can be used to run this example and it generates several csv files, see omnetpp-5.2.1/my-samples/inet-myprojects/inet/src/inet/ndp/FatTreeNDP/exp1-1-seed1/runNewShell.sh

(3) To run the shell script, type this command in the terminal
$ sh -e runNewShell.sh 8 100

Note that: the shell script takes two input parameters which are: K (FatTree size) (e.g. K = 8) and numShortFlows to simulate (e.g. numShortFlows = 100)

(4) There are several Matalb scripts to plot the results from this experiment. You can run all of them by calling the 'plotResults.m' Matlab script.

See the video above for these steps.

=============================================

An implementation of NDP[1] protocol (SIGCOMM 2017 Best Paper Award) in OMNeT++/INET.

[1] NDP: Re-Architecting Datacenter Networks and Stacks for Low Latency https://gianniantichi.github.io/files/papers/ndp.pdf

This model is based on OMNeT++v5.2.1 and INETv3.6.3.

Click on the video symbol below to watch the DEMO:

Watch the video

ndp-tcp-datacentre-omnetpp-model /samples/inet-myprojects/inet/src/inet/ndp/

NDP Design

alt text

NDP in OMNeT++/INET

alt text

alt text

Per-packet vs per-flow ECMP

alt text

How to reference this source code?

If you use this source code in part or entirely, please refer to it with the following bibtex:

@inproceedings{omnetpp-ndp-model,
  author = {Alasmar, Mohammed and Parisis, George},
  title = {{Evaluating modern data centre transport protocols in OMNeT++/INET}},
  booktitle = {Proceedings of the 6th OMNeT++ Community Summit Conference},
  address = {Hamburg, Germany},
  Year = {2019}
}

About

ndpTcpDatacentreOmnetppModel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published