H-TCP is another implementation of
TCP with an optimized
congestion control algorithm
Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking of ...
for high speed networks with high latency (LFN: Long Fat Networks). It was created by researchers at the
Hamilton Institute in Ireland.
H-TCP is an optional module in
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
since
kernel
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learnin ...
version 2.6, and has been implemented for FreeBSD 7.
Principles of operation
H-TCP is a
loss-based algorithm, using additive-increase/multiplicative-decrease (AIMD) to control TCP's congestion window. It is one of many
TCP congestion avoidance algorithms
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion window ...
which seeks to increase the aggressiveness of TCP on high bandwidth-delay product (BDP) paths, while maintaining "TCP friendliness" for small BDP paths. H-TCP increases its aggressiveness (in particular, the rate of additive increase) as the time since the previous loss increases. This avoids the problem encountered by
HSTCP
HighSpeed TCP (HSTCP) is a congestion control algorithm protocol defined in RFC 3649 for Transport Control Protocol (TCP). Standard TCP performs poorly in networks with a large bandwidth-delay product. It is unable to fully utilize available b ...
and
BIC TCP
BIC TCP (Binary Increase Congestion control) is one of the congestion control algorithms that can be used for Transmission Control Protocol (TCP). BIC is optimized for high speed networks with high latency: so-called "long fat networks". For t ...
of making flows more aggressive if their windows are already large. Thus, new flows can be expected to converge to fairness faster under HTCP than HSTCP and BIC TCP.
Strengths and weaknesses
A side effect of increasing the rate of increase as the time since the last packet loss increases, is that flows which happen not to lose a packet when other flows do, can then take an unfair portion of the
bandwidth
Bandwidth commonly refers to:
* Bandwidth (signal processing) or ''analog bandwidth'', ''frequency bandwidth'', or ''radio bandwidth'', a measure of the width of a frequency range
* Bandwidth (computing), the rate of data transfer, bit rate or thr ...
. Techniques to overcome this are currently in the research phase.
The Linux implementation of H-TCP also has an option for avoiding "
RTT unfairness", which occurs in
TCP Reno
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion window ...
, but is a particular problem for most high speed variants of TCP (although not
FAST TCP
FAST TCP (also written FastTCP) is a TCP congestion avoidance algorithm especially targeted at long-distance, high latency links, developed at the Netlab, California Institute of Technology and now being commercialized by FastSoft. FastSoft was a ...
).
Name
The algorithm was initially introduced as H-TCP, without mention of what the 'H' stands for. However, it is often called "Hamilton TCP", for the Hamilton Institute where it was created.
See also
*
TCP congestion avoidance algorithm
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion window ...
*
Transmission Control Protocol#Development of TCP
References
External links
H-TCPHome Page
TCP congestion control
{{compu-network-stub