Approaches of interprocess communication
Steve Holden
steve at holdenweb.com
Sun Feb 18 09:33:24 EST 2007
Donn Cave wrote:
> Quoth Steve Holden <steve at holdenweb.com>:
> | Ben Finney wrote:
> ...
> | > If a programmer decides on behalf of the user that "localhost" should
> | > be treated specially, that programmer is making an error.
> |
> | Inter-process TCP/IP communication between two processes on the same
> | host invariably uses the loopback interface (network 127.0.0.0).
> | According to standards, all addresses in that network space refer to the
> | local host, though 127.0.0.1 is conventionally used.
> |
> | The transmit driver for the loopback interface receives a datagram from
> | the local network layer and immediately announces its reception back to
> | the local network layer.
>
> Are you saying, in that first paragraph, that if for example I telnet to
> my local host's external IP address, to a service that bound explicitly to
> the external interface -- I'll actually be going through the loopback
> interface anyway, invariably regardless of host network implementation?
>
I wasn't specifically saying that, no. However on Solaris I have
observed local connections to an external interface actually increasing
the packet count on the loopback, but I can't confirm whether those
connections were to services specifically bound only to the external
interface.
Certainly on Windows XP there is a host-specific route via 127.0.0.1 to
the external interfaces as well as the network route via the external
interface. I wouldn't necessarily expect this to extend to other
platforms. This is demonstrated by the following output from "route
print". I have chopped the metric column to avoid line wrapping.
=====================================================================
Active Routes:
Network Destination Netmask Gateway Interface
0.0.0.0 0.0.0.0 192.168.123.254 192.168.123.123
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
192.168.123.0 255.255.255.0 192.168.123.123 192.168.123.123
192.168.123.123 255.255.255.255 127.0.0.1 127.0.0.1
192.168.123.255 255.255.255.255 192.168.123.123 192.168.123.123
192.168.174.0 255.255.255.0 192.168.174.1 192.168.174.1
192.168.174.1 255.255.255.255 127.0.0.1 127.0.0.1
192.168.174.255 255.255.255.255 192.168.174.1 192.168.174.1
224.0.0.0 240.0.0.0 192.168.123.123 192.168.123.123
224.0.0.0 240.0.0.0 192.168.174.1 192.168.174.1
255.255.255.255 255.255.255.255 192.168.123.123 3
255.255.255.255 255.255.255.255 192.168.123.123 192.168.123.123
255.255.255.255 255.255.255.255 192.168.174.1 192.168.174.1
Default Gateway: 192.168.123.254
=====================================================================
regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Blog of Note: http://holdenweb.blogspot.com
See you at PyCon? http://us.pycon.org/TX2007
More information about the Python-list
mailing list