Representative implementations of devices and techniques provide care-of-address handover. In one implementation, a message is sent to a server in a point-to-point communication session. The message includes a care-of-address of a first network interface (e.g., wireless network interface) and a care-of-address of a second network interface (e.g., wireline network interface). The care-of-address of the first network interface is a current care-of-address being used in the communication session and the care-of-address of the second network interface is a new care-of-address that a device (e.g., a mobile node) is going to transition to (e.g., handover). The message may also include the server's IP address and tcp (Transfer Control Protocol) port. Furthermore, the message may include the mobile node's tcp port.
|
6. An arrangement, comprising:
a server; and
a proxy integrated with the server and configured to route information for delivery from the server, the proxy is further coupled to a communication node via a wide area network, wherein the proxy further configured to:
receive from the communication node a message that includes a first care-of-address and a second care-of-address, a destination address of the server, a first tcp port of the communication node associated with the first care-of-address, and a second tcp port of the communication node associated with the second care-of-address, the second tcp port being different from the first tcp port;
update a tcp/IP stack of the communication node by replacing the first care-of-address with the second care-of-address and storing the second tcp port;
wherein the first care-of-address is a care-of-address currently in use by the communication node and the second care-of-address is a care-of-address subsequently for use by the communication node,
receive from the server a communication intended for delivery to the first care-of-address associated with a first network interface of the communication node; and
transmit the communication intended for delivery to the first care-of-address associated with the first network interface of the communication node to the second care-of-address associated with a second network interface of the communication node, wherein (i) the first network interface is a wireless network interface and the second network interface is a wireline network interface, or (ii) the first network interface is a wireline network interface and the second network interface is a wireless network interface.
3. A method, comprising:
determining, at a communication node when the communication node is communicating with a server via a first network interface, the communication node will transition to communicating with the server via a second network interface;
generating, at the communication node, a communication comprising a header and a payload, the payload including a message that includes a first care-of-address and a second care-of-address, a destination address of the server, a first tcp port of the communication node associated with the first care-of-address and a second tcp port of the communication node associated with the second care-of-address, the second tcp port different from the first tcp port;
transmitting the communication to a proxy that is coupled to the server, wherein the proxy is further coupled to the communication node via a wide area network and configured to route information for delivery from the server,
wherein the first care-of-address is a care-of-address currently in use by the communication node and the second care-of-address is a care-of-address subsequently for use by the communication node, and
wherein the first care-of-address associated with the first network interface and the second care-of-address associated with the second network interface, wherein (i) the first network interface is a wireless network interface and the second network interface is a wireline network interface, or (ii) the first network interface is a wireline network interface and the second network interface is a wireless network interface, and
based on the determining step, transmitting and receiving data with the server through the second network interface using the second care-of-address and the second tcp port.
8. A non-transitory tangible computer-readable media including instructions executable by one or more processors to perform operations, comprising:
determining when a communication node is communicating with a server via a first network interface, the communication node will transition to communicating with the server via a second network interface;
generating a communication including a payload, the payload including a message that includes a first care-of-address and a second care-of-address, a destination address of the server, a first tcp port of the communication node associated with the first care-of-address, and a second tcp port of the communication node associated with the second care-of-address, the second tcp port different from the first tcp port;
transmitting the communication to a proxy that is integrated with the server, wherein the proxy is further coupled to the communication node via a wide area network and configured to route information for delivery from the server,
wherein the first care-of-address is a care-of-address currently in use by the communication node and the second care-of-address is a care-of-address subsequently for use by the communication node,
wherein the first care-of-address associated with the first network interface and the second care-of-address associated with the second network interface, wherein (i) the first network interface is a wireless network interface and the second network interface is a wireline network interface, or (ii) the first network interface is a wireline network interface and the second network interface is a wireless network interface, and
based on the determining step, transmitting and receiving data with the server through the second network interface using the second care-of-address and the second tcp port.
1. A node, comprising:
a controller; and
a non-transitory storage memory coupled to the controller and including instructions when executed by the controller, cause the controller to:
determine, when the node is communicating with a server via a first network interface, that the node will transition to communicating with the server via a second network interface,
generate at least one communication for communication on a communication network medium,
transmit the at least one communication to a proxy that is coupled to the server, wherein the proxy is further coupled to the node via a wide area network and configured to route information for delivery from the server,
wherein the at least one communication comprises:
a header, and
a payload, the payload including a message that includes a first care-of address and a second care-of-address, a destination address of the server, a first tcp port of the node associated with the first care-of-address, and a second tcp port of the node associated with the second care-of-address, with the second tcp port being different from the first tcp port,
wherein the first care-of-address is a care-of-address currently in use by the node and the second care-of-address is a care-of-address subsequently for use by the node,
wherein the first care-of-address associated with the first network interface and the second care-of-address associated with the second network interface, wherein (i) the first network interface is a wireless network interface and the second network interface is a wireline network interface, or (ii) the first network interface is a wireline network interface and the second network interface is a wireless network interface, and based on the determining step, transmit and receive data with the server through the second network interface using the second care-of-address and the second tcp port.
4. The method of
7. The arrangement of
9. The non-transitory tangible computer-readable media of
10. The non-transitory tangible computer-readable media of
11. The non-transitory tangible computer-readable media of
|
This application priority benefit of Provisional Application 61/602,801, filed on Feb. 24, 2012. The entire contents of the Provisional Application are incorporated herein by reference.
Today's mobile computing environment requires the ability to seamlessly route communication content associated with nodes that routinely connect to a data network at different points of attachment, e.g., via air and wireline interfaces. Such nodes include cellular telephones, Personal Digital Assistants (PDAs), laptop computers, and other mobile wireless communication equipment.
In one example, a mobile node may wirelessly and continuously be connected to a network infrastructure using the same Internet Protocol (IP) address regardless of the mobile node's physical location. The mobile node may be identified by a home address associated with the mobile node's home network. When the mobile node connects to the network infrastructure, the mobile node is identified by the home address and by at least one care-of-address.
Information sent across the network infrastructure to the mobile node's home address is transparently routed to the mobile node's care-of-address. The information destined for the mobile node's home address is received at the home link by a home gateway or router that tunnels the information to the mobile node's care-of address via an IP tunnel.
As the mobile node changes its physical location or connects to a different network interface (e.g., wireline or wireless) and switches to a different foreign gateway or router to maintain connectivity to the network infrastructure, the mobile node updates the home gateway or router with its new care-of address. In this way, the mobile node can relocate, connect to various foreign gateways or routers, and maintain a constant IP address presence without interruptions or disturbances in network connectivity.
However, when the mobile node switches between two different network interfaces while an IP application is running, the IP connection is interrupted at the moment the mobile node leaves the old network link. This connection is interrupted at least until at the mobile node the new link to the network has been made and until the new location, i.e. the new care-of-address, is known and has been updated in the home gateway. If the interruption time for the change exceeds the time-out delays specified e.g. in the TCP (Transfer Control Protocol) for dead times, the IP connection is interrupted. Even when the interruption time lies within the time-out delays specified in the TCP, however, the IP applications are not able to maintain the connection if a network interface is not permanently available and uninterrupted. This leads to the IP applications having to be restarted normally when a mobile node switches between two different network interfaces in order to be able to access a particular IP data tunnel.
Another problem is that, on the side of the mobile node, the data packets get lost in downtime between the connections since no physical network device is assigned anymore. This is particularly problematic in point-to-point connections, such a VoIP, that require uninterrupted data transfer.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items.
Overview
Representative implementations of devices and techniques provide care-of address handover. In one implementation, a message is sent to a server in a point-to-point communication session. The message includes a care-of-address of a first network interface (e.g., wireless network interface) and a care-of-address of a second network interface (e.g., wireline network interface). The care-of-address of the first network interface is a current care-of-address being used in the communication session and the care-of-address of the second network interface is a new care-of-address that a device (e.g., a mobile node) is going to transition to (e.g., handover). The message may also include the server's IP address and TCP (Transfer Control Protocol) port. Furthermore, the message may include the mobile node's TCP port.
In one implementation, the server establishes a NAT (Network Address Translation)/proxy that properly routes data communicated from the server to the mobile node. In one implementation, the server continues to address and send data to the care-of-address of the first network interface (i.e., the old care-of-address). The NAT/Proxy modifies data that passes there-through to include the new care-of-address of the second network interface.
Various implementations, including techniques and devices, are discussed with reference to the figures. The techniques and devices discussed may be applied to any of various network designs, circuits, and devices and remain within the scope of the disclosure.
Implementations are explained in more detail below using a plurality of examples. Although various implementations and examples are discussed here and below, further implementations and examples may be possible by combining the features and elements of individual implementations and examples.
Example Communication System
The proxy 103 may be configured to receive a request for content from a requester 135, which may be a mobile node, a user's computer, another network computer, computing device, or some other device capable of communicating with the proxy 103. The proxy 103 may be alternatively configured to only deliver information to the requester 135.
The server 121 and the requester 135 may be in a peer-to-peer, point-to-point, or end-to-end communication configuration, or the like. In addition, one or both of the server 121 and the requester 135 may be stationary or moving (e.g., nomadic). Therefore, the server 121 and the requester 135 may be regularly changing network interface types. For example, from a first wireless network interface to a second wireless network interface, or from a wireless network interface to a wireline network interface, or from a wireline network interface to a wireless network interface, and so forth.
The proxy 103 is configured to communicate with the requester 135 through a computer network, such as a Wide Area Network (WAN) 123. The WAN 123 may be wireless and/or wireline based network. Specifically, when processing or routing data from the content server 121, proxy 103 is configured to forward the data to the requester 135. Proxy 103 may be implemented as a computing device, such as a server. The proxy 103 may also be implemented as a network appliance, such as a network filter configured to handle outgoing and incoming content. The proxy 103 may be integrated with the content server 121, or a standalone module. The WAN 123 may be any type of wide area network, such as the Internet, wireless network, or the like. In alternate embodiments, any type of network or other communication link can be used to communicate information between the proxy 103 and the content server 121 and between the proxy 103 and the requester 135.
The proxy 103 is capable of routing information for delivery from the content server 121 to a care-of-address associated with the requester 135. In one example, the proxy 103 receives content from the content server 121 that is indicated as being for delivery to a first care-of-address. The proxy 103 having stored in a storage thereof a second care-of-address that is an update of the first care-of-address, forwards the content to the second care-of-address. Therefore, the content server 121 is insulated from having to use the second care-of-address.
The content server 121 is a computing device configured to receive a request for content from the requester 135 and to generate the content or provide content in accordance with the request.
Events 141-144 represent an example signal flow of communication system 100. At the event 141, the proxy 103 receives a message from the requester 135. In one implementation, the message is an Internet Control Message Protocol (ICMP) message. In another implementation, the message is one or more packets that carry information. The message associated with the event 141 includes at least a first care-of-address and a second care-of-address. The message may also include a destination address of the content server 121, which may be an IP address, a TCP port of the content server 121 and a TCP port of the requester 135. The message serves to inform the proxy 103 that the requester 135 is moving from the first care-of-address to the second care-of-address. Moreover, the message serves, if such content is part of the message, to inform the proxy 103 that content for delivery from the content server 121, having the associated destination address (e.g., IP address) and TCP port, is to be routed to the second care-of-address and TCP port of the requester 135 rather than the first care-of-address. The proxy 103 stores the content of the message for future reference. At event 142, if additional data or information is included with the message, it is routed to the content server 121. However, in one implementation, the change of care-of-address and other related information from the message is not routed to the content server 121. That is, in one implementation, only data is routed to the content server 121.
At event 143, the content server 121 communicates data for delivery to the requester 135. Packets associated with the data identify the recipient's care-of-address as being the first care-of-address of the requester 135. However, at event 144, the proxy 103 having stored the content of the message from event 141, which at least includes the second care-of-address of the requester 135, routes the data to the second care-of-address of the requester 135. The packets associated with the data from event 143 may also identify a TCP port associated with the first care-of-address of the requester 135. The proxy 103 may also store a TCP port of the second care-of-address that is different than the TCP port identified in the packets associated with the data. In such a circumstance, the proxy 103, at event 144, routes the data to the second care-of-address and its associated TCP port of the requester 135.
The foregoing has described that the proxy 103 is to implement a change of care-of-address at the requester 135. In an alternative implementation, the requester 135 sends the same message (e.g., a message with at least a first care-of-address and a second care-of-address) to inform the content server 121 of a change of care-of-address at the requester 135. Rather than implementing a proxy to handle subsequent data delivery to the requester 135, the content server 121 may update the TCP/IP stack by replacing the first care-of-address with the second care-of-address.
Representative Message Packet
Representative Processes
At Act 302, a computing device determines that it will transition from a first network interface to a second network interface. The computing device may be the requester 135.
At Act 304, the computer device, such as the requester 135, ascertains or obtains a care-of-address for the second network interface. It is assumed here that the requester 135 is already aware of its current care-of-address (e.g., a first care-of-address).
At Act 306, the computing device, such as the requester 135, generates a message, such as an ICMP message, that includes at least the care-of-address of the first network interface and a care-of-address of the second network interface. The message may also include a destination address of a destination computing device, such as the content server 121 or the data store 105, which may be an IP address, a TCP port of the destination computing device, and a TCP port of generating computing device.
At Act 308, the message is conveyed to the destination computing device. In one implementation, the message is conveyed to a proxy associated with the destination computing device, where the proxy is positioned between the computing device, such as the requester 135, and the destination device, such as the content server 121.
At Act 310, the computing device commences conveying and receiving data (e.g., messages) via the second network interface.
Representative Computing Device
Computing device 400 can be implemented with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, gaming consoles, distributed computing environments that include any of the above systems or devices, and the like.
The components of computing device 400 can include, but are not limited to, processor 402 (e.g., any of microprocessors, controllers, and the like), system memory 404, input devices 406, output devices 408, and network devices 410. The network devices 410 may include a first and second network device interface. For example the first network device may be a wireless device interface that may have an associated care-of-address and the second network device may be a wireline device interface with an associated care-of-address.
Computing device 400 typically includes a variety of computer-readable media. Such media can be any available media that is accessible by computing device 400 and includes both volatile and non-volatile media, removable and non-removable media. System memory 404 includes computer-readable media in the form of volatile memory, such as random access memory (RAM), and/or non-volatile memory, such as read only memory (ROM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within computing device 400, such as during start-up, is stored in system memory 404. System memory 404 typically contains data and/or program modules that are immediately accessible to and/or presently operated on by processor 402.
System memory 404 can also include other removable/non removable, volatile/non-volatile computer storage media. By way of example, a hard disk drive may be included for reading from and writing to a non-removable, non-volatile magnetic media; a magnetic disk drive may be included for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”); and an optical disk drive may be included for reading from and/or writing to a removable, non-volatile optical disk such as a CD ROM, DVD, or any other type of optical media.
The disk drives and their associated tangible computer-readable media provide non volatile storage of computer-readable instructions, data structures, program modules, and other data for computing device 400. It is to be appreciated that other types of computer readable media which can store data that is accessible by computing device 400, such as magnetic cassettes or other magnetic storage devices, flash memory cards, CD-ROM, digital versatile disks (DVD) or other optical storage, random access memories (RAM), read only memories (ROM), electrically erasable programmable read-only memory (EEPROM), and the like, can also be utilized to implement exemplary computing device 400. Any number of program modules can be stored in system memory 404, including by way of example, an operating system 420, application programs 428, and data 432.
Computing device 400 can include a variety of computer readable media identified as communication media. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
A user can enter commands and information into computing device 400 via input devices 406 such as a keyboard and a pointing device (e.g., a “mouse”). Other input devices 406 may include a microphone, joystick, game pad, controller, satellite dish, serial port, scanner, touch screen, touch pads, key pads, and/or the like. Output devices 408 may include a CRT monitor, LCD screen, speakers, printers, and the like.
Computing device 400 may include network devices 410 for connecting to computer networks, such as local area network (LAN), wide area network (WAN), and the like.
In alternate implementations, one or more of the above techniques may be employed concurrently, or another technique may be used to accomplish the same or similar results. The implementations herein are described in terms of exemplary embodiments. However, it should be appreciated that individual aspects of the implantations may be separately claimed and one or more of the features of the various embodiments may be combined.
The arrangements, procedures and protocols of the described implementations may be implemented on a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a flashable device, a hard-wired electronic or logic circuit such as discrete element circuit, a programmable logic device such as PLD, PLA, FPGA, PAL, a transmitter/receiver, any comparable device, or the like. In general, any apparatus capable of implementing a state machine that is in turn capable of implementing the methodology described and illustrated herein may be used to implement the various communication methods, protocols and techniques according to the implementations.
Furthermore, the disclosed procedures may be readily implemented in software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed arrangements may be implemented partially or fully in hardware using standard logic circuits or VLSI design. The communication arrangements, procedures and protocols described and illustrated herein may be readily implemented in hardware and/or software using any known or later developed systems or structures, devices and/or software by those of ordinary skill in the applicable art from the functional description provided herein and with a general basic knowledge of the computer and telecommunications arts.
Although the implementations of the disclosure have been described in language specific to structural features and/or methodological acts, it is to be understood that the implementations are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as representative forms of implementing the invention.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7428226, | Dec 18 2002 | Intel Corporation | Method, apparatus and system for a secure mobile IP-based roaming solution |
7545766, | May 16 2003 | Microsoft Technology Licensing, LLC | Method for mobile node-foreign agent challenge optimization |
8103278, | Apr 01 2008 | MEDIATEK INC. | Method and system for managing idle mode of a mobile node with multiple interfaces |
20030018810, | |||
20030179731, | |||
20030225892, | |||
20040120328, | |||
20050271015, | |||
20090245150, | |||
20100157947, | |||
20100313024, | |||
20110090794, | |||
CN101552731, | |||
CN102202286, | |||
CN1509111, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 04 2013 | INTEL DEUTSCHLAND GMBH | (assignment on the face of the patent) | / | |||
Feb 04 2013 | KOLDE, MARTIN | Intel Mobile Communications GmbH | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029921 | /0640 | |
May 07 2015 | Intel Mobile Communications GmbH | INTEL DEUTSCHLAND GMBH | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037057 | /0061 | |
Nov 30 2019 | Intel Corporation | Apple Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053518 | /0586 | |
Jun 15 2020 | INTEL DEUTSCHLAND GMBH | Intel Corporation | CONFIRMATORY ASSIGNMENT EFFECTIVE AS OF JANUARY 1, 2018 | 053477 | /0001 |
Date | Maintenance Fee Events |
Aug 08 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 16 2023 | REM: Maintenance Fee Reminder Mailed. |
Apr 01 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |