Kernal module for tcp congestion control algorithm with user defined params.
TCPTuner is TCP congestion control kernel module and GUI packaged
together. By loading our kernel module (which is essentially a clone of
CUBIC), and running the GUI, users can adjust several parameters of the
CUBIC congestion control algorithm.
See the TCPTuner Paper (PDF) for more information about the background, implementation, and contributions of TCPTuner.
How to Build and Load the Kernel Module
cd module/
make
sudo rmmod tcp_tuner.ko
sudo insmod tcp_tuner.ko
sudo sysctl -w net.ipv4.tcp_congestion_control=tuner
The TCPTuner GUI
Dependencies
sudo apt-get install qt5-qmake qt5-default
To Build and Run
cd gui/TCPTuner/
qmake
make
sudo ./TCPTuner
TCPTuner's Parameters
TCPTuner exposes the parameters of TCP CUBIC to the user via the
TCPTuner GUI. The parameters present in TCP CUBIC, along with their
descriptions and default values are in the table below.
Parameter
Description
Default
alpha
Scales W_max, which adjusts the rate at which cwnd grows after a loss event
512
beta
beta for multiplicative decrease
717
fast_convergence
turn on/off fast convergence
1
tcp_friendliness
turn on/off tcp friendliness
1
Additonal Parameters from ip-route
The TCPTuner GUI also provides access to the following ip route parameters. The GUI will apply these ip route parameters to all of the routes in the routing table.
Parameter
Description
Default
rto_min
the minimum TCP retransmission timeout to use when communicating with this destination.
None
initcwnd
the initial congestion window size for connections to this destination. Actual window size is this value multiplied by MSS.
0
MahiMahi Simulation Environment
This repository also contains a MahiMahi simulation environment so that users can see the impact of TCP congestion control parameters.
No comments:
Post a Comment