IPv6
Home Up Academics Interests Photo Album Favorites

 

Up

What is IPv6?

IPv6 is short for "Internet Protocol Version 6". IPv6 is the "next generation" protocol designed by the IETF to replace the current version Internet Protocol, IP Version 4 ("IPv4").

Most of today's internet uses IPv4, which is now nearly twenty years old. IPv4 has been remarkably resilient in spite of its age, but it is beginning to have problems. Most importantly, there is a growing shortage of IPv4 addresses, which are needed by all new machines added to the Internet.

IPv6 fixes a number of problems in IPv4, such as the limited number of available IPv4 addresses. It also adds many improvements to IPv4 in areas such as routing and network auto configuration. IPv6 is expected to gradually replace IPv4, with the two coexisting for a number of years during a transition period.

How do IPv6 addresses look like?

As previously mentioned, IPv6 addresses are 128 bits long. This number of bits generates very high decimal numbers with up to 39 digits:

2^128-1: 340282366920938463463374607431768211455
  

Such numbers are not really addresses that can be memorized. Also the IPv6 address schema is bitwise orientated (just like IPv4, but that's not often recognized). Therefore a better notation of such big numbers is hexadecimal. In hexadecimal, 4 bits (also known as "nibble") are represented by a digit or character from 0-9 and a-f (10-15). This format reduces the length of the IPv6 address to 32 characters.

2^128-1: 0xffffffffffffffffffffffffffffffff
  

This representation is still not very convenient (possible mix-up or loss of single hexadecimal digits), so the designers of IPv6 chose a hexadecimal format with a colon as separator after each block of 16 bits. In addition, the leading "0x" (a signifier for hexadecimal values used in programming languages) is removed:

2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
  

A usable address (see address types later) is e.g.:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
  

For simplifications, leading zeros of each 16 bit block can be omitted:

3ffe:ffff:0100:f101:0210:a4ff:fee3:9566  -> 3ffe:ffff:100:f101:210:a4ff:fee3:9566
  

One sequence of 16 bit blocks containing only zeroes can be replaced with "::". But not more than one at a time, otherwise it is no longer a unique representation.

3ffe:ffff:100:f101:0:0:0:1  ->  3ffe:ffff:100:f101::1
  

The biggest reduction is seen by the IPv6 localhost address:

0000:0000:0000:0000:0000:0000:0000:0001  ->  ::1
  

There is also a so-called compact (base85 coded) representation defined RFC 1924 / A Compact Representation of IPv6 Addresses (published on 1. April 1996).

# ipv6calc --addr_to_base85 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566 
Itu&-ZQ82s>J%s99FJXT

 

IPv6 Related RFCs

http://playground.sun.com/pub/ipng/html/specs/standards.html

http://www.opengroup.org/platform/xnetipv6.htm