Internet protocol version four (IPv4) dates from 1978. In the 1990's a new internet protocol called 'IPv6' (internet protocol version six) was developed. This document describes a few differences between the two.
IPv4 uses 32 bit IP addresses. These are usually grouped into groups of 8 bits called bytes. The bytes are then translated into decimal numbers. These in turn have dots ('.') put between them;
11000000 10101000 00000001 00101010 192 168 1 42 192.168.1.42
You can use this IP address to access a website with IP address 192.168.1.42;
It's more common to use a name instead though;
IPv6 addresses are 128 bits or 16 bytes. This results in enough IP addresses to
connect the entire universe to the internet. Many times over!
IPv6 addresses are not expressed as decimal, but as hexadecimal numbers. Which is in fact more convenient. Expressing IPv6 addresses as decimal numbers would make then way to long.
The table below shows four-bit numbers as binary, hexadecimal and decimal numbers. The first part of the table shows the meaning of the rightmost four bits in a byte, the second part the leftmost four bits in a byte;
So 'fe' is 240 + 14 = 254. And 'ef' is 224 + 15 = 239.
Let's look at '192.168.1.42' again. The bytes are split into groups of four bits called nibbles;
1100 0000 1010 1000 0000 0001 0010 1010 c 0 a 8 0 1 2 a
Put the hex digits into groups of four and put colons (':') in between;
Remove leading zeros after colons;
A complete IPv6 address;
In decimal notation this would be;
Which is much longer.
You can abbreviate long sequences of zeros, such as '0:0:0:0' to '::' (you can only do this ONCE per IPv6 address). So '::1' actually means '0:0:0:0:0:0:0:1'.
If you want to access a website using an IPv6 address instead of it's name, you have to enclose the IPv6 address in angle brackets ('[' and ']');
It is of course, more convenient to use a name instead;