The present invention generally relates to a method and system for avoiding TCP packet retransmission during mobile device handoff. Specifically, the present invention provides buffering of newly transmitted TCP packets to prevent retransmission of forwarded TCP packets that have been delayed.
As wireless networks become more pervasive, the capabilities of mobile devices are increasing. For example, today many mobile devices (e.g., cellular telephones, personal digital assistants, laptop computers, etc.) are capable of connecting to networks through a wireless connection. In general, to connect to a wireless network, a mobile device must associate with certain components therein such as an “access point.” Due to their inherent portability, mobile devices are often “handed-off” from one access point to another. Specifically, as a mobile device user migrates away from an access point with which his/her device is associated, the connection therewith will degrade and eventually fail. To prevent failure of the end-to-end connection, the mobile device must find and associate with any available access point.
As known, a wireless network can have multiple subnetworks. Each subnetwork will generally include, among other components, a mobility agent and a set (e.g., one or more) access points with which mobile devices can associate. A single subnetwork could represent, for example, all of the “machines” at a single geographic location, in the same building, or on the same local area network (LAN), etc. Having a network divided into subnetworks can provide several advantages. For example, subnetworks allow the network to be connected to the Internet with a single shared network address. Although an organization could get multiple connections to the Internet without subnetworks, it would require an unnecessary use of the limited number of network addresses the Internet has to assign.
Typically, under the Open Systems Interconnection layer model, a wireless subnetwork has several “layers.” Layer 1 is referred to as the physical, layer 2 is referred to as the link layer (which includes LLC and medium access control (MAC)), layer 3 is referred to as the network layer, and layer 4 is referred to as the transportation layer. As a mobile device migrates, handoffs could be necessary on one or more of the layers. For example, as indicated above, if a mobile device migrates within a single wireless subnetwork, a layer 2 (link layer) handoff between access points could be necessary. If the mobile device migrates between two subnetworks, a layer 3 (network layer) handoff between mobility agents as well as a layer 2 handoff between access points is necessary. In general, a layer 2 handoff is managed according to the I.E.E.E. 802.11(f) standard, while a layer 3 handoff is handled according to the Mobile IP standard.
Due to intrinsic differences in handoff processes, a layer 3 handoff is substantially more time consuming than a layer 2 handoff. Specifically, under the Mobil IP standard, a “mobility” agent in the access router of a given subnet transmits “beacons” approximately every one second. The beacons are received by the mobile device as a way of verifying that it is connected to that particular subnetwork. If the mobile device migrates out of the region covered by the first subnetwork, the beacons will be missed (e.g., either they will not be received, or they will not be received with sufficient “strength”). In any event, if the mobile device misses three consecutive beacons, the Mobil IP standard dictates that it must search for a new subnetwork (i.e., attempt to associate with a new mobility agent).
Several problems can arise, however, during the layer 3 hand-off process. Specifically, since the mobile device must wait for three agent beacons to be missed before attempting to associate with an agent, at least three seconds will elapse. This latency not only delays communication to and from the mobile device, but it can also lead to TCP packet loss. For example, until the mobile device has completed the layer 3 handoff, any TCP packets intended for the mobile device will be transmitted to the previous subnetwork with which the mobile device was associated. The TCP packets will be buffered at the previous access point and then forwarded to the new wireless subnetwork. Once the layer 3 handoff is complete, newly transmitted TCP packets will be transmitted directly to the new subnetwork.
Unfortunately, because the newly transmitted TCP packets are transmitted directly to the new subnetwork, there is a high likelihood that they might arrive prior to some of the forwarded TCP packets even though the newly transmitted TCP packets were transmitted later. Accordingly, some of the TCP packets could be received out of sequence, which could trigger TCP packet retransmission. For example, under standard “TCP” practice, as a TCP packet is transmitted, a timer is started. If an “acknowledgement” is not received back from the mobile device within the allotted time period, the TCP packet is retransmitted. If the mobile device receives a TCP packet out of order, an “acknowledgement” to the most recently received in-order packet will be transmitted back to the TCP sender. This acknowledgement would essentially amount to a “request” for the missing data packet. For example, assume that TCP packets “1-10” were transmitted from a TCP sender intended for a mobile device. Further assume that TCP packets “1-3” must be forwarded to the new wireless subnetwork from a previous access point, while TCP packets “4-10” are directly transmitted to the new wireless subnetwork from the TCP sender. If TCP packet “4” were received first, an initial request for TCP packet “1” would be sent back to the TCP sender. If TCP packet “5” was received next, a second request for TCP packet “1” would be sent. If TCP packet “6” were received third, yet another request for TCP packet “1” would be sent back to the TCP sender. If TCP packet “7” were received next, a fourth request would be sent back to the TCP sender. However, under standard “TCP” practices, this fourth request would trigger retransmission of TCP packet “1” by the data source. Accordingly, TCP packet “1” would be retransmitted as if it were lost even though it was simply delayed by the forwarding process.
In an attempt to address this, previous systems have implementing a buffering scheme whereby all newly transmitted TCP packets are buffered at the new agent until all forwarded TCP packets arrive. However, due to the long latency period involved with layer 3 handoff, there could be a large quantity of buffered TCP packets, which could lead to buffer overflow and packet loss.
In view of the foregoing, there exists a need for a method and system for avoiding TCP packet retransmission during mobile device handoff. Specifically, a need exists for an improved buffer scheme that can avoid TCP packets being. transmitted to a mobile device out of order, without overflowing the buffer and triggering TCP retransmission.
In general, the present invention provides a method and system for avoiding TCP packet retransmission during mobile device handoff. Specifically, under the present invention, a set (e.g., one or more) of forwarded TCP packets and a set (e.g., one or more) of newly transmitted TCP packets are received by a wireless component (e.g., an access point or a mobile device). As known, each TCP packet in both sets has a sequence number that identifies its order in the overall packet stream. For each of a quantity of tokens present on the wireless component, one “out of order” newly transmitted TCP packet can be passed. Specifically, if a newly transmitted TCP packet is received before a forwarded TCP packet having a lower sequence number, it can be passed only if a token is present. To this extent, if the wireless component is an access point, “passing” of a newly transmitted TCP packet means that the newly transmitted TCP packet is transmitted to a mobile device. If the wireless component is the mobile device itself, “passing” of a newly transmitted TCP packet means that the mobile device will process (or be allowed to process) the newly transmitted TCP packet. In any event, each newly transmitted TCP packet that is passed will cause the quantity of tokens to be reduced by one. Once the tokens are expended, the newly transmitted TCP packets must be-buffered on the wireless component. However, when a forwarded TCP packet is received and passed, the quantity of tokens will be restored to a predetermined quantity (=3). The restoration of the tokens will allow a commensurate number of buffered TCP packets to be passed.
A first aspect of the present invention provides a method for avoiding TCP packet retransmission during mobile device handoff, comprising: receiving a set of newly transmitted TCP packets on a wireless component; checking a sequence number of each of the set of newly transmitted TCP packets to identify a set of out of order TCP packets; passing one of the set of out of order TCP packets for each of a quantity of tokens present on the wireless component.; and reducing the quantity of tokens by one for each out of order TCP packet that is passed.
A second aspect of the present invention provides a method for avoiding TCP packet retransmission during mobile device handoff, comprising: receiving a set of newly transmitted TCP packets for the mobile device on an access point; checking a sequence number of each of the set of newly transmitted TCP packets to identify a set of out of order TCP packets; transmitting one of the set of out of order TCP packets to the mobile device for each of a quantity of tokens present on the access point, and reducing the quantity of tokens by one for each out of order TCP packet transmitted to the mobile device; receiving a forwarded TCP packet from a previous access point with which the mobile device was associated; and transmitting the forwarded TCP packet to the mobile device, and restoring the quantity of tokens to a predetermined quantity if the forwarded TCP packet was previously requested by the mobile device.
A third aspect of the present invention provides a system for avoiding TCP packet retransmission during mobile device handoff, comprising a wireless component configured to receive a set of newly transmitted TCP packets on a wireless component, to check a sequence number of each of the newly transmitted TCP packets to identify a set of out of order TCP packets, to pass one of the set of out of order TCP packets for each of a quantity of tokens present on the wireless component, and to reduce the quantity of tokens by one for each out of order TCP packet that is passed.
Therefore, the present invention provides a method and system for avoiding TCP packet retransmission during mobile device handoff.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
Referring now to
As indicated above, handoff of mobile device 26 can raise various issues. Such issues can arise whether mobile device 26 is handed off within a particular wireless subnetwork from access point to access point (e.g., from access point 20A to access point 20B) or between wireless subnetworks (e.g., from wireless subnetwork 12A to wireless subnetwork 12B). Specifically, whenever mobile device 26 is handed off, certain TCP packets 28 will have to be forwarded while others can be directly transmitted after a handoff. For example, if mobile device is handed off from access point 20A to access point 20B, some TCP packets will be received by access point 20A during the handoff process, and must be forwarded to access point 20B. Still yet, after handoff, newly generated TCP packets will be directly transmitted to access point 20B. Although the I.E.E.E. 802.11(f) standard provides some communication between access points 20A-D), the packet buffering is not effectively managed and could overflow and lead to TCP packet loss.
This effect can be magnified when mobile device 26 is handed off from wireless subnetwork 12A to wireless subnetwork 12B. Specifically, as indicated above, for such a handoff to occur, mobile device 26 must be handed off both on layer 2 as well as layer 3. That is, mobile device 26 must associate with both a mobility agent (e.g., agent 16B) and an access point (e.g., access point 20C) of wireless subnetwork 12B. Due to the long latency period involved with the layer 3 handoff (e.g., at least three seconds), there is a higher likelihood that newly transmitted TCP packets (e.g., TCP packets transmitted after the handoff that can be directly routed to subnetwork 12B), will arrive before previously transmitted TCP packets that must be forwarded from access point 20B. Thus, the newly transmitted TCP packets could arrive at access point 20C out of sequence. As also indicated above, each TCP packet received out of sequence would result in a duplicate acknowledgement for the appropriate TCP packet being transmitted back to correspondent device 24. However, under “TCP” practices, a fourth duplicate acknowledgement would trigger retransmission of a TCP packet that may only be delayed (not lost). Although buffering can be provided at agent 16B under the Mobil IP standard or at access point 20C under I.E.E.E. 802.11 standard, no previous system managed the buffer in such a way that would avoid buffer overflow or TCP packet retransmission.
Under the present invention, either the access points (e.g., access point 20B or 20C) or mobile device 26 can be configured in such a way that TCP packet retransmission and TCP packet loss are avoided. Specifically, referring to
Under the present invention, forwarded TCP packets 42 are allowed to pass directly to mobile device 26, while newly transmitted TCP packets 44 are subject to possible buffering in buffer 46. Specifically, as know in the art, each TCP packet in a stream is assigned a sequence number that indicates the order of that TCP packet in the stream. In general, a first TCP packet will have a lower sequence number than a second TCP packet in the same stream. As indicated above, forwarding of TCP packets can cause a stream of TCP packets to become out of order. For example, assume that a stream is made up of TCP packets “1-10.” Further assume that TCP packets “1-3” were received by a previous access point with which mobile device 26 was associated. As such, TCP packets “1-3” must be forwarded to the new access point. Also assume that TCP packets “4-10” of the stream are newly transmitted. That is, TCP packets “4-10” are transmitted from correspondent device 24 and are routed directly to the new access point. When TCP packet 4 is received, standard TCP practices dictate that an acknowledgement be generated and sent back to correspondent device 24 that indicates that TCP packet 4 was received. As described above, this acknowledgement would indicate that TCP packet “1” was not received. If TCP packets “5-7” were received next, a second, third and fourth such acknowledgement would be generated. Under “TCP” practices, the third duplicate acknowledgement would cause correspondent device 24 to re-send TCP packet “1.” Thus, even though packet “1” was not lost, it would be re-transmitted. To address this problem, buffer management system 40 provides a quantity of tokens 48. For each token 48 present, one newly transmitted TCP packet 44 that is out of order will be “passed.” To this extent, if wireless component 50 is an access point, one out of order newly transmitted TCP packet 44 will be transmitted to mobile device 26 for each token present on the access point. If wireless device 50 is mobile device 26, one out of order newly transmitted TCP packet 44 will be processed (or allowed to be processed) by mobile device for each token present. In either scenario, for each out of order newly transmitted TCP packet 44 that is passed, the quantity of tokens 48 on wireless device 50 will be reduced by one. In a typical embodiment, tokens 48 are provided in a predetermined quantity that is less than the quantity of requests that would trigger retransmission of a TCP packet. For example, if three duplicate acknowledgement for a missing TCP packet would cause correspondent device 24 to retransmit a TCP packet (e.g., TCP packet “1”), buffer management system 40 would include three tokens.
Using the example above, assume that three tokens 48 are present. If TCP packet “4” was received first, it would be passed and two tokens would remain (and a first acknowledgement/request for TCP packet “1” would be transmitted). If TCP packet “5” was received next, it would be passed and only one token would remain (and a second acknowledgement/request for TCP packet “1” would be transmitted. If TCP packet “6” was received next, it would also be passed and no tokens would remain (and a third acknowledgement/request for TCP packet “1” would be transmitted). If TCP packet “7” was received next, it would be stored in buffer 46 since no tokens remain. This would prevent TCP packet “7” from passing to mobile device 26 and a fourth request for “missing” TCP packet 1 from being generated. Thus, retransmission of TCP packet “1” is avoided. Similarly, if TCP packet “8” was received next, it would also be stored in buffer 46 to avoid retransmission of TCP packet “1.” If, however, TCP packet “1” was received after TCP packet “8,” it would be passed and tokens 48 would be replenished. That is, tokens 48 are restored to the predetermined quantity (e.g., 3) when a requested TCP packet (i.e., a requested forwarded TCP packet) is received and passed.
Once tokens 48 have been replenished, TCP packets “7” and “8” would be passed with each consuming one token. Thus, only one token 48 would remain and a first and second acknowledgement/request for missing TCP packet “2” would be transmitted to correspondent device 24. If TCP packets “9” and “10” arrived next, TCP packet “9” would be passed and no tokens would remain (and a third acknowledgement for TCP packet “2” would be transmitted). Because there are no tokens 48 left after passing TCP packet “9,” TCP packet “10” would be stored in buffer 46 until TCP packet “2” pass tokens 48 were once again restored to the predetermined quantity. This process would continue until all TCP packets had been passed.
It should be understood that the present invention can be realized in hardware, software, or a combination of hardware and software. To this extent, the teachings of the present invention could be implemented through software-based or hardware-based means within the wireless components (access point and/or mobile device). Any kind components adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a component with a computer program that, when loaded and executed, carries out the respective methods described herein. Alternatively, a specific use component, containing specialized hardware for carrying out one or more of the functional tasks of the invention, could be utilized. The present invention can also be embedded in a computer program product, which comprises all the respective features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program, software program, program, or software, in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form.
Referring now to
Memory 54 of wireless component 50 can include data 60 and/or program code 62 for carrying out the functions of the present invention described herein. For example, assume that buffer management system 40 of
Accordingly, under the present invention, wireless component 50 is configured to: receive both forwarded and newly transmitted TCP packets; check the sequence number of each TCP packet to identify a set (e.g., one or more) of out of order (newly transmitted) TCP packets; pass one out of order TCP packet for each token present; reduce the number of tokens by one for each out of order TCP packet that is passed; buffer any out of order TCP packets that are not passed; pass any forwarded TCP packets; and restore the quantity of tokens to a predetermined quantity when a “requested” forwarded TCP packet is passed.
The foregoing description of the preferred embodiments of this invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of this invention as defined by the accompanying claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB04/00521 | 2/23/2004 | WO | 8/26/2005 |
Number | Date | Country | |
---|---|---|---|
60451030 | Feb 2003 | US | |
60478802 | Jun 2003 | US |