IPv4 addresses are a foundational element of the internet and have been in use since the early days of its development. Here’s a detailed overview of IPv4 addresses:
- Address Format: IPv4 addresses are 32-bit numbers expressed in dotted-decimal notation, consisting of four sets of numbers ranging from 0 to 255. Each set represents 8 bits or one byte of the address. For example, an IPv4 address could look like 192.168.0.1.
- Structure: IPv4 addresses are divided into two main parts: the network portion and the host portion. The division between the network and host portions is defined by the subnet mask, which determines the size of the network and the number of hosts that can be connected to it.
- Address Classes: Initially, IPv4 addresses were divided into five classes: A, B, C, D, and E. The class of an IP address determined the size of the network and the number of hosts it could accommodate. The classes were designated based on the value of the first octet (range of values):
- Class A: 1.0.0.0 to 126.0.0.0
- Class B: 128.0.0.0 to 191.255.0.0
- Class C: 192.0.0.0 to 223.255.255.0
- Class D (multicast addresses): 224.0.0.0 to 239.255.255.255
- Class E (reserved for future use): 240.0.0.0 to 255.255.255.255
Each class had a different number of bits allocated for the network and host portions.
- Subnetting: To maximize the use of IP addresses and address the limitations of the class-based addressing system, subnetting was introduced. Subnetting allows for the division of a network into smaller subnets, each with its own network and host portion. It enables more efficient allocation of IP addresses by customizing the network size according to specific requirements.
- Private IP Addresses: To accommodate the increasing number of devices on private networks, three blocks of IP addresses were reserved for private use. These private IP address ranges cannot be routed on the public internet and are commonly used within local area networks (LANs):
- Class A: 10.0.0.0 to 10.255.255.255
- Class B: 172.16.0.0 to 172.31.255.255
- Class C: 192.168.0.0 to 192.168.255.255
Private IP addresses allow for local network communication and address reuse without requiring globally unique addresses.
- Address Exhaustion: The limited address space of IPv4, which provides approximately 4.3 billion unique addresses, led to concerns about address exhaustion. The growth of the internet and the increasing number of connected devices meant that available IPv4 addresses were being depleted.
- IPv4 Address Allocation: The Internet Assigned Numbers Authority (IANA) is responsible for allocating IP address blocks to Regional Internet Registries (RIRs) worldwide. RIRs, such as ARIN, RIPE NCC, APNIC, and others, handle the distribution of IP addresses within their respective regions to internet service providers, organizations, and networks.
- Network Address Translation (NAT): To mitigate the scarcity of IPv4 addresses, Network Address Translation (NAT) was introduced. NAT allows multiple devices on a private network to share a single public IP address by mapping internal private IP addresses to a public IP address when communicating with the internet. NAT has been widely adopted and helps extend the life of IPv4 addressing.
IPv4 addresses have been the primary addressing scheme for internet communication for several decades. While the scarcity of IPv4 addresses remains a challenge, the industry has been transitioning to the newer IPv6 protocol, which provides a significantly larger address space to meet the needs of the expanding internet and the growing number of connected devices.