Re: sending message to PC that is offline

From: Rod Smith (rodsmith_at_nessus.rodsbooks.com)
Date: 04/08/04


Date: Thu, 8 Apr 2004 12:18:54 -0400

In article <ebf3e1ca.0404071927.336aaaa0@posting.google.com>,
        marcuj3341@yahoo.com (hnr) writes:
>
> Suppose someone who is, say, a football fan is subscribed to a service
> run by a company, so that every time a news event happens that fits
> certain criteria, e.g. every time his favorite football team looses,
> the company's server will instantly "notify" his PC, in any way
> whatsoever
...
> And suppose I insist that the user will *NOT* have to do anything such
> as receive a phone call or SMS, or open a browser first.

This sort of thing would *REQUIRE* that the user run some type of
software. It COULD be done simply by having a browser always open to a Web
page, with an automatic refresh interval specified. The page could then be
updated by the service and the browser would display the updated
information quickly. You could also use e-mail, various IM protocols, or
whatnot for similar effects.

> The main problem seems to be that the ISPs I know require you (at
> least in case of DSL. maybe in cable too?) to log in with a username
> and a password, and the user's PC automatically terminates the
> connection after a certain, probably user-configurable, idle time,
> just like in analog connections.

First, this is a characteristic of PPPoE (and I believe PPPoA). To the
best of my knowledge, no cable modem systems use this technology, so it's
not an issue with them. Also, not all DSL connections use PPPoE or PPPoA;
some use static IP addresses. (In theory, some might use DHCP, but I
don't believe that's very common.) Second, the automatic logout can be
easily overcome by generating network traffic on the client side. Of
course, the ISPs have the automatic disconnect for a reason (mainly to
save a bit of money by recycling IP addresses, I believe; but there's
also some potential security benefit from keeping the computer
disconnected, and hence not vulnerable to certain types of attack, when
the user isn't actively using the Internet connection). I know of no way,
with the current TCP/IP Internet structure, to signal a computer that's
not connected to make a connection -- at least, not without adding more
hardware (such as a conventional dial-in modem and phone line). In
principle, some sort of "wake-up" protocol could be added, but that would
require changes to some level of protocols (perhaps the DSL protocols
themselves, or perhaps something squeezed in atop them but below or
parallel to PPPoE).

In sum, the only way what you want will work, particularly across
technologies (DSL, cable modem, etc.), is to assume either an always-up
TCP/IP connection or user-side initiation of communications. Looking for
a way to "wake up" a computer with a dropped PPPoE connection is simply
looking for headaches.

> can anyone roughly estimate how likely it is, in average,
> for a given typical PC user with a broadband modem, anywhere in the
> world, at a given point in time to be logged out?

That'd be hard to estimate, simply because it depends on how common it is
for people to shut off their computers when not in use. You'd need a
real-life user survey to do that. I don't know if such surveys have been
done. Then you'd need to add in an estimate of how many people use DSL
vs. cable modems, and how many DSL connections use PPPoE or PPPoA vs.
static IP addresses or DHCP. Of course, all of this also applies only to
people with some form of broadband access.

> Maybe the solution is the Wake-on-LAN (or wake-on-Modem???), mentioned
> in some of your kind responses.

No, this won't help. When PPPoE disconnects, the computer no longer has
an IP address, so if your architecture involves a central database
somewhere sending packets to users by IP address, the packets sent won't
even hit the user's DSL modem; they'll either get dropped or be directed
to somebody else's computer.

> Are there any DSL modems that do the frequency
> filtering in their own hardware (i.e. no separate filter) or in
> software, so that the filtering can be controlled by a driver??? And
> if there are, then is it possible to write a driver that tells the DSL
> modem that when there is no socket open, the modem must *NOT* ignore
> incoming phone calls,

I'm not an expert on low-level DSL hardware, but I've never heard of such
a beast. Even if there were, if you actually want to set up a service
such as you're describing, requiring users to buy new modems to use the
service would be a very bad starting point. You'd then also have to track
which users need phone calls for notifications, and the phone calls could
end up being a major annoyance for users (after all, their telephones
would ring). Then you'd have to pay for the phone calls, which would
raise the price of the service.

> Does the
> answer to the question whether it's always the same address or not
> depend on the ISP? On the user settings?

The ISP. With PPPoE, the IP address is virtually certain to change fairly
frequently. With DHCP, the IP address is likely to change much less
frequently. With static IP addresses, the IP address will change very
infrequently. Most ISPs support only one of these technologies, although
some offer users a choice (typically at different service levels, such as
PPPoE for "home" accounts and static IP addresses for "business"
accounts).

> How typical (generally, in
> the world, for broadband users) is it for a user NOT to have always
> the same address? I mean, how much of a problem may this be?

It's very common. I recommend you not build a business on the assumption
that residential users will have fixed IP addresses.

> can I use that IP address even
> when the user is logged out, to "tell" the PC (e.g. my application) to
> log in???

In a PPPoE context, no. In the case of PPPoE, "logged out" means "has no
IP address." In the context of DHCP or static IP addresses, the question
is essentially meaningless, because there's no such thing as "logged out"
from the network. (Well, I suppose the computer could be turned off but
the network connection shut down, which would be essentially the same as
a "logged out" PPPoE user.)

In sum, for the sort of service you're describing, the simplest solution
is to either provide a custom client or use an existing protocol (HTTP or
an IM protocol, for instance) to have the client program (on users'
computers) periodically poll a server you operate to discover if there's
new information available. Alternatively, the client could simply initiate
a connection and keep it open, and the server could tell the client the
moment new information comes in. This procedure will make all your
concerns about disconnected PPPoE sessions, "waking up" modems, etc.,
disappear.

In fact, there are already programs and services like what you describe.
For instance:

- The XFce weather plugin (http://xfce-goodies.berlios.de/) polls a
  weather Web site to display a summary of the weather on the XFce task
  bar. (XFce is a desktop environment for Unix-like OSs.)
- The Weather Underground (http://www.wunderground.com) Web site
  automatically refreshes itself every few minutes, so you can leave a
  Web browser open to see an up-to-date weater report.
- Many stock ticker programs exist that display current stock reports
  on your desktop. I've never used these, but a Google search turns up
  many hits.

I'm sure there are others. I realize you're describing something that can
be personalized and more generalized than these three examples. I
wouldn't be surprised if something like that already exists, but I
haven't looked for such a beast. In any event, rather than try to build
an entirely new Rube Goldberg architecture for your service, I suggest
you look into how these existing tools do what they do.

-- 
Rod Smith, rodsmith@rodsbooks.com
http://www.rodsbooks.com
Author of books on Linux, FreeBSD, and networking


Relevant Pages

  • Re: sending message to PC that is offline
    ... typical DSL or cable modem and all that stuff. ... the service's client application's own TCP connection, ... notification has to first "wake" the PC or modem - see below). ... The main problem seems to be that the ISPs I know require you (at ...
    (microsoft.public.win32.programmer.tapi)
  • Re: connecting a FreeBSD-4.10 to Internet using DSL with static ip address
    ... I take this system around to a site using cable, dsl, my office where I connect ... Both the cable modem and the DSL modem I connect ... The DSL connection setup uses an ADSL modem ...
    (freebsd-questions)
  • Re: Can a bad Etherlink card effect browser ability to access the net?
    ... How might I log into my DSL box and verify the ... I'm a little curious about the two ADSL modem devices. ... For example, in this thread, they mention PPPOE coming from the ... The router had PPPOE ...
    (alt.comp.hardware.pc-homebuilt)
  • Re: Trouble obtaining IP address
    ... I have an old computer connected to internet via DSL modem which used to ... I don't think you've mentioned whether you've actually logged into the DSL service. ... Create a new network connection and see if that helps. ...
    (microsoft.public.windowsxp.network_web)
  • Re: ISA 2004 - Microsoft Firewall Event ID 14147
    ... PPPoE connection also isn't available till late in the boot process (which ... only those ports I want open are forwarded to the server. ... The 3COM NIC for Bellsouth connects directly to the DSL modem, ...
    (microsoft.public.windows.server.sbs)