[fa.tcp-ip] Minor nit with RFC948 - ARP and broadcasts

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