RFC 922 INTERNET STANDARD ADDRESSING · BROADCAST · SUBNETS

Subnet Broadcasting: Broadcasting Internet Datagrams in the Presence of Subnets

How to address and forward IP broadcasts when a network is split into subnets, using all-ones numbers and Reverse Path Forwarding.

On rfc-editor.org ↗
PUBLISHED
October 1984
AUTHORS
J. Mogul
ORG
Stanford
STREAM
Legacy
LOCAL BROADCAST ADDRESS
255.255.255.255 (not forwarded)
ALL-HOSTS VALUE
Host number with all bits one
ALL-SUBNETS VALUE
Subnet number with all bits one
GATEWAY ALGORITHM
Reverse Path Forwarding
WORST-CASE ARP LOOP
T**N re-broadcasts
DOI
10.17487/RFC0922

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                      Jeffrey Mogul
Request for Comments: 922                    Computer Science Department
                                                     Stanford University
                                                            October 1984

       BROADCASTING INTERNET DATAGRAMS IN THE PRESENCE OF SUBNETS


Status of this Memo

   We propose simple rules for broadcasting Internet datagrams on local
   networks that support broadcast, for addressing broadcasts, and for
   how gateways should handle them.

   This RFC suggests a proposed protocol for the ARPA-Internet
   community, and requests discussion and suggestions for improvements.
   Distribution of this memo is unlimited.

Acknowledgement

   This proposal here is the result of discussion with several other
   people, especially J. Noel Chiappa and Christopher A. Kent, both of
   whom both pointed me at important references.

1. Introduction

   The use of broadcasts, especially on high-speed local area networks,
   is a good base for many applications.  Since broadcasting is not
   covered in the basic IP specification [12], there is no agreed-upon
   way to do it, and so protocol designers have not made use of it. (The
   issue has been touched upon before, e.g. [6], but has not been the
   subject of a standard.)

   We consider here only the case of unreliable, unsequenced, possibly
   duplicated datagram broadcasts (for a discussion of TCP broadcasting,
   see [10].) Even though unreliable and limited in length, datagram
   broadcasts are quite useful [1].

   We assume that the data link layer of the local network supports
   efficient broadcasting.  Most common local area networks do support
   broadcast; for example, Ethernet [7, 5], ChaosNet [9], token ring
   networks [2], etc.

   We do not assume, however, that broadcasts are reliably delivered.
   (One might consider providing a reliable datagram broadcast protocol
   as a layer above IP.) It is quite expensive to guarantee delivery of
   broadcasts; instead, what we assume is that a host will receive most
   of the broadcasts that are sent.  This is important to avoid
   excessive use of broadcasts; since every host on the network devotes
   at least some effort to every broadcast, they are costly.

Broadcasting Internet Datagrams in the Presence of Subnets


   When a datagram is broadcast, it imposes a cost on every host that
   hears it.  Therefore, broadcasting should not be used
   indiscriminately, but rather only when it is the best solution to a
   problem.

2. Terminology

   Because broadcasting depends on the specific data link layer in use
   on a local network, we must discuss it with reference to both
   physical networks and logical networks.

   The terms we will use in referring to physical networks are, from the
   point of view of the host sending or forwarding a broadcast:

   Local Hardware Network

      The physical link to which the host is attached.

   Remote Hardware Network

      A physical network which is separated from the host by at least
      one gateway.

   Collection of Hardware Networks

      A set of hardware networks (transitively) connected by gateways.

   The IP world includes several kinds of logical network.  To avoid
   ambiguity, we will use the following terms:

   Internet

      The DARPA Internet collection of IP networks.

   IP Network

      One or a collection of several hardware networks that have one
      specific IP network number.

   Subnet

      A single member of the collection of hardware networks that
      compose an IP network.  Host addresses on a given subnet share an
      IP network number with hosts on all other subnets of that IP
      network, but the local-address part is divided into subnet-number

Broadcasting Internet Datagrams in the Presence of Subnets


      and host-number fields to indicate which subnet a host is on.  We
      do not assume a particular division of the local-address part;
      this could vary from network to network.

   The introduction of a subnet level in the addressing hierarchy is at
   variance with the IP specification [12], but as the use of
   addressable subnets proliferates it is obvious that a broadcasting
   scheme should support subnetting.  For more on subnets, see [8].

   In this paper, the term "host address" refers to the host-on-subnet
   address field of a subnetted IP network, or the host-part field
   otherwise.

   An IP network may consist of a single hardware network or a
   collection of subnets; from the point of view of a host on another IP
   network, it should not matter.

3. Why Broadcast?

   Broadcasts are useful when a host needs to find information without
   knowing exactly what other host can supply it, or when a host wants
   to provide information to a large set of hosts in a timely manner.

   When a host needs information that one or more of its neighbors might
   have, it could have a list of neighbors to ask, or it could poll all
   of its possible neighbors until one responds.  Use of a wired-in list
   creates obvious network management problems (early binding is
   inflexible).  On the other hand, asking all of one's neighbors is
   slow if one must generate plausible host addresses, and try them
   until one works.  On the ARPANET, for example, there are roughly 65
   thousand plausible host numbers.  Most IP implementations have used
   wired-in lists (for example, addresses of "Prime" gateways.)
   Fortunately, broadcasting provides a fast and simple way for a host
   to reach all of its neighbors.

   A host might also use a broadcast to provide all of its neighbors
   with some information; for example, a gateway might announce its
   presence to other gateways.

   One way to view broadcasting is as an imperfect substitute for
   multicasting, the sending of messages to a subset of the hosts on a
   network.  In practice, broadcasts are usually used where multicasts
   are what is wanted; datagrams are broadcast at the hardware level,
   but filtering software in the receiving hosts gives the effect of
   multicasting.

   For more examples of broadcast applications, see [1, 3].

Broadcasting Internet Datagrams in the Presence of Subnets


4. Broadcast Classes

   There are several classes of IP broadcasting:

      - Single-destination datagrams broadcast on the local hardware
        net: A datagram is destined for a specific IP host, but the
        sending host broadcasts it at the data link layer, perhaps to
        avoid having to do routing.  Since this is not an IP broadcast,
        the IP layer is not involved, except that a host should discard
        datagram not meant for it without becoming flustered (i.e.,
        printing an error message).

      - Broadcast to all hosts on the local hardware net: A
        distinguished value for the host-number part of the IP address
        denotes broadcast instead of a specific host.  The receiving IP
        layer must be able to recognize this address as well as its own.
        However, it might still be useful to distinguish at higher
        levels between broadcasts and non-broadcasts, especially in
        gateways.  This is the most useful case of broadcast; it allows
        a host to discover gateways without wired-in tables, it is the
        basis for address resolution protocols, and it is also useful
        for accessing such utilities as name servers, time servers,
        etc., without requiring wired-in addresses.

      - Broadcast to all hosts on a remote hardware network: It is
        occasionally useful to send a broadcast to all hosts on a
        non-local network; for example, to find the latest version of a
        hostname database, to bootload a host on a subnet without a
        bootserver, or to monitor the timeservers on the subnet.  This
        case is the same as local-network broadcasts; the datagram is
        routed by normal mechanisms until it reaches a gateway attached
        to the destination hardware network, at which point it is
        broadcast.  This class of broadcasting is also known as
        "directed broadcasting", or quaintly as sending a "letter bomb"
        [1].

      - Broadcast to all hosts on a subnetted IP network (Multi-subnet
        broadcasts): A distinguished value for the subnet-number part of
        the IP address is used to denote "all subnets".  Broadcasts to
        all hosts of a remote subnetted IP network are done just as
        directed broadcasts to a single subnet.

      - Broadcast to the entire Internet: This is probably not useful,
        and almost certainly not desirable.

Broadcasting Internet Datagrams in the Presence of Subnets


   For reasons of performance or security, a gateway may choose not to
   forward broadcasts; especially, it may be a good idea to ban
   broadcasts into or out of an autonomous group of networks.

5. Broadcast Methods

   A host's IP receiving layer must be modified to support broadcasting.
   In the absence of broadcasting, a host determines if it is the
   recipient of a datagram by matching the destination address against
   all of its IP addresses.  With broadcasting, a host must compare the
   destination address not only against the host's addresses, but also
   against the possible broadcast addresses for that host.

   The problem of how best to send a broadcast has been extensively
   discussed [1, 3, 4, 13, 14].  Since we assume that the problem has
   already been solved at the data link layer, an IP host wishing to
   send either a local broadcast or a directed broadcast need only
   specify the appropriate destination address and send the datagram as
   usual.  Any sophisticated algorithms need only reside in gateways.

   The problem of broadcasting to all hosts on a subnetted IP network is
   apparently somewhat harder.  However, even in this case it turns out
   that the best known algorithms require no additional complexity in
   non-gateway hosts.  A good broadcast method will meet these
   additional criteria:

      - No modification of the IP datagram format.

      - Reasonable efficiency in terms of the number of excess copies
        generated and the cost of paths chosen.

      - Minimization of gateway modification, in both code and data
        space.

      - High likelihood of delivery.

   The algorithm that appears best is the Reverse Path Forwarding (RPF)
   method [4].  While RPF is suboptimal in cost and reliability, it is
   quite good, and is extremely simple to implement, requiring no
   additional data space in a gateway.

Broadcasting Internet Datagrams in the Presence of Subnets


6. Gateways and Broadcasts

   Most of the complexity in supporting broadcasts lies in gateways.  If
   a gateway receives a directed broadcast for a network to which it is
   not connected, it simply forwards it using the usual mechanism.
   Otherwise, it must do some additional work.

   6.1. Local Broadcasts

      When a gateway receives a local broadcast datagram, there are
      several things it might have to do with it.  The situation is
      unambiguous, but without due care it is possible to create
      infinite loops.

      The appropriate action to take on receipt of a broadcast datagram
      depends on several things: the subnet it was received on, the
      destination network, and the addresses of the gateway.

         - The primary rule for avoiding loops is "never broadcast a
           datagram on the hardware network it was received on". It is
           not sufficient simply to avoid repeating datagram that a
           gateway has heard from itself; this still allows loops if
           there are several gateways on a hardware network.

         - If the datagram is received on the hardware network to which
           it is addressed, then it should not be forwarded.  However,
           the gateway should consider itself to be a destination of the
           datagram (for example, it might be a routing table update.)

         - Otherwise, if the datagram is addressed to a hardware network
           to which the gateway is connected, it should be sent as a
           (data link layer) broadcast on that network.  Again, the
           gateway should consider itself a destination of the datagram.

         - Otherwise, the gateway should use its normal routing
           procedure to choose a subsequent gateway, and send the
           datagram along to it.

Broadcasting Internet Datagrams in the Presence of Subnets


   6.2. Multi-subnet broadcasts

      When a gateway receives a broadcast meant for all subnets of an IP
      network, it must use the Reverse Path Forwarding algorithm to
      decide what to do.  The method is simple: the gateway should
      forward copies of the datagram along all connected links, if and
      only if the datagram arrived on the link which is part of the best
      route between the gateway and the source of the datagram.
      Otherwise, the datagram should be discarded.

      This algorithm may be improved if some or all of the gateways
      exchange among themselves additional information; this can be done
      transparently from the point of view of other hosts and even other
      gateways.  See [4, 3] for details.

   6.3. Pseudo-Algol Routing Algorithm

      This is a pseudo-Algol description of the routing algorithm a
      gateway should use.  The algorithm is shown in figure 1.  Some
      definitions are:

      RouteLink(host)

         A function taking a host address as a parameter and returning
         the first-hop link from the gateway to the host.

      RouteHost(host)

         As above but returns the first-hop host address.

      ResolveAddress(host)

         Returns the hardware address for an IP host.

      IncomingLink

         The link on which the packet arrived.

      OutgoingLinkSet

         The set of links on which the packet should be sent.

      OutgoingHardwareHost

         The hardware host address to send the packet to.

Broadcasting Internet Datagrams in the Presence of Subnets


      Destination.host

         The host-part of the destination address.

      Destination.subnet

         The subnet-part of the destination address.

      Destination.ipnet

         The IP-network-part of the destination address.

Broadcasting Internet Datagrams in the Presence of Subnets

BEGIN
   IF Destination.ipnet IN AllLinks THEN
      BEGIN
         IF IsSubnetted(Destination.ipnet) THEN
            BEGIN
               IF Destination.subnet = BroadcastSubnet THEN
                  BEGIN      /* use Reverse Path Forwarding algorithm */
                     IF IncomingLink = RouteLink(Source) THEN
                        BEGIN IF Destination.host = BroadcastHost THEN
                              OutgoingLinkSet <- AllLinks -
                           IncomingLink;
                           OutgoingHost <- BroadcastHost;
                           Examine packet for possible internal use;
                        END
                     ELSE  /* duplicate from another gateway, discard */
                        Discard;
                  END
               ELSE
                  IF Destination.subnet = IncomingLink.subnet THEN
                     BEGIN           /* forwarding would cause a loop */
                        IF Destination.host = BroadcastHost THEN
                           Examine packet for possible internal use;
                        Discard;
                     END
                  ELSE BEGIN    /* forward to (possibly local) subnet */
                        OutgoingLinkSet <- RouteLink(Destination);
                        OutgoingHost <- RouteHost(Destination);
                     END
            END
         ELSE BEGIN         /* destined for one of our local networks */
               IF Destination.ipnet = IncomingLink.ipnet THEN
                  BEGIN              /* forwarding would cause a loop */
                     IF Destination.host = BroadcastHost THEN
                        Examine packet for possible internal use;
                     Discard;
                  END
               ELSE BEGIN                     /* might be a broadcast */
                     OutgoingLinkSet <- RouteLink(Destination);
                     OutgoingHost <- RouteHost(Destination);
                  END
            END
      END
   ELSE BEGIN                    /* forward to a non-local IP network */
         OutgoingLinkSet <- RouteLink(Destination);
         OutgoingHost <- RouteHost(Destination);
      END
   OutgoingHardwareHost <- ResolveAddress(OutgoingHost);
END

Figure 1: Pseudo-Algol algorithm for routing broadcasts by gateways

Broadcasting Internet Datagrams in the Presence of Subnets


7. Broadcast IP Addressing - Conventions

   If different IP implementations are to be compatible, there must be
   convention distinguished number to denote "all hosts" and "all
   subnets".

   Since the local network layer can always map an IP address into data
   link layer address, the choice of an IP "broadcast host number" is
   somewhat arbitrary.  For simplicity, it should be one not likely to
   be assigned to a real host.  The number whose bits are all ones has
   this property; this assignment was first proposed in [6].  In the few
   cases where a host has been assigned an address with a host-number
   part of all ones, it does not seem onerous to require renumbering.

   The "all subnets" number is also all ones; this means that a host
   wishing to broadcast to all hosts on a remote IP network need not
   know how the destination address is divided up into subnet and host
   fields, or if it is even divided at all.  For example, 36.255.255.255
   may denote all the hosts on a single hardware network, or all the
   hosts on a subnetted IP network with 1 byte of subnet field and 2
   bytes of host field, or any other possible division.

   The address 255.255.255.255 denotes a broadcast on a local hardware
   network that must not be forwarded.  This address may be used, for
   example, by hosts that do not know their network number and are
   asking some server for it.

   Thus, a host on net 36, for example, may:

      - broadcast to all of its immediate neighbors by using
        255.255.255.255

      - broadcast to all of net 36 by using 36.255.255.255

   without knowing if the net is subnetted; if it is not, then both
   addresses have the same effect. A robust application might try the
   former address, and if no response is received, then try the latter.
   See [1] for a discussion of such "expanding ring search" techniques.

   If the use of "all ones" in a field of an IP address means
   "broadcast", using "all zeros" could be viewed as meaning
   "unspecified".  There is probably no reason for such addresses to
   appear anywhere but as the source address of an ICMP Information
   Request datagram.  However, as a notational convention, we refer to
   networks (as opposed to hosts) by using addresses with zero fields.
   For example, 36.0.0.0 means "network number 36" while 36.255.255.255
   means "all hosts on network number 36".

Broadcasting Internet Datagrams in the Presence of Subnets


   7.1. ARP Servers and Broadcasts

      The Address Resolution Protocol (ARP) described in [11] can, if
      incorrectly implemented, cause problems when broadcasts are used
      on a network where not all hosts share an understanding of what a
      broadcast address is.  The temptation exists to modify the ARP
      server so that it provides the mapping between an IP broadcast
      address and the hardware broadcast address.

      This temptation must be resisted.  An ARP server should never
      respond to a request whose target is a broadcast address.  Such a
      request can only come from a host that does not recognize the
      broadcast address as such, and so honoring it would almost
      certainly lead to a forwarding loop.  If there are N such hosts on
      the physical network that do not recognize this address as a
      broadcast, then a datagram sent with a Time-To-Live of T could
      potentially give rise to T**N spurious re-broadcasts.

8. References

   1.   David Reeves Boggs.  Internet Broadcasting.  Ph.D. Th., Stanford
        University, January 1982.

   2.   D.D. Clark, K.T. Pogran, and D.P. Reed.  "An Introduction to
        Local Area Networks".  Proc. IEEE 66, 11, pp1497-1516,
        November 1978.

   3.   Yogan Kantilal Dalal.  Broadcast Protocols in Packet Switched
        Computer Networks.  Ph.D. Th., Stanford University, April 1977.

   4.   Yogan K. Dalal and Robert M. Metcalfe.  "Reverse Path Forwarding
        of Broadcast Packets".  Comm. ACM 21, 12, pp1040-1048,
        December 1978.

   5.   The Ethernet, A Local Area Network: Data Link Layer and Physical
        Layer Specifications.  Version 1.0, Digital Equipment
        Corporation, Intel, Xerox, September 1980.

   6.   Robert Gurwitz and Robert Hinden.  IP - Local Area Network
        Addressing Issues.  IEN-212, BBN, September 1982.

   7.   R.M. Metcalfe and D.R. Boggs.  "Ethernet: Distributed Packet
        Switching for Local Computer Networks".  Comm. ACM 19, 7,
        pp395-404, July 1976.  Also CSL-75-7, Xerox Palo Alto Research
        Center, reprinted in CSL-80-2.

Broadcasting Internet Datagrams in the Presence of Subnets


   8.   Jeffrey Mogul.  Internet Subnets.  RFC-917, Stanford University,
        October 1984.

   9.   David A. Moon.  Chaosnet.  A.I. Memo 628, Massachusetts
        Institute of Technology Artificial Intelligence Laboratory,
        June 1981.

   10.  William W. Plummer.  Internet Broadcast Protocols.  IEN-10, BBN,
        March 1977.

   11.  David Plummer.  An Ethernet Address Resolution Protocol.
        RFC-826, Symbolics, September 1982.

   12.  Jon Postel.  Internet Protocol.  RFC-791, ISI, September 1981.

   13.  David W. Wall.  Mechanisms for Broadcast and Selective
        Broadcast.  Ph.D. Th., Stanford University, June 1980.

   14.  David W. Wall and Susan S. Owicki.  Center-based Broadcasting.
        Computer Systems Lab Technical Report TR189, Stanford
        University, June 1980.

AI ELI5

On this page
PROBLEMBroadcasting is not covered by the basic IP specification, and the arrival of subnets makes it unclear how to say 'everyone on this network' or how gateways should pass such datagrams along without creating loops.
MECHANISMA host-number or subnet-number field of all ones means broadcast, and gateways follow simple rules: never rebroadcast on the network a datagram arrived from, and for all-subnets broadcasts use Reverse Path Forwarding.
WHY IT MATTERSThe memo is an Internet Standard and has not been obsoleted. It gives hosts a way to broadcast without knowing whether a network is subnetted.

§1Why Broadcast, and Why Rules Are Needed

RFC 922 proposes simple rules for broadcasting Internet datagrams on local networks that support broadcast, for addressing those broadcasts, and for how gateways should handle them. The basic IP specification (RFC 791) does not cover broadcasting, so there was no agreed way to do it and protocol designers had not made use of it.

The memo considers only unreliable, unsequenced and possibly duplicated datagram broadcasts. It assumes the data link layer supports efficient broadcasting, but not that broadcasts are reliably delivered: a host should receive most of them. Because every host that hears a broadcast spends some effort on it, broadcasting should be used only when it is the best solution to a problem.

Broadcasts help when a host needs information without knowing which host can supply it, or wants to give information to many hosts quickly. The RFC contrasts this with wired-in lists of neighbors, which are inflexible, and with polling all plausible host numbers, which is slow (it notes roughly 65 thousand plausible host numbers on the ARPANET).

Shouting is a quick way to find someone when you do not know who has the answer. But everyone has to stop and listen, so you should only shout when you really need to.

§2Hardware Networks, IP Networks and Subnets

Broadcasting depends on the data link layer, so the RFC separates physical from logical networks. Seen from a sending or forwarding host, the local hardware network is the physical link it is attached to, and a remote hardware network is one separated from it by at least one gateway.

An IP network is one hardware network or a collection of them sharing one IP network number. A subnet is a single member of that collection. Hosts on different subnets share the network number, and the local-address part is divided into a subnet number and a host number. The RFC does not assume any particular division. It admits that adding a subnet level is at variance with the IP specification, but expects subnetting to spread. From the point of view of a host on another IP network, it should not matter whether an IP network is one hardware network or many subnets.

A town (the IP network) can have many streets (subnets). Houses on every street share the town name, but each house also has a street number and a house number.

§3Classes of Broadcast

The RFC lists several kinds of IP broadcasting.

  • Single-destination datagram broadcast on the local net: the datagram is for one host, but the sender broadcasts it at the data link layer, perhaps to avoid routing. This is not an IP broadcast, and a host should discard a datagram not meant for it without printing an error.
  • Local hardware net broadcast: a distinguished host-number value means all hosts. This is the most useful case. It lets a host discover gateways without wired-in tables and is the basis for address resolution protocols.
  • Directed broadcast to a remote hardware network: the datagram is routed normally until it reaches a gateway attached to the destination network, which then broadcasts it. The RFC also calls this a 'letter bomb'.
  • Multi-subnet broadcast: a distinguished subnet-number value means all subnets of a subnetted IP network.
  • Broadcast to the entire Internet: probably not useful and almost certainly not desirable.

For reasons of performance or security, a gateway may choose not to forward broadcasts, and banning broadcasts into or out of an autonomous group of networks may be a good idea.

You can whisper to one person, shout to one room, shout into another room through a helper, or shout to a whole building. Shouting to the entire world is a bad idea.

§4How Hosts and Gateways Handle Broadcasts

A host's IP receiving layer must be modified so that it compares a datagram's destination not only with the host's own addresses but also with the broadcast addresses that apply to it. To send a local or directed broadcast, a host just uses the right destination address and sends as usual; any sophisticated algorithm needs to live only in gateways.

For a local broadcast, a gateway follows these rules in order. The primary loop-avoidance rule is never broadcast a datagram on the hardware network it was received on. Merely ignoring datagrams the gateway itself sent is not enough when several gateways share a network.

  • If the datagram arrived on the network it is addressed to, do not forward it, but treat the gateway as one of its destinations.
  • Otherwise, if it is addressed to a hardware network the gateway is connected to, send it as a data link broadcast there, and again count as a destination.
  • Otherwise, use normal routing to pick the next gateway.

A directed broadcast for a network the gateway is not connected to is simply forwarded the usual way.

A helper who hears a shout may pass it to the right street, but must never shout it back onto the street it came from, or the shout would bounce around forever.

§5Reverse Path Forwarding for All-Subnets Broadcasts

The hardest case is a broadcast to every subnet of an IP network. The RFC says the best method it knows is Reverse Path Forwarding (RPF). It is suboptimal in cost and reliability but quite good, extremely simple, and needs no additional data space in a gateway. The criteria for a good method include no change to the IP datagram format, reasonable efficiency, minimal gateway modification and a high likelihood of delivery.

The rule is: a gateway forwards copies of the datagram along all connected links if and only if the datagram arrived on the link that is part of the best route between the gateway and the source of the datagram. Otherwise it discards the datagram as a duplicate. Non-gateway hosts need no extra complexity. The RFC notes the method can be improved if gateways exchange additional information.

The memo also gives a pseudo-Algol routing procedure for gateways (its Figure 1). It checks whether the destination network is directly attached, whether it is subnetted, and whether the subnet or host part is the broadcast value. Depending on the answer it forwards, examines the packet for the gateway's own use, or discards it to avoid a loop.

Each helper passes the shout on only if it came from the direction of the shortest road back to the person who first shouted. Copies that arrive some other way are thrown away, so the shout spreads out without circling back.

§6Broadcast Address Conventions

For different implementations to interoperate, there must be a convention for 'all hosts' and 'all subnets'. The RFC picks a number whose bits are all ones for both, because it is unlikely to belong to a real host (this assignment was first proposed in IEN-212). Using all ones for 'all subnets' too means a sender does not need to know how the destination address is divided into subnet and host fields, or whether it is divided at all.

The address 255.255.255.255 is a broadcast on the local hardware network that must not be forwarded. It can be used by hosts that do not know their network number and are asking a server for it. As an example, a host on net 36 can reach all of its neighbors with 255.255.255.255 and all of net 36 with 36.255.255.255, without knowing whether the net is subnetted. A robust application might try the first and, if there is no response, try the second.

All zeros could be read as 'unspecified'. The RFC says it probably has no reason to appear except as the source address of an ICMP Information Request. As a notation, a network is written with zero fields, so 36.0.0.0 means network number 36.

A special house number made only of the biggest digits means 'everybody'. Because nobody lives at that number, it is safe to use for shouting to all.

BROADCAST ADDRESS CONVENTIONS IN RFC 922
  • 255.255.255.255Local broadcast — Broadcast on the local hardware network; must not be forwarded.
  • 36.255.255.255All hosts of net 36 — One hardware network, or all subnets of a subnetted network, whatever the split.
  • 36.0.0.0Network 36 — Zero fields name a network rather than a host.

§7ARP Servers and Broadcast Loops

The RFC warns about the Address Resolution Protocol (RFC 826). On a network where not all hosts agree on what the broadcast address is, an ARP server could be tempted to map the IP broadcast address to the hardware broadcast address. The RFC says this temptation must be resisted: an ARP server should never respond to a request whose target is a broadcast address.

Such a request can only come from a host that does not recognize the broadcast address, and answering would almost certainly cause a forwarding loop. If N hosts on the physical network do not recognize the address as broadcast, a datagram with a Time-To-Live of T could give rise to T**N spurious re-broadcasts.

The memo has no dedicated security section. Apart from this warning, it only notes that a gateway may refuse to forward broadcasts for performance or security reasons.

If a helper wrongly tells confused people where to send a shout, the shout can multiply as it bounces between them. So the helper must stay silent about that.

§8References

8RFC 917Mogul, J., "Internet Subnets", RFC 917, October 1984.October 198411RFC 826Plummer, D., "An Ethernet Address Resolution Protocol", RFC 826, September 1982.November 198212RFC 791Postel, J., "Internet Protocol", RFC 791, September 1981.September 1981
4Dalal, Y. and R. Metcalfe, "Reverse Path Forwarding of Broadcast Packets", Comm. ACM 21, 12, December 1978.
1Boggs, D., "Internet Broadcasting", Ph.D. Thesis, Stanford University, January 1982.