The Linux patch to enable high-resolution TCP
retransmissions is available here:
hrttcp-09-17-09.patch.
This patch is still undergoing testing and should
not be released widely. It is targeted toward
recent kernel versions (e.g., Linux 2.6.28.10), but
may work on earlier versions. Please email me if you
have trouble and let me know what kernel version and
the errors you are receiving.
Patch updated 9/19/09: changed hrtimer_cancel()
calls to hrtimer_try_to_cancel() to prevent potential
hang caused by the delayed ACK callback entering the
clear function that calls hrtimer_cancel, which waits
for the callback to finish.
This patch requires that the kernel config options HIGH_RES_TIMERS and TCP_HIGH_RES_TIMERS are enabled.
The TCP timeout defaults are unchanged on boot (e.g., 200ms minimum TCP RTO), so you will have to execute the following sysctl commands to change them.
sysctl -w net.ipv4.tcp_rto_min=X
sets the minimum retransmission timeout to X microseconds. (Default 200000)
sysctl -w net.ipv4.tcp_delack_min=X
sets the minimum delayed ACK timeout to X microseconds. (Default 40000)
sysctl -w net.ipv4.tcp_delayed_ack=0
"disables" the delayed ACK mechanism. (=1 enables). (Default 1)