On Mon, 4 Jun 2012, Damian Lukowski wrote:
please verify, I understood you correctly.
You have set TCP_RTO_MIN to a lower value, e.g. 0.002 seconds to improve
your internal low-latency traffic. Because of the improvement, R1
timeouts are triggered too fast for external high-RTT traffic. Is that
correct?
If so, may I suggest to set tcp_retries1 to a higher value? For
TCP_RTO_MIN == 0.002 and tcp_retries1 == 10, R1 will be calculated to
approximately 4 seconds.
Is that ok?
I suppose what he meant is that you could have e.g., 60sec RTT and with
small enough retries the timeout calculation yields to some timeout
smaller than 60 secs, and therefore no retransmissions are made which is
certainly not a desirable property? ...This is valid issue even if no min
rto tweaking was done but can of course get much worse if min rto is
shorter.
I agree with his proposed solution:
quoted
I think retransmits_timed_out() should check against both time
duration and retrans count (icsk_retransmits).
...that is, use both pseudo timeout check of the current code and the
previously used icsk_retransmits compare at the same time.
--
i.