解決策 1:
いいえ、できません。カーネルにハードコードされています。そのため、カーネルを変更して再コンパイルしてください。
#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value */
これは、include/net/tcp.h で取得する必要があるものです。
しかし、自分で試したことがなくても、誰かがパッチを提供しているのを見ることができます
解決策 2:
RTO はネットワークの状態に合わせて自動調整されるため、初期設定は全体的なパフォーマンスに大きな影響を与えることはありません。 RTO を変更する場合は、1 秒に設定できます (ただし、それ以下にすることはできません)。
これについては RFC 1122 で議論されています:
The following values SHOULD be used to initialize the estimation parameters for a new connection:
(a) RTT = 0 seconds.
(b) RTO = 3 seconds. (The smoothed variance is to be
initialized to the value that will result in this RTO).
The recommended upper and lower bounds on the RTO are known
to be inadequate on large internets. The lower bound SHOULD
be measured in fractions of a second (to accommodate high
speed LANs) and the upper bound should be 2*MSL, i.e., 240
seconds.
DISCUSSION:
Experience has shown that these initialization values
are reasonable, and that in any case the Karn and
Jacobson algorithms make TCP behavior reasonably
insensitive to the initial parameter choices.
RFC 6298 は提案された更新 (2011 年 6 月公開) であり、RTO より低い値 (ただし 1 秒以上) に初期化でき、適切な初期値として 1 秒を正当化するデータを含む付録が含まれています。