Introduction to Mobile IP
IP version 4 assumes that a node’s IP address uniquely identifies its physical
attachment to the Internet. Therefore, when a corespondent host (CH)
tries to send a packet to a mobile node (MN), that
packet is routed to the MN’s home network, independently of the current
attachment of that MN (this is because CHs do not have any knowledge of
mobility).
When the MN is on its home network, and a CH sends packets to the mobile
node, the Mobile Node obtains those packets and answers them as a normal
host (this is one important requirement in Mobile IP), but if the MN is
away from its home network, it needs an agent to work on behalf of it.
That agent is called Home Agent (HA). This agent must be able to communicate
with the MN all the time that it is “on-line”, independently of the current
position of the MN. So, HA must know where the physical location of the
MN is.
In order to do that, when the MN is away from home, it must get a temporary
address (which is called care-of address), which will be communicated to
the HA to tell its current point of attachment. This care-of address can
be obtained by several ways, but the most typical one is that the MN gets
that address from an agent. In this case, this agent is called Foreign
Agent (FA).
Therefore, when a MN is away from home, and it’s connected to a foreign
network, it detects is on a different network and sends a registration
request through the FA to the HA requesting mobile capabilities for a period
of time. The HA sends a registration reply back to the MN (through the
FA) allowing or denying that registration. This is true when the Mobile
Node is using a Foreign Agent for the registration. If the Mobile Node
obtains the care-of address by other meanings, that step (registration
through the FA) is not necessary.
If the HA allows that registration, it will work as a proxy of the MN.
When MN’s home network receives packets addressed to the MN, HA intercepts
those packets (using Proxy ARP), encapsulates them, and sends them to the
care-of address, which is one of the addresses of the FA. The FA will decapsulate
those packets, and it will forward them to the MN (because it knows exactly,
where the MN is).
Encapsulation is the method used by the HA to deliver information to the
MN putting an extra IP header on top of the packet and tunnelling that
packet to the MN (when it's on a foreign network). Tunneling and encapsulation
are defined in IP in IP tunneling and IP encapsulation within IP.
So, when the MN is on a foreign network, it uses its home agent to tunnel
encapsulated packets to itself via FA. This occurs until the lifetime expires
(or the MN moves away). When this happens (time out) MN must register again
with its HA through the FA (if the MN obtains its care-of address for other
meanings, it acts as its own FA).
When the MN moves to another network and it detects so, it sends a new
registration request through (one more time) the new FA. In this case,
HA will change MN’s care-of address and it will forward encapsulated packets
to that new care-of address (which, usually, belongs to the FA). Some extensions
of Mobile IP allows to a MN to have several care-of addresses. Then, HA
will send the same information to all the care-of addresses. This is particularly
useful when the MN is at the edges of cells on a wireless environment,
and it is moving constantly.
MN bases its movement detection basically looking at periodic adverts of
the FA (and HA), which sends to its localnet. Those messages are one extension
of the ICMP router discovery messages and they are called Agent Advertisement
(because they advertises a valid agent for Mobile Nodes).
There are two different methods to detect network movement:
a) The first method is based on network prefixes. For further information
look at Mobile IP RFC 2002 (section 2.4.2.2, page 22). This method
is not included in our current implementation.
b) The second method is based upon the Lifetime field within the main body
of the ICMP Router Advertisement portion of the Agent Advertisement. Mobile
nodes keep track of that Lifetime and if it expires, it sends an Agent
Solicitation (asking for a new Agent Advertisement) and it presumes that
it has been moved.
When the MN returns to its home network, it does not require mobility capabilities,
so it sends a deregistration request to the HA, telling it that it’s at
home (just to deactivate tunneling and to remove previous care-of address(es)).
At this point, MN does not have to (de)register again, until it moves away
from its network. The detection of the movement is based on the same method
explained before.