Today's mobile devices are able to communicate using a plurality of network infrastructures. For example, a laptop may connect to a wired network, a WiFi Access Point, a Bluetooth device or tethering to an external device, such as a mobile phone, to connect to a cellular network. (3G, GPRS etc.)
In wireless telecommunications, roaming is a general term referring to the extension of connectivity service in a location that is different from the home location where the service was registered. Roaming services exist in wireless networks allowing the user to seamlessly continue data transfer while changing networks. Normally roaming applies to the same network while connecting to different Access Point or Base Station. Effectively only the physical route is updated but the IP address remains unchanged. Attempts have been made in the art (e.g., in U.S. Pat. No. 6,091,951) to address these issues, although no efficient solution has been provided to date.
The existing roaming services provide the user with apparent continuous network connectivity while the network infrastructure provides seamless roaming services. Thus, for example, a mobile phone call remains connected while the user is changing location and hence changing the radio network. However, the existing roaming solutions are bound to their underlying infrastructure. For example, a 3G network provides seamless data roaming service while the device migrates between cells. But it is unable to provide the seamless roaming service when the device disconnects from the 3G network and connects to a WiFi access point. In such cases the existing connections are broken and have to be reestablished.
A TCP connection is represented by a 4-tuple (source IP, source Port, destination IP, destination port). The source IP address may be assigned statically or dynamically. Connecting to different networks changes the source IP address. For example, a mobile phone may have an IP address that was assigned to it by the mobile operator network. Should the mobile phone connect to a WiFi Access Point it will acquire a new IP address, assigned by the Wireless Access Point device. When a device changes its source IP address, local TCP connections need to be reestablished since the existing 4-tuple no longer identifies the current connection.
Broken connections can either be implicitly handled by the running applications or explicitly handled by the user. In some cases reestablishing a broken connection requires the user to restart the existing application.
Modern roaming systems that are known in the art provide an inter-network roaming service, which uses an abstraction to the physical network layer. Thus, all network traffic is first directed to the abstract layer which, in turn, transmits the data using the available physical network.
US Patent Application No. 2007/0204049 discusses a method for maintaining connectivity between applications when the existing connection is impaired. The suggested method introduces a virtual socket software module that must be used by applications requiring maintaining connectivity. However, it does not provide a solution to networked applications that were not developed using the suggested software module.
IBM Lotus Mobile Connect application provides a cross-network roaming option (http://publib.boulder.ibm.com/infocenter/lmc/v6r1/index.jsp?topic=/com.ibm.lmc.doc/wcwin27.htm). However, it does not transparently handle TCP reset scenarios when switching to a slower network connection due to packet loss and increased round trip times.
A paper from the University of Portsmouth, Portsmouth, UK “A simple implementation to roaming between GPRS and WiFi Networks 1” by M. Adda, J. Saunders and A. Peart, describes a mechanism for roaming data connections between GPRS and WiFi networks. However the solution proposed in the paper requires a hardware device. Furthermore, it does not transparently avoid TCP reset scenarios when switching from fast networks (such as LAN or WiFi) to slower networks (such as 3G), by adapting the TCP flow control window to the new physical network constraints.
The article “Freeze-TCP: A true end-to-end TCP enhancement mechanism for mobile environments” (Tom Goff, James Moronski and D. S. Phatak, IEEE INFOCOM 2000, pp. 1537-1545) is another prior art approach, which relies on the sending side to sense when a disconnection is about to occur (if the signal strength is fading, for example). Sensing must be done on time to allow sending a zero window update that will be received by the sending end. Furthermore, the approach detailed in the article deals with mobile TCP only and cannot handle roaming including wired to wired roaming scenarios. In wired scenarios the communication is abruptly stopped and it is therefore impossible to detect when the client is about to disconnect. Therefore, the receiving end will never be able to send a zero window request.
The problem encountered by the user can be easily illustrated by the following example, with reference to FIG. 1. The user uses a mobile phone to download a file from his desktop PC using FTP (over TCP). In order to have the best network connectivity and in order to save data charges by the mobile operator the user chooses to connect to the home network through a local WiFi access point. The user exits his home and loses his WiFi connection because he is out of its range. The phone automatically connects to the 3G network offered by the cellular network provider. As a result the network interface card is assigned with an IP address provided by the mobile operator network. In such scenarios the file transfer would be stopped and will have to restart from scratch.
As will be appreciated by the skilled person, although the problem is one of importance and attempts have been made in the art to address it, so far the art has failed to provide a comprehensive and convenient method and system to solve this problem, which can be universally implemented and which does not require dedicated appliances and which is totally transparent to applications, including existing applications, and furthermore does not require any modification to the source code or binaries. It is an object of the present invention to provide such a method and system that enables a location free communication layer between devices, which is free of interruption due to roaming.
It is a further object of the invention to provide the system and method which are simple to implement and which do not require the development of applications based on a specific platform.
Other objects and advantages of the invention will become apparent as the description proceeds.