*BSD News Article 33814


Return to BSD News archive

Newsgroups: comp.os.386bsd.misc
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!usc!elroy.jpl.nasa.gov!decwrl!netcomsv!calcite!vjs
From: vjs@calcite.rhyolite.com (Vernon Schryver)
Subject: Re: PPP under BSD (have a heart)
Message-ID: <Ctz0HM.ID1@calcite.rhyolite.com>
Organization: Rhyolite Software
Date: Wed, 3 Aug 1994 17:56:10 GMT
References: <bakulCttyCM.7n@netcom.com> <Ctv3tI.7yE@calcite.rhyolite.com> <31mvep$6ko@sirius.anu.edu.au>
Lines: 43

In article <31mvep$6ko@sirius.anu.edu.au> paulus@cs.anu.edu.au (Paul Mackerras) writes:
>vjs@calcite.rhyolite.com (Vernon Schryver) writes:
>
>>You also might want to vary your timeouts based on the state of higher
>>layer protocols.  I find it convenient to use a 5 minute timeout when
>>there are active TCP connections, but 30 seconds otherwise.  I keep
>>track of active TCP connections by noticing SYN's and FIN's in the Van
>>Jacobson header compression code and state tables.  I'm ridiculously
>>proud of that kludge.
>
>What's more, you haven't patented it :-), have you?

I guess I messed up and forgot.  Since it's been shipping for more than
a year, I've probably missed my one chance at fortune and 15 minutes of
fame.  However, for a very small fee, say $10,000, I'll tell you how to
implement it.  There seem to be a lot of people out there charging more
for "expertise" on how to implement even simpler things.

>What happens when you run out of slots in the VJ state tables?  Do you
>just assume that the connections whose slots get reused are idle and
>not worth bothering about any more?

Exactly.
And when the link does down, all of the state tables get cleared.

The biggest defects with the scheme are 
    1. (as you note) more active TCP connections than you have VJ state
	table entries don't get tracked correctly, which can open
	windows when the system thinks the link is more idle than it 
	really is.
    2. asymmetric routing can fool it (e.g. you may not see all of
	the SYNs, FINs, and resets).
    3. it is fooled by BF&I multicast, since, at least as I do BF&IM,
	each link has independing VJ state tables.
    4. you have make some minor changes to the standard 4.*BSD code
	or the code in RFC-1144.

Still, it works great exactly when VJ header compression works.
The rest of the time, who cares?  Either the link is very busy, or
you need to increase the VJ state tables anyway.


Vernon Schryver    vjs@rhyolite.com