[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comments on draft-ietf-multi6-v4-multihoming-02





Iljitsch van Beijnum wrote:
On 11-nov-04, at 15:13, Joe Touch wrote:

Has anyone considered keeping the connection 'active' (i.e., keepalives) for sessions for around 1-2 typical RTTs of idle? That would catch TCP idles that still allow TCP bursts; anything longer than that and TCP is supposed to 'restart' its congestion control anyway.


That might be a happy medium to the 'all or none' keepalive. I.e.,
"keepalive for 1-2 RTTs of idle".

Hm, wouldn't just one or two RTTs be a bit short? You may still get a delayed ACK after 2 RTTs.

The delayed ACK should itself refresh things; I'm thinking of an otherwise completely idle interaction. The key here is that TCP expects things not to change for a few RTTs (pick a number). Designing things so that is not the case is likely to cause unintended impact on TCP, esp. in some very typical cases (web surfing over persistent connections).


I think this basically boils down to the idea I was talking about previously, where there are only reachability checks when there are packets going in one direction. So when we transmit a packet, we start a timer. When we receive a packet, we cancel the timer. When the timer expires, we test reachability. Some optimization is possible with TCP so that we don't start the timer for ACK packets with no data, but we do stop the timer for those.

I'm suggesting that the above be tempered after a few RTTs. I.e., if the only traffic has been the reachability tests for more than X RTTs (pick X), then it might be OK to stop testing. This solves the "persistent chatter over idle channels" problem, and (appropriately?) allows underlying asspciations to be dropped/moved without substantial impact.


Joe

Attachment: signature.asc
Description: OpenPGP digital signature