web-dev-qa-db-ja.com

複合TCP(CTCP)を有効にするにはどうすればよいですか?

Ubuntuで Compound TCP を使用したいと思います。

ウィキペディアのページにはこう書かれています:

Windowsに加えて、CTCPもLinuxに移植されました[...]カーネルバージョン2.6.17以降、モジュールは互換性がなく、カーネルAPIの変更によりコンパイルに失敗します。

正しく機能する新しい実装はありますか?

5
Halta

MicrosoftのCompound TCPは、輻輳アルゴリズムプロトコルの実装の1つにすぎません。 Linuxでは、これは既に見つけたとおりに破棄されており、 TCP Illinois が直接の後継であったようですが、それ以上使用されていません。

2.6.22以降、イリノイを実装するためにいくつかの作業が行われました。 LWNの記事:TCP Illinois予備バージョン 。現在のバージョンでもまだ利用可能だと思われます: net/ipv4/tcp_illinois.c in linux-stable tree

TCP New RenoRFC3782 に基づく別の代替は、Linuxで最も一般的に使用され、カーネルに完全に統合されているようです。マンページtcp(7)も参照してください:

  tcp_available_congestion_control (String; read-only; since Linux 2.4.20)
          Show  a list of the congestion-control algorithms that are registered.  This
          list is a limiting set for the list in tcp_allowed_congestion_control.  More
          congestion-control algorithms may be available as modules, but not loaded.

システムで使用可能なものを確認します。

cat /proc/sys/net/ipv4/tcp_available_congestion_control

およびアクティブ:

cat /proc/sys/net/ipv4/tcp_congestion_control

アクティブなものに変更して書き込みます(例reno):

echo reno | Sudo tee /proc/sys/net/ipv4/tcp_congestion_control

一番下の行:最近のLinuxカーネルを使用するだけで、おそらく非常に最新かつ非常に効率的なTCP輻輳アルゴリズムプロトコルを既に使用しているでしょう。

5
gertvdijk

見る限り、メインラインカーネルから削除されました( git commit を参照)。 git内の検索によると、それは二度と戻ってきませんでした。したがって、ウィキペディアのエントリは正しいです。 (コードを書き直すまで)動作させる機会はありません。

2
qbi