The term mobility is mentioned much more frequently in current business strategies and in needs of common Internet users. There has been rapid increase of mobile devices (e.g. smartphones, tablets, netbooks) on the market. Also, the movement among different physical locations has never been easier before. Therefore, the demands on modern IT infrastructures have changed completely and the companies want to use seamless services while moving in different locations. Common end users long for seamless services which are not interrupted every time they roam between cellular network of their mobile operator and home WLAN (Wireless Local Area Network) network.
There has already beenlayer or layer 2 mobility implemented by current cellular mobility standards (e.g. GPRS (General Packet Radio Service), WCDMA (Wideband Code Division Multiple Access)). Their purpose is to provide global connectivity, where the IP (Internet Protocol) layer is not involved in the mobility management. This makes it possible to continue using the existing IP address when moving in the cellular network .
In link layer mobility, access to IP networks is realized through one specific IP router (e.g. Gateway GPRS Support Node, GGSN). When the mobile device is roaming in distant visited networks and local services are used, the routing might be inefficient. Another case is the above mentioned end user roaming between different access networks and home network.
By every such network change, the mobile device is given a new IP address. When the IP address is changed, existing application sessions are lost and they need to be restarted. This is because the transport layer protocol (e.g. Transmission Control Protocol, TCP) uses the IP address as an identifier, correlating IP packets to transport sessions. Therefore the request also for IP mobility mechanism emerged.
Protocol IP in version 6 is meant to be the successor of currently wide used Internet protocol version 4. In addition to the main IPv6 contribution – larger IP address range, there are many advantages (e.g. optimized IP header structure with use of extension headers, simplified fragmentation mechanism, network auto-configuration and also IP mobility).
The IP mobility mechanism (MIPv6) was designed to fulfill the Oxford Dictionary definition of the term mobility: “The ability to move or be moved freely and easily”. MIPv6 presumes that even mobile device has a home location somewhere and is travelling among visited networks. The purpose of MIPv6 is to make correlation between a changing IP address and the static home address. The transport and application layers keep using the static home address in all session relations while the IPv6 address on network layer is changing as mobile device is roaming between networks. Therefore, whole IP mobility is transparent to upper layers, application sessions are no more being restarted and IP-TCP correlation remains.
Although the MIPv6 processes seem to be simple and straightforward, it affects more parts of IPv6 protocol: (1) new extension headers were defined (Mobility header, Destination option header, Routing 2 header), (2) four new ICMPv6 (Internet Control Message Protocol) messages were defined, (3) router advertisement messages were modified.
Fig. 1 shows common IPv6 mobility process. First, the mobile device (referred to as Mobile Node, MN) forms an association with the router in its home network location. This router is called Home Agent (HA). The MN is assigned two addresses, one for its Home Address (HoA), which is static and MN is always reachable on it, and one for the Care of Address (CoA), when the MN is in the foreign visited network. When the MN roams, it connects to foreign link and uses an Access Router (AR) to obtain its CoA. The MN maintains network
Figure 1. MIPv6 indirect communication
connectivity using the HoA, regardless of which network link it might be connected to. HA router acts like the HoA and keeps being informed of the MN’s current CoA. While the MN is roaming in visited network HA forwards the packets to the CN’s CoA. If another IPv6 node wants to communicate with MN (node is referred as Correspondent Node, CN), it sends the information to the MN’s HoA. The HA then helps forward those packets to the MN’s current CoA by creating IP tunnel between HA and MN’s CoA .
Indirect communication is very inefficient, because the communication packet flow has to traverse first through HA, where it is encapsulated and then forwarded to the current MN’s CoA. In the case that many mobile nodes are registered to the same HA, this HA could get congested and it is not able to route all IP communication in a timely manner. If the router is a single point of connection to the Internet, also communication from home network is impacted.
MIPv6 comes with method allowing nodes to communicate directly without using HA. The route optimization is done by Return Routability procedure (RR). RR is an optional method of providing assurances to the CN and the MN that they are legitimate and validation of the MN authenticity. Main procedure steps are displayed in Fig. 2.
RR process starts with the MN creating cookies, which are two random 64-bit numbers. Cookies are sent to the CN in two messages using two different paths. First message Home Test Init (HoTI) (1) is sent through the tunnel to its HA router and then forwarder to the CN. The second message Care of Test Init (CoTI) (2) is sent directly to the CN. When the CN receives both cookies, it calculates 96-bit keygen token from them using HMAC_SHA1 function. Then the CN returns the keygen token, cookies and nonces to the MN again using two diverse paths (HoT and CoT messages are used) (3) (4). The MN uses those tokens to create a Binding Update (BU) (5) message and to assure that the CN is legitimate. 
After Binding Update message is acknowledged (6), the CN and the MN can communicate using the direct method. To preserve MIPv6 transparency for upper layers, the MN sends packets to the CN using Destination Option header (Home Address option) and in the opposite direction the CN communicate with the MN using Routing header 2 to indicate the HoA. IP security (IPsec) can be applied to Binding updates or to whole communication between MN and CN to strengthen the communication confidence.
Figure 2. MIPv6 direct communication signaling
Mobility in IPv4
The idea of IP mobility is not new in IPv6 protocol. Its basic concepts and ideas emerged with IPv4 protocol. However, the MIPv4 is just add-on to IPv4 implementation and the vast majority of IPv4 nodes do not support it. For IPv6, the mobility support has been on the list of required features from the beginning and now it is part of IPv6 implementation. The main feature differences:
- In MIPv4 the CoA can be either hosted by a Foreign Agent (FA, router in visited network) or co-located with the mobile node itself. This requires each potential foreign visited network to have foreign agent(s).
- Separate UDP (User Datagram Protocol) based protocol is used for MIPv4 registration and signaling. MIPv6 simplifies the mobility architecture by using the extension headers to handle the traffic.
- Direct communication is not supported and only indirect triangle routing through HA is supported.
- No security mechanisms such as IPsec to assure that the nodes are legitimate.
 Nokia networks, Introducing mobile IPv6 in 2G and 3G mobile networks. 2001, pp.5-10.
 S. Hogg and E. Vyncke, IPv6 security. Cisco press, December 2008, pp.377-385.
 USAGI project, UMIP-USAGI patched Mobile IPv6 for Linux. April 2012 online http://umip.org.
 H. Soliman, Mobile IPv6: Mobility in a wireless Internet. Pearson Education 2004, pp.79.