FreeBSDで(デフォルトではない)他のTCP輻輳制御アルゴリズムを実行する方法はありますか?ワイヤレスネットワークでより良いパフォーマンスを得るために、研究論文で発表されたいくつかのアイデアを使用して既存のTCP輻輳制御アルゴリズムを修正しようとしています。
答え1
sysctl.confを見ると、どのTCP輻輳制御アルゴリズムが利用可能かを確認できますnet.inet.tcp.cc.available
。デフォルトではnewrenoのみが使用可能なので、これを使用します。さまざまなアルゴリズムを使用できます。cc_something
で名前付きモジュールを見つけます/boot/kernel
。
たとえば、kldloadを介してロードできますkldload cc_vegas
。これを行うと、新しいアルゴリズムがnet.inet.tcp.cc.available
。 sysctlで選択できますnet.inet.tcp.cc.algorithm
。
完全な例は次のとおりです。
% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.available: newreno
net.inet.tcp.cc.algorithm: newreno
% sudo kldload cc_vegas
% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.vegas.beta: 3
net.inet.tcp.cc.vegas.alpha: 1
net.inet.tcp.cc.available: newreno, vegas
net.inet.tcp.cc.algorithm: newreno
% sudo sysctl net.inet.tcp.cc.algorithm=vegas
net.inet.tcp.cc.algorithm: newreno -> vegas
% sudo sysctl net.inet.tcp.cc.algorithm=newreno
net.inet.tcp.cc.algorithm: vegas -> newreno
%
答え2
研究のために、Swinburne Universityの高度なインターネットアーキテクチャセンター(CAIA)はいくつかのプロジェクトを管理しています。彼らは少なくとも部分的にFreeBSD [newtcp]のレイテンシベースのアルゴリズムに焦点を当てています。 FreeBSD財団のサポートにより、newtcpプロジェクトの作業はFreeBSD 9.0以降のバージョンに統合されました。
広範なUNIXアプリケーションの中で、私は個人的にLinux上のWestwood+ TCP輻輳制御を通じてある程度成功しました。 Westwoodはワイヤレスアプリケーションに特に便利です[Casetti2002]。 TCP-FITに関する良い記事も見つかりました[Wang2011]
個人的に私はFreeBSDプラットフォームに初めて触れました。ワイヤレスネットワークに直接適用するには、CAIAの作業が必要だと考えられます。遅延ベースTCP輻輳制御は特に重要です。
Steve Willsの回答を拡張するために現在単一のFreeBSDカーネルインストールで使用できるTCP輻輳制御アルゴリズムに加えて、FreeBSDのドキュメントにはFreeBSDカーネルを再構築するためのガイドラインも含まれています。 [マニュアル9章。 ]
おそらく、パッケージの構築を自動化するためのPourdriereの構築環境とLANネットワーク(BootP、DHCPなど)のためのPXE / Netbootサービスを使用すると、さまざまなプラットフォームとさまざまな環境で利用可能なTCP輻輳制御アルゴリズムを適用するための比較的快適なベンチマーク環境を構築できます。できるでしょう。ネットワーク構成また、おそらく無線チャネルノイズや他の無線チャネル干渉をシミュレートし、実際の構成でシステムのパフォーマンスを推定する既存の作業があるかもしれません。個人的には、私がオンラインで通っている大学に、このような研究スタイルにぴったりの研究室がないので心配ですが、学界のどこかには可能だと確信しています。
以下は簡単な参考文献です:
記事は、その出版社から直接提供されるか、またはその資金調達機関からのプレプリントとして提供されます。