Nilai awal TCP RTO 3s terlalu lama untuk sebagian besar aplikasi berbasis LAN. Bagaimana saya bisa menyetelnya lebih rendah? Apakah ada sysctl?
sumber
Nilai awal TCP RTO 3s terlalu lama untuk sebagian besar aplikasi berbasis LAN. Bagaimana saya bisa menyetelnya lebih rendah? Apakah ada sysctl?
Tidak, kamu tidak bisa; hardcoded di kernel. Jadi ubah kernel dan kompilasi ulang.
#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value */
Inilah yang harus Anda dapatkan di include / net / tcp.h Anda.
Tapi saya bisa melihat seseorang memberikan tambalan , meskipun tidak pernah mencobanya sendiri
Pengaturan awal tidak akan terlalu memengaruhi kinerja Anda secara keseluruhan, karena RTO menyesuaikan diri dengan kondisi jaringan. Jika Anda mengubah RTO, Anda dapat mengaturnya menjadi 1 detik (tetapi tidak lebih rendah).
Ada diskusi tentang ini di 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 adalah pembaruan yang diusulkan (diterbitkan Juni 2011) yang mengatakan bahwa RTO dapat diinisialisasi ke nilai yang lebih rendah (tetapi tidak lebih rendah dari 1 detik), dan berisi Lampiran yang berisi data yang membenarkan 1 detik sebagai nilai awal yang wajar.