3s'lik ilk TCP RTO değeri, LAN tabanlı uygulamaların çoğu için çok uzun. Nasıl daha düşük ayarlayabilirim? Bir sistem var mı?
3s'lik ilk TCP RTO değeri, LAN tabanlı uygulamaların çoğu için çok uzun. Nasıl daha düşük ayarlayabilirim? Bir sistem var mı?
Yanıtlar:
Hayır, yapamazsın; çekirdeğe kodlanmıştır. Çekirdeği değiştirin ve yeniden derleyin.
#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value */
İnclude / net / tcp.h dosyasına girmeniz gereken şey budur.
Ama kendim hiç denememiş olmama rağmen birisinin bir yama sağladığını görebiliyorum
RTO ağ koşullarına göre kendini ayarladığından, başlangıç ayarı genel performansınızı fazla etkilememelidir. RTO'yu değiştirirseniz, 1 saniye olarak ayarlayabilirsiniz (ancak daha düşük değil).
Bunun RFC 1122'de bir tartışması var :
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 söylüyor (Haziran 2011 yayınlı) önerilen bir güncelleme RTO daha düşük bir değere (ancak 1 sn'den daha düşük olmayan) başlatılır edilebilir, ve bir ek veriler içeren içeren fab makul bir başlangıç değeri olarak 1 sn.