Skip to content

maesoser/ns2_bbr

Repository files navigation

Google BBR implementation for ns-2

This is an implementation of Google's BBR TCP Congestion Control Algorithm for the ns-2 network simulator to be used on the ICCRG TCP Evaluation Suite

This is an unfinished implementation Contributions are welcome.

TL;DR

This folder has to be next to (at the same level as ) ns-allinone-2.35.

make patch
make all
make plot

How to install & use it

  1. We assume your working ns-allinone-2.35 folder is next to the folder containing this repository, that is:
|- bbr
|   |-Makefile
|   |-tcp.h
|   |- (...)
|
|- ns-allinone-2.35
    |- ns-2.35
    |- include
    |- bin
    |- (...)
  1. If it is the first time you install this, yo have to patch three important files:
  • Makefile.in
  • tcp/tcp.h
  • lib/tcl/ns-defaults.tcl

You can apply these patches by doing:

make patch
  1. After doing this, you need to call make all to copy the code and the .tcl script into ns2.35. This copy is separated from the patch rule because tcp-bbr.cc is completely original, so you can replace it without breaking anything (but bbr). So, from now on and after performing these steps, if you want to play with the code and change it, the only thing you need to do to test it is to perform again: make all.

  2. In order to plot the wonderful graphs you see above, you can call make plot.

Don't hesitate to take a look at the Makefile, it is very simple.

Python script

There is a python script which plots some debug data printed by the tcp-bbr code. Take a look at it.

Editing

Acknowledgements

This code is based on Google's proposed patch for the linux kernel. It's specific ns-2 implementation is heavily influenced on the Ledbat implementation for ns-2 simulator

Bibliography about BBR TCP

Google proposed patch for linux Kernel

Webpage with info about BBR TCP

A Quick Look at BBR TCP

Article on ACM Queue

BBR TCP Commito to Linux Kernel

BBR Congestion Control

Comments about BBR Paper

Bibliography about NS-2 TCP Implementations

ns2 Timers A mini-tutorial for TCP-Linux in NS-2

LEDBAT Implementation

ns2 Linux-TCP

NS-2 Enhancement project

draft-cardwell-iccrg-bbr-congestion-control-00

draft-cheng-iccrg-delivery-rate-estimation-00

About

Google's TCP BBR implementation for ns2 network simulator

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published