For this case, assume that the requesting host is on class A network 36.0.0.0, has address 36.40.0.123, that there is a gateway at 36.40.0.62, and that a 8-bit wide subnet field is in use, that is, the address mask is 255.255.0.0.
The most efficient method, and the one we recommend, is for a host to first discover its own address (perhaps using "RARP" [4]), and then to send the ICMP request to 255.255.255.255:
Source address: 36.40.0.123
Destination address: 255.255.255.255
Protocol: ICMP = 1
Type: Address Mask Request = AM1
Code: 0
Mask: 0
The gateway can then respond directly to the requesting host.
Source address: 36.40.0.62
Destination address: 36.40.0.123
Protocol: ICMP = 1
Type: Address Mask Reply = AM2
Code: 0
Mask: 255.255.0.0
Suppose that 36.40.0.123 is a diskless workstation, and does not
know even its own host number. It could send the following
datagram:
Source address: 0.0.0.0
Destination address: 255.255.255.255
Protocol: ICMP = 1
Type: Address Mask Request = AM1
Code: 0
Mask: 0
36.40.0.62 will hear the datagram, and should respond with this
datagram:
Source address: 36.40.0.62
Destination address: 255.255.255.255
Protocol: ICMP = 1
Type: Address Mask Reply = AM2
Code: 0
Mask: 255.255.0.0
Note that the gateway uses the narrowest possible broadcast to
reply. Even so, the over use of broadcasts presents an
unnecessary load to all hosts on the subnet, and so the use of the
"anonymous" (0.0.0.0) source address must be kept to a minimum.
If broadcasting is not allowed, we assume that hosts have wired-in information about neighbor gateways; thus, 36.40.0.123 might send this datagram:
Source address: 36.40.0.123
Destination address: 36.40.0.62
Protocol: ICMP = 1
Type: Address Mask Request = AM1
Code: 0
Mask: 0
36.40.0.62 should respond exactly as in the previous case.
Source address: 36.40.0.62
Destination address: 36.40.0.123
Protocol: ICMP = 1
Type: Address Mask Reply = AM2
Code: 0
Mask: 255.255.0.0