Of utmost concern to the Internet community is the need for enough IP addresses for the billions upon billions of possible hosts needing to connect to the Internet. The current version, IPv4, does have the capability for more than 4 billion addresses, which might sound more than adequate. But it’s not so much the number of addresses that is a problem as it is the way that IPv4 groups bits for its network/host numbering system.
IPv4’s numbering system wastes address assignments and suffers from excessive routing overhead.
To illustrate these problems, you need to understand how IPv4 assigns addresses and how that affects IP routing tables.
IP addressing is based on network number assignment and host number assignment. In IPv4, these numbers are organized as 32-bit addresses, with host numbers and network numbers embedded in the addresses. These numbers identify the network or host connection and not the actual network or computer. IPv4 divides its address assignment into three main classes: A, B, and C.
The address class determines the network mask of the address. A network mask is a 32-bit internet address that has all the bits in the network number set to one and all the bits in the host number set to zero. Hosts and routers use the network mask to route internet packets.
Table 1 lists the decimal value of each address class and its corresponding network mask.
|Class||First Byte||Network Mask|
|A||1. — 127.||255.0.0.0|
To further illustrate how IPv4 assigns addresses, Figure 1 shows the breakdown in decimal notation of network numbers and host numbers.
These amounts might seem like enough to serve everyone in the world who needs an IP address. It probably would be if it weren’t for the way that IPv4 handles the addresses within each of these classes.
Imagine a company needs 300 host addresses. This amount would put them into the Class B category. However, if the company is assigned a Class B address, then they would have 65 536 hosts, which is significantly more than what is needed. About 65 000 addresses would be wasted.
To avoid this type of situation, the Classless Inter-Domain Routing scheme (CIDR) was introduced a few years ago. CIDR essentially eliminates the class structure of addressing and, instead, allows the assignment of network numbers at any bit boundary. In this way network numbers can be created, for example, by aggregating several contiguous class C addresses. CIDR requires that network masks be explicitly specified when needed, rather than allowing them to be implicitly derived from the address (as in the class system).
Another problem attributed to IPv4’s address classes is the Internet backbone router table size explosion. CIDR also addresses this by allowing for address aggregation.
A negative aspect to CIDR is that with an arbitrary address, you cannot determine the network and host numbers unless you know the network mask.
The limitations of IPv4 have quickly been realized and measures, such as CIDR, have extended its life slightly. World-wide network demand, however, is making the need for IPv6 immediate.
The next section describes how IPv6 is being developed and the features it will bring to the Internet.