2.1 IPv4 Addressing
2.1.1 Internet's address architecture
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.