Method and system for IP mobility
The invention relates to a method of performing mobile internet protocol communication in a network, wherein said method comprises communicating data packets from a correspondent node to a mobile node via a home agent, which network is divided into a number of sub networks being at least one home network, wherein the mobile node is identified by a home communication address and at least one foreign network, wherein said mobile node is identified by a foreign communication address. The invention further relates to a system adapted for performing the method and a mobile node and a home agent adapted for performing the method.
Mobile IP as defined in RFC 3344 is a technology supporting mobile devices to communicate persistently while devices are on the move and their IP addresses or IP subnets are changing. This is in contrast to nomadic IP, achievable by DHCP and Dynamic DNS, where mobile devices are able to move to a foreign network prior to the start of communication. However once communication starts, mobile devices have to keep the IP address obtained; otherwise on-going communication would be broken. Mobile IP development was started more than 10 years ago when major devices connecting to the Internet were still personal computers and when wireless networks were not significant. Despite the elegancy and simplicity of the mobile IP protocol (only 4 protocol messages), there are serious limitations when being implemented to real mobile networks and devices. The limitations hurdle the wide deployment of mobile IP technology. The limitations result from, among others, the choice of using tunneling being a technique by which original IP packets are wrapped with additional headers (e.g. extra IP header) in order to keep network transparency. There are at least two consequences imposed: 1. Inefficient link usage: mobile IP adds typically 20 bytes (IP in IP encapsulation) overhead to each IP packet over the wireless link. This is significant firstly because the bandwidth of wireless links is scarce compared to wired links and secondly because payloads are typically short for real-time data (such as voice and video) in order to reduce delay.
2. Extra processing at power-constrained mobile devices: mobile IP devices have to perform extra processing to de-capsulate in-coming packets and even more complex processing with packet assembly/de-assembly. Today with the upcoming of handheld devices and mobile phones with two or more interfaces and the popularity of Wi-Fi networks and devices, the need for mobile communication across IP networks is rapidly increasing. Therefore re-engineering and optimization of mobile IP technology is seen as a key factor for the wider deployment of the mobile IP technology.
It is an object of the invention to obtain a solution to the above mentioned problems. This is obtained by a method of performing mobile internet protocol communication in a network, wherein said method comprises communicating data packets between a correspondent node and a mobile node via a home agent, which network is divided into a number of sub networks being at least one home network, wherein the mobile node is identified by a home communication address and at least one foreign network, wherein said mobile node is identified by a foreign communication address, said method further comprising the steps of: - forwarding said packets at the home agent by replacing a home communication address identified in the data packet with the foreign communication address if said mobile node is connected to a foreign network, receiving said forwarded data packets and processing said packets by replacing the foreign communication address identified in the data packet by the home communication address of the mobile node. Thereby an alternative to tunneling is given where, instead of adding further information to the data packets, information is replaced within the packet. This saves processing time and bandwidth. In an embodiment the correspondent node is identified to the home agent by a source communication address and wherein the step of: forwarding said packets at the home agent further comprises replacing said source communication address with a home agent communication address being uniquely linked to said source communication address,
receiving said forwarded packets and processing said packets further comprises replacing said home agent communication address with said source communication address. In an embodiment the method further comprises the step of: - transmitting packets from said mobile node by replacing said source communication address with said home agent communication address, forwarding said transmitted packets at the home agent to the correspondent node further comprises replacing said home agent communication address with said source communication address. By performing the above step packets in the reverse path are considered topology correct. In an embodiment the mobile node performs the steps of receiving and transmitting said packets. By letting the mobile node take care of the replacing of addresses the home agent can communicate directly to the mobile agent. In an embodiment the step of processing said packets at the mobile node is performed between the network interface layer and the application layer in the mobile node. Thereby persistent sockets are obtained seen from the application layer. The socket is bound to the home address and not the foreign address that the mobile node uses to communicate in the foreign visited network. In an embodiment a foreign agent representing the foreign network to which the mobile node is connected performs the steps of receiving and transmitting said packets. Thereby the mobile node does not have to use processing power to perform the replacement. Only the foreign agent has to be modified, not the mobile nodes. In a specific embodiment the step of replacing the home communication address with a foreign communication address and the step of replacing the foreign communication address with the home communication address further comprises recalculating the IP checksum and optionally the TCP/UDP checksum. This is an easy way to ensure that nothing goes wrong in the replacement step. In one embodiment at least the source communication address or the home agent communication address comprises an IP address and a corresponding IP port number. Thereby the same IP address can be used for a number of different devices. In an embodiment the home agent or said mobile node requests said link between the home agent communication address and said source communication address before communicating data packets between said mobile node and said home agent.
In an embodiment the method comprises identifying the communication method used by the mobile node to the home agent when registering the mobile node at the home agent. There are extra bits in the registration message that could easily be used for informing the home agent about the communication method e.g. using tunneling or the present invention. The invention further relates to a system for performing mobile internet protocol communication in a network, wherein the system comprises a home agent, a mobile node and a correspondent node, wherein the mobile node is adapted for communicating data packets from said correspondent node to said mobile node via said home agent, which network is divided into a number of sub networks being at least one home network wherein the mobile node is identified by a home communication address and at least one foreign network, wherein said mobile node is identified by a foreign communication address, the home agent of said system is adapted for forwarding said packets by replacing a home communication address identified in the data packet with the foreign communication address if said mobile node is connected to a foreign network, the mobile node of said system is adapted receiving said forwarded data packets and processing said packets by replacing the foreign communication address identified in the data packet by the home communication address of the mobile node. The invention further relates to a mobile node to be used in a system for performing mobile internet protocol communication in a network, wherein the system further comprises a home agent and a correspondent node, wherein the mobile node is adapted for communicating data packets from said correspondent node to said mobile node via said home agent, which network is divided into a number of sub networks being at least one home network, wherein the mobile node is identified by a home communication address and at least one foreign network, wherein said mobile node is identified by a foreign communication address, the home agent of said system being adapted for forwarding said packets at the home agent by replacing a home communication address identified in the data packet with the foreign communication address if said mobile node is connected to a foreign network, wherein mobile node comprises: - means for receiving said forwarded data packets and processing said packets by replacing the foreign communication address identified in the data packet by the home communication address of the mobile node. The invention further relates to a home agent to be used in a system for performing mobile internet protocol communication in a network, wherein the system further
comprises a mobile node and a correspondent node, wherein the mobile node is adapted for communicating data packets from said correspondent node to said mobile node via said home agent, which network is divided into a number of sub networks being at least one home network, wherein the mobile node is identified by a home communication address and at least one foreign network, wherein said mobile node is identified by a foreign communication address, said home agent comprising: means for forwarding said packets by replacing a home communication address identified in the data packet with the foreign communication address if said mobile node is connected to a foreign network.
In the following, preferred embodiments of the invention will be described referring to the figures, wherein: Fig. la illustrates a system for performing mobile internet protocol communication in a network, wherein the system comprises a home agent, a mobile node and a correspondent node. The mobile node being positioned in its home network; Fig. lb illustrates a system for performing mobile internet protocol communication in a network, wherein the system comprises a home agent, a mobile node and a correspondent node. The mobile node being positioned in a foreign network; Fig. 2 illustrates a mobile node adapted for performing the method according to the present invention; Fig. 3 illustrates a home agent adapted for performing the method according to the present invention; Fig. 4 shows a flow diagram of the steps being performed when communicating using the mobile protocol adapted according to the present invention; Fig. 5 illustrates a first embodiment of the method of communicating between the mobile node and the correspondent node via a home agent; Fig. 6 illustrates a second embodiment of the method of communicating between the mobile node and the correspondent node via a home agent.
In Fig. la and lb a system is illustrated for performing mobile internet protocol communication in a network, wherein the system comprises:
home agent 101 which in general can be defined as a router on a mobile node's 103 home network 105 that delivers data packets to departed mobile nodes, and maintains current location information for each mobile node; mobile node 103 being a host or router that changes its joint of attachment from one network or sub-network to another, without changing its home IP address. A mobile node can continue to communicate with other Internet nodes at any location using its (constant) home IP address. At foreign networks, mobile node 103 also obtains a foreign IP address; foreign agent 107 being a router on a mobile node's visited foreign network 109 that cooperates with the home agent 101 to complete the delivery of data packets to the mobile node 103 while it is away from home; correspondent node 111 being a peer with which a mobile node is communicating. A correspondent node may be either mobile or stationary. In Fig. lathe mobile node 103 is positioned in its home network 105, and in Fig. lb the mobile node 103 is positioned in a foreign network 109. In Fig. 2 a mobile node 201 adapted for performing the method according to the present invention is illustrated. Here the layer structure 200 is illustrated to show how persistent sockets are implemented inside the mobile node 201. The actual implementation may not have an explicit Inverse NAT layer IJSfAT 203. The only requirement for the persistent socket implementation is that the socket API interface to applications and the device interface to underlying networks are kept unchanged. In other words home IP address IPh is always presented to applications and packets with the foreign IP address IPf are received from network interfaces. The other NAT layers are the network device driver 205 receiving the data packets (DP), the IP stack 207, the TCP/UDP stack 209 and finally the application layer 211. A monolithic persistent socket implementation may not have expensive NAT processing at all if the pay loads of received packets with IPf are passed directly to applications associated with IPh. The socket implementation "fools" the applications such that the applications think they are actually connected to sockets with IPh. The benefit of this kind of implementation is that the processing required on the mobile node 201 is comparable to that of a normal TCP/IP stack. Fig. 3 illustrates a home agent 300 adapted for forwarding data packets according to the present invention. The functionality 301 comprised in the home agent comprises a receiver 302 for receiving data packets indicating a source address and a
destination address. The home agent further comprises NAT functionality in the form of NAT processing means 305 which is adapted for checking the destination address and replacing it by the stored address 303 if it is different than the home address of the mobile node. Further home agent comprises a transmitter 307 for transmitting the data packet, wherein the destination address could have been replaced by the NAT processing means 305. In Fig. 4 the steps of performing communication to/from a mobile node are described according to the present invention, which is adapted from mobile IP. First in 401 agent discovery (DISC) is performed, agent discovery is a process wherein a mobile node: determines whether it is connected to its home link or a foreign network; - detects whether it has moved from subnet to another subnet; and (optionally) obtains a care-of address also referred to as a foreign network when connected to a foreign network. Next in 403 registration (REG) is performed which comprises the steps of: informing its home agent of its current care-of address; - requesting forwarding services from home agent when visiting a foreign network. renewing a registration when it is due to expire; and deregistering when it returns to its home link. Compared to the mobile IP as it is today using tunneling, the only modification to the agent discovery and the registration steps is that the messages have an extra bit, namely the N bit, which may be defined in the reserved fields in the current mobile IP registration messages, to indicate that mobile nodes and home agents are going to use complimentary NAT according to the present invention and as described below instead of tunneling. Next in 405 the communication between the correspondent node and the mobile node is performed until the mobile node is moved and the discovery and registration process has to be restarted illustrated by the return loop 406 from the communication step 405. The communication comprises communicating from the mobile node 409 and to the mobile node 407. In Fig. 5 a first embodiment of the communication step 405 is illustrated, comprising translation and relaying of data packets to the mobile node. Data packets traveling from a correspondent node 501 to the mobile node 503 always travel first towards the home agent 503, where they are forwarded towards the mobile node 504.
At the home agent, destination IP addresses IPh, which are the home address for the mobile node 504, are replaced/translated to the current foreign care-of address IPf for the mobile node that has being registered through the registration process. This translation could further involve IP checksum and TCP/UDP checksum recalculation. After address translation the home agent 503 forwards the data packets towards the mobile node 504 at its current foreign address IPf. At the mobile node 504, received packets undergo an Inverse NAT in which current foreign address IPf of the mobile node is translated into its home address. This Inverse NAT is the key to achieve persistent sockets. From an application's 507 point of view, a socket is always bound to the home address IPh of the mobile node, regardless of the changes in the actual foreign address IPf that the mobile node uses to communicate in a foreign visited network. The additional Inverse NAT stack 505 translates packets with the foreign address IPf, to the home address before packets are passed to the application. In short an application sees a persistent socket, which survives from network address changes; and Inverse NAT links packets with IPf to IPh. As with the current mobile IP, packets from mobile node to correspondent node are as per normal transported directly to correspondent node. No additional processing is required. The role of foreign agent 509 in this setup is limited to registration if required.
However it is possible that foreign agent takes over the task of inverse address translation. In this case, foreign agent requests for complementary NAT forwarding in the registration step. Upon receiving packets with destination address of the foreign address IPf, foreign agent performs inverse address translation from IPf to IPh and sends the resulting packets directly to mobile node. While mobile node is at home, it will discover through agent Discovery that its foreign address IPf equals its home address IPh. Hence there is no NAT processing at home agent and no Inverse NAT processing at mobile node. The mobile node behaves just like normal host. In the above embodiment packets in the forward path from correspondent node to mobile node undergo complementary NAT at home agent and inside mobile node. But packets in the reverse path from mobile node to correspondent node do not go through home agent as mobile node put home address as source address.
However, such packets in the reverse path are not considered topology-correct and may be discarded due to the ingress filtering effect of strict routers. The same problem applies to original mobile IP specification; and hence reverse tunneling as specified in RFC 3024 is used to tackle the problem. An alternative embodiment of the present invention is therefore described with reference to Fig. 6. The idea of the alternative embodiment is also to perform CNAT for the data packets on the reverse path. In this embodiment agent discovery and registration are similar to reverse tunneling specified in RFC 3024. The mobile node 604 at the foreign network is informed that it has to use reverse tunneling and the home agent 603 supports reverse tunneling, though in this case the semantics are that CNAT for reverse path has to be carried out. When performing packet relaying different from the basic CNAT, both source address and destination address undergo CNAT. The address IPcn for the correspondent node 601, which is the source address in the forward path from correspondent node 601 to mobile node 603, and the destination address in the reverse path from mobile node 604 to correspondent node 601, is translated to IPha at home agent. A complimentary translation from IPha to IPcn is performed at mobile node 604. At mobile node 604, from the application 607 point of view, it thinks it is communicating to IPcn at IPh. The correct address will always be embedded in the payload. For each correspondent node that a mobile node is communicating to, the home agent has to assign a binding between IPcn and IPha , where IPha is one of the IP addresses that the home agent owns. The home agent may reuse the same IPha for another correspondent node that another mobile node is communicating to. If home agent has not enough IP addresses for this purpose, the home agent may establish bindings including TCP/UDP ports Pen, e.g. between IPcn:Pcn and IPha:Pha. When the mobile node first initiates communication to correspondent node, it sends binding request for IPcn to the home agent. The home agent establishes the binding between IPcn and IPha and informs the mobile node about the established bindings. The mobile node then proceeds to real communication. When correspondent node first initiates communication to mobile node, the home agent establishes a binding between IPcn and IPha when it receives the first packet from the correspondent node. It informs the mobile node about the binding and proceeds.
When communication between the mobile node and correspondent node ends, the mobile node should inform the home agent to release the correspondent binding. The home agent should also set timers on bindings, e.g. a binding is released if no communication packet is observed after a certain period of time. Foreign agent can take over the inverse NAT process from mobile node. In this case foreign agent and home agent establish first the binding between the communication address (may include TCP/UDP port) for correspondent node and one of the communication addresses (may include TCP/UDP port) of home agent. In relaying packets between mobile node and correspondent node, foreign agent performs the inverse NAT from IPcn to IPha on the packets from correspondent node to mobile node; and the inverse NAT from IPha to IPcn on the packets from mobile node to correspondent node.