Packet aggregation
First Claim
1. A computer-readable storage device comprising computer executable instructions that, when executed by a wireless device, perform a method comprising acts of:
- determining a channel condition of a wireless channel from the wireless device, the wireless device comprising a wireless network interface that provides the wireless channel and that measures a received signal strength corresponding to the wireless channel, wherein the channel condition is determined according to the received signal strength;
determining packet characteristics of outbound packets generated by the wireless device for transmission, the packet characteristics comprising characteristics of the outbound packets and characteristics of network connections corresponding to the outbound packets;
managing a plurality of queues in which the outbound packets are enqueued, the managing including determining, according to the packet characteristics, which queues will receive which outbound packets, wherein the outbound packets enqueued to any given queue have a same packet characteristic, and wherein there are aggregation parameters for the queues, respectively;
aggregating the outbound packets in the queues according to the aggregation parameters;
adapting communication based on the sensed received channel condition, the adapting comprising updating the aggregation parameters according to the channel condition, wherein when the channel condition has a first value the aggregation parameters are updated with first respective values, and when the signal strength has a second value the aggregation parameters are updated with second respective values, wherein the aggregating is adapted according to the changing channel condition.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for improving the efficient use of a wireless channel. Flows of compatible packets to be transmitted are processed in separate queues based on characteristics of the packets, destination and quality of service (QoS) requirements. Aggregation parameters selected for each flow define when packets aggregated on a flow are to be sent. The aggregation parameters may reflect packet type, such as QoS requirements, an application type and/or wireless channel conditions. In some embodiments, the aggregation parameters indicate a threshold frame size or include a threshold time to buffer a packet while waiting for other packets on that flow to fill a frame. When an aggregation parameter for a queue is met, the aggregated packets are transmitted as a frame. The queue is cleared and subsequent packets may begin aggregating. Some types of packets, such as acknowledgment packets, may be sent without aggregation.
-
Citations
18 Claims
-
1. A computer-readable storage device comprising computer executable instructions that, when executed by a wireless device, perform a method comprising acts of:
-
determining a channel condition of a wireless channel from the wireless device, the wireless device comprising a wireless network interface that provides the wireless channel and that measures a received signal strength corresponding to the wireless channel, wherein the channel condition is determined according to the received signal strength; determining packet characteristics of outbound packets generated by the wireless device for transmission, the packet characteristics comprising characteristics of the outbound packets and characteristics of network connections corresponding to the outbound packets; managing a plurality of queues in which the outbound packets are enqueued, the managing including determining, according to the packet characteristics, which queues will receive which outbound packets, wherein the outbound packets enqueued to any given queue have a same packet characteristic, and wherein there are aggregation parameters for the queues, respectively; aggregating the outbound packets in the queues according to the aggregation parameters; adapting communication based on the sensed received channel condition, the adapting comprising updating the aggregation parameters according to the channel condition, wherein when the channel condition has a first value the aggregation parameters are updated with first respective values, and when the signal strength has a second value the aggregation parameters are updated with second respective values, wherein the aggregating is adapted according to the changing channel condition. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for transmitting packets over a communications channel, the system comprising:
-
a processor and storage coupled with the processor; a network interface, coupled with the processor, having a channel interface and a driver, the driver being adapted to measure one or more changing channel conditions of the communications channel using the channel interface, the one or more channel conditions comprising a packet error rate or a signal strength, wherein the driver is executed by the processor; and a plurality of queues managed by an aggregation unit according to aggregation parameters of the queues, respectively; an aggregation unit that updates the aggregation parameters based at least in part on the one or more changing channel conditions and store the aggregation parameters in the storage, the aggregation unit comprising a packet interface for receiving, from applications executing on the system, outbound packets to be sent via the network interface and a program interface that receives, from at least one of the applications, an indication quality of service requirements for transmission of outbound packets generated by the at least one application; the aggregation unit updating a first aggregation parameter of a first queue according to the quality of service requirements and updating a second aggregation parameter of a second queue according to the one or more channel conditions; the aggregation unit enqueueing a first subset of the outbound packets into the first queue until the first aggregation parameter is met, and then forming a first frame by aggregating the first subset into the first frame, the first frame stored in the storage, the packets in the first subset having been selected for the first queue based on information provided through the program interface; the aggregation unit enqueueing a second subset of the outbound packets into the second queue until the second aggregation parameter is met, and then forming a second frame by aggregating the second subset into the second frame; and the network interface transmitting the first frame and the second frame. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A method performed at a single network device, the network device comprising a wireless network interface and an operating system, the operating system comprising an aggregation unit, the method comprising:
-
receiving incoming packets through the wireless network interface; repeatedly updating a channel condition according to a fluctuating signal strength as measured by the wireless network interface, or according to a fluctuating error rate of the incoming packets, or according to both the fluctuating signal strength and the fluctuating error rate; generating outgoing packets by a plurality of applications executing on the network device, and determining packet characteristics of the outgoing packets, the packet characteristics comprising characteristics of the outgoing packets or characteristics of network connections through which the outgoing packets flow; executing the aggregation unit, the aggregation unit generating and managing outbound queues from which outbound packets are queued before being transmitted via the wireless network interface, the managing including maintaining different aggregation parameters for the outbound queues, respectively, the maintaining comprising repeatedly updating the aggregation parameters with values determined according to the changing channel condition, wherein at least two of the outbound queues have different aggregation parameter values; receiving the outgoing packets at the aggregation unit, and in response the aggregation unit distributing the outgoing packets to the outbound queues, the distributing comprising enqueueing the outbound packets to various of the outbound queues according to the packet characteristics of the outbound queues; aggregating, by the aggregation unit, the outbound packets in the queues into transmission units according to the aggregating parameters, wherein how the outbound packets are aggregated depends on the fluctuating error rate, or the fluctuating signal strength, or both; and transmitting the transmission units through the wireless NIC. - View Dependent Claims (16, 17, 18)
-
Specification