IPv6


 

 

 

 

 

The background - IPv4

Within the stack of protocols used for the internet, the network layer is responsible for the addressing of networks, computers and other devices that wish to interact via the internet.

On the internet, the protocol used in the network layer is known as the Internet Protocol, or IP for short. More correctly, the protocol currently predominating is IPv4.

Every network, computer, or other device connected to the internet has to have a unique address, so that it can be uniquely identified and interacted with.

When the internet was in its infancy, it was decided that addresses should be defined using 32 bits, as this would provide more than enough unique addresses.

It was also decided to divide up the 32 bits so that they represented classes of network - this was done by using the first 8 or 16 or 24 bits to define the network, and the remaining 24 or 16 or 8 bits to define the unique addresses of the equipment connected to the network.

The downside of using a class structure is that it actually reduces the total number of addresses available to less than are obtained by using the 32 bits outwithn a class structure.

Additionally, the phenomenal growth in the internet has resulted in a massive rise in the number of IP addresses required, so there is now the situation where the world is going to run out of IP addresses.

One of the solutions now in use is to abandon the class structure of addressing, and to use classless addressing. This has made available a whole new range of unique addresses.

However even classless addressing can not meet the anticipated demand for new addresses, and a new solution is required.

The only real solution is to increase the number of address bits - which is where IPv6 comes in.

 

Introducing IPv6

IPv6 is a newer implementation of the Internet Protocol, and it is also known as IPng.

The fundamental difference from IPv4 is that IPv6 has 128 bits for the addresses.

If you like figures, just to put the power of 128 bits into context, these 128 bits allow

665,570,793,348,866,943,898,599

unique addresses for each square metre of the earth`s surface. Which is quite a lot.

However in practice, the number of addresses per square metre is less than this, due to the neccessity of using the addresses in hierarchies. However, there is still a lot of addresses.

Along with the change from 32 to 128 address bits is the method by which these addresses are represented to humans. To a computer 32 bits or 128 bits is just as easy to read. But to humans, the 32 bits of IPv4 were difficult to read - so the decimal notation was developed.

In decimal notation, the 32 bits are divided up into 4 of 8 bit chunks, and each 8 bit chunk is represented by a decimal number, which convey the value of the 8 bit chunk.

The four decimal numbers were then displayed in a sequence, seperated by full stops - thus giving the familiar IP address display that looks like "255.255.255.255"

For IPv6, there would have to be 16 decimal numbers in a sequence, and it was decided that this would not be a particularily easy way to display IPv6 addresses. It was decided therefore to design a new representation for IPv6.

In IPv6, the 128 bits are divided up into 8 chunks each containing 16 bits, and then each 16 bit chunk is shown as the corresponding 4 character hexadecimal number. The 4 character hex numbers are then joined in a string seperated by colons.

So a typical IPv6 address would look like

A32D:1234:BB5C:91FF:7932:ABDC:7FD3:0900

There are one or two add-on rules for this, if there is a hex numbered chunk that has leading zeroes, the zeroes can be suppressed.

So

1:2:3:4:5:6:7:8

would be a valid address, which in full would be

0001:0002:0003:0004:0005:0006:0007:0008

Another add-on rule is that a string of all zero hex numbers can be replaced by a colon, so the address

0000:0000:0000:0000:0000:0000:0001:0002

could be replaced by

::1:2

as the system can work out there should 6 other hex numbers.

Note that this technique can only be used once in any address, if it was used twice in an address, the system would not know how many hex numbers there should be in each string.

A final rule, if you want to show an IPv4 address in the IPv6 format, the IPv4 address replaces the last 32 bits of the 128 bits of the IPv6 format, so that the IPv4 decimal numbers replace the last 2 hex numbers, and are seperated by full stops.

So the IPv4 address of 134.36.40.0 shown in IPv6 format would look like

0000:0000:0000:0000:0000:0000:134.36.40.0

And using the rule for strings of zeroes shown above, this can be compressed to an IPv6 address of

::134.36.40.0

 


© 2001 Ron Turner


Return to the index page