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" ...) ]