You are on page 1of 5

Internet Protocol version 6

Luke Cole <>
1st of September, 2006

1 IPv6 address text representation

IPv6 addresses have the following text representation [Hinden and Deering,

x:x:x:x:x:x:x:x (1)
where, x is a 16-bit hexdecimal number. There are two special cases for
simplying the IPv6 text representation when many zero’s exist within the
address. The first special case uses the notation :: to represent one or more
sets of 16-bit zero addresses. So an address of the form: 0 : 0 : 0 : 0 : 0 : 0 :
0 : 1 can be written as :: 1. The second speical case uses the notation:

x : x : x : x : x : x : d.d.d.d (2)
where, x is a 16-bit hexdecimal number and d is a 8-bit. This address repre-
sentation having four 8-bit number is the standard IPv4 representation which
allows IPv4 and IPv6 environments to exist together.

2 Multiple ::
The IPv6 address 1::234::5::6 is not legal because there is no way to determine
the number of sets of zeros for each of the three ::. If we expand this address
with the minimum number of zeros, i.e. 1 : 0 : 234 : 0 : 5 : 0 : 6, one can see
the final 16-bit zero address could be located in three locations, which gives
three posiable solutions, which is not legal.

3 IPv6 Address Space
The earth surface (including land and water) is 510065600km2 [Wikipedia,
2006a] and the address space of IPv6 is 128-bit. So through simple division
their is approximately 6.5x1023 addresses per square metre of the Earth’s
surface including land and water [asmithmd1 and PKFC, 2006; Dean, 2005;
Robertson, 2003; Morton, 1997; Culpan, 2004; Microsoft, 2004; con, 2006].

4 TCP Transport Layer Changes for IPv6

“Most transport- and application-layer protocols need little or no change to
work over IPv6; exceptions are applications protocols that embed network-
layer addresses (such as FTP or NTPv3; NTPv4 supports IPv6).” [Wikipedia,

5 Sockets Application Program Interface (API)

Changes for IPv6
Those parts of the API that expose the addresses must be changed to ac-
commodate the larger IPv6 address size. IPv6 also introduces new features,
some of which must be made visible to applications via the API.
Core socket functions - These functions need not change for IPv6, but a
new IPv6-specific address data structure is needed.
Address data structures - a new address data structure must be defined
for IPv6.
Name-to-address translation functions - gethostbyname() and gethost-
byaddr(). These are left as is, and new functions are defined which support
both IPv4 and IPv6. gethostbyname() uses getaddrinfo() now.
Address conversion functions - IPv4 uses inet ntoa() and inet addr(). We
have designed two analogous functions that convert both IPv4 and IPv6
addresses, and carry an address type parameter so that they can be extended
to other protocol families as well.
Extra - A new interface is needed to support the IPv6 hop limit header
field. New socket options are needed to control the sending and receiving of
IPv6 multicast packets.
[Gilligan et al., 1999; 2003; ?; Stevens et al., 2003]

6 DNS and IPv6
For the Domain Name System (DNS) to support IPv6 names and addresses,
it must be extened to support 128-bit addresses, since the DNS was originally
designed to only return 32-bit addresses. Three extensions are required to
support the 128-bit address space [Thomson and Huitema, 1995; Thomson
et al., 2003]: The first is a new resource record type to map domain names
to IPv6 addresses. The second is a new domain must be defined to support
lookups based on addresses. Finally queries, originally for IPv4, must be
redefined to handle IPv6 addresses, along with support for IPv4 addresses.
The new resource record defined to support IPv6 is labelled AAAA, as
opposed to A in IPv4. The AAAA type is used in the same way as the A type
however 128-bit addresses are used instead of 32-bit addresses. This enables
a DNS to perform IPv6 address lookups given a domain name.
To perform domain name lookups given an IPv6 address a special domain
is setup, which was originally rooted at IP6.INT, but has now been replaced
with IP6.ARPA, following the depreciation of IP6.INT that is now truly
obsolete as of the 1st June, 2006 [Sun, 2006; Bush, 2001; Thomson et al.,
2003]. The IP6.ARPA represents IPv6 addresses by a sequence of single
hexadecimal numbers separated by dots and with a suffix of .IP6.ARPA. The
sequence of single hexadecimal numbers is the IPv6 in reverse order. So
the IPv6 address 3133 : 7 : 0 : 9 : 9 : 42 : 666 : 77aa is represented as

7 IPv6 through IPv4 networks

For IPv6 packets from IPv6 islands to reach other IPv6 islands through a
IPv4 ocean a technique to perform the IPv6 transition over IPv4 networks is
known as “IPv6 over IPv4 tunneling, which carries IPv6 packets within IPv4
packets” [King et al., 1999; IPNGBone, 2006]. IPv6 over IPv4 tunneling is
performed without any change to the IPv4 infrastructure and its components.
The router between the IPv4 ocean and the IPv6 island encapsulates the
IPv6 packet within IPv4 packets and then sent as normal IPv4 through the
IPv4 ocean. When the encapsulated IPv6 packet enters another IPv6 island,
another router decapsulates the packet and the packet is then sent through
the IPv6 network as a normal IPv6 packet.
The router that performs the transition of packets between the IPv4 ocean
and IPv6 island uses protocol number 41, however if this port is blocked other
schemes such as AYIYA or GRE can be applied [Wikipedia, 2006b]. There
is no effect to the MTU however the overhead almost doubles [Raicu and

Naveed, 2002].
On a side note, tunnelling across IPv4 links is useful however not a great
approach because it’s difficult to do accounting of tunnelled traffic, and im-
possible to achieve QoS. -

8 IPv6 and Mobile Phones

keywords “exchange of 200 IP datagrams GPRS ipv6”

[asmithmd1 and PKFC, 2006] asmithmd1 and PKFC. The impending ip
crisis, 2006.
[Bush, 2001] R. Bush. RFC 3152: Delegation of, August 2001.
[con, 2006] Emerging technologies, August 2006. http://www.connected-
[Culpan, 2004] Tim Culpan. World: New address for wired world, August
[Dean, 2005] Tim Dean. Tomorrow’s internet, April 2005.
[Gilligan et al., 1999] R. Gilligan, S. Thomson, J. Bound, and W. Stevens.
RFC 2553: Basic socket interface extensions for ipv6, March 1999.
[Gilligan et al., 2003] R. Gilligan, S. Thomson, J. Bound, J. McCann, and
W. Stevens. RFC 3493: Basic socket interface extensions for ipv6, February
[Hinden and Deering, 2006] R. Hinden and S. Deering. RFC
4291: Ip version 6 addressing architecture, February 2006.
[IPNGBone, 2006] IPNGBone. Ipv6: A protocol overview, August 2006. 1.

[King et al., 1999] Steve King, Ruth Fax, Dimitry Haskin, Wenken
Ling, Tom Meehan, Robert Fink, and Charles Perkins. The
case for ipv6: draft-ietf-iab-case-for-ipv6-06.txt, December 1999.
[Microsoft, 2004] Microsoft. Tcp/ip fundamentals for mi-
crosoft windows - chapter 3 ip addressing, November 2004. ch03.m
[Morton, 1997] David Morton. Understanding ipv6, May 1997.
[Raicu and Naveed, 2002] Ioan Raicu and Ahmad Naveed. Tunnel-
ing: A transition mechanism to delay ipv6 networks, February 2002. iraicu/research/reports/WSU CSC8260 2001.pdf.
[Robertson, 2003] Dale Robertson. Ipv6 largely
implemented network-wide, September 2003.
[Stevens et al., 2003] W. Stevens, M. Thomas, E. Nordmark, and T. Jinmei.
RFC 3542: Advanced sockets application program interface (api) for ipv6,
May 2003.
[Sun, 2006] Sun. is dead, long live, May 2006. int is dead long.
[Thomson and Huitema, 1995] S. Thomson and C. Huitema. RFC
1886: Dns extensions to support ip version 6, December 1995.
[Thomson et al., 2003] S. Thomson, C. Huitema, V. Ksinant, and M. Souissi.
RFC 3596: Dns extensions to support ip version 6, October 2003.
[Wikipedia, 2006a] Wikipedia. Earth, August 2006.
[Wikipedia, 2006b] Wikipedia. Ipv6, August 2006.