[TCP]: Add TCP Hybla congestion control module.
authorDaniele Lacamera <(root at danielinux.net)net>
Thu, 23 Jun 2005 19:26:34 +0000 (12:26 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Jun 2005 19:26:34 +0000 (12:26 -0700)
TCP Hybla congestion avoidance.

- "In heterogeneous networks, TCP connections that incorporate a
terrestrial or satellite radio link are greatly disadvantaged with
respect to entirely wired connections, because of their longer round
trip times (RTTs). To cope with this problem, a new TCP proposal, the
TCP Hybla, is presented and discussed in the paper[1]. It stems from an
analytical evaluation of the congestion window dynamics in the TCP
standard versions (Tahoe, Reno, NewReno), which suggests the necessary
modifications to remove the performance dependence on RTT.[...]"[1]

[1]: Carlo Caini, Rosario Firrincieli, "TCP Hybla: a TCP enhancement for
heterogeneous networks",
International Journal of Satellite Communications and Networking
Volume 22, Issue 5 , Pages 547 - 566. September 2004.

Signed-off-by: Daniele Lacamera (root at danielinux.net)net
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/Kconfig
net/ipv4/Makefile
net/ipv4/tcp_hybla.c [new file with mode: 0644]

index 910e25b..516ffe8 100644 (file)
@@ -478,6 +478,16 @@ config TCP_CONG_HSTCP
        increase the congestion window by when an ACK is received.
        For more detail see http://www.icir.org/floyd/hstcp.html
 
+config TCP_CONG_HYBLA
+       tristate "TCP-Hybla congestion control algorithm"
+       depends on INET && EXPERIMENTAL
+       default n
+       ---help---
+       TCP-Hybla is a sender-side only change that eliminates penalization of
+       long-RTT, large-bandwidth connections, like when satellite legs are
+       involved, expecially when sharing a common bottleneck with normal
+       terrestrial connections.
+
 endmenu
 
 source "net/ipv4/ipvs/Kconfig"
index ddf5d77..ede7a5d 100644 (file)
@@ -34,6 +34,7 @@ obj-$(CONFIG_IP_ROUTE_MULTIPATH_CACHED) += multipath.o
 obj-$(CONFIG_TCP_CONG_BIC) += tcp_bic.o
 obj-$(CONFIG_TCP_CONG_WESTWOOD) += tcp_westwood.o
 obj-$(CONFIG_TCP_CONG_HSTCP) += tcp_highspeed.o
+obj-$(CONFIG_TCP_CONG_HYBLA) += tcp_hybla.o
 
 obj-$(CONFIG_XFRM) += xfrm4_policy.o xfrm4_state.o xfrm4_input.o \
                      xfrm4_output.o
Simple merge