Summary

  • RFC 919 chose an all-ones host field for “all hosts” and made 255.255.255.255 a non-forwarded broadcast on the connected network.
  • RFC 922 extended the same convention across subnet scopes without changing the IP datagram format.
  • RFC 1122 standardized the all-ones forms and recommended that receivers recognize older all-zero variants, creating an asymmetric migration rule.

When one destination stopped naming one host

The basic IPv4 specification did not define an agreed way to broadcast an Internet datagram. RFC 919 began from the link layers that already offered an efficient way to reach every station on a local network and asked what destination an IP packet should carry when every listening host was meant to accept it.

That was not merely a question of transmission mechanics. A host normally accepts a datagram because the destination equals one of its own IP addresses. Supporting broadcast meant adding another class of destination that every receiver on the relevant network would recognize as its own, even though no single host owned it.

RFC 919 kept the service deliberately weak. A broadcast datagram was unreliable, unsequenced and possibly duplicated. Every listening host paid at least some processing cost, so broadcast was to be used when it was the best solution, not as a reliable group-delivery primitive.

Choosing a number for everyone

Interoperability required a distinguished host number meaning “all hosts.” The choice was technically arbitrary because the local network could map the IP destination to its own broadcast address. RFC 919 selected the value whose bits were all ones: it was unlikely to have been assigned to a real host, and the rare conflicting assignment could be renumbered.

The rule produced two immediately different scopes. The destination 255.255.255.255 meant every host on the connected physical network and was not to be forwarded. A host that did not yet know its network number could still use it to ask a local service for help. By contrast, an address such as 36.255.255.255 meant every host on network 36. Routers could carry the datagram toward that network before the last gateway expanded it into a link-layer broadcast.

The same bit pattern therefore did not always mean the same geographic reach. Its position within the address hierarchy mattered. All ones in the whole address produced a limited local broadcast; all ones only in the host part produced a directed broadcast to the selected network.

RFC 919 gave zero fields the contrasting meaning of unspecified or of a network as a whole in notation. In its example, 36.0.0.0 denoted network 36, while 36.255.255.255 denoted all hosts on network 36. That tidy contrast did not erase deployed systems that used zeroes for broadcast, but it established which direction the standard would take.

Extending the meaning through subnets

Subnetting divided the local part of an address into a subnet number and a host number. RFC 922 showed that broadcasting could follow this new hierarchy without changing the IP datagram format. The existing address bits could name every host on one hardware network, every host on one subnet, or all subnets of a network, depending on which fields were set to the distinguished value.

This flexibility moved complexity into interpretation and forwarding. A receiver needed the active address mask to know where the network, subnet and host fields lay. A gateway needed to decide whether to forward normally, emit a link-layer broadcast on a connected network, or stop.

Loop prevention was part of the contract. RFC 922's primary rule was never to broadcast a datagram on the hardware network from which it arrived. Merely avoiding packets a gateway heard from itself was insufficient when multiple gateways could hear and repeat one another.

The danger also appeared at the boundary with ARP. RFC 919 warned that an ARP server must not answer a request whose target was an IP broadcast address. Such a request came from a host that had failed to recognize the special destination. Providing a unicast-looking mapping could feed a forwarding loop, and several confused hosts could multiply rebroadcasts dramatically.

The address convention was therefore inseparable from recognition. A broadcast value worked only when hosts, ARP behavior and gateways agreed that it was not an ordinary host address.

Standard senders, tolerant receivers

RFC 1122 consolidated four standard all-ones forms. It described limited broadcast as {-1,-1}, directed broadcast as {network,-1}, subnet-directed broadcast as {network,subnet,-1}, and all-subnets directed broadcast as {network,-1,-1}. In that notation, minus one means every bit in the field is one.

Hosts were required to recognize the standard forms as incoming destinations. Yet the specification also acknowledged a class of implementations, including 4.2BSD descendants, that substituted zero for minus one. Hosts should recognize those non-standard zero forms too. An interface could optionally choose which form to send, but its default should be the standard all-ones form.

This was an asymmetric migration strategy. Reception remained liberal enough to communicate across deployed disagreement. Transmission converged on one convention so that the disagreement would not be renewed indefinitely. The old bytes were not declared equally standard; they were preserved as compatibility input.

RFC 1122 also tied the IP and link-layer meanings together. When a host sent on a link-layer broadcast address, the IP destination had to be a legal broadcast or multicast address. Conversely, a host should discard a frame received as a link broadcast if its IP destination was neither broadcast nor multicast. Hardware delivery alone was not authority for every IP stack to process an ordinary unicast packet.

Why limited scope improved robustness

RFC 1122 recommended the limited broadcast address for the connected network. A subnet-directed address could confuse machines that did not understand subnetting or that divided the address differently. Those hosts might see what the sender intended as “everyone here” as an address for some other individual host.

The all-ones convention did not remove those differences; it supplied a consistent vocabulary for expressing them. The limited form avoided depending on knowledge of the connected network's number and mask, and its non-forwarding rule placed a hard boundary around propagation.

Directed broadcast remained a different operation. RFC 919 allowed gateways to refuse forwarding for performance or security reasons. The destination described an intended scope, but policy and topology still controlled whether the packet would reach the gateway responsible for expanding it.

What the address contract established

IPv4 broadcast addressing turned an existing link capability into a network-layer convention without adding a header field. It reserved address values, defined their scope through address structure, constrained gateway behavior and made receiver compatibility part of deployment.

The history is not simply that ones beat zeroes. All ones became the stable output of conforming senders, while zero-form acceptance remained a transitional duty for receivers. That combination let implementations converge without demanding an instantaneous flag day.

Nor did “all hosts” mean reliable delivery. Broadcast could be lost or duplicated, gateways could restrict directed forms, and each listener still had to spend resources deciding what to do with the packet. The durable achievement was narrower: hosts and routers gained a shared way to recognize when a destination named a scope rather than a single machine.

Sources