%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (c) Andreas Hofmeier
%       http://www.lgut.uni-bremen.de/an-h/
%       http://an-h.de/
%       http://an-h.de.vu/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    This document is free software; you can redistribute it and/or
%    modify it under the terms of the GNU General Public License as
%    published by the Free Software Foundation; either version 2 of
%    the License, or (at your option) any later version.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% v1 - ready for correction by english teacher
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[12pt]{report}

%PDF \usepackage[final]{ps4pdf}

%%%%%%%%% GERMAN
%\usepackage{a4,german}
\usepackage{a4}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

%%%%%%%%% GERMAN
%\usepackage{ngerman}

%%%%%%%%% PDF-Latex:
%PDF \ifpdf
%PDF   \usepackage[pdftex]{graphics}
%PDF   \usepackage{ae}
%PDF   \usepackage{graphicx}
%PDF   \usepackage[
%PDF      pdftex,
%PDF      a4paper,
%PDF      bookmarks,
%PDF      bookmarksopen=true,
%PDF      bookmarksnumbered=true,
%PDF      pdfauthor={Andreas Hofmeier  --  an-h.de},
%PDF      pdftitle={Network and Broadband Systems -- IPv6 What's new?},
%PDF %     colorlinks=true,
%PDF %     linkcolor=black,
%PDF %     filecolor=black,
%PDF %     urlcolor=black
%PDF   ]{hyperref}
%PDF \else
%PDF   \usepackage[dvips]{graphics}
%PDF \fi

%NOTPDF
  \usepackage[dvips]{graphics}
%PDF

%\usepackage[dvips]{graphics}
\usepackage{latexsym}
\usepackage{exscale}
\usepackage{amssymb,amsmath}
%\documentclass[11pt]{report}
%\usepackage{isolatin1}
%\usepackage{german}
\usepackage{epsf}
\usepackage[dvips]{rotating}

\usepackage{longtable}
\usepackage{dcolumn}

\usepackage{listings}

%\usepackage{eurosym}
%\EUR{300}

\usepackage{multicol}
%\usepackage[dvips]{rotating}

%ENDHEAD

\parindent=0pt
\parskip=\baselineskip

%\setcounter{tocdepth}{4}
%\setcounter{secnumdepth}{4}

\pagestyle{empty}
%\pagestyle{myheadings}
%\markright{\mbox{\bf A. Hofmeier, ...}}

\begin{titlepage}
\title{
  \centerline{
    \epsffile{../LSBULogo.eps}
  }
Network and Broadband Systems\\IPv6 What's new?}
\author{Andreas Hofmeier}
%\date{12. Mai 2003}
\date{}
\end{titlepage}


\begin{document}
\maketitle

%\begin{center}
%\begin{tabular}{rl}
%
%
%Lecturer: & Nigel Webster\\
%Deadline: & 10.12.2004\\
%Hand-In: & 10.12.2004\\
%\\
%Student: & Andreas Hofmeier\\
%Student ID: & 2406108\\
%Address: & Dante Road Student Residence\\
% & Room 2G3\\
% & 2 Dante Place\\
% & London SE11 4RX \\
%Tele Number: & 0870 036 5618 \\
%%eMail: & an-h@an-h.de
%\\
%Course: & Computer Systems and Networks, \\
% & 3 Year, BEng, FT \\
%\\
%\end{tabular}
%
%\end{center}



\tableofcontents
\newpage

\pagestyle{myheadings}
% Engineering Informations Management: Standards and Specificaions: Assignment: Principle of Controlled Documentation
\markright{\mbox{\bf A. Hofmeier, NBS, IPv6 What's new?}}
\setcounter{page}{1}

%\setcounter{section}{-1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (c) Andreas Hofmeier
%       http://www.lgut.uni-bremen.de/an-h/
%       http://an-h.de/
%       http://an-h.de.vu/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%    This document is free software; you can redistribute it and/or
%    modify it under the terms of the GNU General Public License as
%    published by the Free Software Foundation; either version 2 of
%    the License, or (at your option) any later version.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% v5
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{IPv6, What's New?}
\begin{flushright}
\textit{Andreas Hofmeier}
\end{flushright}



\section{Introduction}

This part of the report will give an overview about the new Internet
Protocol version 6 (IPv6). In particular the improvements and changes
will be discussed. At first an introduction to the new addresses
will be given. After that the influences and advantages of the bigger
address space will be discussed. Auto-configuration and the mobile
usage of IPv6 are mentioned. The last things that are mentioned are
header structure and security in IPv6.



\section{Address Space}

The most important improvement in IPv6 is the much bigger address
space. IPv4 uses 4 bytes (32 bit) addresses, this is equivalent to
4,294,967,296 (4.3 * 10$^9$) addresses. IPv6 increases the
address-size to 16 bytes (128 bit). With this address size
340,282,366,920,938,463,463,374,607,431,\\768,211,456 (3.4 * 10$^{38}$)
different addresses can be distinguished (Sæther, 2004).

It is difficult to find a suitable analogy because the IPv6 address
space is so much larger than the IPv4 one. Kozierok (2004) found a
good analogy:

% Breite: 13.80cm!
%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_Space.eps}

%NOTPDF
\caption{
%PDF
Analogy IPv4 to IPv6 Address Space compared with $16cm^2$ to area of solar system
%NOTPDF
}
\end{figure}
%PDF

``To make this diagram to scale, imagine the IPv4 address space is the
1.6-inch square above. In that case, the IPv6 address space would be
represented by a square the size of the solar system.'' (Kozierok,
2004) $1.6 inch \approx 4cm
\Rightarrow 16cm^2$.



\section{Address Notation}

An IPv4-address is displayed as four decimal numbers separated by
dots:

{\tt 134.102.199.160}

Every number must be in the range between 0 and 255 because it is an 8
bit (1 byte) value. This notation is impractical with IPv6 because of
the long address. An IPv6 address is written as eight groups of 4
hexadecimal digits each (en.wikipedia.org, 2004; de.wikipedia.org,
2004; Forouzan, 2001; Hinden, Deering, 1998; Bieringer, 2004). Every
of this group is a 16 bit (2 bytes) value and can vary between 0000H
and FFFFH. This is equal to 0 and 65535.

Because of the huge address space a lot of addresses will be unused,
many zeros will occur. One zeros-sequence can be condensed with the
{\tt ::}-operator. This operator can be used only once. First zeros in
a column can be left out. (en.wikipedia.org, 2004; de.wikipedia.org,
2004; Forouzan, 2001, Hinden, Deering, 1998)

\begin{verbatim}
2001:0DB8:0000:0000:0000:0000:1428:57ab 
2001:0DB8:0000:0000:0000::1428:57ab 
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:DB8::1428:57ab       (adapted form en.wikipedia.org, 2004)
\end{verbatim}

An alternative is the mixed notation which is helpful by dealing with
IPv4 in IPv6 addresses. Because of the large address space it is no
problem to map the old IPv4 addresses in the new IPv6 address
space. In this special notation the last four bytes of an IPv6 address
are written in dot-decimal (Hinden, Deering, 1998; Kozierok,
2004). For example:

\begin{verbatim}
0:0:0:0:0:0:8666:A6A0
0:0:0:0:0:0:134.102.166.160
::134.102.199.160
\end{verbatim}

% Mixed Notation
% http://www.tcpipguide.com/free/t_IPv6AddressandAddressNotationandPrefixRepresentati-4.htm


\section{Sharing of IP Addresses is no Longer Necessary}

Because of the strong limited address space of IPv4 it is necessary
for users to share IP addresses (Cocquet, 2004). One possibility is a
time sharing in which the IP addresses are dynamical assigned during
establishing the connection to the Internet Service Provider (ISP).
Not every terminal can be online at the same time but the new
technologies like DSL make it possible and affordable to be always
on. For some applications like tele- and video-conferencing it makes
sense to be online 24 hours a day. These kind of applications are
becoming more and more important. The time-sharing confines the usage
of such applications.

Another possibility to share IP addresses is to do a Network Address
Translation (NAT). NAT masquerades many private (internal, not public)
IP addresses behind few public addresses. One of the most important
disadvantages of NAT is that the terminals behind a NAT are not
accessible from outside/public. This is no problem in a
server-client-structure but the trend goes to Peer-to-Peer
applications such as Voice over IP. These applications cannot be fully
used through a NAT (Cocquet, 2004).

The new Internet Protocol version 6 eliminates these
disadvantages. Dirty tricks to share IP addresses are no longer
necessary because of the huge address space. Every terminal gets its
own public and unique IP address. Anyway, the old techniques like NAT
and firewalling can be also applied on IPv6. Sometimes this makes
sense for security reasons (Cocquet, 2004).



\section{Address Structure}

A IPv6 address is built up with two main parts: the address (subnet)
prefix and the node identifier. The second part of the IP address is
generated from the layer two MAC address. For privacy reasons there is
a random component in it, so it is not possible to observe a
particular terminal, because it changes its IP address every time it
connects to the network. A more detailed hierarchy was adapted from
Forouzan (2001). The width of all parts of the hierarchy (excluding
the first one) can vary.

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_AddressHierarchy.eps}

%NOTPDF
\caption{
%PDF
The hierarchy of an IPv6 address in its fragments
%NOTPDF
}
\end{figure}
%PDF


\section{Auto Configuration}

In IPv6 the configuration is much easier because of the new
auto-configure feasibility. The terminal gets its address fully
automatically, no manual configuration is needed. On the other hand, it
is still possible to set the IP address manual.

After the terminal is switched on, the node identifier is
generated. The address prefix is set to an special value which
indicates that this first address is a local address. This address
enables the terminal to access the local network. After it has been
checked that the calculated node identifier is unique, the terminal
connects the local router and ask for an auto-configuration. There are
two ways of configuring the IP address: the first possibility is that
the router gives an address prefix to the terminal. With this new
prefix the IP address of the terminal is complete and access to the
Internet is possible. In the second scenario the router gives the IP
address of an local DHCP server to the terminal. The terminal gets its
IP than from the DHCP server. This design makes it possible to keep it
simple (way one) or to do IP address management with a DHCP
server. This is a very important benefit in the mobile environment
because it makes it possible to move through different networks
without knowledge of them. (Kozierok, 2004)



\section{Mobile IP}

Mobile IPv6 provides the possibility to connect a terminal anywhere in
the Internet. When the terminal uses the home-network/provider to get
access to the Internet there is no problem connecting it. This becomes
difficult if the terminal has moved from the home subnet to another
subnet. By changing the subnet, the IP address changing as well. In
this case the home agent has to know where the mobile terminal can be
found. In step 1 the mobile terminal tells the home agent its new
address (current location). If some terminal wants to connect the
mobile terminal it tries to connect the home location of the mobile
terminal (2a). The home agent knows that the mobile terminal is not at
home and hands the connection over a tunnel to the current location of
the mobile terminal (2b). This way of communication is not efficient
because all transmissions have to transmit through the home agent. For
this reason it is possible to give the current location of the mobile
terminal to the `some terminal`. After this the a direct connection
can be established (3). Adapted from Strand (2004) and Palet (2004).

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_Mobile.eps}

%NOTPDF
\caption{
%PDF
The way of data if the mobile terminal is not at home. Routing over the home agent or direct.
%NOTPDF
}
\end{figure}
%PDF



\section{New Header Structure}

The following picture faces the protocol headers of IPv4 and
IPv6. Adapted from Impress (2003) and Forouzan (2001).

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_Header.eps}

%NOTPDF
\caption{
%PDF
The header structure of IPv4 faced against IPv6's ones.
%NOTPDF
}
\end{figure}
%PDF

The header structure in IPv6 was reviewed and optimised. It can be
faster processed by routers and other devices. The most important
change is the increase of the address fields form 32 bit to 128
bit. The {\tt Time to Live} (TTL) field from IPv4 is now called {\tt
Hop Limit}, it is still an 8 bit field. It contains the number of
still allowed hops. Within every hop this value is decreased by
one. The 8 bit field {\tt Next Header} is a pointer which point to a
payload extension header. Additional information such as header from
an upper layer (TCP, UDP or ICMPv6), fragmentation, encryption or
authentication details can be stored in the payload extension
header. The overall size of the payload is stored as a 16 bit value in
the {\tt Payload Length} field. The {\tt Flow Label} field provides
the possibility of special handling of particular data-flows. It is 24
bit long. Traffic control with {\tt Priority} if realized with a
4-bit-field. The {\tt V}-field (Version) does not change its meaning,
position or size. It still contains the version number of IP. In IPv4
a binary 4, and in IPv6 a binary 6. (Impress, 2003; Palet, 2004)

The IPv4 header has not a fixed size. The smallest header is 20 bytes
long and grows if some additional information, such as encryption
details, are stored in the option field. In contrast, IPv6 has a
fixed header size of 40 bytes. Additional information is not longer
stored in the header of the packet. This information is stored in the
{\tt Payload Extension Headers} which are a part of the
Payload. Because of the fixed header size and the fact that all
important information (for routing, for example payload length) stored
in the beginning of each packet, it is possible to process an IPv6
packet much faster as an old IPv4 one. The unnecessary checking
of the header information was disestablished, because this will be
done in the previous layer. This speeds up the processing of an IPv6
packet again, because the checksum does not need to be recalculated in
every hop. (Palet, 2004; Forouzan, 2001)



\section{Fragmentation}

Another simplification is made in the fragmentation process. In IPv6
only the sender of a packet does fragmentation (Kozierok, 2004). If a
router receives an IPv6 packet which is too large, an error message is
sent back to the sender. The sender has to send smaller packets. An
IPv4 packet will be fragmented by the router if it is too big. In this
case the other side has to be able to do the reserve process, the
defragmentation. Therefore information about the fragmentation process
has to be stored in the packet header. This makes the processing of an
IPv4 packet much slower and more complicated. All information about
fragmentation in IPv6 are stored in a payload extension header. The
payload extension headers are within the payload and have no influence
on the transport (the routers do not take it into account). The
payload headers are used for the end-to-end communication only. (Palet
(2004) mentioned the exception of the routing header)



\section{IPsec}

IPsec was developed for IPv6, it is native implemented in
IPv6. Because of the fact that the majority of the computers still
use IPv4, IPsec was adapted to IPv4 as well. The basic idea of IPsec
is the encapsulation of data to establish a virtual private networks
(VPNs). This is a end-to-end process because it is undesirable that any
terminal between the sender and the receiver can access or modify the
data. There are two categories of these VPSs:
encryption/authentication and tunnelling. If authentication is
used, an authentication header (AH) is added to the packet. This
extra header contains information which is used to make sure that the
sender is the right one.

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_IPsecA.eps}

%NOTPDF
\caption{
%PDF
IPsec: The transformation of an packet to an authenticated one.
%NOTPDF
}
\end{figure}
%PDF

In case of an encryption the payload of a packet will be encrypted. An
ESP (encapsulation security payload) header and trailer is added to
maintain encryption and authentication.

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_IPsecE.eps}

%NOTPDF
\caption{
%PDF
IPsec: The transformation of an packet to an encrypted one.
%NOTPDF
}
\end{figure}
%PDF

For tunnelling it is necessary to create a complete new packet which
contains a new IP header, (an encrypted version of) the original
packet, ESP header and trailer. Adapted from Forouzan (2001).

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_IPsecT.eps}

%NOTPDF
\caption{
%PDF
IPsec: The transformation of an packet to an tunnelled one.
%NOTPDF
}
\end{figure}
%PDF



\section{Network Layer}

The following graph shows the difference between the two (IPv4 and
IPv6) network layers. Adapted from Forouzan (2001).

%NOTPDF
\begin{figure}[H]
%PDF
\includegraphics[width=13.80cm]{NBS_IPv6_Report_A_NetworkLayers.eps}

%NOTPDF
\caption{
%PDF
The difference between the network layers in IPv4 and IPv6.
%NOTPDF
}
\end{figure}
%PDF

IP works within or is a part of the network layer. The IPv4 network
layer contains additionally to the IPv4 the Internet Control Message
Protocol (ICMP), the Internet Group Management Protocol (IGMP), the
Address Resolution Protocol (ARP), and the Reverse Address Resolution
Protocol (RARP). IGMP provides the feasibility to doing multi-casting
(Baccala, 1997). The ICMP announces network errors, network
congestion, and timeouts. In addition it can be used to assist
troubleshooting (Baccala, 1997). The ARP is necessary to figure out
the right corresponding (to the Network or IP address) physical
address. The RARP does this the other way around. Forouzan (2001) says
that IGMP, ICMP, and ARP centralised to the ICMPv6 within the
IPv6. RARP is not longer supported because it is rarely used.



\section{Conclusion}

The experience of the strengths and weaknesses in IPv4 was used to
develop the new Internet Protocol. That is the reason why this
Internet Protocol in version 6 solves all the major problems of
today's (and hopefully the future's) Internet.



\section{Bibliography}

Saint Baccala, B (1997) {\it Connected: An Internet Encyclopedia}\newline [Online]
Available at http://www.freesoft.org/CIE/\\(accessed 29 November 2004)

Bieringer, P. (2004) {\it Linux IPv6 HOWTO}\newline [Online] Available at
http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/\\(accessed 20 November 2004)

Cocquet, P. (2004) {\it IPv6 on DSL: The Best Way to Develop Always-On
Services}, Proceedings of the IEEE 92 (9) September 2004 pp 1400-1408
\newline [Online] Available at http://ieeexplore.ieee.org/iel5/5/29301/01323288.pdf
\\(accessed 2 October 2004)

de.wikipedia.org (2004) {\it IPv6}\newline [Online] Available at
http://de.wikipedia.org/wiki/Ipv6\\(accessed 27 November 2004)

en.wikipedia.org (2004) {\it IPv6}\newline [Online] Available at
http://en.wikipedia.org/wiki/Ipv6\\(accessed 27 November 2004)

Forouzan, B. A. (2001) {\it Data Communication and Networking, 2$^{nd}$
edition}. McGraw-Hill, New York

Hinden, R.; Deering, S. (1998) {\it RFC 2373 - IP Version 6 Addressing
Architecture}\newline [Online] Available at
http://www.faqs.org/rfcs/rfc2373.html\\(accessed 5 December 2004)

Impress, NTT Communications (2003) {\it IPv6style: Learning the IPv6
header}\newline [Online] Available at
http://www.ipv6style.jp/en/tech/20030331/index.shtml\\(accessed 29
November 2004)

Kozierok, C. M. (2004) {\it The TCP/IP Guide}\newline [Online] Available at
http://www.tcpipguide.com/free/index.htm\\(accessed 1 December 2004)

% http://www.tcpipguide.com/free/t_IPv6AddressSizeandAddressSpace-2.htm
% http://www.tcpipguide.com/free/t_IPv6AutoconfigurationandRenumbering.htm


Palet, J (2004) {\it What are the technical benefits of implementing
IPv6}\newline [Online] Available at http://www.cu.ipv6tf.org/pdf/006.pdf
\\(accessed 05 Decemder 2004)

Sæther, Ø (2004) {\it Why you want IPv6}\newline [Online] Available at
http://linuxreviews.org/features/ipv6/\\(accessed 12 November 2004)

Strand, L (2004) {\it Linux Mobile IPv6 HOWTO}\newline [Online] Available at
http://www.tldp.org/HOWTO/Mobile-IPv6-HOWTO/index.html\\(accessed 5
December 2004)
               
\end{document}
