U.S. patent number 9,270,792 [Application Number 13/830,385] was granted by the patent office on 2016-02-23 for method and system for improving wireless link efficiency.
This patent grant is currently assigned to UBIQUITI NETWORKS, INC.. The grantee listed for this patent is Ubiquiti Networks, Inc.. Invention is credited to Kestutis Barkauskas, Sriram Dayanandan, Antanas Gadeikis, Darius Ivanauskas, Mindaugas Kriauciunas.
United States Patent |
9,270,792 |
Dayanandan , et al. |
February 23, 2016 |
Method and system for improving wireless link efficiency
Abstract
One embodiment of the present invention provides a system for
improving transmission efficiency of a wireless link. During
operation, the system receives a packet for transmission, where in
the packet includes an original sequence number. The system then
modifies the packet by including a virtual sequence number in a
header of the packet and including the original sequence number in
a payload of the modified packet. The system further aggregates a
number of modified packets into an aggregate frame and transmits
the aggregate frame to a destination device. The virtual sequence
number facilitates stateless transmission of the encapsulated
packets and allows the aggregate frame to have a maximum allowable
number of packets while accommodating both re-transmitted packets
and regular packets.
Inventors: |
Dayanandan; Sriram (San Jose,
CA), Ivanauskas; Darius (Kaunas, LT), Kriauciunas;
Mindaugas (Kaunas, LT), Gadeikis; Antanas
(Kaunas, LT), Barkauskas; Kestutis (Kaunas,
LT) |
Applicant: |
Name |
City |
State |
Country |
Type |
Ubiquiti Networks, Inc. |
San Jose |
CA |
US |
|
|
Assignee: |
UBIQUITI NETWORKS, INC. (San
Jose, CA)
|
Family
ID: |
50727850 |
Appl.
No.: |
13/830,385 |
Filed: |
March 14, 2013 |
Prior Publication Data
|
|
|
|
Document
Identifier |
Publication Date |
|
US 20140140228 A1 |
May 22, 2014 |
|
Related U.S. Patent Documents
|
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
Issue Date |
|
|
61729219 |
Nov 21, 2012 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04L
1/1614 (20130101); H04L 1/1887 (20130101); H04L
1/189 (20130101); H04L 1/0009 (20130101); H04L
49/9057 (20130101); H04W 84/12 (20130101); G06F
11/076 (20130101); G06F 11/0709 (20130101); G06F
11/0793 (20130101); H04L 69/324 (20130101); H04L
1/08 (20130101); H04W 28/06 (20130101); H04L
43/0823 (20130101) |
Current International
Class: |
H04L
29/08 (20060101); H04W 28/06 (20090101); H04L
12/861 (20130101); H04L 12/26 (20060101); H04L
1/16 (20060101); H04L 1/18 (20060101) |
References Cited
[Referenced By]
U.S. Patent Documents
Foreign Patent Documents
Other References
Nakajima, Tetsu et al., "A Simple and Efficient Selective Repeat
Scheme for High Throughput WLAN, IEEE802.11n", IEEEVTS Vehicular
Technology Conference Proceedings, Apr. 2007, pp. 1302-1306. cited
by applicant .
Hajlaoui, Nasreddine et al., "A Frame Aggregation Scheduler for
QoS-Sensitive Applications in IEEE 802.11n WLANs", 2012
International Conference on Communications and Information
Technology, Jun. 2012, pp. 221-226. cited by applicant .
Zhang, Lei et al., "Prediction-Based Link-layer Dynamic
Fragmentation and Aggregation for Wireless Mesh Networks", 2008
International Colloquium on Computing, Communication, Control, and
Management, Aug. 2008, pp. 582-586. cited by applicant .
Ashtaiwi, Abduladhim et al., "Utilizing IEEE 802.11n to Enhance QoS
Support in Wireless Mesh Networks", 33rd IEEE Conference on Local
Computer Networks, Oct. 2008, pp. 689-696. cited by
applicant.
|
Primary Examiner: Jaroenchonwanit; Bunjob
Attorney, Agent or Firm: Yao; Shun Park, Vaughan, Fleming
& Dowler LLP
Parent Case Text
RELATED APPLICATIONS
This application claims priority to U.S. Provisional Patent
Application No. 61/729,219, filed 21 Nov. 2012, entitled "METHOD
AND SYSTEM FOR IMPROVING WIRELESS LINK EFFICIENCY."
Claims
What is claimed is:
1. A method of wireless link transmission, comprising: selecting a
virtual sequence number for each of a first set of packets to be
transmitted in an aggregate frame, wherein the first set of packets
includes one or more regular packets, and includes one or more
retransmission packets to be retransmitted with the one or more
regular packets in the aggregate frame; modifying a respective
packet of the first set of packets by: modifying a payload of the
respective packet to include an original sequence number of the
respective packet; and modifying a header of the respective packet
to include a virtual sequence number selected for the respective
packet; generating an aggregate frame which includes the first set
of packets modified to include a corresponding virtual sequence
number; and transmitting the aggregate frame to a destination
device over a wireless link.
2. The method of claim 1, wherein generating the aggregate frame
involves generating an aggregate frame that includes packets
associated with different original traffic categories.
3. The method of claim 1, wherein the packet further includes an
original traffic category indicator; and wherein modifying the
respective packet further comprises including a virtual traffic
category indicator in the header of the respective packet and
including the original traffic category indicator in the payload of
the respective packet.
4. The method of claim 3, wherein modifying the respective packet
involves modifying the header of the respective packet to include
the same virtual traffic category indicator as other packets in the
aggregate frame.
5. The method of claim 1, further comprising monitoring an error
rate for a respective original traffic category.
6. The method of claim 5, further comprising duplicating, in the
aggregate frame, a number of packets associated with the original
traffic category for which the error rate is monitored, in response
to the error rate surpassing a predetermined threshold.
7. The method of claim 1, wherein transmitting the aggregate frame
to the destination over the wireless link involves transmitting the
aggregate frame over an IEEE 802.11 wireless link.
8. A method of wireless link transmission, comprising: receiving,
over a wireless link, an aggregate frame which comprises a set of
one or more regular packets and one or more retransmission packets,
each modified to include a header with a virtual sequence number;
de-aggregating the set of packets from the aggregate frame;
decapsulating a respective packet of the set by: obtaining an
original sequence number from a payload of the respective packet;
obtaining an original traffic category identifier from the payload
of the respective packet; and updating a header of the respective
packet to include the original sequence number and the original
traffic category; and ordering the decapsulated packets based on
their original sequence number and original traffic category
indicator.
9. The method of claim 8, wherein ordering the decapsulated packets
involves ordering a set of decapsulated packets with non-contiguous
original sequence numbers.
10. The method of claim 8, wherein ordering the decapsulated
packets involves ordering a set of decapsulated packets with
non-uniform original traffic categories.
11. The method of claim 8, wherein ordering the decapsulated
packets involves ordering a set of decapsulated packets with
contiguous original sequence numbers.
12. The method of claim 8, wherein receiving the aggregate frame
over the wireless link involves receiving the aggregate frame over
an IEEE 802.11 wireless link.
13. A system of wireless link transmission, comprising: a protocol
stack operable to select a virtual sequence number for each of a
first set of packets to be transmitted in an aggregate frame,
wherein the first set of packets includes one or more regular
packets, and includes one or more retransmission packets to be
retransmitted with the one or more regular packets in the aggregate
frame; a virtual sequence number management module operable to
modify a respective packet of the first set of packets by:
modifying a payload of the respective packet to include an original
sequence number of the respective packet; and modifying a header of
the respective packet to include a virtual sequence number selected
for the respective packet; an aggregation module operable to
generate an aggregate frame which includes the first set of packets
modified to include a corresponding virtual sequence number; and a
transmitter operable to transmit the aggregate frame to a
destination device over a wireless link.
14. The system of claim 13, wherein while generating the aggregate
frame, the aggregation module is further operable to generate an
aggregate frame that includes packets associated with different
traffic categories.
15. The system of claim 13, wherein the packet further includes an
original traffic category indicator; and wherein while modifying
the respective packet, the virtual sequence number management
module is further operable to include a virtual traffic category
indicator in the header of the respective packet and including the
original traffic category indicator in the payload of the
respective packet.
16. The system of claim 15, wherein while modifying the respective
packet, the virtual sequence number management module is further
operable to modify the header of the respective packet to include
the same virtual traffic category indicator as other packets in the
aggregate frame.
17. The system of claim 13, further comprising a packet error rate
monitoring module operable to monitor an error rate for a
respective original traffic category.
18. The system of claim 17, wherein the aggregation module is
further operable to duplicate, in the aggregate frame, a number of
packets associated with the original traffic category for which the
error rate is monitored, in response to the error rate surpassing a
predetermined threshold.
19. The system of claim 13, wherein the transmitter is operable to
transmit the aggregate frame over an IEEE 802.11 wireless link.
20. A system of wireless link transmission, comprising: a receiving
module operable to receive, over a wireless link, an aggregate
frame which comprises a set of one more regular packets and one or
more retransmission packets, each modified to include a header with
a virtual sequence number; a de-aggregation module operable to
de-aggregate the set of packets from the aggregate frame; a
decapsulation module operable to decapsulate a respective packet of
the set by: obtaining an original sequence number from a payload of
the respective packet; obtaining an original traffic category
identifier from the payload of the respective packet; and updating
a header of the respective packet to include the original sequence
number and the original traffic category; and an reordering module
operable to order the decapsulated packets based on their original
sequence number and original traffic category indicator.
21. The system of claim 20, wherein while ordering the decapsulated
packets, the ordering module is further operable to order a set of
decapsulated packets with non-contiguous original sequence
numbers.
22. The system of claim 20, wherein while ordering the decapsulated
packets, the ordering module is further operable to order a set of
decapsulated packets with non-uniform original traffic
categories.
23. The system of claim 20, wherein while ordering the decapsulated
packets, the ordering module is further operable to order a set of
decapsulated packets with contiguous original sequence numbers.
24. The system of claim 20, wherein while receiving the aggregate,
the receiving module is operable to receive the aggregate frame
over an IEEE 802.11 wireless link.
Description
BACKGROUND
1. Field
This disclosure is generally related to wireless networks. More
specifically, this disclosure is related to a method and system for
improving transmission efficiency in a wireless link.
2. Related Art
In recent years, the phenomenal growth of mobile devices, such as
smart phones and tablet computers, has resulted in a huge demand in
wireless networks. Particularly, Wi-Fi networks, which are based on
the IEEE-802.11 family of standards, are becoming increasingly
ubiquitous.
In conventional wired layer-2 networks such as 10base-T, 100base-T,
or 1000base-T Ethernet, transmission of a packet is typically not
followed by an acknowledgement from the receiver. Reliable data
delivery depends on upper layer protocols, such as Transmission
Control Protocol (TCP), to acknowledge the sender of received data
packets, and to ensure that the sender retransmits a packet in the
event of a failed transmission.
Wireless networks such as IEEE 802.11a/b/g/n/ac networks, however,
require explicit acknowledgement from the receiver for every packet
due to the unreliable nature of the communication medium. In
addition, IEEE 802.11a/b/g/n/ac networks use carrier sense multiple
access with collision avoidance (CSMA/CA) before beginning any
transmission in order to avoid collision with other transmitters.
These requirements often lead to low transmission efficiency in
IEEE 802.11 wireless links.
SUMMARY
One embodiment of the present invention provides a system for
improving transmission efficiency of a wireless link. During
operation, the system receives a packet for transmission, where in
the packet includes an original sequence number. The system then
modifies the packet by including a virtual sequence number in a
header of the packet and including the original sequence number in
a payload of the modified packet. The system further aggregates a
number of modified packets into an aggregate frame and transmits
the aggregate frame to a destination device. The virtual sequence
number facilitates stateless transmission of the encapsulated
packets and allows the aggregate frame to have a maximum allowable
number of packets while accommodating both re-transmitted packets
and regular packets.
In a variation on this embodiment, the aggregate frame includes
packets associated with different original traffic categories.
In a variation on this embodiment, the packet includes an original
traffic category indicator. In addition, modifying the packet
further involves including a virtual traffic category indicator in
the header of the packet and including the original traffic
category indicator in the payload of the modified packet.
In a further variation, all the modified packets in the aggregate
frame have the same virtual traffic category indicator.
In a variation on this embodiment, the system monitors an error
rate for a respective original traffic category.
In a further variation, the system duplicates, in the aggregate
frame, a number of modified packets associated with the original
traffic category for which the error rate is monitored, in response
to the error rate surpassing a predetermined threshold.
In a variation on this embodiment, the wireless link is an IEEE
802.11 wireless link.
One embodiment of the present invention provides a system for
improving transmission efficiency of a wireless link. During
operation, the system receives an aggregate frame which comprises a
number of modified packets. Each modified packet includes a virtual
sequence number and a virtual traffic category identifier in the
packet's header, and an original sequence number and an original
traffic category identifier in the modified packet's payload. The
system then de-aggregates the modified packets from the aggregate
frame. Next, the system decapsulates all the modified packets and
orders the decapsulated packets based on their original sequence
number and original traffic category indicator.
In a variation on this embodiment, the original sequence numbers of
the packets in the aggregate frame are non-continuous.
In a variation on this embodiment, the packets in the aggregate
frame are associated with different original traffic
categories.
In a variation on this embodiment, the virtual sequence numbers of
the packets in the aggregate frame are continuous.
BRIEF DESCRIPTION OF THE FIGURES
FIG. 1A illustrates an example of transmitting three packets in an
IEEE 802.11a/b/g network.
FIG. 1B illustrates an example of transmitting three aggregate
frames in an IEEE 802.11n network.
FIG. 2A illustrates a retransmission process in a conventional
wireless network where the first four packets in an aggregate
frame, which includes 64 packets, are not received
successfully.
FIG. 2B illustrates a retransmission process in a conventional
wireless network where four packets in the middle of an aggregate
frame, which includes 64 packets, are not received
successfully.
FIG. 2C illustrates a retransmission process in a conventional
wireless network where four packets in the tail of an aggregate
frame, which includes 64 packets, are not received
successfully.
FIG. 3A presents a block diagram illustrating the operation of
aggregating multiple packets and transmitting the aggregate frame
over a wireless link to a receiver.
FIG. 3B illustrates a conventional IEEE 802.11n packet header
format.
FIG. 4A presents a block diagram illustrating the operation of
aggregating multiple packets with virtual sequence headers and
transmitting the aggregate frame over a wireless link to a
receiver, in accordance with one embodiment of the present
invention.
FIG. 4B presents a modified IEEE 802.11n header that facilitates
virtual sequence number of virtual traffic ID (TID), in accordance
with one embodiment of the present invention.
FIG. 5 presents a flowchart illustrating the process of reserving
packet slots in an aggregate frame based on detected packet error
rate associated with a traffic category, in accordance with one
embodiment of the present invention.
FIG. 6 illustrates an exemplary transceiver system that facilitates
virtual sequence number for wireless transmission in an IEEE 802.11
wireless link, in accordance with one embodiment of the present
invention.
DETAILED DESCRIPTION
The following description is presented to enable any person skilled
in the art to make and use the embodiments, and is provided in the
context of a particular application and its requirements. Various
modifications to the disclosed embodiments will be readily apparent
to those skilled in the art, and the general principles defined
herein may be applied to other embodiments and applications without
departing from the spirit and scope of the present disclosure.
Thus, the present invention is not limited to the embodiments
shown, but is to be accorded the widest scope consistent with the
principles and features disclosed herein.
Some embodiments of the present invention enhance the transmission
efficiency in IEEE 802.11 wireless links by using virtual sequence
numbers for packets transmitted in an aggregate frame, which allows
packets to be retransmitted with other regular packets in an
aggregate frame that can accommodate the maximum number of packets.
In particular, the virtual sequence number can be arbitrary, and be
selected in such a way that allows any number of packets to be
retransmitted with other regular packets in the same aggregate
frame which is not limited by the acknowledgement window and can be
filled up to the maximum allowable number of packets.
As mentioned earlier, the fact that IEEE 802.11 networking
standards require per-packet acknowledgement, and that the
transmission is based on CSMA/CA, results in fairly inefficient
utilization of the wireless bandwidth, regardless of how high the
transmission data rate is. Such inefficiencies are illustrated in
the examples presented in FIGS. 1A and 1B.
FIG. 1A illustrates an example of transmitting three packets in an
IEEE 802.11a/b/g network, which does not provide aggregated packet
transmission. In this example, when a transmitter has packets to
transmit, it first waits for a fixed amount of delay (denoted as
arbitration inter-frame spacing, AIFS). The AIFS duration may vary
based on traffic category. After AIFS, the transmitter further
waits for a random period of time, denoted as random backoff 101.
During random backoff 101, if the transmitter detects another
transmission via the same communication medium, the transmitter
will wait until the detect transmission is finished, and then
continues the random backoff 101 countdown.
After random backoff 101, the transmitter can transmit a packet
102. After receiving packet 102, the receiver waits for a small
time interval (denoted as short interframe space, SIFS), before
sending an acknowledgement 104. Subsequently, the transmitter waits
for another AIFS and random backoff before transmitting a packet
106.
Correspondingly, the receiver waits for an SIFS before sending ACK
108. In the same manner, the transmitter can transmit the next
packet 110, and receives a corresponding 112.
As can be seen in the example in FIG. 1A, the transmission of a
single packet requires a significant amount of idle waiting (AIFS,
random backoff, and SIFS). Furthermore, each packet requires a
separate ACK. These requirements incur a significant overhead for
transmission.
To mitigate such inefficiency, the IEEE 802.11n standard introduced
packet aggregation and block acknowledgement mechanism. With packet
aggregation, an aggregate frame includes multiple packets to the
same destination, which are combined into a single transmission
unit. Typically, an aggregate frame can include up to 64 packets.
After the transmission, the receiver waits for a fixed amount of
delay (SIFS) before sending a block acknowledgement (BLOCK ACK). A
BLOCK ACK contains a beginning sequence number, which corresponds
to the sequence number of the earliest packet in the aggregate
frame, and a bitmap corresponds to all the packets encapsulated in
the aggregate frame. Note that a BLOCK ACK can only acknowledge a
continuous number of packets, due to the sequential nature of the
bitmap.
FIG. 1B illustrates an example of transmitting three aggregate
frames in an IEEE 802.11n network. In this example, after waiting
for AIFS and a random backoff period, the transmitter transmits
aggregate frame 122. Subsequently, the receiver waits for SIFS and
sends back a BLOCK ACK 124. A similar process take place when the
transmitter transmits aggregate frame 126 and aggregate frame 130.
The receiver sends back corresponding BLOCK ACKS 128 and 132.
Ideally, the packet aggregation mechanism in IEEE 802.11n is
expected to improve the transmission efficiency of the wireless
link to about 65%, compared with 40% in IEEE 802.11a/b/g. This
improvement is mainly due to the amortization of the various
overhead over a group of packets in 802.11n, as opposed to a single
packet in 802.11a/b/g.
However, the aggregation and block acknowledgement mechanism in
802.11n still have some drawbacks. The transmitter and receiver
typically negotiate the BLOCK ACK window (BAW), which is the
maximum length of the transmission history for retransmissions.
This window imposes a limit on the end throughput. Furthermore, the
packet aggregation is on a per-traffic category (or traffic
category) basis (in 802.11n terminology, on a per traffic
identifier, or TID, basis). Hence, when the transmitter has two
traffic from two or more different categories (e.g., voice and
data), the transmission efficiency is further reduced.
FIGS. 2A, 2B, and 2C illustrate how the BAW can restrict the end
throughput. FIG. 2A illustrates a retransmission process in a
conventional wireless network where the first four packets in an
aggregate, which includes 64 packets, are not received
successfully. In this example, the sender transmits an aggregate
frame containing 64 packets with the same TID, with sequence
numbers 1 to 64. Packets with sequence numbers 65 and up are stored
in a queue, assuming that the BAW is 64. Assume that the receiver
receives the aggregate frame. However, packets 1 to 4 are received
with an error (as indicated by a shaded pattern in FIG. 2A). The
receiver then sends the BLOCK ACK to the sender. In response, the
sender retransmits packets 1 to 4 in the next aggregate frame.
However, since the BAW is 64, and since the BLOCK ACK can only
acknowledge a group of continuous 64 packets, the retransmitted
aggregate frame cannot accommodate any packet with sequence number
higher than 64. Hence, the total number packets in the
retransmitted aggregate frame is 4, and the aggregate frame cannot
carry any new packet. This error scenario can reduce the link
efficiency by 50%.
FIG. 2B illustrates a retransmission process in a conventional
wireless network where four packets in the middle of an aggregate
frame, which includes 64 packets, are not received successfully. In
this example, the sender transmits an aggregate frame with packets
of sequence numbers 1 to 64. After the receiver receives the
aggregate frame, assume that packets 15 to 18 are in error. The
receiver then sends a BLOCK ACK to the sender indicating that these
four packets need to be retransmitted. In response, the sender
assembles a retransmission aggregate frame, starting with packets
15 to 18. In addition, the sender can also include packets 65 to 78
in the same aggregate frame, as allowed by the BAW (that is, the
receiver can subsequently acknowledge packets 15 to 78). In this
scenario, the total number of packets in the retransmission frame
is 18, 14 of which are new packets. The link efficiency is reduced
by 40% due to the above error scenario.
FIG. 2C illustrates a retransmission process in a conventional
wireless network where four packets in the tail of an aggregate
frame, which includes 64 packets, are not received successfully. In
this example, the sender initially sends packets 1 to 64. Assume
that packets 61 to 64 are received in error. The receiver then
sends back a BLOCK ACK indicating that packets 61 to 64 need to be
retransmitted. In response, the sender assembles a retransmission
aggregate frame, which contains packets 61 to 64. In addition, the
sender can also include frames 65 to 124 in the same aggregate
frame, since the BAW allows 64 continuous packets. Hence, in this
scenario, the retransmission frames includes a total number of 64
packets, 60 of which are new packets. The link efficiency is
reduced by only 4% due to the above error scenario.
As illustrated in the examples above, the wireless link's
transmission efficiency can vary from 50% to 96% of its designed
value, even with a packet error rate as low as 6.25% (4 error
packets out of 64). This is because the BLOCK ACK can only
acknowledge a group of continuous packets, which prevents the
retransmission aggregate frame from fully utilizing the maximum
slots allowed by the BAW. Real-world wireless links, especially
outdoor ones, can exhibit far higher packet error rates, resulting
in further degraded link efficiency.
A further limitation of the 802.11n aggregation mechanism is that
it only allows an aggregate frame to carry packet from the same
traffic category (i.e., with the same TID). For example, if the
sender needs to transmit 64 packets in TID 0 and 2 packets in TID
1. Assuming TID 1 is associated with a higher priority than TID 0,
the sender will assemble a first aggregate frame with only 2
packets from TID 0, despite the fact that it has 64 packets in TID
0 waiting to be transmitted. These aggregate frames still need to
go through the standard fixed/random delays and BLOCK ACK
mechanisms separately. Hence, even under excellent transmission
conditions the link usage efficiency is reduced.
Embodiments of the present invention solve the aforementioned
problems by using virtual sequence numbers and virtual TIDs in the
aggregate frame, which allows the sender to fully utilize the
maximum number of packet slots in an aggregate frame allowed by the
BAW, even when retransmitting packets. The original sequence number
and TID are moved to the payload portion of each 801.11n packet.
The sequence number and TID fields in each packet's 802.11n header
are updated with the virtual sequence number and TID values. FIG.
3A and its corresponding description below explain the operation of
transmitter and receiver in accordance with the existing 802.11n
standard. FIG. 4 and its corresponding description explain the
operation of the transmitter and receiver using the virtual
sequence numbers and TIDs, in accordance with embodiments of the
present invention.
In the example illustrated in FIG. 3A, a transmitting station 301
includes a network protocol stack 302, and 802.11 encapsulation
module 304, a set of per TID queues 306, a per TID aggregation
release module 308, and a transmitter 310. A receiving station 321
includes a receiver 312, a set of per-TID de-aggregation reorder
buffers 314, a per TID de-aggregation release module 316, a 802.11
decapsulation module 318, and a network protocol stack 320.
During operation, network protocol stack 302 assembles traffic from
upper layers (such as TCP/IP) into layer-2 packets. 802.11
encapsulation module 304 encapsulates the packets with 802.11
headers (which are described in more detail in conjunction with
FIG. 3B). Per TID aggregation queues 306 temporarily store the
packets, based on their respective TIDs, in separate queues while
waiting for the transmission medium to be available for
transmission (e.g., when the system waits for AIFS and random
backoff). When the transmission medium becomes available for
transmission, per TID aggregation release module 308 selects a
TID-specific queue (which can be based on a traffic prioritization
policy) and releases an aggregate frame which contains packets from
the selected queue. Transmitter 310 then transmits the aggregate
frame via a wireless link to receiver 312.
After receiver 312 receives the aggregate frame, the packets in the
aggregate frame are de-aggregated, reordered, and stored in one of
the per TID buffers 314. The packets are temporarily stored in per
TID buffers 314 while waiting for the upper-layer modules are ready
to retrieve the packets. Subsequently, per TID de-aggregation
release module 316 releases the packets in a particular per TID
buffer, upon which 802.11 decapsulation module 318 removes the
802.11 headers from the packets. Subsequently, the decapsulated
packets are forwarded to network protocol stack 320.
FIG. 3B illustrates a conventional IEEE 802.11n packet header
format. As mentioned above, each packet is encapsulated with an
IEEE 802.11n header before it is aggregated into an aggregate
frame. As illustrated in FIG. 3B, an IEEE 802.11n header includes a
frame control (FC) field, a duration/ID (DUR-ID) field, four
address fields (ADDR1, ADDR2, ADDR3, and ADDR4), a sequence control
field (SEQ-CTRL), a QoS control field (QOS-CTRL), and a SubNetwork
Access Protocol header (SNAP-HDR).
The FC field contains control information used for defining the
type of 802.11 MAC frame and providing information necessary for
the following fields to understand how to process the MAC
frame.
The DUR-ID field is used for all control type frames, except with
the subtype of Power Save (PS) Poll, to indicate the remaining
duration needed to receive the next frame transmission. When the
sub-type is PS Poll, the field contains the association identity
(AID) of the transmitting station.
Depending on the frame type, the four address fields can contain a
combination of the following address types: base service set
identification (BSSID), destination address (DA), source address
(SA), receiver address (RA), and transmitter address (TA).
The SEQ-CTRL field includes a sequence number and a fragment
number. The sequence number indicates the sequence number of each
packet. The sequence number is the same for each packet sent from a
fragmented packet. Otherwise, the sequence number is incremented by
one until it reaches 4095, when it begins at zero again. The
fragment number indicates the number of each frame sent that
belongs to a fragmented frame.
The QOS-CTRL field indicates the QoS parameters of the packet. In
particular, the QOS-CTRL field includes a TID subfield, which
indicates the traffic category.
In embodiments of the present invention, on the transmission side,
the process of per TID aggregation release is now replaced by a
multi-TID aggregation release process. Furthermore, a packet's
sequence number in the 802.11n header is now replaced with a
virtual sequence number, and the packet's original sequence number
is moved inside the payload of the encapsulated 802.11n packet.
FIG. 4A presents a block diagram illustrating the operation of
aggregating multiple packets with virtual sequence headers and
transmitting the aggregate frame over a wireless link to a
receiver, in accordance with one embodiment of the present
invention. In this example, a transmitting station 401 includes a
network protocol stack 402, which provides the packets to be
encapsulated in 802.11n headers by an IEEE 802.11 encapsulation
module 404. Note that at this stage, the packets still retain their
original sequence numbers and TIDs. Subsequently, the 802.11n
encapsulated packets are buffered in a set of per TID aggregation
queues 406 while transmitting station 401 waits for the
transmission medium to become available. When the medium becomes
available, a multi-TID aggregation release module retrieves a
number of packets from per TID queues 406. Note that the aggregate
frame may contain packets associated with different TIDs, and these
packets' sequence numbers can be non-continuous within each TID. As
long as there are a sufficient number of packets buffered in
aggregation queues 406, multi-TID aggregation release module 408
can always release the maximum number of packets allowed by the
BAW. Note that in some embodiments packets belonging to
higher-priority TIDs are released for assembly before those of
lower-priority TIDs. Furthermore, both retransmitted packets and
new packets can be released, without the constraint of having all
the packets in the aggregate frame being continuous and from the
same TID.
Next, a virtual sequence header encapsulation module 409 updates
the sequence number field and TID field in each packet's 802.11n
header with a virtual sequence number and a virtual TID number,
respectively. For all the packets in a given aggregate frame, their
virtual sequence numbers are continuous (for example, from 1 to
64). All the packets in the aggregate frame also have the same
virtual TID value. In addition, while updating the sequence number
and TID field for each packet, virtual sequence header
encapsulation module 409 also moves the packet's original sequence
number and TID into the payload portion of the 802.11n ecapsulated
packet. More details on the modified 802.11n header format are
provided below in conjunction with FIG. 4B.
The aggregate frame, which contains all the released and modified
packet, is then provided to a transmitter 410, which transmits the
aggregate frame over a wireless link to a receiving station 421.
After a receiver 412 receives the aggregate frame, a virtual
sequence header decapsulation module 413 decapsulates the aggregate
frame and restores the original sequence number and TID in the
802.11n header for each packet. Subsequently, the packets are
reordered and buffered in a set of per TID de-aggregation reorder
buffers 414. A per TID de-aggregation release module 416 then
releases the packets from buffers 414 to a 802.11 decapsulation
418, which removes a packet's 802.11n header and forwards the
packet to a network protocol stack 420. Note that receiving station
421 responds back to transmitting station 421 with a block
acknowledgement containing a bitmap corresponding to the virtual
sequence numbers.
FIG. 4B presents a modified IEEE 802.11n header that facilitates
virtual sequence number of virtual traffic ID (TID), in accordance
with one embodiment of the present invention. In this example, an
802.11n header 504's SEQ-CTRL field contains the virtual sequence
number. In addition, header 504's QOS-CTRL field contains the
virtual TID. An additional virtual sequence control field 506
(VSEQ-CTRL), which in one embodiment can be four bytes long, is
inserted after the QOS-CTRL field (the position where conventional
packet payload begins). VSEQ-CTRL field 506 contains the packet's
original sequence number and TID.
Because the virtual sequence numbers do not have actual meanings
and are only used to allow the receiving station to send a BLOCK
ACK that acknowledges all the packets in the aggregate frame, the
virtual sequence numbers can be restarted for every transmission.
In other words, the transmission can be stateless. Note that the
transmitting station might need to retain the virtual-to-original
sequence number and TID mapping until the BLOCK ACK is received, so
that in case of transmission error the transmitting station can
identify the correct packets to retransmit.
Because of the flexibility afforded by the virtual sequence number
and TID, the transmitting station can reserve packet slots in the
aggregate frame for redundancy purposes, in order to mitigate
non-ideal transmission conditions. For example, the transmitting
station may randomly select 20% of the highest-priority packets and
duplicate them in each aggregate frame to reduce the total packet
error rate, if the packet error rate surpasses a predetermined
threshold. Furthermore, the transmitting station can monitor the
packet error rate for each TID, and dynamically replicate packets
for each TID based on a predetermined QoS policy. When allocating
reserved packet slots for duplicate packets, the transmitting
station can use various methods (such as strict priority based or
round robin) to ensure the desired QoS parameters are met.
FIG. 5 presents a flowchart illustrating the process of reserving
packet slots in an aggregate frame based on detected packet error
rate associated with a traffic category, in accordance with one
embodiment of the present invention. During operation, a
transmitting station first assembles and transmits a multi-TID
aggregate frame (operation 502). The transmitting station then
receives a BLOCK ACK from the receiving station (operation 504).
Based on the received BLOCK ACK, the transmitting station updates
its record of per-TID packet error rate (operation 506). The
transmitting station then determines, for each TID, whether the
packet error rate is greater than a threshold for that TID
(operation 508). If so, the transmitting station reserves a number
of packet slots in the aggregate frame for duplicate packets of
that TID (operation 510) prior to resuming transmission (operation
512). If the per-TID packet error rate is below the threshold, the
transmitting station resumes transmission (operation 512). The
process repeats itself by looping back to operation 502.
FIG. 6 illustrates an exemplary transceiver system that facilitates
virtual sequence number for wireless transmission in an IEEE 802.11
wireless link, in accordance with one embodiment of the present
invention. In this example, a wireless transceiver system 600
includes a processor 602, a memory 604, and a communication module
606. Also included in transceiver system 600 are a virtual sequence
number and TID encapsulation/decapsulation module 608, a QoS
management module 610, and an aggregation management module
612.
Communication module 606 may include a wireless radio that is
responsible for transmitting and receiving physical signals.
Virtual sequence number and TID encapsulation/decapsulation module
608 is responsible for modifying the 802.11n headers to include
virtual sequence numbers and virtual TIDs, and for restoring a
packet's original sequence number and TID on the receiving side.
QoS management module 610 is responsible for enforcing any QoS
policy. Aggregation management module 612 is responsible for
assembling aggregate frames and handling retransmission in case of
packet error.
Note that virtual sequence number and TID
encapsulation/decapsulation module 608, QoS management module 610,
and aggregation management module 612 may be implemented in
software, which means they can be based on instructions stored in a
storage device, loaded into memory 605, and, when executed by
processor 602, perform the functions described above. These modules
can also be implemented partly or entirely in hardware, using
application specific integrated circuits (ASICs) or filed
programmable logic arrays (FPGAs).
The methods and processes described in the detailed description
section can be embodied as code and/or data, which can be stored in
a computer-readable storage device as described above. When a
computer system reads and executes the code and/or data stored on
the computer-readable storage device, the computer system performs
the methods and processes embodied as data structures and code and
stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included
in hardware modules or apparatus. These modules or apparatus may
include, but are not limited to, an ASIC chip, an FPGA, a dedicated
or shared processor that executes a particular software module or a
piece of code at a particular time, and/or other programmable-logic
devices now known or later developed. When the hardware modules or
apparatus are activated, they perform the methods and processes
included within them.
Although the examples presented herein are based on IEEE 802.11n
wireless links, embodiments of the present invention are not
limited only to such links. Other types of wireless links based on
existing or future standards (including IEEE 802.11 family and
other protocols) can also use various embodiments of the present
invention. The claims herein should be not be interpreted as being
limited only to IEEE 802.11n wireless links.
The foregoing descriptions of various embodiments have been
presented only for purposes of illustration and description. They
are not intended to be exhaustive or to limit the present invention
to the forms disclosed. Accordingly, many modifications and
variations will be apparent to practitioners skilled in the art.
Additionally, the above disclosure is not intended to limit the
present invention.
* * * * *