A broadcast address is a network address used to transmit to all devices connected to a multiple-access communications network. A message sent to a broadcast address may be received by all network-attached hosts.
In contrast, a multicast address is used to address a specific group of devices, and a unicast address is used to address a single device.
For network layer communications, a broadcast address may be a specific IP address. At the data link layer on Ethernet networks, it is a specific MAC address.
IP networking
In Internet Protocol version 4 (IPv4) networks, broadcast addresses are special values in the host-identification part of an IP address. The all-ones value was established as the standard broadcast address for networks that support broadcast.[1] This method of using the all-ones address was first proposed by R. Gurwitz and R. Hinden in 1982.[2] The later introduction of subnets and Classless Inter-Domain Routing changed this slightly, so that the all-ones value becomes the local broadcast address and the all-ones host address of each subnet is that subnet's directed broadcast address.[3]
The directed broadcast address for any IPv4 host can be obtained by taking the bit complement (bitwise NOT) of the subnet mask and then performing a bitwise OR operation with the host's IP address. A shortcut to this process (for common masks using only 0 and 1 bit placements) is to simply take the host's IP address and set all bits in the host identifier portion of the address (any bit positions which hold a 0 in the subnet mask) to 1.
As shown in the example below, in order to calculate the directed broadcast address to transmit a packet to an entire IPv4 subnet using the private IP address space 172.16.0.0/12, which has the subnet mask 255.240.0.0, the broadcast address is calculated as 172.16.0.0 bitwise ORed with 0.15.255.255 = 172.31.255.255. Directed broadcasts always work within a subnet but, for security reasons, many routers disable the forwarding of these by default.[4]
Network IP address breakdown for 172.16.0.0/12 | Binary form | Dot-decimal notation |
---|---|---|
In bold below is shown the host part (suffix) of the IP address, with the network address prefix being the non-bold bits to its left. To obtain the broadcast address, the host bits get set to all 1's, while the network address prefix bits remain intact. | ||
1. Network IP Address | 10101100.00010000.00000000.00000000
|
172.16.0.0 |
2. Subnet Mask, or just "Netmask" for short (The '/12' in the IP address in this case means only the left-most 12 bits are 1s, as shown here. This reserves the left 12 bits for the network address (prefix) and the right 32 - 12 = 20 bits for the host address (suffix).)
|
11111111.11110000.00000000.00000000
|
255.240.0.0 |
3. Bit Complement (Bitwise NOT) of the Subnet Mask | 00000000.00001111.11111111.11111111
|
0.15.255.255 |
4. Broadcast address (Bitwise OR of 1. Network IP Address and 3. Bit Complement of the Subnet Mask. This makes the broadcast address the largest possible IP address (and host address, since the host address portion is all 1s) for any given network address.) | 10101100.00011111.11111111.11111111
|
172.31.255.255 |
A special definition exists for the IP address 255.255.255.255. It is the broadcast address of the zero network or 0.0.0.0, which in Internet Protocol standards stands for this network, i.e. the local network. Transmission to this address is limited by definition, in that it is never forwarded by the routers connecting the local network to other networks.[5][6]
IP broadcasts are used by BOOTP and DHCP clients to find and send requests to their respective servers.
Internet Protocol version 6 (IPv6) does not implement this method of broadcast, and therefore does not define broadcast addresses. Instead, IPv6 uses multicast addressing to the all-hosts multicast group. No IPv6 protocols are defined to use the all-hosts address, though; instead, they send and receive on particular link-local multicast addresses. This results in higher efficiency because network hosts can filter traffic based on multicast address and do not need to process all broadcasts or all-hosts multicasts.
Ethernet
Broadcast is possible also on the underlying data link layer in Ethernet networks. Frames are addressed to reach every computer on a given LAN segment if they are addressed to MAC address FF:FF:FF:FF:FF:FF. Ethernet frames that contain IP broadcast packages are usually sent to this address.
Ethernet broadcasts are used, among other purposes, by Address Resolution Protocol to resolve IP addresses to MAC addresses.
IPX networking
Internetwork Packet Exchange (IPX) allows broadcast. A packet with network number of FFFFFFFF is sent to all networks available. When the node number is specified as FFFFFFFFFFFF, the packet is intended to be received by all hosts in the network.
AppleTalk
The AppleTalk protocol allows broadcast. When the node ID is specified as 255, a packet is sent to all networks available.[7]
See also
- Default gateway
- UDP Helper Address, a router configuration to forward broadcast network traffic across subnet boundaries
References
- ^ J. Mogul (October 1984). BROADCASTING INTERNET DATAGRAMS. Network Working Group. doi:10.17487/RFC0919. STD 5. RFC 919. Internet Standard 5.
- ^ Robert Gurwitz; Robert Hinden (September 1982). IP - Local Area Network Addressing Issues. IEN 212.
- ^ J. Mogul (October 1984). BROADCASTING INTERNET DATAGRAMS IN THE PRESENCE OF SUBNETS. Network Working Group. doi:10.17487/RFC0922. STD 5. RFC 922. Internet Standard 5.
- ^ "Enabling forwarding of directed broadcasts". Retrieved 2023-12-07.
- ^ Ed Harmoush (June 9, 2022). "Local Broadcast vs Directed Broadcast". Retrieved 2023-12-07.
- ^ "Local vs Directed Broadcasts". Retrieved 2023-12-07.
- ^ Introduction to AppleTalk (PDF), Apple Inc., retrieved 2021-10-04