If you read networking books from before 2000, you'll see references to "Class A," "Class B," and "Class C" networks. These don't appear in modern documentation — networking moved to CIDR (Classless Inter-Domain Routing) in the 1990s. Here's what changed and why.
The classful era
The original IPv4 design assigned IP addresses in fixed-size blocks based on the first byte:
- Class A: first byte 0–127. /8 networks (16.7 million hosts each). Maximum 128 of them.
- Class B: first byte 128–191. /16 networks (65,536 hosts each). Maximum 16,384 of them.
- Class C: first byte 192–223. /24 networks (256 hosts each). Maximum 2 million.
- Class D: 224–239. Multicast.
- Class E: 240–255. Reserved.
The class was determined by the IP address itself. 12.0.0.0 was automatically Class A (8-bit network, 24-bit host). 192.168.1.0 was automatically Class C (24-bit network, 8-bit host).
The problem
Classes were too rigid. Companies that needed 500 hosts had two bad options:
- Get a Class B (65,536 hosts). 99% of the addresses are wasted.
- Get two Class Cs (512 hosts). Two non-contiguous networks to manage.
By the early 1990s, this rigidity was burning through the IPv4 address space. Engineers projected exhaustion within years.
The CIDR fix
CIDR (1993) introduced flexible subnet boundaries. Instead of fixed classes, networks could be sized to actual need:
- Need 500 hosts? Get a /23 (512 hosts). Saves 65,000 unused addresses.
- Need 50 hosts? Get a /26 (64 hosts).
- Need 10,000 hosts? Get a /20 (4,096 hosts × something or /18 for 16,000+).
The key insight: any number of bits can mark the network/host boundary, not just 8, 16, or 24.
The notation: from "Class B" to "/16"
Old: "This is a Class B network."
New: "This is a /16."
The /16 notation works for any prefix length, not just the original 8/16/24 classes. /17, /18, /19, ..., /32 are all valid.
Variable Length Subnet Masking (VLSM)
CIDR allowed VLSM — the ability to subdivide an organization's IP block into different-size subnets internally.
Example: a company with a /20 (4,094 hosts) might:
- Sales floor: /23 (510 hosts)
- Engineering: /23 (510 hosts)
- HR: /27 (30 hosts)
- Reserve: /22 for future use
In classful networking, you couldn't do this. Each subnet had to be the same size.
Aggregating routes (supernetting)
CIDR also allowed combining smaller blocks into larger ones for routing efficiency. Two /17 networks (one starting at 10.0.0.0 and one at 10.0.128.0) can be advertised as a single /16 (10.0.0.0/16) to the broader internet.
This dramatically reduced internet routing table size. Without CIDR, the internet would have collapsed under route table growth in the late 1990s.
Why CIDR notation is more compact
Old: 10.0.0.0 mask 255.255.255.0
New: 10.0.0.0/24
Same information, half the typing. Plus the /N format is unambiguous — there's no question whether the mask is a network mask or wildcard mask.
What "classless" actually means
"Classless" doesn't mean "no classes." It means "the class isn't determined by the IP address alone." Any address can be any size network, depending on the routing table entry.
The decision of "what's the network boundary?" moves from being baked into the IP address to being explicit in routing announcements.
Real-world impact
Today, virtually all IP allocations use CIDR. The Regional Internet Registries (ARIN, RIPE, APNIC) hand out CIDR blocks like /20 (4096 addresses) or /22 (1024) instead of full classful blocks.
The classful system is purely a historical curiosity. Modern routers don't even know what "Class B" means.
Modern subnet planning
For new networks (e.g., a startup's VPC):
- Pick a private range (10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16).
- Size your overall block based on growth: /16 for medium, /14 for large.
- Subdivide into VLANs / availability zones at /24 each.
- Reserve some space for unknown future needs.
This planning is simple with CIDR's flexibility.
IPv6: a clean slate
IPv6 (128-bit addresses) was designed CIDR-only from the start. There's no concept of classful in IPv6. The /N notation extends naturally — typical sizes are /48 for organizations, /64 for individual subnets.
Even though IPv6 has 3.4 × 10³⁸ addresses (fundamentally infinite), CIDR's flexibility still matters for organizational structure and routing.
Compute your subnet
Our IP subnet calculator handles any CIDR block — modern flexible sizes, not just /8, /16, /24. Use it to plan VPCs, troubleshoot routing, or verify that your /22 really has the host count you expect.