When TCP/IP was first introduced in the 1980s,
it relied on a two-level addressing scheme, which at the time offered
adequate scalability. IPv4's 32-bit-long address identifies a
network number and a host number, as shown in Figure .
Together, the network number and the host
number uniquely identify all hosts connected via the Internet. It is
possible that the needs of a small, networked community could be satisfied
with just host addresses, as is the case with LANs. However, network
addresses are necessary for end systems on different networks to
communicate with each other. Routers use the network portion of the
address to make routing decisions and facilitate communication between
hosts that belong to different networks.
Unlike routers, humans find working with
strings of 32 ones and zeros tedious and clumsy. Therefore, 32-bit IP addresses
are written using dotted-decimal notation. Each 32-bit address is divided
into four groups of eight, called octets, and each octet is converted to
decimal and then separated by decimal points, or dots.
In the dotted decimal address,
132.163.128.17, which of these four numbers represents the network portion
of the address? Which are the host numbers? Finding the answers to these
questions is complicated by the fact that IP addresses are not really four
numbers. They actually consist of 32 different numbers (32 bits)!
In the early days of TCP/IP, a class system
was used to define the network and host portions of the address. IPv4
addresses were grouped into five distinct classes, according to the value
of the first few bits in the first octet of the address. Although you can
still apply the class system to IP addresses, today's networks often
ignore the rules of class in favor of a classless IP scheme.
In the following sections, we will examine
the limitations of the IP address classes, the subsequent addition of the
subnet mask, and the addressing crisis that led to the adoption of a
classless system.
|