![]() |
![]() ![]() ![]() |
![]() |
![]() |
|||||||||||
![]() |
||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
|||||||||||
![]() ![]() ![]() ![]() ![]() |
DataTAG Alternative AIMD Kernel Introduction This patch is for the linux 2.4.20 kernel. It incorporates many experimental TCP stacks that are currently under investigation and should NOT be used unless you know what you’re doing! The modifications only alter the sender side congestion window update algorithms and will work with any TCP receiver. Current release is altAIMD-0.3 available for linux-2.4.20 and linux-2.6.4. This distribution puts together work by various people in the field of Transport Protocols. It is supported by the DataTAG project (http://www.datatag.org). The patch is the cumulation of work by various people and projects:
The altAIMD kernel also includes some extras which may help in performance and or testing:
Installation Simply patch against the original linux 2.4.20 (http://www.kernel.org) using the following command: # cd [path to linux 2.4.20 distro] You must enable certain options prior to install: # make menuconfig code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers To enable Alternative AIMD: Networking options ---> [*] IP: Alternative TCP AIMD Availability (100) TCP: Default Max SsThresh Value To enable Limited Slow Start: Networking options ---> [*] IP: Alternative TCP SlowStart Availability [Limited SlowStart] (0) TCP: Default Alternative AIMD Stack (NEW) To enable ABC select the following options: Networking options ---> [*] IP: Appropiate Byte Sizing Availability (ABC - RFC3465) (0) TCP: ABC ON by default To enable moderate_cwnd() toggling select the following options: Networking options ---> [*] IP: TCP Moderate Congestion Window Toggle Availability (1) TCP: Moderate Congestion Window ON by default To enable web100 features select the following options: Networking options ---> [*] Web100 networking enhancements (NEW) [*] Web100: TCP statistics (NEW) (0666) Web100: Default file permissions (0) Web100: Default gid [*] Web100: Net100 extensions (NEW) [*] Web100: netlink event notification service (NEW) (7) Web100: default winscale initial value (NEW) To enable induced packet dropping when acting as the recv select the following options: Networking options ---> [*] IP: TCP Packet Dropping Available Availability (0) IP: TCP Packet Dropping Rate Default Value Usage You can dynamically control the AIMD to use at any instant for ALL existing TCP flows by issuing the following command as root: # /sbin/sysctl -w net.ipv4.tcp_altAIMD=n where n is 0 Standard 'Vanilla' TCP 1 HSTCP 2 ScalableTCP 4 H-TCP 3 GridDT You can also define the Limited Slow Start Max SsThresh Threshold via the following command as root: # /sbin/sysctl –w net.ipv4.tcp_ss_max_ssthresh=n where n is <= 0 Turn Limited Slow Start OFF > 0 Use n (in packets) as the max SsThresh threshold Please the relevant links for further information for each protocol. Example The following test was performed on the DataTAG network (rtt latency ~120ms, max bw 1Gb/sec) with a single stream sender running the DataTAG Alternative AIMD patch. Due to the cleanness of the network, loss was induced at the receiver every 1 million packets. This is so that we can see the effects of the AIMD. It is initiated with Standard 'VanillaTCP' from 0-100sec and then switched to HSTCP between 100-200sec. We then move onto ScalableTCP between 200-300sec and finally we use GridDT for the last 100 sec. NB: The results obtained from this simple test is not a true indication of the performance of each protocol under all circumstances. For more information, please see: VanillaTCP, HSTCP, ScalableTCP and GridDT respectively for more details. The following graphs show the effects of the limited slow start protocol in action. It's primarly function is to exit slow start as close to the optimal network usage as possible. [TODO]
Download If you wish to try out altAIMD, please email me at ytl@hep.ucl.ac.uk
TODO Forthcoming changes/updates to the code:
Disclaimer The algorithms presented within this patch are consider EXPERIMENTAL and the code is provided without any warranty. Limited support is available (if you ask me nicely!). The author and the contributors to this distribution take no responsibility for any damage of any computer, network or person(s) as a consequence of using this patch. Comments and suggestion are strongly encouraged. <ytl@hep.ucl.ac.uk>
|
|||||||||||||
![]() |
![]() |
![]() |
||||||||||||
![]() |
![]() |
![]() |
||||||||||||
© 2001-2003, Yee-Ting Li, email: ytl@hep.ucl.ac.uk,
Tel: +44 (0) 20 7679 1376, Fax: +44 (0) 20 7679 7145 Room D14, High Energy Particle Physics, Dept. of Physics & Astronomy, UCL, Gower St, London, WC1E 6BT |
||||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |