Enhanced capabilities
In developing IPv6, consideration was also given to the new needs of Internet users
which have come to the fore in recent years, and to the fact that IPv4 can support
these needs only with the help of special purpose applications. Integrating protocols
managing multicasting, terminal mobility and differentiated services in IPv6 increases
efficiency and makes it easier to implement what are known as enhanced capabilities.
Multicasting
The possibility of using multicast transmission on the Internet first received attention
in 1988, when class D addresses were developed. Multicasting is chiefly used by the new
multimedia applications, which often need to transmit from a single source to many
recipients.
The major innovation which IPv6 introduces in the area of multicasting is this: all IPv6
implementations will have to include native support for this IP service right from the
beginning. The introduction of the scope field in IPv6 addresses, together with the fact
that multicasting management is no longer delegated to a separate protocol as it is in
IPv4, represents a significant improvement. The MLD protocol, in fact, is part of ICMPv6.
Under IPv4, moreover, several protocols for accomplishing multicast routing are defined,
while IPv6 will rely entirely on a new version of the PIM (Protocol Independent Multicast)
protocol which is now under development.
Multicast Listener Discovery ( MLD )
MLD is a subprotocol of ICMPv6 used by routers to manage multicast groups.
It is derived from the IGMPv2 protocol [RFC2236] for IPv4,
though it differs from the latter in using ICMPv6 messages.
The IPv6 header preceding an MLD packet has the sender's link-local address as its
source address, a hop limit of one, and uses the Router alert option.
There are three types of MLD messages, which are distinguished by the value in the type
field (see Figure 40): Multicast Listener Query (type = 130),
Multicast Listener Report (type = 131) and Multicast Listener Done
(type = 132). In turn, there are two types of Query message,
which differ according to the content of the Multicast Address.
These two types are the General Query, used to discover which multicast addresses
correspond to active groups on the link, and where the multicast address field
is set to zero, and the Multicast Address Specific Query, which is used to
determine where a particular group still has active members and where the multicast
address field is set to the address of the group that is being queried.
The Report and Done messages have the multicast address field set
to the multicast address of the group to which the sending node belongs.
The Maximum response delay is used only for Query messages and
specifies the maximum amount of time in milliseconds within which a
receiver must send a Report.
The nodes use this protocol to discover which multicast groups are active. Each group
maintains this information in an appropriate list, one for each link to which it is
connected. On each link, a single router acts as Querier and periodically sends
General Query messages to all nodes on the link in order to keep the data
which would otherwise be discarded up to date. The nodes which receive these
messages use the Maximum Response Delay value to initialize their timers so that
replies are not synchronized, which would cause collisions.
When a node's timer expires, the node will send a Report to the Querier if it is an
active member of a group.
The Done message was introduced to ensure that lists can be updated more quickly.
When a node leaves a group, it sends a Done message to the Querier.
The latter responds with a Multicast Address Specific Query to check whether the
group concerned still has active members. If it does not, the Querier deletes
the group from its lists.

Figure 40 - MLD message format.
Security
The IPv4 protocol was designed to work in a collaborative environment, where it
is assumed that the network connections are physically secure. This assumption,
however, is not borne out in reality: communications can undergo a number of types
of attack. One such attack is called packet sniffing, where packets in transit are
read by a node between the sender and destination, thus acquiring confidential
information such as the password. Other types of attack are known as IP spoofing
and connection hijacking. In the first case, the sender's address is counterfeited
in order to deceive the services that use this parameter for authentication purposes,
or to disrupt the network with faked ICMP messages. In the second case, the hijacker
penetrates an ongoing communication, introducing incorrect data.
A number of effective ways of dealing with these problems at the application level are
available on the market. The main drawbacks of these solutions is that they are
mutually incompatible, and duplicate each others' capabilities. The development of
IPv6 has made it possible to provide a more efficient answer, and one which cuts
across all applications, to security problems.
One of the contexts in which AH and ESP can be used is that of virtual private
networks (VPNs), i.e., networks used by companies with geographically distributed
sites connected via the public network rather than by dedicated channels. Such
networks also exist under IPv4, where guaranteeing security involves protecting
IP packets through cryptographic techniques and encapsulating them in other IP
packets to create secure tunnels between the two firewalls (see Figure 41). This
encapsulation method can create compatibility problems between firewalls produced
by different manufacturers, as well as fragmentation problems. If the packets to
be transmitted are of the maximum size permitted for IP, in fact, they will have
to be fragmented before they can be encapsulated in other IP packets. Firewall FW2
will have to extract each fragment and reassemble the packet to return it to clear
form and check its authenticity, and then forward it to the correct destination
after fragmenting it again if necessary. This causes performance to drop by as much
as 50% of normal throughput, especially for large packets [12]. In IPv6, FW2 need not
reassemble the packets, but simply eliminates the upper-layer header to create the
tunnel. Packet authenticity checks are carried out directly at the destination, thanks
to the new mechanisms introduced by IPv6. As the size of the overhead added by the
AH and ESP extension headers is fixed and independent of that of the original packet,
performance degradation is less extreme. This method can also be used with mobile
terminals, where the firewall acts as the home agent.

Figure 41 - Example of a tunnel between two firewalls.
Mobility
Though terminal mobility is an innovative type of service, it is expected to assume
the same proportions as mobile telephony in the near future. In general, a distinction
is made between the concept of portability and that of mobility. In the first case,
the user moves, for instance as a result of a new job assignment, and sets up a
connection with the home office from a new point of access. Even if the point of
access can be changed several times, connections are never set up while the user
is in motion. While portability is already active under IPv4, IPv6 simplifies it
thanks to the new autoconfiguration mechanisms provided by the new protocol. Mobility,
on the other hand, means that that terminal is able to communicate while on the move.
This is not easily accomplished, because packet routing in both IPv4 and IPv6 is based
on the destination address's subnet prefix. To continue to communicate, a mobile node
would have to change its IP address every time it reaches a new link. If this were done,
however, the node would not be able to maintain transport layer connections.
This is because TCP uniquely identifies sessions using the source and destination
IP addresses and the port number. If the address changes before the session is closed,
the session will be broken off. For this reason, a special protocol has been specified
in order to support mobility in both IPv4 and IPv6.
This protocol ensures that the mobile terminal can be reached at all times through
its "home address", or in other words the IP address whose prefix identifies the
subnet and the link to which the node in question belongs. The home address is permanent.
Packets can be forwarded to the mobile terminal using the home address, independently of
the point of access to the Internet currently being used by the terminal. The mobile node
can thus continue to communicate with other nodes (mobile and otherwise) after moving
to a new link. In this way, node movement is transparent to the transport layer and the
applications. Mobile IPv6 is derived directly from Mobile IP
[RFC2002], and its basic operation is thus identical.
The innovations introduced by IPv6, such as stateless autoconfiguration, the Neighbor
Discovery protocol, and the authentication and encryption mechanisms, have made it
possible to simplify procedures by comparison with the IPv4 protocol in several ways.
A possible application scenario for the mobility protocol is shown in Figure 42,
which also illustrates a number of definitions. In particular, the terms home
network and home link are used to designate a node's own network and subnet,
while the term foreign is used in connection with everything relating to the network
visited by a mobile node as it moves.
Take, for example, the case in which station W wishes to communicate with Z,
and thus queries the DNS which supplies it with the destination address A::1.
As a result, W generates a packet in which the destination address is A::1 and
the source address is C::1. This packet is routed in the same way as any other
packet, and reaches network A. Two situations may occur at this point.
Node Z is connected to its home network, and the message is delivered using the
classic procedures.
Node Z is connected to network B, which is thus its foreign network. In this case,
the node can also be reached via one or more care-off addresses, i.e., an IP address
which is associated with a mobile node when it is visiting a particular subnet other
than its own. The care-of address prefix is that of the subnet to which the foreign
link belongs. The home network must have an entity known as the Home Agent, which is
responsible for forwarding packets to Z which are intended for this node but use the
home address as their destination. The Home Agent uses tunnels to divert these packets
to Z. Packets which use the care-of address as their destination address, on the other
hand, reach the mobile node directly when the latter is connected to the foreign link,
without passing through the home link.
The association between the home address and the primary care-of address is called
"binding". The primary care-of address is the address acquired through stateless
autoconfiguration whenever the station changes its link-layer point of connection
from one IPv6 subnet to another. When this occurs, the station registers the new
binding with a router on its home link, which will then act as the home agent for
that node. Other care-of addresses acquired previously can be retained so that the
host can still receive packets addressed to earlier locations. This can be useful
in radio networks, where a host can decide to configure itself on the cell from which
it receives the strongest signal, but continue to receive signals from the other
cells that served it previously.

Figure 41 - Host mobility.
The care-off address is registered with the Home Agent using the following messages:
- Binding Update, sent by the node to the home agent
- Binding Acknowledgement, sent by the home agent to the node in order to
confirm the Update.
These messages are carried using two new types of Destination option defined for
Mobile IPv6 and called the binding update option and the binding acknowledgement option.
The home agent's task is to intercept packets intended for the mobile node on the home link,
and send them to the node through a tunnel.
The Binding Update, Acknowledgement and Request options are also used to enable an
IPv6 node (which in this case is called the correspondent node) which is communicating
with a mobile node to learn the latter's binding dynamically and store it in a cache.
When the correspondent node needs to send a packet, it checks whether the cache contains
an entry for the destination concerned. If an entry is present, the node uses an IPv6
Routing Header to forward the packet via the care-of address. If there is no entry for
the destination, the packet will be sent as usual, and will be redirected to the mobile
node by the home agent. These options must be present in each IPv6 packet in the mobile
communication.
Mobile IPv6 defines a further destination option called the Home Address. In this way,
the mobile node uses the care-of address as the source address, and can announce its
own home address by adding this option. It was necessary to introduce this option, which
is not provided in the IPv4 version, because many routers use input filters which discard
packets whose source address is not topologically correct. Consequently, if this option
were not provided, all packets for a mobile node which uses the home address as the
source address when it is away from the home network would be eliminated. In addition,
using only the care-of address would not make movements transparent to the transport
layer, which is the major aim of the protocol. Another benefit provided by this option
is that it simplifies routing for multicast packets sent by the mobile node. Using the
header Destination Option enables Mobile IPv6 to accomplish traffic control through
piggybacking, i.e., adding its control packets to any existing IPv6 packet.
In Mobile IP, on the other hand, this function is performed by separate UDP packets,
whose presence increases network traffic.
QoS services
Unlike IPv4, the new version of the protocol provides a new way of identifying
IP packet flows through the IPv6 header's flow label field.
A "flow" is a correlated sequence of packets generated by a source and relating to a
specific application activity. To identify a flow uniquely in IPv4, it was necessary
to use the value of five parameters: the source address, the destination address, the
transported upper-layer protocol (extracted from the IPv4 header) and the source and
destination TCP or UDP port numbers (extracted from the upper-layer protocol header).
The IPv6 flow-label field makes it possible to uniquely identify data packet flows more
efficiently for the nodes that must classify them.
This is the only real difference between IPv4 and IPv6 as regards the methods used to
support differentiated and controlled quality services. In fact, both IPv4 and IPv6
can use the Integrated Services model (which offers on-demand quality of service by
using the ReSerVation Protocol, or RSVP) and the Differentiated Services model (which
makes it possible to support service classes which are diversified by traffic group)
now under development within the IETF.
|