Linux UbuntuでさまざまなTCPバリアントをテストしたいと思います。カーネルバージョン3.14のUbuntu 14.04 LTSがあります。次のコマンドを使用して利用可能な輻輳制御アルゴリズムを確認すると、sysctl net.ipv4.tcp_available_congestion_control
キュービックとレノのみが表示されます。しかし、Hybla、HighSpeedなどの他のバリエーションもテストしたいと思います。実行すると、menuconfig
目的のバリアントを選択してカーネルをコンパイルできます。しかし、私の場合はすでにカーネルをコンパイルしていますが、TCPバリアントを含むいくつかのLinuxパッケージをロード可能なカーネルモジュールとして持つことは可能ですか?
答え1
どのモジュールをインストールしたかを見るには、ここを見てください。
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4
モジュールのリストを入手する必要があります。私はこれを得ました。
tcp_bic.ko
tcp_diag.ko
tcp_highspeed.ko
tcp_htcp.ko
tcp_hybla.ko
tcp_illinois.ko
tcp_lp.ko
tcp_scalable.ko
tcp_vegas.ko
tcp_veno.ko
tcp_westwood.ko
設定ファイルで TCP_CONG を greping することで、カーネルが設定した内容を確認できます。
grep TCP_CONG /boot/config-$(uname -r)
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_DEFAULT_TCP_CONG="cubic"
modprobe -a tcp_westwood
これらのいずれかを試すには、必要な方法を使用してインストールする必要があります。それからこれを使ってテストすることができます
echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control