H-TCPは、高速かつ高遅延のネットワーク(LFN:Long Fat Networks)向けに最適化された輻輳制御アルゴリズムを備えたTCPの別の実装です。これは、アイルランドのハミルトン研究所の研究者によって開発されました。
H-TCPはLinuxカーネルバージョン2.6以降オプションモジュールであり、FreeBSD 7に実装されている。[ 1 ]
H-TCPは損失ベースのアルゴリズムであり、加算増加/乗算減少(AIMD)を用いてTCPの輻輳ウィンドウを制御します。これは、帯域幅遅延積(BDP)が大きいパスではTCPの積極性を高めつつ、BDPが小さいパスでは「TCPフレンドリー」性を維持することを目指す、数多くのTCP輻輳回避アルゴリズムの一つです。H-TCPは、前回の損失からの経過時間が長くなるにつれて積極性(特に加算増加率)を高めます。これにより、HSTCPやBIC TCPで発生する、ウィンドウが既に大きい場合にフローの積極性を高めてしまうという問題を回避できます。したがって、H-TCPでは、HSTCPやBIC TCPよりも新しいフローが公平性に収束するのが速くなることが期待できます。
最後のパケット損失からの経過時間が長くなるにつれて増加率が高くなることによる副作用として、他のフローがパケットを損失した際にたまたまパケットを損失しなかったフローが、不公平な割合で帯域幅を占有してしまう可能性がある。この問題を克服するための技術は現在研究段階にある。
Linux の H-TCP 実装には、 TCP Renoで発生する「 RTT の不公平」を回避するオプションもありますが、これはほとんどの高速 TCP バリアント ( FAST TCPを除く) にとって特に問題となります。
このアルゴリズムは当初、H-TCPという名称で発表されたが、Hが何を表しているのかは明記されていなかった。しかし、開発元のハミルトン研究所にちなんで、ハミルトンTCPと呼ばれることが多い。