IPv4 Address Classes
Originally, IP network numbers were defined with rigid boundaries and grouped
into address classes. The idea behind IP address classes was to enable efficient
assignment of the IP address space by creating address groups that would support
a varying number of hosts. Network links with fewer hosts then would be assigned
an address from a class that supports an appropriate number of attached hosts.
Another benefit of address classes was that they helped streamline the address-allocation
process, making it more manageable.
Five address classes - A,B,C,D, and E - were defined and distinguished by the
setting of the most significant bits of the most significant byte in the IP address.
Each address class embraced a set of IPv4 address subnets, each of which supported
a certain number of hosts.
Table 1-1
Of the five address classes, three - Class A, B, and C - were designated for unicast
single source-to-single destination communication. Addresses in Class D were reserved
for IP Multicast applications, which allows one-to-many communication. Class E
addresses were reserved for experimental purposes.
To make the addresses in each of the unicast address classes (A, B, and C) support
a specific maximum number of hosts, the 32-bit address field was delineated into
network identifier (network ID) bits and host identifier bits (host ID) as follows:
o Class A - 8-bit network ID, 24-bit host ID
o Class B - 16-bit network ID, 16-bit host ID
o Class C - 24-bit network ID, 8-bit host ID
Figure 1-2 shows the assignment of the 32 bits in a class A address. The highest-order
bit has a fixed value of 0, and the whole of the first byte is the network ID. The last
3 bytes are designated as host bits.
Bit 0 |
8 |
16 |
24 |
32 |
0 |
Network ID |
< -- |
Host ID |
-- > |
This notion of categorizing IP addresses into classes with rigid boundaries is also
known as classful addressing. IP addresses use masks to delineate host bits from the
network number bits. IP address structuring has evolved through various innovations,
all geared toward making address allocation and actual assignment in real networks more
efficient. You find out more about this in the section "Subnetting and variable-Length
Subnet Masks".
To make it easier for humans to work with IP addresses, these addresses are represented
in a format known as dotted-decimal notation. In the dotted-decimal representation, the
bits are grouped into octets and are separated by dots. Each octet of binary bits then is
converted into the decimal equivalent. The last column of Table 1-1 shows the dotted-decimal
notations for the range of addresses in each of the address classes.
Even though classful addressing was introduced to facilitate efficient use of the
IPv4 address space, the rigid classful boundaries left a lot more to be desired. Because
of its rigidity and inefficiency, classful addressing has been abandoned for the more
efficient and flexible notion of classless addressing.
In classless addressing, any IP network number is interpreted as a prefix of a certain
length. This interpretation provides more flexibility and results in a more efficient use
of the IPv4 address space. A large classful block of addresses such as a Class A address
can be split into multiple smaller blocks for allocation to multiple organizations instead
of being allocated to a single organization under classful notions. Conversely, classless
addressing allows multiple Class C addresses to be aggregated and advertised as a single
larger block instead of being treated as separate addresses. Aggregating addresses in this
manner for the purposes of conserving resource in routers connected to the Internet is
referred to as classless interdomain routing (CIDR), which is further discussed in a later
section, "Classless Interdomain Routing (CIDR)".
|