Subject: Re: [PATCH 2.6.22] TCP: Make TCP_RTO_MAX a variable (take 2)

From: Rick Jones <[email-masked]>
Date: Thu, 12 Jul 2007 15:27:30 -0700

> So the problem is that RTO can grows to be twice the failover detection
> time.  So back to the original mail, the scenario has a switch with failover
> detection of 20seconds.  Worst case TCP RTO could grow to 40 seconds.
> 
> Going back in archive to original mail:
> 
> 
>>Background
>>==========
>>
>>When designing a TCP/IP based network system on failover-capable
>>network devices, people want to set timeouts hierarchically in
>>three layers, network device layer, TCP layer, and application
>>layer (bottom-up order), such that:
>>
>>1. Network device layer detects a failure first and switch to a
>>   backup device (say, in 20sec).
>>
>>2. TCP layer timeout & retransmission comes next, _hopefully_
>>   before the application layer timeout.
>>
>>3. Application layer detects a network failure last (by, say,
>>   30sec timeout) and may trigger a system-level failover.
> 
> 
> Sounds like the solution is to make the switch failover detection faster.
> If you get switch failover down to 5sec then TCP RTO shouldn't be bigger
> than 10sec, and application will survive.

That may indeed be the best solution, we'll have to wait to hear if 
there is any freedom there.  When this sort of thing has crossed my path 
in other contexts, the general answer is that the device failover time 
is fixed, and the application layer time is similarly constrained by 
end-user expectation/requirement.  Often as not, layer 8 and 9 issues 
tend to dominate and expect to trump (in this case layer 4 issues).

rick jones