US7792026B2 - Method of calculating a time period to wait for missing data packets - Google Patents

Method of calculating a time period to wait for missing data packets Download PDF

Info

Publication number
US7792026B2
US7792026B2 US11/356,022 US35602206A US7792026B2 US 7792026 B2 US7792026 B2 US 7792026B2 US 35602206 A US35602206 A US 35602206A US 7792026 B2 US7792026 B2 US 7792026B2
Authority
US
United States
Prior art keywords
data packets
missing
time period
missing data
dynamic time
Prior art date
Legal status (The legal status 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 status listed.)
Active, expires
Application number
US11/356,022
Other versions
US20070195826A1 (en
Inventor
Xin Wang
Tomas S. Yang
Yang Yang
Lily H. Zhu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Alcatel Lucent USA 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 Alcatel Lucent USA Inc filed Critical Alcatel Lucent USA Inc
Priority to US11/356,022 priority Critical patent/US7792026B2/en
Assigned to LUCENT TECHNOLOGIES INC. reassignment LUCENT TECHNOLOGIES INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YANG, TOMAS S., WANG, XIN, YANG, YANG, ZHU, LILY H.
Publication of US20070195826A1 publication Critical patent/US20070195826A1/en
Assigned to ALCATEL-LUCENT USA INC. reassignment ALCATEL-LUCENT USA INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: LUCENT TECHNOLOGIES INC.
Application granted granted Critical
Publication of US7792026B2 publication Critical patent/US7792026B2/en
Assigned to CREDIT SUISSE AG reassignment CREDIT SUISSE AG SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ALCATEL-LUCENT USA INC.
Assigned to ALCATEL-LUCENT USA INC. reassignment ALCATEL-LUCENT USA INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: CREDIT SUISSE AG
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1841Resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols

Definitions

  • Example embodiments of the present invention relate generally to a method of receiving data packets, and, more particularly, to a method of receiving out-of-order data packets.
  • packets transmitted in a given scheduling order are often received out-of-order.
  • a sending unit e.g., a base station, a mobile station, a radio network controller, etc.
  • a receiving unit e.g., a base station, a mobile station, a radio network controller, etc.
  • the three data packets are said to be out-of-order.
  • the phenomenon of out-of-order data packets may be caused by any number of reasons. Such reasons may include a plurality of physical or logical links connecting the sending unit and the receiving unit such that different data packets are sent along different physical/logical links, different distances associated with one or more of the plurality of physical/logical links, different scheduling delays associated with one or more of the plurality of physical/logical links, etc.
  • data packets may truly be “lost”, for example due to interference present on one or more of the plurality of physical/logical links.
  • a wireless communication system may include a plurality of physical links (e.g., Tls, Els, etc.) connecting a base station (BS) with a radio network controller (RNC).
  • the plurality of physical links may be associated with different distances and/or different routes each with different associated delays (e.g., processing delays, propagation delays, etc.).
  • the wireless communication system may also include a plurality of wireless or “air interface” links (e.g., channels, hand-off legs, etc.) associated with different associated delays (e.g., processing delays, propagation delays, etc.) and data transmission/reception rates.
  • upper layer or higher layer functionality depends upon receiving an ordered set of data packets. In other words, the order of the data packets is a factor in proper data extraction at a higher layer.
  • the receiving unit interprets the out-of-order data packet as an indicator of one or more missing data packets (e.g., intervening data packets expected between a previously received data packet and the out-of-order data packet), and sends a non-acknowledgment (NACK) to the sending unit to prompt the sending unit to resend the missing data packet or packets.
  • NACK non-acknowledgment
  • the missing data packet is received within a fixed time period after the out-of-order data packet is detected at the receiving unit, the NACK is not sent and the “missing” data packet is transferred to the upper layer for further processing.
  • An example embodiment of the present invention is directed to a method of receiving data packets.
  • a determination is made as to whether a received data packet is received out of an expected order. If the determining step determines a received packet is out of the expected order, a time period is calculated to wait for one or more missing data packets based at least in part on an expected time of receiving the one or more missing data packets.
  • the expected order data packets are buffered and outputted either when the calculated time period expires or earlier if all the missing data packets are received before the calculated time period expires. If all of the missing data packets are not received before the calculated time period expires, a non-acknowledgment (NACK) may be sent for at least one of the missing data packets.
  • NACK non-acknowledgment
  • FIG. 1 illustrates a conventional data packet receiving process.
  • FIG. 2 illustrates a data packet receiving process according to an example embodiment of the present invention.
  • FIG. 1 illustrates a conventional data packet receiving process.
  • FIG. 1 illustrates a conventional receiving process for recovering from an out-of-order data packet, which may alternatively be referred to as a “deskew” process.
  • a receiving unit receives data packets from a sending unit (e.g., a base station, a mobile station, etc.).
  • a sending unit e.g., a base station, a mobile station, etc.
  • Each of the received data packets is analyzed in step S 105 to determine whether the received data packet is received in order. If an out-of-order data packet is detected, an intervening data packet or packets expected between a previous received data packet and a latest received data packet are determined to be “missing”. If at least one missing data packet is determined in step S 105 , the process advances to step S 115 . Otherwise, if the latest received data packet is determined to be received in a proper order, the process forwards the received data packet to an upper layer in step S 110 and then returns to step S 100 and waits for additional received data packets.
  • step S 115 the receiving unit buffers (e.g., stores in local memory) the out-of-order data packet. Then, in step S 120 the receiving unit begins a countdown from a timer with a fixed time period. In step S 125 , the receiving unit determines whether the missing data packets have been received or if the timer has expired. If the missing data packets have been received, then upon receipt of the missing data packets, the data packets in the buffer forming a sequence are forwarded in step S 130 to the upper layers. As will be appreciated, while the data packets are being buffered because of a first set of missing data packets or missing data packet, another set of missing data packets may result. Accordingly, the data packets up to this next set of missing data packets are forwarded to the upper layers.
  • step S 135 the data packets up to another set of missing data packets are forwarded to the upper layers.
  • the upper layers will receive a sequence of data packets with at least one gap or hole in the sequence (i.e., the missing data packet or packets).
  • the upper layers of the receiving unit determine whether or not to send a non-acknowledgment (NACK) to the sending unit to prompt the sending unit to retransmit any missing data packet(s) not received.
  • NACK non-acknowledgment
  • the NACK may not be sent and a video and/or audio portion of the video application output appears as a “glitch” in the output, which may be more desirable to users than experiencing delays in the streaming video application.
  • the receiving unit may send a NACK for the missing data packets.
  • RLP Radio Link Protocol
  • a NACK may be sent for individual missing data packets.
  • the NACK may be used to designate a plurality of data packets for retransmission.
  • step S 140 the receiving unit determines if another set of missing packets or packet exists. If so, then processing returns to step S 120 wherein the timer is set again, and the above described process repeats. It will be understood that in this situation, the received data packets continue to be buffered. However, if there are no more missing data packets, the buffer will be empty, and processing returns to step S 100 .
  • the methodology employed may depend on the delay sensitivity of the data, wherein the process of FIG. 1 is used for delay insensitive data, and the alternative embodiment is used for delay sensitive data.
  • a separate timer may be maintained for each set of missing data packets, and the process of steps S 125 - 135 may be carried out with respect to each set.
  • the determination of the fixed time period of the countdown process is an important design characteristic. For example, if the fixed time period for the timer is set too low, an increased number of retransmissions are triggered, which increases wireless traffic, interference and/or delays associated with data transfer. Alternatively, if the fixed time period for the timer is set too high, performance may be degraded because, in a worst case scenario, the higher layer must wait until the countdown process completes before receiving the buffered data packets, thereby increasing delays associated with the data transfer.
  • Determining the appropriate time period for the fixed time period is conventionally performed by empirical study. A given time period associated with an expected or observed best average performance is typically selected for the fixed time period.
  • the “ideal” duration for the fixed time period is not necessarily static, and may change based on one or more operational characteristics of a wireless communication system. Therefore, the use of a fixed time period for the timer does not provide for the most efficient data transfer process.
  • FIG. 2 illustrates a data packet receiving process according to an example embodiment of the present invention. Portions of the example data packet receiving process of FIG. 2 are identical to the conventional process of FIG. 1 , or the alternatives thereof, except for adding steps S 280 , S 285 and S 290 as will now be described, and replacing step S 120 with step S 220 . Accordingly, the steps S 200 , S 205 , S 210 , S 215 , S 225 , S 230 , S 235 , and S 240 are performed as the steps S 100 , S 105 , S 100 , S 115 , S 115 , S 130 , S 135 and S 140 as described above with respect to FIG. 1 .
  • steps S 200 , S 205 , S 210 , S 215 , S 225 , S 230 , S 235 , and S 240 may be mentioned below, a detailed description of these steps has been omitted for the sake of brevity.
  • step S 290 receiving unit determines a dynamic time period for use in a first or initial count down process as described in detail below; and in step S 220 , a count down timer, counting down the first or initial dynamic time period is started.
  • the receiving unit dynamically calculates a time period for the timer based on recent and/or current operating metrics.
  • step S 280 the timer is stopped in step S 280 .
  • the timer is stopped so as to determine a “hole duration”, which is a time duration between the count down starting in step S 220 and finally receiving the “missing” data packets indicated by the out-of-order data packet (step S 205 ). Hole durations will be described later in greater detail.
  • step S 280 the dynamic time period for the timer is adjusted in step S 285 if the missing packets were determined to be received in step S 225 and forwarded to the upper layer in step S 230 .
  • the receipt of the missing data packets triggers the dynamic time period adjustment of step S 285 .
  • Example methodologies for determining the adjustments to the dynamic time period (step S 285 ) will be described in greater detail later.
  • the time period for the timer is set to the dynamic time period calculated in the previous step S 285 .
  • the timer continues to run and monitor time duration even after the timer expires and the count down process terminates.
  • steps S 280 and S 290 are not performed.
  • the receiving unit may optionally forward the received missing data packets or “holes” to the upper layer.
  • the receiving unit forwards the received missing data packets or holes to the upper layer.
  • the receiving unit does not forward the received missing data packets or holes to the upper layer because their priority has been lowered due to their delayed receipt.
  • the received missing data packets are received after a retransmission of the missing data packets is received from the sending unit and forwarded to the upper layer, the received missing data packets are discarded to avoid duplicate forwarding.
  • step S 290 Example methodologies for determining the initial dynamic time period (step S 290 ) for the timer and adjustments to the dynamic time period (step S 285 ) will now be described in greater detail.
  • the calculations described below are triggered (e.g., for a first instantiation or subsequent instantiations) when a hole is received. Accordingly, when an ith hole is received, the calculations are performed for the ith time, an ith-1 time (e.g., for calculations which require a separate initial calculation in response to a first hole), etc., except for initial value calculations (e.g., which are only calculated for the first or initial hole).
  • the dynamic time period (“Dynamic_Timer_Period”) for the timer is set to an initial or default level (e.g., an upper bound or Dynamic_Timer_Upper_Bound) in step S 290 .
  • Dynamic_Timer_Period MIN(avg_hole_duration+ ⁇ *hole_variation, Dynamic_Timer_Upper_Bound) Equation 2 wherein MIN( ) evaluates to the lower of the expressions (i) [avg_hole_duration+w*hole_variation] and (ii) [Dynamic_Timer_Upper_Bound], with (ii) being an upper threshold timer value selected by a system designer; and ⁇ is a weight factor (e.g., a constant value) used for weighting the hole_variation in the dynamic time period calculation of step S 285 .
  • MIN( ) evaluates to the lower of the expressions (i) [avg_hole_duration+w*hole_variation] and (ii) [Dynamic_Timer_Upper_Bound]
  • is a weight factor (e.g., a constant value) used for weighting the hole_variation in the dynamic time
  • the weight factor ⁇ is set by the system designer to maintain a probability that the hole_duration is greater than the Dynamic_Timer_Period less than a probability threshold (e.g., a relatively small value determined by the system designer), as expressed by Probability (hole_duration>Dynamic_Timer_Period) ⁇ Equation 3 wherein ⁇ denotes the probability threshold.
  • a probability threshold e.g., a relatively small value determined by the system designer
  • the receiving unit may dynamically calculate the time period for the timer in step S 285 of FIG. 2 so as to increase system performance by adapting the dynamic time period of the timer in response to changing operating conditions.

Abstract

A method of receiving data packets. In the method of receiving data packets, a determination is made as to whether a received data packet is received out of an expected order. If the determining step determines a received packet is out of the expected order, a time period is calculated to wait for one or more missing data packets based at least in part on an expected time of receiving the one or more missing data packets.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
Example embodiments of the present invention relate generally to a method of receiving data packets, and, more particularly, to a method of receiving out-of-order data packets.
2. Description of the Related Art
In conventional packet switched communication networks, packets transmitted in a given scheduling order are often received out-of-order. For example, if a sending unit (e.g., a base station, a mobile station, a radio network controller, etc.) sends three data packets in an order [1, 2, 3] and a receiving unit (e.g., a base station, a mobile station, a radio network controller, etc.) receives the three data packets in an order [2, 3, 1], the three data packets are said to be out-of-order.
The phenomenon of out-of-order data packets may be caused by any number of reasons. Such reasons may include a plurality of physical or logical links connecting the sending unit and the receiving unit such that different data packets are sent along different physical/logical links, different distances associated with one or more of the plurality of physical/logical links, different scheduling delays associated with one or more of the plurality of physical/logical links, etc. In another example, data packets may truly be “lost”, for example due to interference present on one or more of the plurality of physical/logical links.
In an example, a wireless communication system may include a plurality of physical links (e.g., Tls, Els, etc.) connecting a base station (BS) with a radio network controller (RNC). The plurality of physical links may be associated with different distances and/or different routes each with different associated delays (e.g., processing delays, propagation delays, etc.). The wireless communication system may also include a plurality of wireless or “air interface” links (e.g., channels, hand-off legs, etc.) associated with different associated delays (e.g., processing delays, propagation delays, etc.) and data transmission/reception rates.
In many commonly used wireless communication protocols (e.g., a radio link protocol (RLP)), upper layer or higher layer functionality depends upon receiving an ordered set of data packets. In other words, the order of the data packets is a factor in proper data extraction at a higher layer. In systems employing such wireless communication protocols, if data packets are received out-of-order, the receiving unit interprets the out-of-order data packet as an indicator of one or more missing data packets (e.g., intervening data packets expected between a previously received data packet and the out-of-order data packet), and sends a non-acknowledgment (NACK) to the sending unit to prompt the sending unit to resend the missing data packet or packets. Alternatively, if the missing data packet is received within a fixed time period after the out-of-order data packet is detected at the receiving unit, the NACK is not sent and the “missing” data packet is transferred to the upper layer for further processing.
SUMMARY OF THE INVENTION
An example embodiment of the present invention is directed to a method of receiving data packets. In the method of receiving data packets, a determination is made as to whether a received data packet is received out of an expected order. If the determining step determines a received packet is out of the expected order, a time period is calculated to wait for one or more missing data packets based at least in part on an expected time of receiving the one or more missing data packets.
In an example, the expected order data packets are buffered and outputted either when the calculated time period expires or earlier if all the missing data packets are received before the calculated time period expires. If all of the missing data packets are not received before the calculated time period expires, a non-acknowledgment (NACK) may be sent for at least one of the missing data packets.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will become more fully understood from the detailed description given herein below and the accompanying drawings which are given by way of illustration only, wherein like reference numerals designate corresponding parts in the various drawings, and wherein:
FIG. 1 illustrates a conventional data packet receiving process.
FIG. 2 illustrates a data packet receiving process according to an example embodiment of the present invention.
DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
In order to better understand the present invention, a conventional data packet receiving process will be described, followed by a data packet receiving process according to an example embodiment of the present invention.
Conventional Data Packet Receiving Process
FIG. 1 illustrates a conventional data packet receiving process. In particular, FIG. 1 illustrates a conventional receiving process for recovering from an out-of-order data packet, which may alternatively be referred to as a “deskew” process.
Referring to FIG. 1, in step S100, a receiving unit (e.g., a base station, a mobile station, etc.) receives data packets from a sending unit (e.g., a base station, a mobile station, etc.). Each of the received data packets is analyzed in step S105 to determine whether the received data packet is received in order. If an out-of-order data packet is detected, an intervening data packet or packets expected between a previous received data packet and a latest received data packet are determined to be “missing”. If at least one missing data packet is determined in step S105, the process advances to step S115. Otherwise, if the latest received data packet is determined to be received in a proper order, the process forwards the received data packet to an upper layer in step S110 and then returns to step S100 and waits for additional received data packets.
In step S115, the receiving unit buffers (e.g., stores in local memory) the out-of-order data packet. Then, in step S120 the receiving unit begins a countdown from a timer with a fixed time period. In step S125, the receiving unit determines whether the missing data packets have been received or if the timer has expired. If the missing data packets have been received, then upon receipt of the missing data packets, the data packets in the buffer forming a sequence are forwarded in step S130 to the upper layers. As will be appreciated, while the data packets are being buffered because of a first set of missing data packets or missing data packet, another set of missing data packets may result. Accordingly, the data packets up to this next set of missing data packets are forwarded to the upper layers.
Alternatively, if the timer expires without having received all of the missing data packets in the current set, then in step S135, the data packets up to another set of missing data packets are forwarded to the upper layers. As will be appreciated, the upper layers will receive a sequence of data packets with at least one gap or hole in the sequence (i.e., the missing data packet or packets). The upper layers of the receiving unit determine whether or not to send a non-acknowledgment (NACK) to the sending unit to prompt the sending unit to retransmit any missing data packet(s) not received. For example, if the received data packets are associated with a streaming video application, the NACK may not be sent and a video and/or audio portion of the video application output appears as a “glitch” in the output, which may be more desirable to users than experiencing delays in the streaming video application. For less delay sensitive data, the receiving unit may send a NACK for the missing data packets. In an example, if the receiving and sending units are operating in accordance with Radio Link Protocol (RLP), a NACK may be sent for individual missing data packets. Alternatively, in other protocols, the NACK may be used to designate a plurality of data packets for retransmission.
In step S140, the receiving unit determines if another set of missing packets or packet exists. If so, then processing returns to step S120 wherein the timer is set again, and the above described process repeats. It will be understood that in this situation, the received data packets continue to be buffered. However, if there are no more missing data packets, the buffer will be empty, and processing returns to step S100.
In an alternative embodiment, instead of forwarding data packets up to the next set of missing data packets in steps S130 and/or S135, all the data packets in the buffer are forwarded. This alternative embodiment may be used for real-time or streaming applications, which consider lower data latency to be a higher priority than receiving a data transfer with fewer missing data packets. As such, the methodology employed may depend on the delay sensitivity of the data, wherein the process of FIG. 1 is used for delay insensitive data, and the alternative embodiment is used for delay sensitive data.
As yet another alternative, a separate timer may be maintained for each set of missing data packets, and the process of steps S125-135 may be carried out with respect to each set.
It will be appreciated that in the above-described conventional data packet receiving process, the determination of the fixed time period of the countdown process is an important design characteristic. For example, if the fixed time period for the timer is set too low, an increased number of retransmissions are triggered, which increases wireless traffic, interference and/or delays associated with data transfer. Alternatively, if the fixed time period for the timer is set too high, performance may be degraded because, in a worst case scenario, the higher layer must wait until the countdown process completes before receiving the buffered data packets, thereby increasing delays associated with the data transfer.
Determining the appropriate time period for the fixed time period is conventionally performed by empirical study. A given time period associated with an expected or observed best average performance is typically selected for the fixed time period.
Example Data Packet Receiving Process
The “ideal” duration for the fixed time period is not necessarily static, and may change based on one or more operational characteristics of a wireless communication system. Therefore, the use of a fixed time period for the timer does not provide for the most efficient data transfer process.
FIG. 2 illustrates a data packet receiving process according to an example embodiment of the present invention. Portions of the example data packet receiving process of FIG. 2 are identical to the conventional process of FIG. 1, or the alternatives thereof, except for adding steps S280, S285 and S290 as will now be described, and replacing step S120 with step S220. Accordingly, the steps S200, S205, S210, S215, S225, S230, S235, and S240 are performed as the steps S100, S105, S100, S115, S115, S130, S135 and S140 as described above with respect to FIG. 1. Therefore, although one or more of steps S200, S205, S210, S215, S225, S230, S235, and S240 may be mentioned below, a detailed description of these steps has been omitted for the sake of brevity.
In step S290, receiving unit determines a dynamic time period for use in a first or initial count down process as described in detail below; and in step S220, a count down timer, counting down the first or initial dynamic time period is started. Generally, as opposed to employing a timer with a fixed time period as in the conventional art, the receiving unit dynamically calculates a time period for the timer based on recent and/or current operating metrics.
When the count down process of steps S220-S235 ends, the timer is stopped in step S280. For example, the timer is stopped so as to determine a “hole duration”, which is a time duration between the count down starting in step S220 and finally receiving the “missing” data packets indicated by the out-of-order data packet (step S205). Hole durations will be described later in greater detail.
After the timer is stopped in step S280, the dynamic time period for the timer is adjusted in step S285 if the missing packets were determined to be received in step S225 and forwarded to the upper layer in step S230. In other words, the receipt of the missing data packets triggers the dynamic time period adjustment of step S285. Example methodologies for determining the adjustments to the dynamic time period (step S285) will be described in greater detail later.
At a next step S220 after a next out-of-order packet is received in step S205, the time period for the timer is set to the dynamic time period calculated in the previous step S285.
In an alternative example embodiment of the present invention, the timer continues to run and monitor time duration even after the timer expires and the count down process terminates. Thus, in this example embodiment, steps S280 and S290 are not performed. In this example embodiment, while not illustrated in FIG. 2, if the receiving unit receives the missing data packet(s) after the timer expiration (e.g., at a next step S200), the receiving unit may optionally forward the received missing data packets or “holes” to the upper layer.
For example, if the received missing data packets are received before a retransmission of the missing data packets and the missing data packets are not associated with a time-sensitive or streaming application, the receiving unit forwards the received missing data packets or holes to the upper layer. In another example, if the received missing data packets are received before a retransmission of the missing data packets and the missing data packets are associated with a time-sensitive or streaming application, the receiving unit does not forward the received missing data packets or holes to the upper layer because their priority has been lowered due to their delayed receipt.
In another example, if the received missing data packets are received after a retransmission of the missing data packets is received from the sending unit and forwarded to the upper layer, the received missing data packets are discarded to avoid duplicate forwarding.
Example methodologies for determining the initial dynamic time period (step S290) for the timer and adjustments to the dynamic time period (step S285) will now be described in greater detail.
Example Dynamic Timer Calculation
An example of calculating the initial dynamic time period for the timer in step S290 and calculating adjustments to the dynamic time period for the timer in step S285 will now be described in greater detail. In the following example, terms and variables referring to units of time will be assumed to be referring to milliseconds (ms). Also, the following terminology will be used:
  • a “hole” is a missing data packet sent by the sending unit which finally arrives at the receiving unit;
  • a “hole_duration” is a time duration between detecting a missing data packet and reception of the missing data packet or hole;
  • an “ave_hole_duration” is an average of the hole_durations for a plurality of holes;
  • a “hole—variation” is a variance (e.g., a jitter) for the hole—durations of the plurality of holes;
  • a duration difference D for a given hole will hereinafter be defined as
    D=|hole_duration−avg_hole_duration|  Equation 1
Further, as discussed above with respect to step S285 of FIG. 2, the calculations described below are triggered (e.g., for a first instantiation or subsequent instantiations) when a hole is received. Accordingly, when an ith hole is received, the calculations are performed for the ith time, an ith-1 time (e.g., for calculations which require a separate initial calculation in response to a first hole), etc., except for initial value calculations (e.g., which are only calculated for the first or initial hole).
With the above assumptions, the dynamic time period (“Dynamic_Timer_Period”) for the timer is set to an initial or default level (e.g., an upper bound or Dynamic_Timer_Upper_Bound) in step S290. Thereafter, the Dynamic_Timer_Period is calculated/adjusted in S285 by
Dynamic_Timer_Period=MIN(avg_hole_duration+ω*hole_variation, Dynamic_Timer_Upper_Bound)  Equation 2
wherein MIN( ) evaluates to the lower of the expressions (i) [avg_hole_duration+w*hole_variation] and (ii) [Dynamic_Timer_Upper_Bound], with (ii) being an upper threshold timer value selected by a system designer; and ω is a weight factor (e.g., a constant value) used for weighting the hole_variation in the dynamic time period calculation of step S285. The weight factor ω is set by the system designer to maintain a probability that the hole_duration is greater than the Dynamic_Timer_Period less than a probability threshold (e.g., a relatively small value determined by the system designer), as expressed by
Probability (hole_duration>Dynamic_Timer_Period)<ε  Equation 3
wherein ε denotes the probability threshold.
Further, the avg_hole_duration of Equation 2 is initialized to a first available hole_duration (e.g., for a first hole), and thereafter is updated for each subsequent hole or ith hole in accordance with
avg_hole_duration[i]=(1−T0)*avg_hole_duration[i−1]+(1/T0)*hole_duration[i]  Equation 4
wherein T0 is a first time constant determined by a system designer and i is an integer greater than or equal to 2.
Referring again to Equation 2, the hole_variation is initialized (e.g., for a first hole) to half of a first available hole_duration, and thereafter is updated for each subsequent hole or ith hole in accordance with
hole_variation[i]=(1−T1)*hole_variation[i−1]+(i/T1)*D[i]  Equation 5
wherein T1 is a second time constant determined by a system designer, i is an integrer greater than or equal to 2, and D[i] may be expressed by
D[i]=|hole_duration[i]−avg_hole_duration[i−1]|  Equation 6
Accordingly, in example embodiments of the present invention, the receiving unit may dynamically calculate the time period for the timer in step S285 of FIG. 2 so as to increase system performance by adapting the dynamic time period of the timer in response to changing operating conditions.
Example embodiments of the present invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the example embodiments of the invention, and all such modifications are intended to be included within the scope of the invention.

Claims (18)

1. A data packet receiving method to dynamically calculate a time period for a receiving unit to wait for missing data packets, comprising:
determining, at the receiving unit, whether a received data packet is received out of an expected order; and
dynamically calculating, at the receiving unit, a dynamic time period to wait for one or more missing data packets, prior to any non-acknowledgment (NACK) being sent on behalf of the one or more missing packets, based at least in part on an expected time of receiving the one or more missing data packets if the determining step determines a received packet is out of the expected order
wherein the dynamic time period begins once the determining step determines a received packet is out of the expected order.
2. The method of claim 1, further comprising:
buffering received out of expected order data packets;
outputting the received out of expected order data packets from the buffer if the calculated dynamic time period expires.
3. The method of claim 2, further comprising:
outputting the received out of expected order data packets from the buffer together with the missing data packets if the missing data packets are received before the calculated dynamic time period expires.
4. The method of claim 2, further comprising:
sending a non-acknowledgment (NACK) for at least one of the missing data packets after the outputting step.
5. The method of claim 2, further comprising:
outputting the received out of expected order data packets from the buffer together with the missing data packets if the missing data packets are received after the calculated dynamic time period expires.
6. The method of claim 1, wherein the calculating step calculates the calculated dynamic time period based on an average duration that missing data packets are missing.
7. The method of claim 6, wherein the calculating step calculates the calculated dynamic time period based on the average duration and a variance in durations that missing data packets are missing.
8. The method of claim 7, wherein the calculating step determines the variance as a sum of a previous variance times (1−T) and a differential times (1/T), wherein T is a time constant and the differential equals an absolute value of a duration that a most recent missing data packet was missing minus a previous average duration.
9. The method of claim 7, wherein the calculating step calculates the calculated dynamic time period based on the average duration, the variance, and an upper bound on the calculated dynamic time period.
10. The method of claim 9, wherein the calculating step calculates the calculated dynamic time period as a minimum of (i) the average duration plus a weight factor value times the variance, and (ii) the upper bound.
11. The method of claim 1, wherein the calculating step calculates the calculated dynamic time period based on a weighted average duration that missing data packets are missing.
12. The method of claim 11, wherein the calculating step calculates the calculated dynamic time period based on the weighted average duration and a variance in the durations that missing data packets are missing.
13. The method of claim 12, wherein the calculating step determines the weighted average duration by adding a previous weighted average duration times (1−T1) to a duration that a most recent missing packet was missing times (1/T1), where T1 is a first time constant.
14. The method of claim 13, wherein the calculating step determines the variance as a sum of a previous variance times (1−T2) and a differential times (1/T2), wherein T2 is a second time constant and the differential equals an absolute value of a duration that a most recent missing data packet was missing minus a previous average duration.
15. The method of claim 12, wherein the calculating step determines the variance as a sum of a previous variance times (1−T) and a differential times (1/T), wherein T is a time constant and the differential equals an absolute value of a duration that a most recent missing data packet was missing minus a previous average duration.
16. The method of claim 11, wherein the calculating step calculates the calculated dynamic time period based on the weighted average duration, a variance, and an upper bound on the calculated dynamic time period.
17. The method of claim 16, wherein the calculating step calculates the calculated dynamic time period as a minimum of (i) the weighted average duration plus a weight factor value times the variance, and (ii) the upper bound.
18. The method of claim 11, wherein the calculating step determines the weighted average duration by adding a previous weighted average duration times (1−T1) to a duration that a most recent missing packet was missing times (1/T1), where T1 is a first time constant.
US11/356,022 2006-02-17 2006-02-17 Method of calculating a time period to wait for missing data packets Active 2029-04-06 US7792026B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/356,022 US7792026B2 (en) 2006-02-17 2006-02-17 Method of calculating a time period to wait for missing data packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/356,022 US7792026B2 (en) 2006-02-17 2006-02-17 Method of calculating a time period to wait for missing data packets

Publications (2)

Publication Number Publication Date
US20070195826A1 US20070195826A1 (en) 2007-08-23
US7792026B2 true US7792026B2 (en) 2010-09-07

Family

ID=38428143

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/356,022 Active 2029-04-06 US7792026B2 (en) 2006-02-17 2006-02-17 Method of calculating a time period to wait for missing data packets

Country Status (1)

Country Link
US (1) US7792026B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002836A1 (en) * 2005-06-30 2007-01-04 Lindner Mark A System and method for resolving conflicts in multiple simultaneous communications in a wireless system
US20100235557A1 (en) * 2009-03-11 2010-09-16 Fujitsu Limited Computer and control method for interrupting machine operation
US20160365915A1 (en) * 2009-04-24 2016-12-15 Blackberry Limited Relay Link HARQ Operation
US10320549B2 (en) 2014-04-11 2019-06-11 Qualcomm Incorporated Methods and apparatus for sending fast negative acknowledgements (NACKs)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264355B2 (en) * 2006-09-05 2016-02-16 Telefonaktiebolaget L M Ericsson (Publ) Name-address management and routing in communication networks
JP4519159B2 (en) * 2007-07-12 2010-08-04 株式会社日立製作所 Packet transfer apparatus and packet transfer method
US8416784B2 (en) * 2009-09-03 2013-04-09 Samsung Electronics Co., Ltd. Apparatus and method for receiving packet data in wireless communication system
US9280354B1 (en) * 2011-12-07 2016-03-08 The Mathworks, Inc. Interval timer
US10785306B1 (en) * 2019-07-11 2020-09-22 Alibaba Group Holding Limited Data transmission and network interface controller

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004842A1 (en) * 2000-06-30 2002-01-10 Kanad Ghose System and method for fast, reliable byte stream transport
US20020124096A1 (en) * 2001-01-18 2002-09-05 Koninklijke Philips Electronics N.V. Method for efficient retransmission timeout estimation in NACK-based protocols
US20020141338A1 (en) * 2001-02-22 2002-10-03 Snowshore Networks, Inc. Minimizing latency with content-based adaptive buffering
US20030181214A1 (en) * 2002-02-14 2003-09-25 Grob Matthew S. Method and apparatus for adaptive measurement of round-trip time in ARQ protocols and using the same for controlling flow of data in a communication system
US6629285B1 (en) * 2000-01-04 2003-09-30 Nokia Corporation Data transmission
US20030227875A1 (en) * 2002-06-10 2003-12-11 Yongbin Wei RLP retransmission for CDMA communication systems
US20040184488A1 (en) * 2003-03-20 2004-09-23 Wolfgang Bauer Method and a jitter buffer regulating circuit for regulating a jitter buffer
US20050220032A1 (en) * 2004-03-31 2005-10-06 Teck Hu Method of stall identification and recovery
US20060104279A1 (en) * 2004-11-18 2006-05-18 Fellman Ronald D Low-latency automatic repeat request packet recovery mechanism for media streams
US20070002836A1 (en) * 2005-06-30 2007-01-04 Lindner Mark A System and method for resolving conflicts in multiple simultaneous communications in a wireless system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629285B1 (en) * 2000-01-04 2003-09-30 Nokia Corporation Data transmission
US20020004842A1 (en) * 2000-06-30 2002-01-10 Kanad Ghose System and method for fast, reliable byte stream transport
US20020124096A1 (en) * 2001-01-18 2002-09-05 Koninklijke Philips Electronics N.V. Method for efficient retransmission timeout estimation in NACK-based protocols
US20020141338A1 (en) * 2001-02-22 2002-10-03 Snowshore Networks, Inc. Minimizing latency with content-based adaptive buffering
US20030181214A1 (en) * 2002-02-14 2003-09-25 Grob Matthew S. Method and apparatus for adaptive measurement of round-trip time in ARQ protocols and using the same for controlling flow of data in a communication system
US20030227875A1 (en) * 2002-06-10 2003-12-11 Yongbin Wei RLP retransmission for CDMA communication systems
US20040184488A1 (en) * 2003-03-20 2004-09-23 Wolfgang Bauer Method and a jitter buffer regulating circuit for regulating a jitter buffer
US20050220032A1 (en) * 2004-03-31 2005-10-06 Teck Hu Method of stall identification and recovery
US20060104279A1 (en) * 2004-11-18 2006-05-18 Fellman Ronald D Low-latency automatic repeat request packet recovery mechanism for media streams
US20070002836A1 (en) * 2005-06-30 2007-01-04 Lindner Mark A System and method for resolving conflicts in multiple simultaneous communications in a wireless system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070002836A1 (en) * 2005-06-30 2007-01-04 Lindner Mark A System and method for resolving conflicts in multiple simultaneous communications in a wireless system
US8705515B2 (en) * 2005-06-30 2014-04-22 Qualcomm Incorporated System and method for resolving conflicts in multiple simultaneous communications in a wireless system
US20100235557A1 (en) * 2009-03-11 2010-09-16 Fujitsu Limited Computer and control method for interrupting machine operation
US8539483B2 (en) * 2009-03-11 2013-09-17 Fujitsu Limited Computer and control method for interrupting machine operation
US20160365915A1 (en) * 2009-04-24 2016-12-15 Blackberry Limited Relay Link HARQ Operation
US10135517B2 (en) * 2009-04-24 2018-11-20 Blackberry Limited Relay link HARQ operation
US10320549B2 (en) 2014-04-11 2019-06-11 Qualcomm Incorporated Methods and apparatus for sending fast negative acknowledgements (NACKs)

Also Published As

Publication number Publication date
US20070195826A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
US7792026B2 (en) Method of calculating a time period to wait for missing data packets
US7948901B2 (en) Data transmission method and device using controlled transmission profile
US7898958B2 (en) Communication system
CN1855889B (en) Transmitting and receiving system, transmitting apparatus, transmitting method, receiving apparatus, receiving method
USRE44715E1 (en) Method and arrangement for TCP flow control
US8854992B2 (en) Artificial delay inflation and jitter reduction to improve TCP throughputs
US7965738B2 (en) System and method for adaptive frame size management in a wireless multihop network
US20060182025A1 (en) Transmission control protocol (TCP) congestion control using multiple TCP acknowledgments (ACKs)
US20060171364A1 (en) Integrated base stations and a method of transmitting data units in a communications system for mobile devices
US20080239953A1 (en) Method and apparatus for minimizing congestion in gateways
US9167473B2 (en) Communication processing method, apparatus and gateway device
JP2006157918A (en) High-throughput communications system, communications terminal, session relay device, and communication protocol
EP1798913B1 (en) Transport control method in wireless communication system
US7738395B2 (en) Communication system for improving data transmission efficiency of TCP in a wireless network environment and a method thereof
KR101116265B1 (en) Wireless device with dynamic fragmentation threshold adjustment
KR101515595B1 (en) System and method for TCP packet transmission for wireless network transmission enhancement
CN110912831B (en) TCP transmission method, device and storage medium
CN113055302A (en) Transmission Control Protocol (TCP) data transmission method and device and electronic equipment
US20060262757A1 (en) Reception apparatus and method for determining timer value for detecting missed frame in mobile communication system adopting radio link protocol
Bhople et al. An analysis of ADTCP, I-ADTCP and Cross-Layer Based Protocol for Improving Performance of TCP in Mobile Adhoc Network
Lim et al. A new scheme to improve overall TCP throughput with vertical handover between 3G cellular packet networks and wireless LANs
Rao et al. A proposal for improving performance of TCP in MANET's employing SADCA (smart acknowledgement distributed channel access) scheme
Ho et al. Snug-Vegas and Snug-Reno: efficient mechanisms for performance improvement of TCP over heterogeneous networks
Jin et al. Modeling TCP performance with proxy and ARQ

Legal Events

Date Code Title Description
AS Assignment

Owner name: LUCENT TECHNOLOGIES INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WANG, XIN;YANG, TOMAS S.;YANG, YANG;AND OTHERS;REEL/FRAME:017757/0335;SIGNING DATES FROM 20060308 TO 20060310

Owner name: LUCENT TECHNOLOGIES INC., NEW JERSEY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WANG, XIN;YANG, TOMAS S.;YANG, YANG;AND OTHERS;SIGNING DATES FROM 20060308 TO 20060310;REEL/FRAME:017757/0335

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY

Free format text: MERGER;ASSIGNOR:LUCENT TECHNOLOGIES INC.;REEL/FRAME:024717/0186

Effective date: 20081101

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: CREDIT SUISSE AG, NEW YORK

Free format text: SECURITY INTEREST;ASSIGNOR:ALCATEL-LUCENT USA INC.;REEL/FRAME:030510/0627

Effective date: 20130130

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: ALCATEL-LUCENT USA INC., NEW JERSEY

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG;REEL/FRAME:033950/0261

Effective date: 20140819

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552)

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12