Skip to content

Linux で利用されている TCP の輻輳制御アルゴリズムを確認する

Linux で利用されている TCP の輻輳制御アルゴリズムを確認する方法をメモしておきます。 尚、カーネルバージョンは 6.8 を前提にしています。

検証環境

対象 バージョン
Ubuntu 24.04LTS
Kernel 6.8.0-31-generic

利用可能な輻輳制御アルゴリズムを確認する

利用可能な輻輳制御アルゴリズムは下記などで確認出来ます。 下記の例では reno と cubic が選択可能であることが分かります。

# cat /proc/sys//net/ipv4/tcp_available_congestion_control
reno cubic

この設定項目については ip-sysctl の 359 〜 362 行目 に記載があります。

tcp_available_congestion_control - STRING
 Shows the available congestion control choices that are registered.
 More congestion control algorithms may be available as modules,
 but not loaded.

現在の輻輳制御アルゴリズムを確認する

現在、利用されている輻輳制御アルゴリズムは下記などで確認出来ます。 下記の例では cubic が利用されていることが分かります。

# cat /proc/sys//net/ipv4/tcp_congestion_control
cubic

この設定項目については ip-sysctl の 384 〜 392 行目 に記載があります。

tcp_congestion_control - STRING
 Set the congestion control algorithm to be used for new
 connections. The algorithm "reno" is always available, but
 additional choices may be available based on kernel configuration.
 Default is set as part of kernel configuration.
 For passive connections, the listener congestion control choice
 is inherited.

 [see setsockopt(listenfd, SOL_TCP, TCP_CONGESTION, "name" ...) ]