TCP-FusionTCP-Fusion is a new congestion control algorithm for high-speed networks. This scheme exploits three useful characteristics of TCP-Reno, TCP-Vegas and TCP-Westwood in its congestion avoidance strategy. In short, its congestion window size is decreased without causing too drastic reduction and is increased with smart adaptability to coexisting TCP-Reno flows according to the congestion level measurement estimated from RTT. Paper & slide
Ns2 modules (simulation)How to install TCP-Fusion Ns2 modules is shown below. TCP-Fusion modules have been tested on Ns2 version 2.28 & 2.31. CodeInstallation Instructions
|
wnd_option_ | protocol |
0 | TCP-Fusion |
1 | TCP-Adaptive Reno |
2 | Compound TCP |
Usage: ns fusion-ex.tcl <wnd_option_> <error rate>
When you actually use TCP-Fusion protocol in the network with 0.0001 loss rate,
# ns fusion-ex.tcl 0 0.0001
Add the modules above to the linux-2.6.**/net/ipv4/ directory.
Add the following lines into the linux-2.6.**/net/ipv4/Kconfig
... config TCP_CONG_FUSION tristate "TCP Fusion" depends on EXPERIMENTAL default n ...
Add the following lines into the linux-2.6.**/net/ipv4/Makefile
... obj-$(CONFIG_TCP_CONG_FUSION) += tcp_fusion.o ...
" make menuconfig " to configure the kernel. To enable advanced protocols, do the following step.
# Networking options ... * [*] TCP: advanced congestion control (NEW) o TCP congestion control + [*] TCP Fusion (NEW) ...
"make"
"make modules_install"
"make install"
Reboot
Tune Kernel parameters for high-speed networks (< 1Gbps)
# increase TCP max buffer size sysctl -w net.core.rmem_max=41943040 sysctl -w net.core.wmem_max=41943040 # increase Linux autotuning TCP buffer limits min, default, and max number of bytes to use sysctl -w net.ipv4.tcp_rmem="4096 10485760 20971520" sysctl -w net.ipv4.tcp_wmem="4096 10485760 20971520" sysctl -w net.ipv4.tcp_mem="4096 10485760 20971520" ifconfig eth0 txqueuelen 4000
The congestion control algorithm used is set using the sysctl variable net.ipv4.tcp_congestion_control. To set TCP-Fusion, do the following
sysctl -w net.ipv4.tcp_congestion_control=fusion
GCOM001.m : Performance analysis of single flow model. This code is used to create
Figure 7(a) in Globecom 2008 paper.
GCOM002.m : Performance analysis of two flow model. This code is used to create Figure 7(b) in Globecom 2008 paper.
GCOM003.m : Response function of hybrid congestion control. This code is used to
create Figure 9 in Globecom 2008 paper.