tcp-ip@ucbvax.ARPA (06/13/85)
From: Jeff Mogul <mogul@Navajo> [If someone knows how to forward this to Ira Winston, the author of RFC948, I would appreciate it. He's not listed in the NIC WHOIS database.] RFC948, "Two Methods for the Transmission of IP Datagrams Over IEEE 802.3 Networks", seems in general to be a codification of the prevailing philosophy, and I have no complaints about that (although I still don't understand why they replaced the "type" field with a useless "length" field!) However, one statement lit up the warning lights: Broadcast Address The broadcast Internet address (the address on that network with a host part of all binary ones) should be mapped to the broadcast 802.3 address (of all binary ones). >>>> The use of the ARP dynamic discovery procedure is strongly <<<< >>>> recommended. <<<< Given the indentation of the document, I read this as recommending the use of ARP to discover the mapping between IP and 802.3 broadcast addresses. In my opinion, this should not only be strongly "disrecommended", it should be prohibited. In the best of all possible worlds, there would be nothing wrong with this. However, in the real world, we have systems that (a) don't know how to recognize some of the IP broadcast addresses now in use (b) forward packets that they receive, if the destination address is not one of their own (or a recognized broadcasts.) Specifically, many 4.2BSD hosts (a) don't know about all 1's broadcasts, only all 0's, and (b) by default act as gateways. Imagine what happens when another host sends a broadcast to, say, 36.255.255.255. A 4.2 host receives the packet, says "this ain't for me and I don't recognize it as a broadcast, so I'd better send it on its way." It sends an ARP request on net 36, and suppose it gets a reply: well, then it sends the packet out again, using the hardware broadcast address provided by ARP, hears the packet again, ad nauseum. With just one 4.2 host on the net, we might see on the order of 255 repetitions (until the TTL field got to zero.) With N such hosts on a network, we could get up to 255^N repetitions (or maybe it's N^255, either way it's bad.) So: an ARP server should NEVER give out a broadcast hardware address! -Jeff