Packets sent to the mobile unit are first received by the home unit and passed on accordingly. The mobile unit then registers this address with the home unit, so that it can receive packets addressed to its static IP address. The home unit passes the packets it receives on to the current mobile unit's care-of address. Normally, the mobile unit would modify the sender IP address of the packets it sends on the network to its home IP address. This results in a triangular routing where packets are sent directly from the mobile unit to the corresponding host, but return via the home unit.
Foreign agents are stationary hosts that can reside on foreign networks.
Foreign agents provide mobility support by providing care-of addresses for mobile units. This is done in a way such the one foreign agent can serve as the care-of address for many mobile units visiting its subnet. This discovery process helps to provide seamless mobility between foreign networks. The MosquitoNet group favors running with co-located addresses, rather than with foreign agents. This is becauseas foreign agents are currently not implemented widely, and can not be relied upon.