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: 0The 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.0Suppose 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: 036.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.0Note 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: 036.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