Re: Comments on draft-ietf-multi6-v4-multihoming-02
Joe Touch <[email protected]> Sat, 13 Nov 2004 19:29:36 -0800
| Newsgroups | gmane.ietf.multi6 |
|---|---|
| Message-ID | <[email protected]> |
Iljitsch van Beijnum wrote: > On 12-nov-04, at 16:17, Joe Touch wrote: > >>> 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. > > But how do you know a session is completely idle vs there is still a > delayed ack coming? (Without looking too deep into TCP, that is.) Delayed ACKs come within 200ms of the other end going idle, AFAIR. >> 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). > > (Note that is makes little difference whether you use persistent > connections: we work at the IP layer.) Persistent connections are the kind of TCP connections that might go idle for extended periods; most other TCP connections tend to either be sending data or be closed quickly. I.e., they're the kind of transport layer that would care whether you did keep-alives at the net layer, IMO. > The trick is detecting legitimate idleness because in that state no > action is necessary. For TCP this shouldn't be too hard, for other > protocols we have to find good timeout values. I think these need to be > higher than just a few RTTs. Such as? I was thinking 300ms-500ms as a ballpark. >> 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. > > Hm, my assumption was that after a successful test, there wouldn't be > any more tests until something changes. That presumes async notification from the lower layer. I wasn't, since I don't believe that's feasible. I.e., I would expect: - seeing packets exchanged is an in-band test that can be observed and serves as a keep-alive itself - send keepalives for the first 500ms after idle - stop sending keepalives after that In the absence of keepalives, things can be changed or dropped as needed fairly quickly, as a result. > Since we don't do anything when > the session is active in both directions or completely idle, > reachability tests only happen after a suspicious active->idle > transition. After the test, the multihoming layer would be satisfied > that this transition wasn't because of a failure, and wouldn't have to > do anything until there is a new active->idle transition. I'd like it to do something - to keep verifying that reachability is still possible for exactly the period that an idle TCP 'expects' there not to be a substantial change in the channel. Joe
signature.asc
(application/pgp-signature, 254 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBltEgE5f5cImnZrsRAsVGAKCnrtCkCRYFiLXiANyX/V05KlI14ACg95wV uCIcFvTTQGvYO0S64R73Yso= =qZC0 -----END PGP SIGNATURE-----