[OT] Help Request: Dialup, CardBus Cell Phone, etc. Modem IP Loopback Test

Rubyists,

If any of you having a "not-always-on" internet connection would
be willing to try my test program on your systems, I'd be most
grateful:

http://tastyspleen.net/~billk/ruby/loopback-test/

Years ago, some colleagues and I learned that some operating
systems can attempt to dial out to establish an internet connection,
even when a program is only trying to do inter-process communication
using the IP stack over loopback (localhost). I am hoping that this
has changed in the intervening years.

The purpose of this test is to discover whether your OS can handle
UDP and TCP activity on localhost, without the OS trying to dial
your modem and establish an internet connection.

The program performs two tests. UDP over loopback, and TCP over
loopback. Before the tests, you are asked to verify that your
system is currently NOT connected to the internet. After the tests,
the program gives the option to automatically submit the results
via email, or explains how to submit the results manually.

No personal information will be gathered during this test, and a
summary of the results will be made available to everyone.

Here's hoping all tests come back negative!

Thanks very much for your help!

Regards,

Bill

Maybe the apps are selecting the wrong 'local address', i.e. using the external address as if it were a loopback address.

I think I've even seen that.

···

On 3 Jan 2008, at 08:17, Bill Kelly wrote:

Rubyists,

If any of you having a "not-always-on" internet connection would
be willing to try my test program on your systems, I'd be most
grateful:

http://tastyspleen.net/~billk/ruby/loopback-test/

Years ago, some colleagues and I learned that some operating
systems can attempt to dial out to establish an internet connection,
even when a program is only trying to do inter-process communication
using the IP stack over loopback (localhost). I am hoping that this
has changed in the intervening years.

The purpose of this test is to discover whether your OS can handle
UDP and TCP activity on localhost, without the OS trying to dial
your modem and establish an internet connection.

The program performs two tests. UDP over loopback, and TCP over
loopback. Before the tests, you are asked to verify that your
system is currently NOT connected to the internet. After the tests,
the program gives the option to automatically submit the results
via email, or explains how to submit the results manually.

No personal information will be gathered during this test, and a
summary of the results will be made available to everyone.

Here's hoping all tests come back negative!

Thanks very much for your help!

Regards,

Bill

Bill Kelly wrote:

Rubyists,

If any of you having a "not-always-on" internet connection would
be willing to try my test program on your systems, I'd be most
grateful:

http://tastyspleen.net/~billk/ruby/loopback-test/

Years ago, some colleagues and I learned that some operating
systems can attempt to dial out to establish an internet connection,
even when a program is only trying to do inter-process communication
using the IP stack over loopback (localhost). I am hoping that this
has changed in the intervening years.

Did you rule out DNS lookups? Try setting Socket.do_not_reverse_lookup=true.

Pickaxe II on Socket#addr:

Returns the domain, port, name, and IP address of sock as a four-element array. The name will be returned as an address if the do_not_reverse_lookup flag is true.

u = UDPSocket.new
u.bind('localhost', 8765)
u.addr ? ["AF_INET", 8765, "localhost", "127.0.0.1"]
BasicSocket.do_not_reverse_lookup = true
u.addr ? ["AF_INET", 8765, "127.0.0.1", "127.0.0.1"]

···

--
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Hi James and Joel,

Maybe the apps are selecting the wrong 'local address', i.e. using the external address as if it were a loopback address.

Did you rule out DNS lookups? Try setting Socket.do_not_reverse_lookup=true.

The original code (in Java) is now lost to the mists of time
(and previous employers :slight_smile:

So I can't say for SURE that we were properly binding to loopback
instead of 0.0.0.0.

But at the time we got bitten pretty badly by certain OS' wanting
to dial the modem, and it was a problem that Apple acknowledged as
unfixable in their OS.9 systems at the time (even over loopback.)
We also experienced the problem on Win 9x systems with AOL accounts.

Given that we only experienced the problem in certain OS and
software environments, I was hoping a variety of dialup users might
try my test program, in the hopes of learning whether there may yet
any systems out there that exhibit the undesired behavior.

Regards,

Bill

···

From: "James Tucker" <jftucker@gmail.com>
From: "Joel VanderWerf" <vjoel@path.berkeley.edu>

The original code (in Java) is now lost to the mists of time
(and previous employers :slight_smile:

So I can't say for SURE that we were properly binding to loopback
instead of 0.0.0.0.

But at the time we got bitten pretty badly by certain OS' wanting
to dial the modem, and it was a problem that Apple acknowledged as
unfixable in their OS.9 systems at the time (even over loopback.)
We also experienced the problem on Win 9x systems with AOL accounts.

Although I haven't spent any time looking at it professionally, some of the older AOL installations did nasty things hooking over the dial up and IP stacks. In some versions it would even auto-launch the AOL branded browser etc.

Given that we only experienced the problem in certain OS and
software environments, I was hoping a variety of dialup users might
try my test program, in the hopes of learning whether there may yet
any systems out there that exhibit the undesired behavior.

Some might. If you want truly local comms, you could use named pipes and / or unix sockets (clearly there are platform specifics to be dealt with).

···

On 3 Jan 2008, at 15:31, Bill Kelly wrote:

Regards,

Bill