An IP address acts as an identifier for a system in a network. It is also named as IP number and Internet Address.
There are currently two IP address versions: IPv4 (Internet Protocol version 4) and IPv6 (Internet Protocol version 6).
Currently, IPv4 is the widely used IP address version, which we see in most households and organizations. But, the IPv4 address has its own limitation and challenges.
To counter IPv4, IPv6 was introduced, which has a much larger scope and no restriction on IP addresses.
Let’s look into the differences between IPv4 and IPv6 and which one serves the purpose of a large organization and individual customer.
IPv4 vs. IPv6 Address Introduction
IPv4 is the 4th version of the Internet Protocol, which was first deployed for production in the ARPANET in 1983. Today, it is the most widely used IP version, with more than 4 billion IP addresses.
It is considered as the primary Internet Protocol, which carries 94% of internet traffic.
IPv6 is the most recent Internet Protocol version introduced by the Internet Engineer Task Force (IETF) in 1994.
IPv6 is deployed to fulfill the demand for more Internet addresses and to resolve the issue associated with IPv4. It has an address space of 128-bits, which allows 340 undecillion unique address space.
It is also called IPng (Internet Protocol next generation)
IPv4 vs. IPv6 Address Structure: Network and Host differences
The IP address is generally divided into two components: The network component and the Host component. But, there are some differences when we look into IPv4 and IPv6.
IPv4 address: A network ID and Host ID
In IPv4, an address is split into two parts: A network ID and Host ID.
The IPv4 address division as the network part and host part depends on the IPv4 address classes, and later on, it depends on subnetting.
If we look into IPv4 address classes, the first three classes are assigned to the public address.
The IPv4 Class A has 8-bits for network ID and the remaining 24-bits for the host ID.
Likewise, the IPv4 Class B has 16-bits for network ID and 16-bits for the host ID. And, Class C has 24-bits for network and the remaining 8-bits for the host.
The subnetting in IPv4 further divided the network and host part in IPv4 by borrowing some bits from the host.
IPv6 address: A network ID and Interface ID
In IPv6, the first step is to divide the address into Network ID and an Interface ID.
The interface ID identifies an interface in a device, and a device can have multiple interfaces.
Firstly, we equally divide the 128-bits IPv6 address into two blocks of 64-bits, each for network and interface.
The upper part, which is the network part of the IP address, is used for routing, and the lower part, which is the host part, is used to identify the interface.
The lower part of the IP address is derived from the device’s MAC address based on Extended Unique Identifiers (EUI-64) managed by the Institute of Electrical and Electronics Engineers (IEEE).
The network part of the IP address that is 64-bits is further split into two blocks of 48 and 16-bits, respectively.
The upper part of the network part that is 48-bits is used for global network addresses and routing the data over the internet.
The lower part of the network part that is 16-bits is used for the internal network, which is equivalent to subnetting in IPv4.
IPv4 and IPv6 address size and representation differences
IPv4 Address size and representation
The IPv4 addresses consist of 32-bit numbers that are typically displayed in dotted decimal notation. In IPv4, the addresses have four-part, and each part is treated as a separate number.
Each part of the IPv4 address is represented as Octet, where Octet forms by combining 8-bits.
In another way, each part of the IP address is also represented as one byte, whereas one byte is equal to 8-bits.
One Octet = One Byte = 8-bits
You can look for bits and byte guide for further explanation.
Let suppose one part of the IP addresses is 11010000, equal to one byte or Octet.
Now, you need to convert the binary numbers into decimal numbers.
For this, you have to start from rightmost with 2^0 (1) and increase the value by one till you reach the leftmost bit 2^7 (128).
11010000 = 2^7*1 + 2^6*1 + 2^5*0 + 2^4*1 + 2^3*0 + 2^2*0 + 2^1*0 + 2^1*0 = 128 + 64 + 0 + 16 + 0 + 0 + 0 + 0 = 208.
Below you will see the IP address in binary format and its equivalent in dotted decimal format.
11010000 01100010 11000000 10101010 = 18.104.22.168
01110110 00001111 11110000 01010101 = 22.214.171.124
00110011 11001100 00111100 00111011 = 126.96.36.199
Thus how it is represented in IPv4 format.
IPv6 Address size and representation
IPv6 addresses are consist of 128-bits instead of 32-bits. It is divided into eight sections, and each section is equal to 16-bits.
Also, each section is expressed in a hexadecimal format, which ranges from 0 to FFFF.
Moreover, each section of IPv6 is separated by colons(:), instead of dots in IPv4.
So, we can express the IPv6 format as below:
As we have discussed, each section is a 16-bit hexadecimal value, where each “F” is equal to a 4-bit hexadecimal value.
So, the sample of IPv6 address is as below:
You can notice that the IPv6 address is too lengthy, and to make it short, various shortening techniques are employed.
The first technique is to omit multiple zeros and replace them with a single zero as we move from left to right in each address section. Once we encounter a hexadecimal number other than zero, we stop there.
Let’s apply the shortening rule with the above example.
7DFE:0:0:2:100:D8FF:8E75:70FF (omitting multiple zeros)
The above address is now truncated to a single zero.
The second technique is to remove contiguous zeros and compress it to double colons (::).
So, the final result of the above example will be as below.
There are some exceptions, dos, and don’t with the shortening technique of IPv6 address, which you can learn further in the IPv6 address guide.
IPv4 and IPv6 Address types differences
Types of IPv4 Address
The IPv4 address types are divided into three types: Unicast address, Broadcast address, and Multicast address.
In Unicast type of address mode, the source can send data packets to a single host using it’s IP address.
In IPv4, the broadcast address is used to send messages to all hosts on a network or subnetwork.
The Broadcast address is the last in the blocks of IP address, in which the host part of the bits is set to 1(one).
The sender will receive either by a single host or multiple hosts depend upon the type of IPv4 address.
More importantly, Broadcast doesn’t require a router to send messages in a network.
For instance, let’s take Class C network IP ranges from 188.8.131.52 to 184.108.40.206, the last IP address, 220.127.116.11, will be used to send a broadcast message.
Whereas IPv4 Multicast address is used to send messages to a group of hosts simultaneously.
Also, to receive a Multicast message, a group must be configured before and register their interest.
The Class D IP address ranging from 18.104.22.168 to 22.214.171.124 is used for Multicast.
Type of Addresses in IPv6
In IPv6, the IP address is of three types: Unicast, Multicast, and Anycast
In IPv6, the Unicast address, similar to IPv4 Unicast address, uniquely identifies the single interface on an IPv6 device.
Similar to IPv4, the interface is assigned with Unicast address will receive packets from the source using Unicast address.
The Unicast address is further divided into multiple types of addresses. The most common are Global Unicast, Link-local, and Unique local.
Multicast is another type of IPv6 addresses in which one device simultaneously sends a single packet to multiple destinations.
In IPv6, the multicast addresses use the prefix ff00::/8, similar to IPv4, which uses multicast address 126.96.36.199/4.
Unlike IPv4, the IPv6 addresses don’t use Broadcast addresses; instead, they use Multicast addresses.
An anycast address is a new type of address introduced in IPv6 as opposed to IPv4.
Unlike multicast, the Anycast address doesn’t have any fixed prefix, and it uses the same address range of Global Unicast address.
IPv4 and IPv6 address scope
The IP address scope is defined differently both in IPv4 and IPv6. In IPv4, the IP address is classified into 5 different types of classes, but later on, it has changed to the variable-length IP address.
In IPv6, the scope of the address is wide and extensive and not limited to IPv4.
Let’s figure out the differences.
IPv4 Addressing scope
In IPv4, we can have a limited pool of IP addresses. As we know, IPv4 consists of a 32-bits address.
If we calculate, then it will count to 2^32 = 4,294,967,296 addresses, which may be exhausted at some point in time.
To organize and distribute the pool of IPv4 addresses systematically, IPv4 has introduced classes of address. The classes of address are also known as Classful addressing.
But, on further modification and update, the Classful addressing has been updated to Classless addressing.
Classless addressing creates greater scope and flexibility.
In Classful addressing, IPv4 is classified under five heads: Class A, B, C, D, E.
The first three classes Class A, B, and C, are for public addressing and are assigned by your ISP.
Class D is for multicast, and Class E is reserved for future use.
The concept of Subnet Mask is involved in IPv4 to the separate network ID and host ID.
Class A, B, C subnet mask is equal to 255.0.0.0, 255.255.0.0 and 255.255.255.0.
The subnet mask notation is employed in Classful addressing. Later on, it was updated to Classless addressing.
In Classless addressing, the wastage of IP address block was reduced, and the subnet mask was represented in CIDR notation like /24, where 24-bits address space belongs to the network component. For instance, the IP address in CIDR notation as 188.8.131.52/24.
In IPv6, the classification of address space is not required because it has a huge collection of address which won’t get exhausted.
The IPv6 address size is 128-bits, 4-times the size of IPv4. When we calculate, the total estimated IPv6 address is equal to 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456.
Theoretically, we can say it is around 340 undecillion addresses, enough to assign every atom on the earth’s surface.
In IPv6, the Unicast addresses are further divided into three types: Global Unicast Address, Unique Local, Link-Local.
Global Unicast Address
The Global Unicast Address is globally unique, routable, and reachable on the internet. The IPv6 Global Unicast address identifies only one host in a network for one to one communication.
The Global Unicast Addresses space is split into three parts: global routing prefix, a subnet ID, and an Interface ID.
Also, the Global Unicast Addresses are equivalent to the public addresses of IPv4 networks.
The internet authorities (IANA.org) allocate a block of addresses to ISPs and which, in turn, assign it to their customers.
IPv4 and IPv6 subnets differences
Subnetting in IPv4
The subnetting concept was introduced to divide the network into a subnetwork.
In IPv4, the subnetting is implemented by borrowing some bits from the host part.
The subnetting helps you create a subnetwork, which helps manage subnetwork more efficiently and avoid any wastage of addresses.
Subnet in IPv6
The subnetting concept is not required in IPv6 because it has sufficient addresses.
In IPv6, the address space has separately allocated the space for subnetwork, which is described as subnet ID.
The subnet ID is used for internal networking, and your ISP assigns it.
IPv4 and IPv6 private and reserved address differences
In IPv4 and IPv6, some blocks of addresses are occupied by private and reserved addresses. Let’s look into the differences.
IPv4 Private address
The IPv4 has a certain private address that is not meant to be routed across the public internet but internally. These are basically used in an internal network.
- 10.0.0.1 – 10.255.255.255 (In IPv4 Class A)
- 172.16.0.0 – 184.108.40.206 (In IPv4 Class B)
- 192.168.0.0 – 192.168.255.255 (In IPv4 Class C)
IPv4 special address
It also has some special address which is assigned for some special purposes.
- 127.0.0.0 is used for Loopback address (sent packets to itself)
- 220.127.116.11 IP Multicast (send packets to multiple hosts in a multicast group)
- 255.255.255.255 Broadcast (sent packets to all hosts on a network)
IPv6 private address
IPv6 has two types of private addresses: Link-local and Unique local.
The link-local addresses are used in an internal network, confined to a single link or single subnet.
It is not routed on the internal network or the internet.
The link-local addresses are equivalent to IPv4 address 169.254.0.0/16. The link-local address starts with FE80.
Moreover, the devices automatically assign themselves to the link-local address. It doesn’t require any assistance from the DHCP server, nor does it require any manual configuration.
In IPv6, every interface is required to have one link-local address.
Additionally, it does not need to have a Global Unicast address to communicate with devices within a link or subnet.
Unique local address
The Unique local address can be routed within an internal network but not routed over the internet.
They are equivalent to the IPv4 addresses: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16
The Unique local address use the prefix FC00::/7, which results in the range of address from FC00::/7 to FDFF::/7
Special addresses in IPv6
A Loopback address in IPv6 is equivalent to the Loopback address of IPv4. In IPv6, the Loopback address is represented as ::1, where only the last bit is set to 1.
The functionality of the IPv6 Loopback address is similar to IPv4, where the IPv6 packet was sent to itself typically when testing the TCP/IP stack.
The IPv6 multicast address uses the prefix FF00::/8, equivalent to the IPv4 address. Also, the packet sends to the Multicast group is always registered with the Unicast source address.
Unlike IPv4, the IPv6 has no broadcast address; instead, IPv6 uses a multicast address.
There is no doubt that IPv6 is the future of the IP address, but migrating to IPv4 will significantly cost a considerable amount of time and money.
Many organizations, cloud servers, data centers, ISP, and mobile carriers are willing to adopt IPv6 and are slowly planning to leave older IPv4 technology. Being said that, IPv4 and IPv6 can still coexist in parallel networks.