web-dev-qa-db-ja.com

UbuntuでTCP輻輳制御アルゴリズムフレーバーを確認する方法

Linuxカーネルバージョン3.13.0-34でUbuntu14.04LTSを使用しています。

デフォルトまたは現在使用されているTCP輻輳制御アルゴリズム)を確認するにはどうすればよいですか?

ありがとう。

4
Umar

TCPバリアントはありません; TCP 輻輳制御アルゴリズム

sysctl net.ipv4.tcp_congestion_control

cat /proc/sys/net/ipv4/tcp_congestion_control

デフォルトは通常cubicまたはrenoですが、他にもたくさんあり、プログラムは個々の接続の優先アルゴリズムを設定できます(たとえば、送信によりlp 可能な場合は)。

(同じノブは、その名前にもかかわらず、IPv4とIPv6の両方に影響します。)

6
user1686

@ grawityの回答に加えて、で使用可能なすべてのTCP輻輳制御アルゴリズムをチェックすることができます。次のコマンド:

sysctl net.ipv4.tcp_available_congestion_control

可能な出力のいくつかのリスト(つまり、利用可能なフレーバー)は次のとおりです。

reno:他のほとんどすべてのOSで使用される従来のTCP。 (デフォルト)

cubic:CUBIC-TCP

bic:BIC-TCP

htcp:ハミルトンTCP

vegas:TCPベガス

westwood:損失の多いネットワーク用に最適化

YeAH:パイプをしきい値以下に保つための遅延認識/状態有効

注:'sysctl net.ipv4.tcp_available_congestion_control'を実行してもcubicおよび/またはhtcpが表示されない場合は、ほとんどのディストリビューションにロード可能なカーネルモジュールとして含まれているため、次のことを試してください。

/sbin/modprobe tcp_htcp
/sbin/modprobe tcp_cubic

詳細については、こちらをご覧ください。

TCPチューニングの詳細

それが役に立てば幸い。

乾杯、

男。

2
Guy Avraham

各接続で使用されている現在の輻輳制御アルゴリズムを確認したい場合は、ssコマンド( iproute2 package/toolsの一部)を使用できます。

ss -ti

出力例を次に示します。接続の詳細の下にあるパラメーター出力の最初の項目は、輻輳制御アルゴリズム(この場合はcubic-)で、その後にTCP接続に関連するさまざまなパラメーターが続きます。

ESTAB      0      0      192.168.56.102:ssh           192.168.56.1:61795
 cubic wscale:6,7 rto:201 rtt:0.218/0.038 ato:40 mss:1448 rcvmss:1392
 advmss:1448 cwnd:10 bytes_acked:8753 bytes_received:3945 segs_out:40
 segs_in:63 send 531.4Mbps lastsnd:1 lastrcv:2 lastack:1
 pacing_rate 1059.1Mbps rcv_rtt:2 rcv_space:28960

注:アプリケーションは、 TCP_CONGESTION setsockopt()呼び出しを使用して、使用する輻輳制御アルゴリズムを選択できます。

1
Pierz