IPv4 - Summary
The Internet Protocol version 4 was designed to be allocated to approx. 4.3 billion addresses. At the beginning of Internet this was considered a much wider address space for which there was nothing to worry about.
The sudden growth in Internet users and its wide spread use has exponentially increase the number of devices which needs real and unique IP to be able to communicate. Gradually, an IP is required by almost every digital equipment which were made to ease human life, such as Mobile Phones, Cars and other electronic devices. The number of devices (other than computers/routers) expanded the demand for extra IP addresses, which were not considered earlier.
Allocation of IPv4 is globally managed by Internet Assigned Numbers Authority (IANA) under coordination with Internet Corporation for Assigned Names and Numbers (ICANN). IANA works closely with Regional Internet Registries, which in turns are responsible for efficiently distribute IP address in their territories. There are five such RIR exist. According to IANA reports, all the IPv4 address blocks have been allocated. To cope up with the situation, as an early steps the following practices were being done:
Private IPs: Few blocks of IPs were declared for private use within a LAN so that the requirement for public IP addresses can be reduced.
NAT: Network address translation is a mechanism by which multiple PCs/hosts with private IP addresses are enabled to access using one or few public IP addresses.
Unused Public IPs were reclaimed by RIRs.
Internet Protocol v6 (IPv6)
IETF (Internet Engineering Task Force) has redesigned IP addresses and to mitigate the drawbacks of IPv4. The new IP address has version 6 and is 128-bit address, by which every single inch of the earth can be given millions of IP addresses.
Today majority of devices running on Internet are using IPv4 and it is not possible to shift them to IPv6 in coming days. There are mechanisms provided by IPv6, by which IPv4 and IPv6 can coexist unless the Internet entirely shifts to IPv6:
Dual IP Stack
Tunneling (6to4 and 4to6)
NAT Protocol Translation