WO2008073492A2 - Masking changes for seamless roaming in heterogenous networking - Google Patents

Masking changes for seamless roaming in heterogenous networking Download PDF

Info

Publication number
WO2008073492A2
WO2008073492A2 PCT/US2007/025496 US2007025496W WO2008073492A2 WO 2008073492 A2 WO2008073492 A2 WO 2008073492A2 US 2007025496 W US2007025496 W US 2007025496W WO 2008073492 A2 WO2008073492 A2 WO 2008073492A2
Authority
WO
WIPO (PCT)
Prior art keywords
network
packet
address
mobile device
driver
Prior art date
Application number
PCT/US2007/025496
Other languages
French (fr)
Other versions
WO2008073492A3 (en
Inventor
Shimon Scherzer
Ronnie Blaier
Michael Medvinsky
Ran Nachmany
Tamir Scherzer
Original Assignee
Wefi, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wefi, Inc. filed Critical Wefi, Inc.
Publication of WO2008073492A2 publication Critical patent/WO2008073492A2/en
Publication of WO2008073492A3 publication Critical patent/WO2008073492A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation at a client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/16Performing reselection for specific purposes
    • H04W36/18Performing reselection for specific purposes for allowing seamless reselection, e.g. soft reselection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support

Definitions

  • Procedures for joining networks and maintaining internet protocol network connections focus on problems arising from a wired network point of view. This extends to using a wireless internet protocol connection, where the connection is treated as essentially a static wired connection.
  • a wireless internet protocol connection where the connection is treated as essentially a static wired connection.
  • Another problem that can arise is the long time associated with acquiring internet protocol connectivity. This leads to problems when switching between wireless networks. For example, a switch may be necessary if a mobile device roams out of range of one wireless network into the range of another wireless network or if one network becomes unavailable, say by being turned off, and connectivity continues by using another available wireless network.
  • Another problem can be that some processes in the mobile device assume a static connectivity, and because of this have problems when the mobile device wants to maintain its activity, such as a phone call or file transfer, while change its wireless network connectivity. It would be useful to be able to maintain steady activities while changing wireless network connectivity.
  • Figure 1 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
  • Figure 2 is a block diagram illustrating an embodiment of software for expediting seamless roaming for a mobile device.
  • Figure 3 is a flow diagram illustrating an embodiment of a process for expediting seamless roaming.
  • Figure 4 is a flow diagram illustrating an embodiment of a process for selecting a static IP address.
  • Figure 5 is a flow diagram illustrating an embodiment of a process for determining if IP address is OK.
  • Figure 6 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
  • Figure 7 is a block diagram illustrating an embodiment of software for a mobile device.
  • Figure 8 is a flow diagram illustrating an embodiment of a process for masking an IP address from a network.
  • Figure 9 is a flow diagram illustrating an embodiment of a process for masking an IP address from an application. DETAILED DESCRIPTION
  • the invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links.
  • these implementations, or any other form that the invention may take, may be referred to as techniques.
  • a component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
  • the order of the steps of disclosed processes may be altered within the scope of the invention.
  • Seamless roaming is roaming such that network connectivity appears not to change or to be interrupted. Seamless roaming can be achieved by switching between networks fast enough so that the interaction of the desired activity is not impaired and also masking any network related changes that may occur from the switch. Seamless roaming is also enabled using resources provided by a collaboration of users who provide resources that can be used by other users. For example, wireless network access points donated or provided by users who are collaborating in a social network in enough locations to enable seamless roaming.
  • Switching fast enough for seamless roaming utilizes a fast acquisition or expediting of an internet protocol (IP) address in a wireless network.
  • IP internet protocol
  • Techniques for expediting seamless roaming are disclosed.
  • a dynamic host configuration protocol (DHCP) discover message is sent.
  • a message is received that includes target network gateway information.
  • the target network gateway may respond to the DHCP discover message with its own address as part of the response message or part of the address in the response message may correspond to part of the target network gateway address.
  • a static IP address that is likely, but not guaranteed to be unique, is selected based at least in part on the target network gateway information.
  • Masking changes caused by roaming utilizes substituting IP addresses that are visible to the mobile device.
  • Masking network switching is disclosed.
  • An intermediate driver that sits between OS elements, such as IP stack, and the network masks changes in communicating with the network as seen by the mobile device network driver by substituting IP addresses in packets/frames/messages that are being sent between the mobile device applications and the network.
  • the mobile device may be communicating with the network using a new IP address in a new network, however, the mobile device IP stack is not aware of any change in the IP address used to communicate with the new network because the intermediate driver substitutes IP addresses for both in-coming and out-going packets/frames/messages.
  • FIG. 1 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
  • mobile device 106 enters into wireless network 116 or is communicating with wireless network 1 16.
  • Wireless network 1 16 includes wireless access point 1 12 and local server 1 14.
  • local server 1 14 comprises local dynamic host configuration protocol (DHCP) server or a gateway server.
  • Wireless access point 1 12 is able to communicate with network 108.
  • Network 108 comprises one or more of the following: a local area network, a wide area network, the Internet, a wired network, a wireless network, or any other appropriate network for communicating with the Internet.
  • a plurality of servers are also able to communicate with the web, and these servers are represented in Figure 1 by servers 102 and 104. The plurality of servers hosts web sites available for communicating with via the Internet.
  • a collaborative social network server 1 10 is also able to communicate with network 108.
  • mobile device 106 comprises a laptop, a personal data assistant, a computer that will experience changing wireless network connectivity, mobile game terminals, or any other appropriate device connecting to a wireless network.
  • mobile device 106 roams into local wireless network 116.
  • a software driver is running on mobile device 106 to facilitate seamless routing.
  • the driver quickly acquires a usable IP address based at least in part on gateway information received in response to an address resolution protocol (ARP) discover message and/or information received from collaborative social network server 1 10.
  • ARP address resolution protocol
  • the ability to quickly acquire an IP address enables seamless roaming of mobile device 106 to different wireless networks.
  • Collaborative social network server 1 10 keeps track of resources being used by social network members, such as IP addresses in a local wireless network.
  • collaborative social network server 110 provides information to mobile device 106 used to help select a static IP address — for example, currently used IP addresses and previously used IP addresses by social collaborative network users in a target network.
  • FIG. 2 is a block diagram illustrating an embodiment of software for expediting seamless roaming for a mobile device.
  • software of Figure 2 is loaded on mobile device 106 of Figure 1.
  • mobile device software 200 includes operating system 202, application(s) 204, network driver 206, and mobility agent 208.
  • Application(s) 204 running under operating system 202 access network communications via network driver 206.
  • an IP stack (not shown in Figure 2) is between mobility agent 208 and application(s) 204 and is sometimes considered a part of operating system 202.
  • Mobility agent 208 is provided by collaborative social network to enable wireless access to networks using resources shared by other collaborative social network members. The goal of the collaborative social network being to enable wireless access anywhere without the problem of building out a network and instead using resources that are shared by its collaborating members.
  • network driver 206 comprises a windows miniport driver.
  • Mobility agent 208 can be provided from a server such as collaborative social network server 106 of Figure 1 , from other servers, from removable media such as a CD or DVD that is distributed in the mail or via retail outlets, or any other appropriate way to distribute a software driver.
  • Mobility agent 208 comprises an intermediate driver that intercepts traffic between network driver 206 and the network and provides services to enable usage of the resources of the collaborative social network.
  • One service mobility agent 208 provides is internet protocol (IP) address acquisition for the mobile device. Roaming from one wireless network to another can pose difficulties for existing IP address acquisition such as DHCP. This is because it may not acquire an IP address after switching to a new wireless network fast enough maintain the mobile device's IP telephone or file download communication session with a server or user connected via the Internet.
  • IP internet protocol
  • FIG. 3 is a flow diagram illustrating an embodiment of a process for expediting seamless roaming.
  • the process of Figure 3 is part of mobility agent 208 of Figure 2.
  • a DHCP discover message is sent.
  • a message is received that includes target network gateway information, hi some embodiments, the target network gateway information is inferred from the return message header.
  • the responder to the DHCP discover message is a DHCP server and is part of the target network.
  • the DHCP server is also a likely network gateway. Also, even if the responding server is not a gateway, the first three bytes of the responders IP address are likely to be appropriate for the target network.
  • a static IP address is selected based on the target network gateway information.
  • a static IP address can be selected using the first three bytes of the responders IP address.
  • the fourth byte of the address can be selected based at least in part on the responders address (e.g., adding 100), selected randomly from among the top 55 addresses (e.g., between 200 and 255), selected making sure to avoid numbers to be previously known to be used by other collaborative social network users, selected randomly from the integers 0 through 255, or any other appropriate selection algorithm or heuristic.
  • Figure 4 is a flow diagram illustrating an embodiment of a process for selecting a static IP address.
  • the process of Figure 4 is used to implement 304 of Figure 3.
  • target network gateway information is used to assign first three bytes of the static IP address.
  • the message received responding to the DHCP discover message likely includes relevant IP address information for the target network; the first three bytes of the sending address for the responding message are likely appropriate for the target network.
  • the responding message to the DHCP discover message can be a DHCP server and a gateway server for the target network.
  • information is received from the collaborative social network server of known used addresses in target network and likely unassigned values for the last byte of static IP address in target network, if applicable.
  • the collaborative social network server may have information of IP addresses currently being used by other members of the social network that are connected to the target network; these addresses should not be selected.
  • the collaborative social network server may have information of IP addresses previously used by other members of the social network that were in the past or even recent past connected to the target network; these addresses can be selected are likely not used within the target network.
  • the last byte of the static IP address is selected.
  • the last byte of the static IP address can be selected either randomly, randomly within a range, adding an increment to the fourth byte of the target network gateway address, avoiding known used addresses by other collaborative social network users, preferring previously used addresses by other collaborative social network users, picked incrementally in a range of address values, or any other appropriate selection method.
  • FIG. 5 is a flow diagram illustrating an embodiment of a process for determining if IP address is OK.
  • the process of Figure 5 is used to implement 306 of Figure 3.
  • an ARP message and/or ping is sent with selected IP address to identify if another device/computer is using the selected IP address.
  • the ARP and/or ping are sent with a timeout set short enough to only allow devices in the target network to validate that the IP address is available.
  • the message is sent out and a response is received in the event that the selected IP address is already being used by another device/computer in the target network.
  • an ARP with selected static AP address to announce newly acquired IP address is sent.
  • FIG. 6 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
  • mobile device 606 is communicating with local wireless network 616.
  • Wireless network 616 includes wireless access point 612 and local server 614.
  • local server 614 comprises local dynamic host configuration protocol (DHCP) server and/or a gateway server.
  • Wireless access point 612 is able to communicate with network 608.
  • Network 608 comprises one or more of the following: a local area network, a wide area network, the Internet, a wired network, a wireless network, or any other appropriate network for communicating with the Internet.
  • a plurality of servers are also able to communicate with the web, and these servers are represented in Figure 6 by servers 602 and 604. The plurality of servers hosts web sites available for communicating with via the Internet.
  • a collaborative social network server 610 is also able to communicate with network 608.
  • mobile device 606 is communicating with wireless network 616.
  • mobile device 606 may be communicating using IP telephony with a user using computer 600 or downloading a file from server 602 that hosts a web site with music.
  • a software driver is running on mobile device 606 to facilitate seamless routing.
  • the driver quickly acquires a usable IP address based at least in part on gateway information received in response to an ARP discover message and/or information received from collaborative social network server 610.
  • the ability to quickly acquire an IP address enables seamless roaming of mobile device 606 to different wireless networks.
  • Collaborative social network server 610 keeps track of resources being used by social network members, such as IP addresses in a local wireless network.
  • Mobile device 606 roams from wireless network 616 to wireless network
  • Wireless network 622 includes wireless access point 618 and local server 620.
  • local server 620 comprises local dynamic host configuration protocol (DHCP) server and/or a gateway server.
  • DHCP local dynamic host configuration protocol
  • FIG. 7 is a block diagram illustrating an embodiment of software for a mobile device.
  • the software of Figure 7 is loaded on mobile device 606 of Figure 6.
  • mobile device software 700 includes operating system 702, application(s) 704, internet protocol (IP) stack 710, ,mobility agent 708, and network driver 706.
  • Application(s) 704 running under operating system 702 access network communications via network driver 706.
  • Mobility agent 708 is provided by collaborative social network to enable wireless access to networks using resources shared by other collaborative social network members. The goal of the collaborative social network being to enable wireless access anywhere without the problem of building out a network and instead using resources that are shared by its collaborating members.
  • Mobility agent 708 can be provided in a similar manner to mobility agent 208 of Figure 2.
  • network driver 706 comprises a windows miniport driver.
  • Mobility agent 708 intercepts traffic between network driver 706 and application(s) 704 and provides services to enable usage of the resources of the collaborative social network.
  • One service mobility agent 708 provides is masking of internet protocol (IP) address changes as mobile device with mobile device software 700 roams from one wireless network to another. Roaming from one wireless network to another can pose difficulties for existing network drivers such as network driver 706 in that network driver 706 is not tolerant or able to accommodate changing of the IP address used for mobile device with mobile device software 700 as it changes to a new wireless network such as 622 of Figure 6. Changing IP in midst of live connection will normally terminate the connection; hence the IP change must be masked from the OS (mostly IP stack) and application.
  • OS mostly IP stack
  • Masking of IP address changes to application(s) 704 includes having mobility agent 708 replace IP addresses in packets going to and from IP stack 710 and the external wireless network such that IP stack 710 and application(s) 704 are unaware of any changes in network connectivity. Examples of a change to the connectivity would be roaming from one wireless network to another or switching from one wireless network to another because the original wireless network becomes unavailable or inaccessible. In each wireless network, mobile device with mobile device software 700 will have an IP address appropriate for the local wireless network, and this is likely different from one local wireless network to another.
  • a packet is sent from application(s) 704 to network #1 in
  • the packet has source IP address Source#l and destination IP address Destination#l .
  • Mobility agent 708 does not change these addresses when passing the packet on to network #1. Later, a second packet is sent from application(s) 704 to network #2 in Figure 7.
  • Application(s) 704 is not aware that a new network is being used for communicating, so it is still using source IP address Source#l and destination IP address Destinatioin#l .
  • Mobility agent 708 substitutes a new source address, say Source#2, for source IP address Source#l that is the address being used by mobile device 700 to communicate with network #2.
  • a packet is received from network #1 by application(s) 704 in Figure 7.
  • the packet has source IP address Source InNetwork#l and destination IP address DestinationMobileDevice#l.
  • Mobility agent 708 does not change these addresses when passing the packet from network #1.
  • communication with the network and mobile device 700 is via network#2, and a second packet is sent from network #2 to application(s) 704 in Figure 7.
  • Application(s) 704 is not aware that a new network is being used for communicating, so it is still expecting destination IP address DestinationMobileDevice #1 and source IP address Source InNetwork #1.
  • Mobility agent 708 substitutes the old destination address, DestinationMobileDevice#l, for the new destination IP address DestinationMobileDevice#2 that currently being used by mobile device 700 to communicate with network #2 so that application(s) 704 does/do not know that the address has changed in the communication with the network.
  • Figure 8 is a flow diagram illustrating an embodiment of a process for masking an IP address from a network.
  • the process of Figure 8 is part of mobility agent 708 of Figure 7.
  • a second packet from a second network is received after previously receiving a first packet from a first network at a mobile device driver.
  • the destination address is substituted in the second packet such that an application on the mobile device is/are unaware of the change from communicating with the first network to communicating with the second network.
  • the substitution of the destination address is designed to make the not be able to tell that the mobile device has now changed networks and is communicating with the Internet via a new network.
  • the mobile device is communicating via a new network, its IP address is likely different.
  • a frame, a message, or any other addressed group of information like a packet is received and has its destination address substituted so that an application on the mobile device is/are unaware of the change from communicating with the first network to communicating with the second network.
  • substituting the destination address in the second packet comprises substituting the destination address in the second packet with a predetermined address (e.g., an address selected a some time prior to any network connection), where if a packet, frame, or message that is received has its destination address substituted to the predetermined address, then an application on the mobile device is/are unaware of a change from communicating with a first network to communicating with a second network. Since the application is never communicating directly with the network, only through a mobility agent, a predetermined fixed address can be used between the mobility agent and an application.
  • a predetermined address e.g., an address selected a some time prior to any network connection
  • substituting the destination address in the second packet comprises substituting the destination address in the second packet with a destination address used when the mobile device communicated with the first network.
  • substituting the destination address is done by an intermediate driver such as a mobility agent, where the driver receives/transmits packets, frames, messages from/to an application and transmits/receives messages to/from a network such as a wireless network.
  • the intermediate driver is provided by a collaborative social network via downloading from a server, distributing via removable media such as a floppy disc, CD, DVD, or any other appropriate distribution method.
  • Figure 9 is a flow diagram illustrating an embodiment of a process for masking an IP address from an application.
  • the process of Figure 9 is part of mobility agent 708 of Figure 7.
  • a second packet from an application is received after previously receiving a first packet from the application on a mobile device driver.
  • the source address is substituted in the second packet such that an application on the mobile device need not be aware of the change from communicating with a first network to communicating with a second network.
  • the substitution of the source address is designed to make the application not need to be aware or perform any additional function even though the mobile device has now changed networks and is communicating with the Internet via a new network.
  • the mobile device is communicating via a new network, its IP address that being used by the mobile device to communicate with the wireless network is likely different.
  • substituting the source address in the second packet comprises substituting the source address in the second packet with a predetermined address, where if a packet, frame, or message that is received has its source address substituted to the predetermined address, then an application and on the mobile device need not be aware of a change from communicating with a first network to communicating with a second network.
  • the address used between an application and the mobility agent can be arbitrary, since it is substituted when the packet/frame/messages are sent to the network. Thus an arbitrary predetermined address can be used.
  • substituting the source address in the second packet comprises substituting the source address in the second packet with a source address being used when the mobile device communicates with the second network.
  • substituting the source address is done by an intermediate driver such as a mobility agent, where the driver receives/transmits packets, frames, messages from/to an application and transmits/receives messages to/from a network such as a wireless network.
  • the intermediate driver is provided by a collaborative social network via downloading from a server, distributing via removable media such as a floppy disc, CD, DVD, or any other appropriate distribution method.

Abstract

Substituting an address is disclosed. A first packet is received from a first network at a driver in a mobile device. A second packet is received from a second network at the driver in the mobile device after previously receiving the first packet. A destination address is substituted in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.

Description

MASKING CHANGES FOR SEAMLESS ROAMING IN HETEROGENOUS NETWORKING
BACKGROUND OF THE INVENTION
[0001] Procedures for joining networks and maintaining internet protocol network connections focus on problems arising from a wired network point of view. This extends to using a wireless internet protocol connection, where the connection is treated as essentially a static wired connection. However, when trying to achieve high bandwidth internet protocol connectivity everywhere and at all times, several problems arise. One problem that can arise is the long time associated with acquiring internet protocol connectivity. This leads to problems when switching between wireless networks. For example, a switch may be necessary if a mobile device roams out of range of one wireless network into the range of another wireless network or if one network becomes unavailable, say by being turned off, and connectivity continues by using another available wireless network. Another problem can be that some processes in the mobile device assume a static connectivity, and because of this have problems when the mobile device wants to maintain its activity, such as a phone call or file transfer, while change its wireless network connectivity. It would be useful to be able to maintain steady activities while changing wireless network connectivity.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
[0003] Figure 1 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
[0004] Figure 2 is a block diagram illustrating an embodiment of software for expediting seamless roaming for a mobile device.
[0005] Figure 3 is a flow diagram illustrating an embodiment of a process for expediting seamless roaming.
[0006] Figure 4 is a flow diagram illustrating an embodiment of a process for selecting a static IP address.
[0007] Figure 5 is a flow diagram illustrating an embodiment of a process for determining if IP address is OK.
[0008] Figure 6 is a block diagram illustrating an embodiment of a system for expediting seamless roaming.
[0009] Figure 7 is a block diagram illustrating an embodiment of software for a mobile device.
[0010] Figure 8 is a flow diagram illustrating an embodiment of a process for masking an IP address from a network.
[0011] Figure 9 is a flow diagram illustrating an embodiment of a process for masking an IP address from an application. DETAILED DESCRIPTION
[0012] The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.
[0013] A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
[0014] Expediting and masking network switching for seamless roaming are disclosed. Seamless roaming is roaming such that network connectivity appears not to change or to be interrupted. Seamless roaming can be achieved by switching between networks fast enough so that the interaction of the desired activity is not impaired and also masking any network related changes that may occur from the switch. Seamless roaming is also enabled using resources provided by a collaboration of users who provide resources that can be used by other users. For example, wireless network access points donated or provided by users who are collaborating in a social network in enough locations to enable seamless roaming.
[0015] Switching fast enough for seamless roaming utilizes a fast acquisition or expediting of an internet protocol (IP) address in a wireless network. Techniques for expediting seamless roaming are disclosed. In some embodiments, a dynamic host configuration protocol (DHCP) discover message is sent. A message is received that includes target network gateway information. For example, the target network gateway may respond to the DHCP discover message with its own address as part of the response message or part of the address in the response message may correspond to part of the target network gateway address. A static IP address that is likely, but not guaranteed to be unique, is selected based at least in part on the target network gateway information.
[0016] Masking changes caused by roaming utilizes substituting IP addresses that are visible to the mobile device. Masking network switching is disclosed. An intermediate driver that sits between OS elements, such as IP stack, and the network masks changes in communicating with the network as seen by the mobile device network driver by substituting IP addresses in packets/frames/messages that are being sent between the mobile device applications and the network. For example, the mobile device may be communicating with the network using a new IP address in a new network, however, the mobile device IP stack is not aware of any change in the IP address used to communicate with the new network because the intermediate driver substitutes IP addresses for both in-coming and out-going packets/frames/messages.
[0017] Figure 1 is a block diagram illustrating an embodiment of a system for expediting seamless roaming. In the example shown, mobile device 106 enters into wireless network 116 or is communicating with wireless network 1 16. Wireless network 1 16 includes wireless access point 1 12 and local server 1 14. In some cases, local server 1 14 comprises local dynamic host configuration protocol (DHCP) server or a gateway server. Wireless access point 1 12 is able to communicate with network 108. Network 108 comprises one or more of the following: a local area network, a wide area network, the Internet, a wired network, a wireless network, or any other appropriate network for communicating with the Internet. A plurality of servers are also able to communicate with the web, and these servers are represented in Figure 1 by servers 102 and 104. The plurality of servers hosts web sites available for communicating with via the Internet. A collaborative social network server 1 10 is also able to communicate with network 108.
[0018] In various embodiments, mobile device 106 comprises a laptop, a personal data assistant, a computer that will experience changing wireless network connectivity, mobile game terminals, or any other appropriate device connecting to a wireless network.
[0019] In some embodiments, mobile device 106 roams into local wireless network 116. A software driver is running on mobile device 106 to facilitate seamless routing. The driver quickly acquires a usable IP address based at least in part on gateway information received in response to an address resolution protocol (ARP) discover message and/or information received from collaborative social network server 1 10. The ability to quickly acquire an IP address enables seamless roaming of mobile device 106 to different wireless networks. Collaborative social network server 1 10 keeps track of resources being used by social network members, such as IP addresses in a local wireless network. In some cases, collaborative social network server 110 provides information to mobile device 106 used to help select a static IP address — for example, currently used IP addresses and previously used IP addresses by social collaborative network users in a target network.
[0020] Figure 2 is a block diagram illustrating an embodiment of software for expediting seamless roaming for a mobile device. In some embodiments, software of Figure 2 is loaded on mobile device 106 of Figure 1. In the example shown, mobile device software 200 includes operating system 202, application(s) 204, network driver 206, and mobility agent 208. Application(s) 204 running under operating system 202 access network communications via network driver 206. In some embodiments, an IP stack (not shown in Figure 2) is between mobility agent 208 and application(s) 204 and is sometimes considered a part of operating system 202. Mobility agent 208 is provided by collaborative social network to enable wireless access to networks using resources shared by other collaborative social network members. The goal of the collaborative social network being to enable wireless access anywhere without the problem of building out a network and instead using resources that are shared by its collaborating members. In some embodiments, network driver 206 comprises a windows miniport driver.
[0021] Mobility agent 208 can be provided from a server such as collaborative social network server 106 of Figure 1 , from other servers, from removable media such as a CD or DVD that is distributed in the mail or via retail outlets, or any other appropriate way to distribute a software driver. Mobility agent 208 comprises an intermediate driver that intercepts traffic between network driver 206 and the network and provides services to enable usage of the resources of the collaborative social network. One service mobility agent 208 provides is internet protocol (IP) address acquisition for the mobile device. Roaming from one wireless network to another can pose difficulties for existing IP address acquisition such as DHCP. This is because it may not acquire an IP address after switching to a new wireless network fast enough maintain the mobile device's IP telephone or file download communication session with a server or user connected via the Internet.
[0022] Figure 3 is a flow diagram illustrating an embodiment of a process for expediting seamless roaming. In some embodiments, the process of Figure 3 is part of mobility agent 208 of Figure 2. In the example shown, in 300 a DHCP discover message is sent. In 302, a message is received that includes target network gateway information, hi some embodiments, the target network gateway information is inferred from the return message header. The responder to the DHCP discover message is a DHCP server and is part of the target network. The DHCP server is also a likely network gateway. Also, even if the responding server is not a gateway, the first three bytes of the responders IP address are likely to be appropriate for the target network.
[0023] In 304, a static IP address is selected based on the target network gateway information. A static IP address can be selected using the first three bytes of the responders IP address. The fourth byte of the address can be selected based at least in part on the responders address (e.g., adding 100), selected randomly from among the top 55 addresses (e.g., between 200 and 255), selected making sure to avoid numbers to be previously known to be used by other collaborative social network users, selected randomly from the integers 0 through 255, or any other appropriate selection algorithm or heuristic. In 306, it is determined if the IP address is OK. If it is not, then control passes to 304. If it is, then in 308, the static IP address is used to talk to the network.
[0024] Figure 4 is a flow diagram illustrating an embodiment of a process for selecting a static IP address. In some embodiments, the process of Figure 4 is used to implement 304 of Figure 3. In the example shown, in 400 target network gateway information is used to assign first three bytes of the static IP address. The message received responding to the DHCP discover message likely includes relevant IP address information for the target network; the first three bytes of the sending address for the responding message are likely appropriate for the target network. The responding message to the DHCP discover message can be a DHCP server and a gateway server for the target network.
[0025] In 402, information is received from the collaborative social network server of known used addresses in target network and likely unassigned values for the last byte of static IP address in target network, if applicable. The collaborative social network server may have information of IP addresses currently being used by other members of the social network that are connected to the target network; these addresses should not be selected. The collaborative social network server may have information of IP addresses previously used by other members of the social network that were in the past or even recent past connected to the target network; these addresses can be selected are likely not used within the target network. In 404, the last byte of the static IP address is selected. The last byte of the static IP address can be selected either randomly, randomly within a range, adding an increment to the fourth byte of the target network gateway address, avoiding known used addresses by other collaborative social network users, preferring previously used addresses by other collaborative social network users, picked incrementally in a range of address values, or any other appropriate selection method.
[0026] Figure 5 is a flow diagram illustrating an embodiment of a process for determining if IP address is OK. In some embodiments, the process of Figure 5 is used to implement 306 of Figure 3. In the example shown, in 500 an ARP message and/or ping is sent with selected IP address to identify if another device/computer is using the selected IP address. In some embodiments, the ARP and/or ping are sent with a timeout set short enough to only allow devices in the target network to validate that the IP address is available. The message is sent out and a response is received in the event that the selected IP address is already being used by another device/computer in the target network. In 504, it is determined if there was a response to the ARP or the ping. If so, then the selected static IP address is not OK, and the process resumes by trying another IP value. If not, then in 508 the selected static IP address is OK. In 510, an ARP with selected static AP address to announce newly acquired IP address is sent.
[0027] Figure 6 is a block diagram illustrating an embodiment of a system for expediting seamless roaming. In the example shown, mobile device 606 is communicating with local wireless network 616. Wireless network 616 includes wireless access point 612 and local server 614. In some cases, local server 614 comprises local dynamic host configuration protocol (DHCP) server and/or a gateway server. Wireless access point 612 is able to communicate with network 608. Network 608 comprises one or more of the following: a local area network, a wide area network, the Internet, a wired network, a wireless network, or any other appropriate network for communicating with the Internet. A plurality of servers are also able to communicate with the web, and these servers are represented in Figure 6 by servers 602 and 604. The plurality of servers hosts web sites available for communicating with via the Internet. A collaborative social network server 610 is also able to communicate with network 608.
[0028] In some embodiments, mobile device 606 is communicating with wireless network 616. For example, mobile device 606 may be communicating using IP telephony with a user using computer 600 or downloading a file from server 602 that hosts a web site with music. A software driver is running on mobile device 606 to facilitate seamless routing. The driver quickly acquires a usable IP address based at least in part on gateway information received in response to an ARP discover message and/or information received from collaborative social network server 610. The ability to quickly acquire an IP address enables seamless roaming of mobile device 606 to different wireless networks. Collaborative social network server 610 keeps track of resources being used by social network members, such as IP addresses in a local wireless network.
[0029] Mobile device 606 roams from wireless network 616 to wireless network
622. Wireless network 622 includes wireless access point 618 and local server 620. In some cases, local server 620 comprises local dynamic host configuration protocol (DHCP) server and/or a gateway server.
[0030] Figure 7 is a block diagram illustrating an embodiment of software for a mobile device. In some embodiments, the software of Figure 7 is loaded on mobile device 606 of Figure 6. In the example shown, mobile device software 700 includes operating system 702, application(s) 704, internet protocol (IP) stack 710, ,mobility agent 708, and network driver 706. Application(s) 704 running under operating system 702 access network communications via network driver 706. Mobility agent 708 is provided by collaborative social network to enable wireless access to networks using resources shared by other collaborative social network members. The goal of the collaborative social network being to enable wireless access anywhere without the problem of building out a network and instead using resources that are shared by its collaborating members. Mobility agent 708 can be provided in a similar manner to mobility agent 208 of Figure 2. In some embodiments, network driver 706 comprises a windows miniport driver.
[0031] Mobility agent 708 intercepts traffic between network driver 706 and application(s) 704 and provides services to enable usage of the resources of the collaborative social network. One service mobility agent 708 provides is masking of internet protocol (IP) address changes as mobile device with mobile device software 700 roams from one wireless network to another. Roaming from one wireless network to another can pose difficulties for existing network drivers such as network driver 706 in that network driver 706 is not tolerant or able to accommodate changing of the IP address used for mobile device with mobile device software 700 as it changes to a new wireless network such as 622 of Figure 6. Changing IP in midst of live connection will normally terminate the connection; hence the IP change must be masked from the OS (mostly IP stack) and application.
[0032] Masking of IP address changes to application(s) 704 includes having mobility agent 708 replace IP addresses in packets going to and from IP stack 710 and the external wireless network such that IP stack 710 and application(s) 704 are unaware of any changes in network connectivity. Examples of a change to the connectivity would be roaming from one wireless network to another or switching from one wireless network to another because the original wireless network becomes unavailable or inaccessible. In each wireless network, mobile device with mobile device software 700 will have an IP address appropriate for the local wireless network, and this is likely different from one local wireless network to another.
[0033] As an example, a packet is sent from application(s) 704 to network #1 in
Figure 7. The packet has source IP address Source#l and destination IP address Destination#l . Mobility agent 708 does not change these addresses when passing the packet on to network #1. Later, a second packet is sent from application(s) 704 to network #2 in Figure 7. Application(s) 704 is not aware that a new network is being used for communicating, so it is still using source IP address Source#l and destination IP address Destinatioin#l . Mobility agent 708 substitutes a new source address, say Source#2, for source IP address Source#l that is the address being used by mobile device 700 to communicate with network #2.
[0034] As another example, a packet is received from network #1 by application(s) 704 in Figure 7. The packet has source IP address Source InNetwork#l and destination IP address DestinationMobileDevice#l. Mobility agent 708 does not change these addresses when passing the packet from network #1. Later, communication with the network and mobile device 700 is via network#2, and a second packet is sent from network #2 to application(s) 704 in Figure 7. Application(s) 704 is not aware that a new network is being used for communicating, so it is still expecting destination IP address DestinationMobileDevice #1 and source IP address Source InNetwork #1. Mobility agent 708 substitutes the old destination address, DestinationMobileDevice#l, for the new destination IP address DestinationMobileDevice#2 that currently being used by mobile device 700 to communicate with network #2 so that application(s) 704 does/do not know that the address has changed in the communication with the network.
[0035] Figure 8 is a flow diagram illustrating an embodiment of a process for masking an IP address from a network. In some embodiments, the process of Figure 8 is part of mobility agent 708 of Figure 7. In the example shown, in 800 a second packet from a second network is received after previously receiving a first packet from a first network at a mobile device driver. In 802, the destination address is substituted in the second packet such that an application on the mobile device is/are unaware of the change from communicating with the first network to communicating with the second network. The substitution of the destination address is designed to make the not be able to tell that the mobile device has now changed networks and is communicating with the Internet via a new network. Also, because the mobile device is communicating via a new network, its IP address is likely different. In various embodiments, a frame, a message, or any other addressed group of information like a packet is received and has its destination address substituted so that an application on the mobile device is/are unaware of the change from communicating with the first network to communicating with the second network.
[0036] In some embodiments, substituting the destination address in the second packet comprises substituting the destination address in the second packet with a predetermined address (e.g., an address selected a some time prior to any network connection), where if a packet, frame, or message that is received has its destination address substituted to the predetermined address, then an application on the mobile device is/are unaware of a change from communicating with a first network to communicating with a second network. Since the application is never communicating directly with the network, only through a mobility agent, a predetermined fixed address can be used between the mobility agent and an application.
[0037] In some embodiments substituting the destination address in the second packet comprises substituting the destination address in the second packet with a destination address used when the mobile device communicated with the first network. .
[0038] In some embodiments, substituting the destination address is done by an intermediate driver such as a mobility agent, where the driver receives/transmits packets, frames, messages from/to an application and transmits/receives messages to/from a network such as a wireless network. The intermediate driver is provided by a collaborative social network via downloading from a server, distributing via removable media such as a floppy disc, CD, DVD, or any other appropriate distribution method.
[0039] Figure 9 is a flow diagram illustrating an embodiment of a process for masking an IP address from an application. In some embodiments, the process of Figure 9 is part of mobility agent 708 of Figure 7. In the example shown, in 900 a second packet from an application is received after previously receiving a first packet from the application on a mobile device driver. In 902, the source address is substituted in the second packet such that an application on the mobile device need not be aware of the change from communicating with a first network to communicating with a second network. The substitution of the source address is designed to make the application not need to be aware or perform any additional function even though the mobile device has now changed networks and is communicating with the Internet via a new network. Also, because the mobile device is communicating via a new network, its IP address that being used by the mobile device to communicate with the wireless network is likely different.
[0040] In some embodiments, substituting the source address in the second packet comprises substituting the source address in the second packet with a predetermined address, where if a packet, frame, or message that is received has its source address substituted to the predetermined address, then an application and on the mobile device need not be aware of a change from communicating with a first network to communicating with a second network. The address used between an application and the mobility agent can be arbitrary, since it is substituted when the packet/frame/messages are sent to the network. Thus an arbitrary predetermined address can be used.
[0041] In some embodiments, substituting the source address in the second packet comprises substituting the source address in the second packet with a source address being used when the mobile device communicates with the second network.
[0042] In some embodiments, substituting the source address is done by an intermediate driver such as a mobility agent, where the driver receives/transmits packets, frames, messages from/to an application and transmits/receives messages to/from a network such as a wireless network. The intermediate driver is provided by a collaborative social network via downloading from a server, distributing via removable media such as a floppy disc, CD, DVD, or any other appropriate distribution method.
[0043] Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
[0044] WHAT IS CLAIMED IS:

Claims

1. A method for substituting an address, comprising: receiving a first packet from a first network at a driver in a mobile device; receiving a second packet from a second network at the driver in the mobile device after previously receiving the first packet; and substituting a destination address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.
2. A method as in claim 1 , wherein the driver receives packets, frames, or messages from an application and transmits the packets, frames, or messages to a network.
3. A method as in claim 2, wherein the network comprises a wireless network.
4. A method as in claim 2, wherein the transmitting to the network is via a network driver.
5. A method as in claim 2, wherein the receiving from the application is via an IP stack.
6. A method as in claim 1, wherein the driver receives packets, frames, or messages from a network and transmits the packets, frames, or messages to an application.
7. A method as in claim 6, wherein the network comprises a wireless network.
8. A method as in claim 6, wherein the receiving from the network is via a network driver.
9. A method as in claim 6, wherein the transmitting to the application is via an IP stack.
10. A method as in claim 1 , wherein the driver is provided by a collaborative social network.
11. A method as in claim 1 , wherein substituting the destination address in the second packet comprises substituting the destination address in the second packet with a predetermined address.
12. A method as in claim 1 , wherein substituting the destination address in the second packet comprises substituting the destination address in the second packet with a destination address used when the mobile device communicated with the first network.
13. A computer program product for substituting an address, the computer program 5 product being embodied in a computer readable medium and comprising computer instructions for: receiving a first packet from a first network at a driver in a mobile device; receiving a second packet from a second network at the driver in the mobile device after previously receiving the first packet; and o substituting a destination address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.
14. A system for substituting an address, comprising: a processor; and s a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to: receive a first packet from a first network at a driver in a mobile device; receive a second packet from a second network at the driver in the mobile device after previously receiving the first packet; and o substitute a destination address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.
15. A method for substituting an address, comprising: receiving a first packet from an application at a driver in a mobile device; 5 receiving a second packet from the application on the mobile device after receiving the first packet; and substituting a source address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network. 0
16. A method as in claim 15, wherein the driver receives packets, frames, or messages from an application and transmits the packets, frames, or messages to a network.
17. A method as in claim 16, wherein the network comprises a wireless network.
18. A method as in claim 16, wherein the transmitting to the network is via a network driver.
19. A method as in claim 16, wherein the receiving from the application is via an IP stack.
20. A method as in claim 15, wherein the driver receives packets, frames, or messages from a network and transmits the packets, frames, or messages to an application.
21. A method as in claim 20, wherein the network comprises a wireless network.
22. A method as in claim 20, wherein the receiving from the network is via a network driver.
23. A method as in claim 20, wherein the transmitting to the application is via an IP stack.
24. A method as in claim 15, wherein the driver is provided by a collaborative social network.
25. A method as in claim 15, wherein substituting the source address in the second packet comprises substituting the source address in the second packet with a predetermined address.
26. A method as in claim 15, wherein substituting the source address in the second packet comprises substituting the source address in the second packet with a source address being used when the mobile device communicates with the second network.
27. A computer program product for substituting an address, the computer program product being embodied in a computer readable medium and comprising computer instructions for: receiving a first packet from an application at a driver in a mobile device; receiving a second packet from the application on the mobile device after receiving the first packet; and substituting a source address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.
28. A system for substituting an address, comprising: a processor; and a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to: receive a first packet from an application at a driver in a mobile device; receive a second packet from the application on the mobile device after receiving the first packet; and substitute a source address in the second packet such that a mobile device application is unaware of the change from communicating with the first network to communicating with the second network.
PCT/US2007/025496 2006-12-08 2007-12-10 Masking changes for seamless roaming in heterogenous networking WO2008073492A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63641406A 2006-12-08 2006-12-08
US11/636,414 2006-12-08

Publications (2)

Publication Number Publication Date
WO2008073492A2 true WO2008073492A2 (en) 2008-06-19
WO2008073492A3 WO2008073492A3 (en) 2009-04-09

Family

ID=39512341

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/025496 WO2008073492A2 (en) 2006-12-08 2007-12-10 Masking changes for seamless roaming in heterogenous networking

Country Status (1)

Country Link
WO (1) WO2008073492A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088639A1 (en) * 2001-04-10 2003-05-08 Lentini Russell P. Method and an apparatus for transforming content from one markup to another markup language non-intrusively using a server load balancer and a reverse proxy transcoding engine
US20060037071A1 (en) * 2004-07-23 2006-02-16 Citrix Systems, Inc. A method and systems for securing remote access to private networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030088639A1 (en) * 2001-04-10 2003-05-08 Lentini Russell P. Method and an apparatus for transforming content from one markup to another markup language non-intrusively using a server load balancer and a reverse proxy transcoding engine
US20060037071A1 (en) * 2004-07-23 2006-02-16 Citrix Systems, Inc. A method and systems for securing remote access to private networks

Also Published As

Publication number Publication date
WO2008073492A3 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
FI109950B (en) Address Acquisition
RU2368090C2 (en) Submittal of server information to mobile station
US7711824B2 (en) Arrangements and methods in an access system
CN1902877B (en) Apparatus and method of controlling unsolicited traffic destined to wireless communication device
US8437358B2 (en) Method of uplink IP packet filtering control in mobile terminal
KR20020082215A (en) System and method for using an ip address as a wireless unit identifier
US8582449B2 (en) Apparatus and method for setting a default gateway address in a mobile communication system
US20030208601A1 (en) System and method for session control in a mobile internet protocol network
Kuntz et al. Multihoming in IPv6 mobile networks: progress, challenges, and solutions
KR100580168B1 (en) Multi home agent control apparatus and method
US20070268838A1 (en) System and Method For Facilitating An Internet Protocol Based Personal Area Network
DK1817892T3 (en) PROCEDURE AND SYSTEM TO OPEN A NETWORK LINK
WO2008073438A2 (en) Expiditing seamless roaming in heterogenous networking
EP2143289A2 (en) Managing data streams in communication system
US20070091875A1 (en) Method and System For Device Mobility Using Application Label Switching In A Mobile Communication Network
EP1083724A1 (en) Method and apparatus for IP address discovery
EP1512073B1 (en) Load balancer for multiprocessor platforms
KR100464376B1 (en) Packet data service method for wireless telecommunication system
WO2008073492A2 (en) Masking changes for seamless roaming in heterogenous networking
CN103973829B (en) Obtain the method and its mobile communications device of server address
JP2003309596A (en) Mobile communication network system, external agent router, address server and packet delivery method used for the same
JP2005210554A (en) Dhcp substitute server
EP1971109A1 (en) Method and device for event signaling and communication system comprising such device
EP2568715B1 (en) Mobile node, care of address acquisition method and system thereof, and dhcp server
AMIR International Journal of Mathematical Archive-3 (2), 2012, Page: 694-706 Available online through www. ijma. info ISSN 2229–5046

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07862863

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: LOSS OF RIGHTS COMMUNICATION (EPO F1205A OF 05.11.09)

122 Ep: pct application non-entry in european phase

Ref document number: 07862863

Country of ref document: EP

Kind code of ref document: A2