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

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



Hi Iljitsch,

> I'm sure there are, but I'm just as sure there are also people like me 
> who prefer the session to remain up so there is no need to reconnect 
> after waking up. FYI: SSH disconnects after several hours by default, I 
> think because of an automatic 2-hourly TCP keepalive. I managed to make 
> it such that sessions would remain up overnight but that doesn't work 
> anymore since one upgrade or another.

Right, so assuming a default behavior here is probably wrong.
 
> > I agree that supressing keep alives when traffic is flowing is 
> > reasonable.
> > Supressing when no traffic is flowing is debatable.  If you are doing
> > site multihoming and want to make sure you maintain site connectivity,
> > you might want to have keep-alives.
> 
> No, this is something that has the potential to be harmful. If 
> transports or applications feel they need to keep sessions alive 
> explicitly, they are free to do so and multihoming mechanisms will make 
> sure that rehoming happens if such a keepalive doesn't make it. But if 
> multihoming does the keeping alive, there is no way for transports or 
> apps to be network-quiet if they want to be.

So, are you suggesting that if we want to maintain any multihoming bindings,
we should rely on application layer keep alives?  I guess that is another
possibility, especially if we consider 'testing' connections at session
startup, that then might be sufficient.
 
> > I'd propose that sending keep-alives might be a tunable setting, and 
> > the timing of sending keep-alives could be set according to policy 
> > (host or site).
> 
> Disagree vehemently. Polling is bad, interrupts are good.

From your earlier mail, it wasn't clear, let me just quote you:

> The non-obvious solution is to suppress keepalives when it's clear that 
> they aren't needed. This can happen in two cases:
> 
> 1. When there is no traffic in either direction
> 2. When there is traffic in both directions
> 
> Only when there is traffic in only one direction there MAY be a failure 
> condition, so keepalives are in order to make sure. This should work 
> very well except that failures may now only be detected by one end. For 
> instance, when A and B communicate and there is only reachability from 
> A to B but not the other way around, A won't detect the failure if B is 
> sending data, because A is both receiving B's data and sending out 
> ACKs. However, B will see data going out but nothing coming back so B 
> notices the potential failure and can trigger reachability testing.

So what I meant more was that if we use keep-alives at the multi6
layer, then perhaps this could be something that the upper layer
could set the keep-alive behavior.  However, I still don't know if
you are suggesting that we use keep-alives at the multi6 layer
(in some circumstances) or if you would kick this up to the application
layer.

John