Table of Contents
The Limits of IPv4
When the internet started, IPv4 seemed more than enough. It offers about 4.3 billion addresses in total. IPv4 addresses are 32 bits long, so the theoretical maximum is $2^{32} = 4{,}294{,}967{,}296$ addresses.
At first, the number sounded huge. In practice it is not. Many IPv4 ranges are reserved for special purposes, such as private networks, multicast, and testing. Also, early address allocation was very wasteful. Large chunks were given to organizations that did not always use them efficiently.
As the internet grew worldwide, more and more devices needed addresses. Computers and servers were joined by phones, tablets, game consoles, smart TVs, and many other devices. The pool of available IPv4 addresses started to run out.
Regional internet registries, such as ARIN and RIPE, have now effectively exhausted their free pools of IPv4 addresses. New organizations must often buy or lease IPv4 space on a secondary market, which can be expensive and complicated.
IPv4 provides only 32 bits of addressing space, which is not enough for long term global growth.
The Workaround: NAT and Its Limits
To delay IPv4 exhaustion, engineers widely adopted Network Address Translation, or NAT. NAT lets many devices in a private network share a single public IPv4 address. You will study NAT in detail later, so here we focus only on why it is a workaround, not a true fix.
NAT uses private address ranges inside a local network, then translates many internal addresses to one or a few public addresses when sending traffic to the internet. This has some side benefits, such as basic hiding of internal structure, but it introduces issues.
Because NAT changes addresses, it breaks the original end to end idea of the internet. Two hosts can no longer easily communicate using only their IP addresses. Middle devices must keep track of translations. Some applications have trouble when both sides are behind NAT, and special techniques are needed to make real peer to peer communication work.
NAT also creates extra complexity for voice over IP, gaming, video calling, remote access, and similar services. Application developers must write code that understands NAT, which adds cost and fragility.
NAT helped IPv4 survive longer, but it did not increase the true global address space. It is a temporary fix, not a permanent solution.
The Need for Massive Address Space
The modern world connects almost everything. This idea is often called the Internet of Things. Sensors, cameras, meters, appliances, vehicles, and many other devices are becoming networked. Many devices that are offline today may be online tomorrow.
If each device should be reachable, or at least uniquely addressable, the internet needs a huge amount of address space. It also needs enough space to allow flexible design, such as giving whole networks to homes, buildings, factories, and even small devices.
IPv6 addresses are 128 bits long. That gives a total space of $2^{128}$ addresses, which is an unimaginably large number. The goal is not to use every address, but to have so many that address exhaustion is no longer a concern.
IPv6 uses 128 bit addresses, which provides a practically inexhaustible supply of unique addresses for global growth.
This large space allows each network and each device to have a globally unique address, often without the need for NAT. It restores the simple idea that any internet host can in principle reach any other, with security controls handled by firewalls and policies instead of address shortage.
Simpler Address Management and Hierarchy
IPv6 was also designed to make large scale address planning and routing more manageable. With so much address space, networks can use structured, hierarchical assignments that are easier to understand and aggregate.
Service providers can allocate chunks of IPv6 space to customers in a consistent way. Enterprises can assign addresses to sites, buildings, and departments using clear patterns. This hierarchy helps reduce the size of routing tables in the core of the internet, which improves performance and scalability.
Where IPv4 often forces careful conservation and complex subnetting, IPv6 allows more generous and regular allocations. This simplifies planning, documentation, and future growth.
Restoring End to End Connectivity
One of the founding ideas of the internet is end to end connectivity. The network should mainly forward packets, not rewrite them or deeply inspect them. Each host can use its address to communicate directly with other hosts, with security enforced at the edges.
Because IPv4 ran short of addresses, NAT became almost unavoidable for many users. NAT devices rewrite addresses in transit. This breaks the pure end to end model and makes some protocols harder to use.
With IPv6, the expectation is that every device can have a globally unique address. A home or office network can still use firewalls and other protections, but it does not need NAT for address conservation. Direct communication between devices becomes more straightforward, especially for peer to peer applications and services that need inbound connections.
This shift makes the network architecture simpler and returns control to the devices and applications, instead of to translating middle boxes.
Built for Modern Internet Features
IPv6 includes design choices that support modern internet needs more cleanly than IPv4. The core of IPv6 was built with features such as security, mobility, and automatic configuration in mind.
IPv4 later gained extensions for these ideas, but they often felt like add ons. IPv6 integrates them in its basic model. This leads to more consistent behavior and easier implementation in the long run.
At the same time, IPv6 tries to keep the core of the protocol simpler. Some rarely used options and features from IPv4 were removed or changed so that routers can forward packets more efficiently. Extra information is placed in extension headers when needed, which helps keep the main header small and easier to process.
You will see these header details later in the chapter about the IPv6 header, so here it is enough to understand that IPv6 was designed with current and future networking patterns in mind, not just the needs of the early internet.
Coexistence With IPv4 During Transition
Another important reason for IPv6 is the need for a clean migration path. IPv4 is deeply embedded in existing systems, and it will not disappear quickly. IPv6 was created to work alongside IPv4 during a long transition period.
Networks can run both protocols at the same time, a method called dual stack. Devices can speak IPv4 to systems that only know IPv4, and IPv6 to systems that support it. There are also special techniques to carry IPv6 traffic across IPv4 infrastructure and to translate between the two worlds.
Because IPv6 is a separate protocol, it can solve the address exhaustion problem without breaking existing IPv4 networks. Over time, more services can move to IPv6, and dependence on IPv4 and NAT can slowly decrease.
This coexistence model is one of the reasons IPv6 took a long time to deploy, but it also reduces risk and allows careful, staged adoption.
Summary: Why IPv6 Is Necessary
IPv6 exists because the internet outgrew IPv4. The 32 bit address space is not enough for a world where almost every device can be online. Workarounds such as NAT kept IPv4 alive but created complexity and broke the simple end to end design of the network.
By providing 128 bit addresses, IPv6 offers an enormous address space. This supports global growth, restores direct connectivity, and simplifies large scale address management. IPv6 was also built with modern features and a long transition period in mind, so it can gradually replace IPv4 without forcing a sudden change.
Later chapters will explore how IPv6 addresses look, how they are organized, and how networks use them in practice. Here it is important to remember the main idea. IPv6 is not just a new version number. It is the long term solution to address exhaustion and a foundation for the future of the internet.