Computer networks have become widely used in society today. Mobile nodes, for example, cellular telephones, are often used in conjunction with these networks. User devices, such as computers, may be connected to mobile nodes. In this way, the user device (e.g., the computer) may be in direct communication with some or all of the networks and other devices connected to these networks.
As mobile nodes move between networks, the ability to locate and communicate with the mobile node is preferably maintained. For instance, the mobile node may be assigned a home network. The home network may include a home agent. The mobile node may move to other networks (“foreign networks”) that are not the home network. As the mobile node moves to these foreign networks it may register a care-of-address with the home network and the home agent in the home network. The mobile node also may register this care-of-address with a foreign agent on the foreign network. In this way, messages can be transmitted from a device in any network to the mobile node, no matter where the mobile node is located. Also, the mobile node (and user devices coupled to the mobile node) may transmit messages to the home network and receive messages from the home network.
A tunnel may be used to transmit the information from the tunnel endpoints. In tunneling, packets or frames from one network are placed inside frames (“encapsulated”) of another network. The encapsulated frames may include a header with sufficient routing information to transmit the encapsulated frame from a source to a destination. In one example of tunneling, the home agent may tunnel data to the mobile node when the mobile node is on a foreign network. In another example of tunneling, a tunnel may be established between the foreign agent and the home agent to transmit data between the mobile node and the home agent when the mobile node is attached to a foreign network. Once the encapsulated frames reach the tunnel endpoint, they are unencapulated and transmitted to the ultimate destination.