Simulation Code and Scripts for BI-TCP Paper


This page contains the simulation code and scripts for our BI-TCP paper.

STEP 1: Install Network Simulator - ns-2

Our code and scripts were developed on ns-2.26. Please download and install it.

STEP 2: Install BI-TCP and Other High-Speed TCPs

This paper simulates 4 high-speed TCPs: BI-TCP, HSTCP, STCP, and AIMD. HSTCP has been implemented in ns2.26. To run the other three high-speed TCPs, please replace the following two files with tcp.cc and tcp.h, respectively.

STEP 3: Install SACK-TS

Since fast long-distance network simulations with regular TCP/SACK1 connections take a very long time, we use TCP/SACK-TS. Please untar sack-ts-code.tar.gz and install it.

STEP 4: Download Simulation Scripts

We developed some simulation scripts based on the work of Sally Floyd and Evandro de Souza. The followingn files are included.

STEP 5: Simulation Parameters

Here we only show the parameters for BI-TCP protocol. For other protocols, please replace "12 14" with the corresponding parameters listed in the following table.
 
Protocol Parameters 6 (Protocol-Type) Parameter 7 (Low-Window)
AIMD 0
BI-TCP 12 14
HSTCP 31
STCP 16

5.1 RTT Fairness with bottleneck bandwidth = 2.5 Gbps

Parameters Description
DropTail ns behavior.tcl 200 2500 10 1 1.0 1 12 14 1 1 0 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 1
ns behavior.tcl 200 2500 10 1 1.0 1 12 14 1 1 40 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 3
ns behavior.tcl 200 2500 10 1 1.0 1 12 14 1 1 100 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 6
RED ns behavior.tcl 200 2500 10 0 1.0 1 12 14 1 1 0 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 1
ns behavior.tcl 200 2500 10 0 1.0 1 12 14 1 1 40 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 3
ns behavior.tcl 200 2500 10 0 1.0 1 12 14 1 1 100 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 6

5.2 RTT Fairness with bottleneck bandwidth = 100 Mbps

Parameters Description
DropTail ns behavior.tcl 200 100 10 1 1.0 1 12 14 1 1 0 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 1
ns behavior.tcl 200 100 10 1 1.0 1 12 14 1 1 40 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 3
ns behavior.tcl 200 100 10 1 1.0 1 12 14 1 1 100 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 6
RED ns behavior.tcl 200 100 10 0 1.0 1 12 14 1 1 0 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 1
ns behavior.tcl 200 100 10 0 1.0 1 12 14 1 1 40 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 3
ns behavior.tcl 200 100 10 0 1.0 1 12 14 1 1 100 2 4 2 0 0.875 32 0.01 2 1 RTT Ratio = 6

5.3 TCP-Friendliness

Parameters Description
DropTail ns behavior.tcl 200 20 40 1 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 20 Mbps
ns behavior.tcl 200 100 40 1 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 100 Mbps
ns behavior.tcl 200 500 40 1 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 500 Mbps
ns behavior.tcl 200 2500 40 1 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 2500 Mbps
RED ns behavior.tcl 200 20 40 0 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 20 Mbps
ns behavior.tcl 200 100 40 0 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 100 Mbps
ns behavior.tcl 200 500 40 0 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 500 Mbps
ns behavior.tcl 200 2500 40 0 1.0 1 12 14 2 2 0 2 2 2 0 0.875 32 0.01 2 1 Bandwidth = 2500 Mbps

5.4 Fairness

Parameters Description
DropTail ns behavior.tcl 600 2500 40 1 1.0 1 12 14 2 4 0 4 4 2 0 0.875 32 0.01 2 1
RED ns behavior.tcl 600 2500 40 0 1.0 1 12 14 2 4 0 4 4 2 0 0.875 32 0.01 2 1