Subject: Re: idle timeouts from isp
To: Tobias Anderberg <tobias.anderberg@axis.com>
From: Dave Burgess <burgess@neonramp.com>
List: port-i386
Date: 11/09/2001 11:38:15
Tobias Anderberg wrote:

> Jon wrote:
>
> > Is there a way to prevent an idle timeout from an isp.
> >
> > i.e. a daemon which sends a small packet out every x number of minutes?
> >
> > if there is not simply one to do this what is the best and easiest way to do this, can I set up a background process which sends a single ping to the remote machine?
>
> If you are connected via to your ISP via PPP and you are running pppd
> 2.3.11 and up, you could use the pppd options 'lcp-echo-failure' and
> 'lcp-echo-interval'. These will send and lcp-echo request to your ISP
> with 'lcp-echo-interval' interval and expect an lcp-echo-reply back.
> If it doesn't receive one for 'lcp-echo-failure' times, pppd
> terminates the connection. See pppd(8) for more information.
>
> If you're not connected via PPP, ping should do the trick, as others
> have suggested.
>

I'm going to weigh in on this: I'm an ISP.  We did the Activity Based Costing analysis for our various services, and dial-up is, by a factor of 3, the most expensive
service we offer (on a monthly cost scale).

If you are getting timed out at a reasonable level (say every 15 minutes) then I would respectfully request that you look at this from your ISP's perspective.  A telephone
line costs your ISP a given amount.  Here in Nebraska, that's about $40 a month for the telephone service, $13.75 for each channel on the T1 line, plus electricity,
service, etc.  If you camp on a line not doing anything for long periods, you are consuming a $55 a month resource and contributing ~$20 a month to pay for that.

Rather than figure out ways to tie up the resource, I'd rather see you set your system up so that it got on, did it's business, and got off.  This is far more effective
with a NetBSD system than with Windows, if only because of the ability to schedule CRON jobs.  I used to run my system that way and found that (by streamlining the PPP
start) I was able to do what I needed to do and still only consume the resources I needed to.

Of course, there are lots of ways to keep the line open.  If your ISP is timing you out at a much lower level (say every five minutes) the most effective ways include the
following:

Every few minutes:
1)  query a database somewhere.  'wget' something from a server or two somewhere.  You probably won't download anything
2)  Set up something like "webmin" that queries the status of a server and displays it's health.
3)  Check your E-Mail on your POP or IMAP account.

 Start up your browser and make your homepage one that downloads a new banner ad every 30 seconds.

As people find new ways to cheat the inactivity timers, ISPs find ways to spot that activity.  Most places that do inactivity timing now also watch for traffic types and
amount of traffic passed.  When I was doing inactivity timing, I only counted TCP and UDP traffic (in general) and I watched for the amount of traffic.  If all I saw was
'pings' for 10 minutes, then I'd cut the account off.  If the amount of traffic passed was less than a specific threshold (which I don't publicize) I'd cut them off.

Dave Burgess