All Projects → maesoser → ns2_bbr

maesoser / ns2_bbr

Licence: other
Google's TCP BBR implementation for ns2 network simulator

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
tcl
693 projects

Projects that are alternatives of or similar to ns2 bbr

Unitysocketprotobuf3demo
主要实现了用Unity对接了Leaf服务器。其次带了些小工具。
Stars: ✭ 244 (+1184.21%)
Mutual labels:  tcp
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+17315.79%)
Mutual labels:  tcp
network exporter
ICMP & MTR & TCP Port & HTTP Get - Network Prometheus exporter
Stars: ✭ 162 (+752.63%)
Mutual labels:  tcp
missive
Fast, lightweight library for encoding and decoding JSON messages over streams.
Stars: ✭ 16 (-15.79%)
Mutual labels:  tcp
go-eventserver
A socket server which reads events from an event source and forwards them to the user clients when appropriate
Stars: ✭ 18 (-5.26%)
Mutual labels:  tcp
nxdk-rdt
Remote Dev Tool is a tool to remote control an Xbox using memory access and RPC
Stars: ✭ 23 (+21.05%)
Mutual labels:  tcp
Rsock
The best companion of kcptun
Stars: ✭ 242 (+1173.68%)
Mutual labels:  tcp
funboost
pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和全球一切知名消息队列中间件,python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数。旧名字是function_scheduling_distributed_framework
Stars: ✭ 351 (+1747.37%)
Mutual labels:  tcp
okhoxi-serac
冰塔协议-传输层协议
Stars: ✭ 33 (+73.68%)
Mutual labels:  tcp
NLog
Flexible logging for C# and Unity
Stars: ✭ 158 (+731.58%)
Mutual labels:  tcp
Packet Sender Mobile
iOS and Android version of Packet Sender
Stars: ✭ 58 (+205.26%)
Mutual labels:  tcp
netxduo
Azure RTOS NetX Duo is an advanced, industrial-grade TCP/IP network stack designed specifically for deeply embedded real-time and IoT applications
Stars: ✭ 151 (+694.74%)
Mutual labels:  tcp
Modbus-STM32-HAL-FreeRTOS
Modbus TCP and RTU, Master and Slave for STM32 using Cube HAL and FreeRTOS
Stars: ✭ 272 (+1331.58%)
Mutual labels:  tcp
captcp
A open source program for TCP analysis of PCAP files
Stars: ✭ 110 (+478.95%)
Mutual labels:  tcp
overload
📡 Overload DoS Tool (Layer 7)
Stars: ✭ 167 (+778.95%)
Mutual labels:  tcp
Modbus.net
A high extensible hardware communication platform using C#
Stars: ✭ 244 (+1184.21%)
Mutual labels:  tcp
iroko
A platform to test reinforcement learning policies in the datacenter setting.
Stars: ✭ 55 (+189.47%)
Mutual labels:  tcp
mqtt
The fully compliant, embeddable high-performance Go MQTT v5 server for IoT, smarthome, and pubsub
Stars: ✭ 356 (+1773.68%)
Mutual labels:  tcp
ChatServerTCP
保密型聊天软件服务器 /Private Chat Server
Stars: ✭ 14 (-26.32%)
Mutual labels:  tcp
quebec-power-grid-talk
🎭 Quebec's 735kv power lines can survive the apocalypse, but can they run TCP?!
Stars: ✭ 31 (+63.16%)
Mutual labels:  tcp

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].