
IP Addresses and CIDR Explained: From Classful Networks to /24
What exactly does /24 mean in 192.168.1.0/24? Calling it shorthand for 255.255.255.0 is correct but incomplete. The notation reflects the transition from IPv4's fixed Class A, B, and C boundaries to classless routing. This article follows that history from RFC 791 and subnetting through CIDR, private address space, and the exhaustion of IANA's normal central IPv4 pool.
Japanese original published: 2026-05-03
RFC 791 and the original address classes
IPv4, specified by RFC 791 in September 1981, uses a 32-bit address space of about 4.3 billion values. The original design separated a network number from a host number according to leading-bit patterns:
| Class | Leading bits | Historical prefix | First octet | Theoretical number patterns | Traditional maximum hosts per network |
|---|---|---|---|---|---|
| A | 0 | /8 | 0–127 | 128 | 16,777,214 |
| B | 10 | /16 | 128–191 | 16,384 | 65,534 |
| C | 110 | /24 | 192–223 | 2,097,152 | 254 |
The counts in the fifth column are theoretical patterns implied by the leading bits, not counts of networks available for ordinary assignment. For example, 0/8 and 127/8 have special purposes. RFC 791 treated 111 as an escape for extended addressing; later specifications organized Class D as multicast (1110, 224/4) and Class E as reserved (240/4). Current allocation status comes from IANA registries, not from these historical classes.
The central problem was coarse granularity. A site needing 500 host numbers could not fit into one historical Class C network with 254 conventional host numbers. A Class B offered 65,534, leaving more than 99% of that host-number space unused. Assigning multiple Class C networks was possible but added routes and operational work.
RFC 950 standardized subnetting procedures
RFC 950, published in August 1985, built on earlier proposals and documented standard procedures for dividing one assigned IP network number across multiple physical networks.
The basic operation is a bitwise AND:
IP address: 192.168.1.100 = 11000000.10101000.00000001.01100100
Subnet mask: 255.255.255.0 = 11111111.11111111.11111111.00000000
AND result: 192.168.1.0 = 11000000.10101000.00000001.00000000
← 24 prefix bits →← host bits →
Bits set to 1 in the mask identify the network and subnet portion; bits set to 0 identify the host portion. Mathematically, a Class B network can be divided into 256 /24 blocks or four /18 blocks. RFC 950, however, said at the time that subnet field values consisting of all zeros or all ones should not be assigned to physical subnets. Under that historical rule, only 254 /24 subnets or two /18 subnets were assignable.
Subnetting under RFC 950 was an internal mechanism. Outside the organization, the assigned Class A, B, or C network still appeared as one route. It did not by itself solve growth in the global routing table or the coarse granularity of classful allocations.
The early-1990s Class B and routing-table crisis
As the Internet expanded, consumption of the 16,384 theoretical Class B network numbers accelerated. At the same time, each separately advertised network added an entry to global routing tables, increasing memory and processing pressure on routers.
RFC 1519 said that the first two problems it listed—exhaustion of the Class B network address space and growth of routing tables—were likely to become critical within one to three years. The Internet needed a mechanism that addressed both allocation efficiency and route aggregation.
CIDR removed fixed class boundaries
Classless Inter-Domain Routing was documented in RFC 1519 in September 1993 and later revised in RFC 4632, published as Best Current Practice 122 in August 2006.
CIDR allows a prefix boundary at any bit position rather than deriving it from a Class A, B, or C leading pattern:
Classful: Class C has a fixed /24 boundary
CIDR: /20, /21, /22, /23, /24, /25, /26, ...
Example: 10.0.0.0/20 → 20 prefix bits and 12 host bits
→ 4,094 conventional host addresses (2^12 − 2)
A 500-host conventional subnet can use /23 with 510 host addresses, while a 2,000-host subnet can use /21 with 2,046, instead of jumping between historical class sizes.
CIDR also enables route aggregation. Sixteen consecutive /24 blocks contain 16 × 256 = 4,096 addresses and can be represented by one /20 only when they are aligned on the correct /20 boundary and share the same first 20 bits. Consecutive blocks alone are not sufficient: the count must be a power of two and the starting address must align with the aggregate prefix.
Why a /24 traditionally has 254 host addresses
For a conventional IPv4 subnet from /0 through /30, subtracting the network and broadcast addresses gives:
conventional usable host count = 2^(32 − prefix length) − 2
The subtraction removes the all-zero host portion used as the network address and the all-one host portion used as the directed broadcast address. A /31 can use both addresses on a point-to-point link under RFC 3021, while /32 represents one address, so the formula is not applied to those two cases.
| CIDR | Subnet mask | Host bits | Usable addresses | Example use |
|---|---|---|---|---|
| /32 | 255.255.255.255 | 0 | 1 address | Host route or one endpoint |
| /31 | 255.255.255.254 | 1 | 2 under RFC 3021 conditions | Point-to-point link |
| /30 | 255.255.255.252 | 2 | 2 | Traditional point-to-point subnet |
| /28 | 255.255.255.240 | 4 | 14 | Small server segment |
| /24 | 255.255.255.0 | 8 | 254 | Common LAN size |
| /16 | 255.255.0.0 | 16 | 65,534 | Large private network |
| /8 | 255.0.0.0 | 24 | 16,777,214 | Historical Class A-sized prefix |
A /24 therefore has 254 conventional host addresses because 2^(32 − 24) − 2 = 256 − 2 = 254. Although this is the same size as a historical Class C network, a CIDR /24 means only that the prefix length is 24 bits.
RFC 1918 private address space
RFC 1918, published in February 1996 as BCP 5, reserved three ranges for private internets:
| Range | CIDR | Address count | Historical class-sized equivalent |
|---|---|---|---|
| 10.0.0.0–10.255.255.255 | 10.0.0.0/8 | 16,777,216 | One Class A-sized block |
| 172.16.0.0–172.31.255.255 | 172.16.0.0/12 | 1,048,576 | Sixteen Class B-sized blocks |
| 192.168.0.0–192.168.255.255 | 192.168.0.0/16 | 65,536 | 256 Class C-sized blocks |
These addresses are used within private networks and are not advertised across the public Internet. Separate private networks can reuse the same values, which is why many home routers can all use 192.168.1.1.
NAT is widely used when hosts with private IPv4 addresses access the public IPv4 Internet. It is not an intrinsic requirement of private addressing: a network can remain private, use application gateways, or communicate through proxies. Reuse and address sharing nevertheless extended the practical life of IPv4.
IANA's normal central IPv4 pool was exhausted in 2011
On February 3, 2011, IANA allocated the last five /8 blocks from its normal unallocated inventory to the five Regional Internet Registries and announced exhaustion of the central pool.
This did not mean that all 4.3 billion addresses were attached to active hosts. Addresses returned to IANA can later be distributed under a separate recovered-address-space policy. IPv4 continues to operate through several mechanisms:
- RFC 1918 with NAT: private ranges are reused independently across homes and organizations.
- Carrier-grade NAT: providers share public IPv4 addresses across customer connections. RFC 6598 reserves 100.64.0.0/10 as Shared Address Space for this use.
- IPv4 address transfers: organizations transfer number resources under Regional Internet Registry policies.
- Migration to IPv6: IPv6 is a successor protocol with a 128-bit address space, not another method of extending the IPv4 address pool.
IPv6 adoption percentages vary by measurement source, region, and date. Consult the current statistics from the measurement provider when a recent figure matters.
Special-purpose IPv4 blocks
The IANA IPv4 Special-Purpose Address Space registry contains many prefixes that are not ordinary globally routable host space:
| Block | Purpose | Reference |
|---|---|---|
| 0.0.0.0/8 | “This network” | RFC 791 |
| 127.0.0.0/8 | Loopback | RFC 1122 |
| 169.254.0.0/16 | IPv4 link-local autoconfiguration on one link | RFC 3927 |
| 192.0.2.0/24 | Documentation (TEST-NET-1) | RFC 5737 |
| 198.51.100.0/24 | Documentation (TEST-NET-2) | RFC 5737 |
| 203.0.113.0/24 | Documentation (TEST-NET-3) | RFC 5737 |
| 255.255.255.255/32 | Limited broadcast | RFC 919 |
Use RFC 5737's TEST-NET blocks when documentation needs an example external IPv4 address. Use RFC 1918 ranges when the example is specifically about a private network, but remember that such examples can overlap a reader's real private addressing. Do not borrow an unrelated live public address for documentation.
Summary
- RFC 791 defined 32-bit IPv4 and the historical Class A, B, and C forms.
- RFC 950 standardized procedures for dividing one assigned network into internal subnets.
- CIDR replaced fixed class boundaries with explicit prefix lengths and route aggregation.
- A conventional /24 has eight host bits and 254 host addresses; /31 and /32 require separate handling.
- RFC 1918 reserves 10/8, 172.16/12, and 192.168/16 for private internets.
- IANA exhausted its normal central pool in 2011, while IPv4 continues through reuse, sharing, transfers, and migration to IPv6.
- Use TEST-NET prefixes for public-address examples in documentation.
References and sources
- RFC 791 — Internet Protocol ↗
- RFC 950 — Internet Standard Subnetting Procedure ↗
- RFC 4632 — Classless Inter-Domain Routing (CIDR) ↗
- RFC 1519 — Classless Inter-Domain Routing (CIDR), original ↗
- RFC 1918 — Address Allocation for Private Internets ↗
- RFC 3021 — Using 31-Bit Prefixes on IPv4 Point-to-Point Links ↗
- RFC 1122 — Requirements for Internet Hosts ↗
- RFC 1112 — Host Extensions for IP Multicasting ↗
- RFC 3927 — Dynamic Configuration of IPv4 Link-Local Addresses ↗
- RFC 5737 — IPv4 Address Blocks Reserved for Documentation ↗
- RFC 6598 — IANA-Reserved IPv4 Prefix for Shared Address Space ↗
- RFC 919 — Broadcasting Internet Datagrams ↗
- IANA — IPv4 Recovered Address Space ↗
- ICANN — Available Pool of Unallocated IPv4 Internet Addresses Now Completely Emptied ↗
- IANA — IPv4 Special-Purpose Address Space ↗
Editorial note
This article was prepared with AI assistance and reviewed by an editor before publication. It may still contain factual errors, interpretation mistakes, or outdated information. Check the cited primary sources or official documentation before making an important decision.

