Avoiding stall conditions and sequence number ambiguity in an automatic repeat request protocol
First Claim
1. A method for use in data unit transmissions between a transmitter and a receiver implemented in the receiver, comprising:
- detecting a sequence number of data units received by the receiver;
storing the received data units in a buffer;
identifying a missing data unit in the sequence;
starting a timer if a data unit is received having a sequence number greater than a sequence number of the missing data unit; and
if the timer expires before the missing data unit is received, removing from the buffer the received data units having sequence numbers less than the sequence number of the missing data unit.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a stall avoidance mechanism that maybe used alone or in conjunction with an ambiguity avoidance mechanism in an ARQ protocol. Both mechanisms decrease data delays and increase data throughput rates. Stall avoidance is accomplished by determining whether a stall condition exists with respect to receiving a missing data unit. In one example, only a single timer is needed to avoid stalls. Retransmission ambiguities may be avoided using a retransmission window in the transmitter and/or a receive window in the receiver. Although each mechanism may be used independently of the other, a preferred example embodiment uses a stall avoidance timer, a retransmission window in the transmitter, and a receive window in the receiver.
79 Citations
61 Claims
-
1. A method for use in data unit transmissions between a transmitter and a receiver implemented in the receiver, comprising:
-
detecting a sequence number of data units received by the receiver;
storing the received data units in a buffer;
identifying a missing data unit in the sequence;
starting a timer if a data unit is received having a sequence number greater than a sequence number of the missing data unit; and
if the timer expires before the missing data unit is received, removing from the buffer the received data units having sequence numbers less than the sequence number of the missing data unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for use in data unit transmissions between a transmitter and a receiver implemented in the receiver, comprising:
-
detecting a sequence number of data units received by the receiver;
storing the received data units in a buffer;
identifying a missing data unit in the sequence;
determining whether a stall condition exists with respect to receiving the missing data unit; and
when the stall condition exists, removing from the buffer the received data units having sequence numbers less than the sequence number of the missing data unit. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for use in data unit transmissions between a transmitter and a receiver implemented in the transmitter, where each data unit includes a corresponding sequence number, comprising:
-
transmitting data units in sequence modulo-N, N being a largest sequence number;
establishing a retransmission window having a size corresponding to a number of data units less than N; and
using the retransmission window to avoid sequence number ambiguity in the receiver between originally-transmitted data units and retransmitted data units. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for use in data unit transmissions between a transmitter and a receiver implemented in the receiver, where each data unit includes a corresponding sequence number and is transmitted by the transmitter in sequence modulo-N, N being a largest sequence number, comprising:
-
a receiving window corresponding to a number of data units less than N, and using the receiving window to avoid sequence number ambiguity in the receiver between originally-transmitted data units and retransmitted data units. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A receiver for receiving data units transmitted from a transmitter, comprising:
-
a detector for detecting a sequence number of data units received by the receiver;
a buffer for storing the received data units in a buffer;
a timer; and
electronic circuitry configured to;
identify a missing data unit in the sequence;
start the timer if a data unit is received having a sequence number greater than a sequence number of the missing data unit; and
if the timer expires before the missing data unit is received, remove from the buffer the received data units having sequence numbers less than the sequence number of the missing data unit. - View Dependent Claims (39, 40, 41, 42, 43)
-
-
44. A receiver for receiving data units transmitted from a transmitter, comprising:
-
a detector for detecting a sequence number of data units received by the receiver;
a buffer for storing the received data units in a buffer;
electronic circuitry configured to determine that a stall condition exists with respect to receiving the missing data unit and remove from the buffer the received data units having sequence numbers less than the sequence number of the missing data unit. - View Dependent Claims (45, 46, 47)
-
-
48. A transmitter for use in transmitting data units to a receiver, where each data unit includes a corresponding sequence number, comprising:
-
a transmitter for transmitting data units in sequence modulo-N, N being a largest sequence number;
a retransmission window having a size corresponding to a number of data units less than N; and
a controller configured to use the retransmission window to avoid sequence number ambiguity in the receiver between originally-transmitted data units and retransmitted data units. - View Dependent Claims (49, 50, 51, 52)
-
-
53. A receiver for use in data unit transmissions between a transmitter and the receiver, where each data unit includes a corresponding sequence number and is transmitted by the transmitter in sequence modulo-N, N being a largest sequence number, comprising:
-
a receiving window corresponding to a number of data units less than N, and a controller configured to use the receiving window to avoid sequence number ambiguity in the receiver between originally-transmitted data units and retransmitted data units. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61)
-
Specification