[comp.protocols.tcp-ip] ICMP Information Request Message format

sale@ed.uucp (Ed Sale) (03/16/89)

RFC 792 when describing the Information Request message, states:

	This message may be sent with the source network in the IP header
	source and destination address fields zero (which means "this"
	network).  The replying IP module should send the reply with the
	address fully specified.  This message is a way for a host to 
	find out the number of the network it is on.

Douglas Comer in "Internetworking with TCP/IP", states:

	Machines use the ICMP information request message to obtain an
	Internet address for a network to which they attach; it is an
	alternative to RARP.

I'm confused.  Which does it do - get the network part of the internet
address (in which case how does it know what class network address it
is to determine how many bytes are host address?) - or get the entire
internet address translated from the hardware address in the physical
header - or both?


Ed Sale

...!uunet!ingr!b11!sale  or  b11!ed!sale@ingr.com

Ed Sale

..!uunet!ingr!b11!sale  or  b11!ed!sale@ingr.com

hedrick@athos.rutgers.edu (Charles Hedrick) (03/17/89)

I do not think you are confused.  If Comer says ICMP Information
Request can be used as a complete replacement for RARP, then he is
confused.  However it could be used in some cases.  According to
RFC792, ICMP Information Request can be used in the case where a host
knows its own host number, but not its network number.  The source
address would be thus be something like 0.0.0.123.  The host
generating the reply fills in the address by supplying the local
network number.  In the early days, there were some schemes that
mapped the host number into the low-order byte of the Ethernet
address, derived it from the machine serial number, etc.  In such a
situation the local software might reasonably be able to deterine the
local host number but not the network number.  In practice I don't
think anybody uses such schemes these days.  So this technique for
finding your own address isn't much use.  I suppose one could extend
ICMP information request by allowing a source address of 0.0.0.0 where
a host didn't know anything about its address at all.  If the system
generating the reply can see the Ethernet address from which the
request came, and if it has a table of Ethernet address vs IP address
(i.e. the data needed to use RARP), it would then be in a position to
fill in the full address.  While one could imagine using such a
technique, I've never heard of it being done.  4.3 BSD will work if
you supply 0.0.0.123, but not 0.0.0.0.  (If you did that, it would
return an address like 128.6.0.0, i.e. the network number with the
zero still in the low-order end.)  In my view, that is technically
what RFC 792 says to do.  I suggest using BOOTP to find your IP
address.  Its advantage over RARP is that it will work even if you are
separated from the bootp server by a router.  It is also possible to
us bootp to give configuration information other than just the IP 
address.

braden@VENERA.ISI.EDU (03/22/89)

The Host Requirements RFC draft says ICMP Information Request/Response is
a SHOULD NOT.  The discussion notes that RARP and BOOTP are better
approaches to booting a diskless host.

Bob Braden