Lead Engineer @ Packetware
Understanding Reserved Addresses in IPv4 Subnets (and Why /31 Is Different)
When you first start learning about IPv4 subnetting, one thing that confuses nearly everyone is this:
“Why can’t I use the
.0address in a /24 subnet? It seems like a waste!”
Let’s unpack why that’s the case, and why there’s one important exception — the /31 network — where things work differently.
What Is a Network Address?
Every IPv4 address is made up of 32 bits, divided into:
[ Network bits | Host bits ]
The network bits identify which subnet an address belongs to, while the host bits identify which device within that subnet.
For example, in the subnet 192.168.1.0/24:
- The first 24 bits (
192.168.1) define the network. - The last 8 bits are for hosts.
The network address is simply the one with all host bits set to 0 — in this case, 192.168.1.0.
It represents the entire subnet, not a single device.
The Broadcast Address
At the opposite end of the range, you have the broadcast address — the address with all host bits set to 1.
In a /24, that’s 192.168.1.255.
This special address is used when a device needs to talk to every other device on the subnet (for example, ARP requests or DHCP discovery).
Usable Host Range
In a /24 network:
| Type | Address | Description |
|---|---|---|
| Network address | 192.168.1.0 |
Identifies the subnet |
| Usable hosts | 192.168.1.1 – 192.168.1.254 |
Devices in the subnet |
| Broadcast address | 192.168.1.255 |
Messages to all hosts |
That means there are 254 usable addresses — two are reserved.
Why We Can’t Use .0 or .255 Normally
The .0 and .255 addresses aren’t “wasted” — they have specific roles in networking protocols and routing tables.
If you gave a device the .0 address, routers could get confused and think packets were meant for the whole subnet instead of that one host.
That’s why it’s not allowed for general-purpose networks — it keeps routing consistent and predictable.
The Exception: /31 Subnets
Here’s where things get interesting.
In a /31, we only have two total addresses. For example:
192.168.1.10/31 → 192.168.1.10 and 192.168.1.11
Normally, one would be a network address and one a broadcast address — leaving zero usable hosts. That doesn’t make sense for point-to-point links (like two routers connected directly).
To fix this, RFC 3021 changed the rule:
On point-to-point links, both addresses in a /31 subnet are usable.
That means:
192.168.1.10can be Router A192.168.1.11can be Router B No need for a broadcast address, since there are only two endpoints.
Why /31 Is So Useful
Using /31 subnets helps save valuable IPv4 addresses.
Instead of wasting half of a /30 (which uses four addresses for only two devices), /31 makes both usable — perfect for backbone or inter-router links where you’ll never need more than two endpoints.
