# Patent

## Title
Adaptive wireless network multiple access techniques using traffic flow

## Abstract

A method, apparatus, and computer-readable media for a wireless local-area network comprises a transmit circuit to transmit first data; a transmit counter to count an amount of the first data transmitted by the transmit circuit during a predetermined monitoring interval; a receive circuit to receive second data; a receive counter to count an amount of the second data received by the receive circuit during the predetermined monitoring interval; and an adaptive access control circuit to generate an access trigger signal at a time determined by the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the transmit circuit transmits third data according to the access trigger signal.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a Divisional of U.S. application Ser. No. 10/902,299, filed Jul. 29, 2004. The disclosure of the above application is incorporated herein by reference in its entirety.


BACKGROUND
The present invention relates generally to wireless data networks. More particularly, the present invention relates to adaptive multiple access techniques for wireless networks.
In typical wireless networks, the wireless network devices use a common frequency band, and so must employ mechanisms to share the band. The most common sharing scheme is specified by the IEEE 802.11 standard, and is referred to as Carrier Sense Multiple Access/Collision Avoidance (CSMA/CA). According to CSMA/CA, a wireless network device monitors the band to determine whether other devices are transmitting. If no such transmissions are sensed, the wireless network device applies a back-off scheme then begins its intended transmission.
On receiving the packet without error, the recipient sends an acknowledgement (ACK) packet. If the wireless network device receives the ACK packet without error, the wireless network device begins its next transmission by monitoring the band again to determine whether other devices are transmitting.
However, if the wireless network device does not receive an ACK packet, or receives an ACK packet with errors, for example due to a collision with another station attempting to transmit on the band at the same time, the wireless network device waits for a random back-off interval and then re-sends the packet. Subsequent collisions require substantially longer back-off intervals.
The main disadvantage of CSMA/CA is that the back-off interval becomes longer, especially as the number of wireless devices in the wireless network increases, causing more collisions and reducing the performance of the wireless network.
SUMMARY
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for wireless local-area network. It comprises a transmit circuit to transmit first data; a transmit counter to count an amount of the first data transmitted by the transmit circuit during a predetermined monitoring interval; a receive circuit to receive second data; a receive counter to count an amount of the second data received by the receive circuit during the predetermined monitoring interval; and an adaptive access control circuit to generate an access trigger signal at a time determined by the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the transmit circuit transmits third data according to the access trigger signal.
Particular implementations can include one or more of the following features. A media access controller comprises the apparatus. A wireless network device comprises the media access controller. The wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. Implementations comprise a physical layer device to transmit the data. A wireless client comprises the wireless network device. A wireless access point comprises the wireless network device. Implementations comprise a transmit delay counter to store a transmit delay count representing the transmit delay interval; wherein the adaptive access control circuit computes the transmit delay count based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the adaptive access control circuit generates the access trigger signal at a time determined by the transmit delay interval. The adaptive access control circuit decrements the transmit delay counter by J counts when the amount of the first data counted by the transmit counter during the predetermined monitoring interval exceeds the amount of the second data counted by the receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. J=1. Each count of the transmit delay counter represents one microsecond. The adaptive access control circuit decrements the transmit delay counter by K counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval exceeds the amount of the first data counted by the transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. K=2. The adaptive access control circuit increments the transmit delay counter by L counts when the amount of the first data counted by the receive counter during the predetermined monitoring interval differs from the amount of the second data counted by the transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value. L=1. Implementations comprise a further transmit counter to count an amount of third data transmitted by the transmit circuit to a wireless network device during a predetermined monitoring interval; a further receive counter to count an amount of fourth data received by the receive circuit from the wireless network device during the predetermined monitoring interval; and wherein the adaptive access control circuit calculates a further transmit delay interval based on the amount of the third data counted by the further transmit counter during the predetermined monitoring interval and the amount of the fourth data counted by the further receive counter during the predetermined monitoring interval; and wherein the transmit circuit transmits a access control signal representing the further transmit delay interval to the wireless network device. A media access controller comprises the apparatus. A wireless network device comprises the media access controller. The wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. Implementations comprise a physical layer device to transmit the access control signal. A wireless access point comprises the wireless network device. Implementations comprise a transmit delay counter to store a transmit delay count representing the further transmit delay interval; wherein the adaptive access control circuit computes the transmit delay count based on the amount of the third data counted by the further transmit counter during the predetermined monitoring interval and the amount of the fourth data counted by the further receive counter during the predetermined monitoring interval; and wherein the access control signal represents the transmit delay count. The adaptive access control circuit decrements the transmit delay counter by J counts when the amount of the fourth data counted by the further receive counter during the predetermined monitoring interval exceeds the amount of the third data counted by the further transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. J=1. Each count of the transmit delay counter represents one microsecond. The adaptive access control circuit decrements the transmit delay counter by K counts when the amount of the third data counted by the further transmit counter during the predetermined monitoring interval exceeds the amount of the fourth data counted by the further receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. K=2. The adaptive access control circuit increments the transmit delay counter by L counts when the amount of the fourth data counted by the further receive counter during the predetermined monitoring interval differs from the amount of the third data counted by the further transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value. L=1. Implementations comprise the access control signal of claim.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for a wireless network. It comprises a first wireless network device; and a second wireless network device; wherein the first wireless network device comprises a first transmit circuit to transmit first data to the second wireless network device, a transmit counter to count an amount of the first data transmitted by the transmit circuit to the second wireless network device during a predetermined monitoring interval, a first receive circuit to receive second data from the second wireless network device, a receive counter to count an amount of the second data received by the receive circuit from the second wireless network device during the predetermined monitoring interval, and an adaptive access control circuit to calculate a transmit delay interval based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval, and wherein the transmit circuit transmits an access control signal representing the transmit delay interval to the second wireless network device; and wherein the second wireless network device comprises a second transmit circuit to transmit third data to the first wireless network device, a second receive circuit to receive fourth data and control signals from the first wireless network device, wherein the second receive circuit receives the access control signal from the first wireless network device, an access control circuit to generate an access trigger signal at a time determined by the transmit delay interval in the access control signal, wherein the second transmit circuit transmits the third data according to the access trigger signal.
Particular implementations can include one or more of the following features. The first wireless network device is a wireless access point. The wireless access point is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. The second wireless network device is a wireless client. The wireless client is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. The first wireless network device further comprises a transmit delay counter to store a transmit delay count representing the transmit delay interval; wherein the adaptive access control circuit computes the transmit delay count based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the access control signal represents the transmit delay count. The adaptive access control circuit decrements the transmit delay counter by J counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval exceeds the amount of the first data counted by the transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. J=1. Each count of the transmit delay counter represents one microsecond. The adaptive access control circuit decrements the transmit delay counter by K counts when the amount of the first data counted by the transmit counter during the predetermined monitoring interval exceeds the amount of the second data counted by the receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. K=2. The adaptive access control circuit increments the transmit delay counter by L counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval differs from the amount of the first data counted by the transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value. L=1. Implementations comprise the access control signal of claim 119.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for a wireless local-area network apparatus. It comprises a transmit circuit to transmit first data to a wireless network device; a transmit counter to count an amount of the first data transmitted by the transmit circuit to the wireless network device during a predetermined monitoring interval; a receive circuit to receive second data from the wireless network device; a receive counter to count an amount of the second data received by the receive circuit from the wireless network device during the predetermined monitoring interval; and an adaptive access control circuit to calculate a transmit delay interval based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the transmit circuit transmits an access control signal representing the transmit delay interval to the wireless network device.
Particular implementations can include one or more of the following features. A media access controller comprises the apparatus. A wireless network device comprises the media access controller. The wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. The wireless network device further comprises a physical layer device to transmit the access control signal. A wireless access point comprises the wireless network device. Implementations comprise a transmit delay counter to store a transmit delay count representing the transmit delay interval; wherein the adaptive access control circuit computes the transmit delay count based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval; and wherein the access control signal represents the transmit delay count. The adaptive access control circuit decrements the transmit delay counter by J counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval exceeds the amount of the first data counted by the transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. J=1. Each count of the transmit delay counter represents one microsecond. The adaptive access control circuit decrements the transmit delay counter by K counts when the amount of the first data counted by the transmit counter during the predetermined monitoring interval exceeds the amount of the second data counted by the receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value. K=2. Each count of the transmit delay counter represents one microsecond. The adaptive access control circuit increments the transmit delay counter by L counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval differs from the amount of the first data counted by the transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value. L=1. Implementations comprise the access control signal.
In general, in one aspect, the invention features a method, apparatus, and computer-readable media for a wireless local-area network apparatus for a wireless network. It comprises a transmit circuit to transmit first data; a receive circuit to receive second data and control signals; wherein the receive circuit receives an access control signal, the access control signal representing a transmit delay interval; an access control circuit to generate an access trigger signal at a time determined by the transmit delay interval in the access control signal; and wherein the transmit circuit transmits according to the access trigger signal.
Particular implementations can include one or more of the following features. The transmit delay interval is based on an amount of the second data received during a predetermined monitoring interval and an amount of the first data transmitted during the predetermined monitoring interval. A media access controller comprises the apparatus. A wireless network device comprises the media access controller. The wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20. The wireless network device further comprises a physical layer device to transmit the access control signal to the wireless network. A wireless client comprises the wireless network device. Implementations comprise the access control signal.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.



DESCRIPTION OF DRAWINGS
FIG. 1 shows a network device in communication with a wireless network according to a preferred embodiment.
FIG. 2 shows a process for the wireless network device of FIG. 1 according to a preferred embodiment.
FIG. 3 shows a wireless client in communication with a wireless access point over a wireless network according to a preferred embodiment.
FIG. 4 shows a process for the wireless client and wireless access point of FIG. 3 according to a preferred embodiment.
FIG. 5 shows a packet for an access control signal according to a preferred embodiment.



The leading digit(s) of each reference numeral used in this specification indicates the number of the drawing in which the reference numeral first appears.
DETAILED DESCRIPTION
Embodiments of the present invention employ adaptive techniques to determine the timing of transmissions to a wireless network. In particular, the timing of transmissions by a wireless network device to a wireless network are determined according to the amount of data the wireless network device transmits and receives, as described in detail below.
FIG. 1 shows a network device 102 in communication with a wireless network 104 according to a preferred embodiment. Network device 102 can be a wireless client, a wireless access point, or any other wireless-enabled device such as a laptop computer, personal digital assistant, and the like, and is preferably otherwise compliant with one or more of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20, which are incorporated by reference herein in their entirety. Network device 102 comprises a processor 106, a media access controller (MAC) 108, and a physical layer device (PHY) 110.
MAC 108 comprises a conventional transmit circuit 112 and a conventional receive circuit 114 for transmitting data to, and receiving data from, wireless network 104. MAC 108 also comprises an adaptive access control circuit 116, which can be implemented in hardware, software, or any combination thereof. MAC 108 further comprises a received byte counter (RBC) 120, a transmitted byte counter (TBC) 122, a register 124 for storing a traffic differential threshold (TDT), a register 126 for storing a monitoring window length (MWL), and a transmit delay counter (TDC) 128. PHY 110 comprises a conventional baseband processor 128, a conventional radio frequency (RF) circuit 130, and a conventional antenna 132.
In the described embodiments, the registers and counters in MAC 108 employ the following units, although of course other units can be used. Received byte counter 120 counts the number of bytes of data received during a monitoring window. Transmitted byte counter 122 counts the number of bytes of data transmitted during the monitoring window. Register 124 stores the traffic differential threshold in terms of a number of bytes of data. Register 126 stores the monitoring window length in units of seconds. Transmit delay counter 128 stores a transmit delay interval in units of microseconds.
FIG. 2 shows a process 200 for wireless network device 102 according to a preferred embodiment. Adaptive access control circuit 116 initializes registers 124 and 126 and counter 128 to set initial values for MWL, TDT, and TDC, respectively (step 202). For example, MWL is set to 5 seconds, TDT is set to 64,000 bytes, and TDC is set to 190 microseconds. Adaptive access control circuit 116 initializes RBC and TBC to zero (step 204).
Counters 120 and 122 then count the amount of data received and transmitted, respectively, by wireless network device 102 over wireless network 104 during the monitoring interval specified by MWL (step 206). Adaptive access control circuit 116 then generates an access trigger signal 132 at a time determined by the counts RBC and TBC at the end of the monitoring interval. In particular, the values of RBC and TBC are used to set the value of TDC, which defines a transmit delay interval. Access trigger signal 132 is then asserted at the transmit delay interval, causing transmit circuit 112 to transmit.
Preferably the timing of access trigger signal 132 is determined in the following manner. In general, if TBC>RBC, meaning that network device 102 is transmitting more data than it is receiving, then the value of TDC is reduced, thereby causing network device 102 to transmit more frequently. And if TBC<RBC, meaning that network device 102 is transmitting less data than it is receiving, then the value of TDC is reduced more, which allows network device 102 to transmit more frequently.
In addition, the traffic differential threshold (TDT) is employed, as described in detail below. The use of TDT serves to reduce oscillations in the value of TDC, as well as providing a mechanism for increasing the value of TDC when appropriate. Thus at the end of each monitoring window, the following steps are taken.
If TBC−RBC>TDT (step 208), meaning that the amount of data transmitted during the monitoring window exceeds the amount of data received during the monitoring window by more than the traffic differential threshold, then TDC is decremented by J units, thereby reducing the transmit delay interval by J microseconds (step 210). Process 200 then resumes at step 204.
If RBC−TBC>TDT (step 212), meaning that the amount of data received during the monitoring window exceeds the amount of data transmitted during the monitoring window by more than the traffic differential threshold, then TDC is decremented by K units, thereby reducing the transmit delay interval by K microseconds (step 214). Process 200 then resumes at step 204.
If neither TBC−RBC>TDT nor RBC−TBC>TDT, meaning that the amount of data transmitted during the monitoring window differs from the amount of data received during the monitoring window by less than the traffic differential threshold, then TDC is incremented by L units, thereby increasing the transmit delay interval by L microseconds (step 216). Process 200 then resumes at step 204.
Preferably J<K. For example, J=1 and K=2. And in one example, L=1. Of course, other values can be used for J, K, and L.
In some embodiments, the transmit delay interval for a first wireless network device is adaptively set by a second wireless network device based on the amount of traffic exchanged by the two devices. For example, a wireless access point measures the amount of traffic exchanged with a client, computes a transmit delay interval for the client, and transmits a TDC value representing the transmit delay interval to the client. The client then uses the received TDC value to determine the timing of its access requests to the wireless network. One access point can provide such TDC values to multiple clients based on the amount of data exchanged with each client. One such embodiment is described below.
FIG. 3 shows a wireless client 302 in communication with a wireless access point 306 over a wireless network 304 according to a preferred embodiment. While devices 302 and 306 are discussed in terms of client and access point, embodiments of the present invention can be incorporated within other sorts of wireless network devices such as laptop computers, personal digital assistants, and the like. Wireless client 302 and wireless access point 306 are preferably otherwise compliant with one or more of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.
Wireless client 302 comprises a processor 106A, a media access controller (MAC) 308, and a physical layer device (PHY) 110A. MAC 308 comprises a conventional transmit circuit 112A and a conventional receive circuit 114A. MAC 308 also comprises an access control circuit 312, which can be implemented in hardware, software, or any combination thereof MAC 308 further comprises a transmit delay counter (TDC) 314. PHY 110A comprises a conventional baseband processor 128A, a conventional radio frequency (RF) circuit 130A, and a conventional antenna 132A.
Wireless access point 306 comprises a processor 106B, a MAC 310, and a PHY 110B. MAC 310 comprises a conventional transmit circuit 112B and a conventional receive circuit 114B. MAC 310 also comprises an adaptive access control circuit 316, which can be implemented in hardware, software, or any combination thereof. MAC 310 further comprises a received byte counter (RBC) 320, a transmitted byte counter (TBC) 322, a register 324 for storing a traffic differential threshold (TDT), a register 326 for storing a monitoring window length (MWL), and a transmit delay counter (TDC) 328. PHY 110B comprises a conventional baseband processor 128B, a conventional RF circuit 130B, and a conventional antenna 132B.
In the described embodiments, the registers and counters in MAC 310 employ the following units, although of course other units can be used. Received byte counter 320 counts the number of bytes of data received from wireless client 302 during a monitoring window. Transmitted byte counter 322 counts the number of bytes of data transmitted to wireless client 302 during the monitoring window. Register 324 stores the traffic differential threshold in terms of a number of bytes of data. Register 326 stores the monitoring window length in units of seconds. Transmit delay counter 328 stores a transmit delay interval in units of microseconds.
While only one wireless client is shown in FIG. 3, it will be apparent to one skilled in the relevant arts after reading this description that wireless access point 306 can exercise adaptive access control over multiple clients. For example, wireless access point 306 can have TDC, RBC, and TBC counters for each client. Further, wireless access point 306 can use different values of MWL and TDT for each client if desired.
FIG. 4 shows a process 400 for wireless client 302 and wireless access point 306 according to a preferred embodiment. Adaptive access control circuit 316 initializes registers 324 and 326 and counter 328 to set initial values for MWL, TDT, and TDC, respectively (step 402). For example, MWL is set to 5 seconds, TDT is set to 64,000 bytes, and TDC is set to 190 microseconds. Adaptive access control circuit 316 initializes RBC and TBC to zero (step 404).
Counters 320 and 322 then count the amount of data received and transmitted, respectively, by wireless access point 306 from wireless client 302 over wireless network 304 during the monitoring interval specified by MWL (step 406). Adaptive access control circuit 316 then determines a value for TDC, which defines a transmit delay interval for wireless client 302, based on the counts RBC and TBC at the end of the monitoring interval. Wireless access point 306 then transmits an access control signal comprising the value of TDC to wireless client 302, which asserts its access trigger signal 132 at the transmit delay interval defined by TDC, causing transmit circuit 112A to transmit.
Preferably the value of TDC is determined in the following manner. In general, if TBC<RBC, meaning that wireless client 302 is transmitting more data than it is receiving (note that the counters TBC and RBC are counting data at the far end of the link with the controlled device, rather than at the controlled device as in the previously-described embodiment), then the value of TDC is reduced, thereby causing wireless client 302 to transmit more frequently. And if TBC>RBC, meaning that wireless client 302 is transmitting less data than it is receiving, then the value of TDC is reduced more, which allows wireless client 302 to transmit more frequently.
In addition, the traffic differential threshold (TDT) is employed, as described in detail below. The use of TDT serves to reduce oscillations in the value of TDC, as well as providing a mechanism for increasing the value of TDC when appropriate. Thus at the end of each monitoring window, the following steps are taken.
If RBC−TBC>TDT (step 408), meaning that the amount of data transmitted by wireless client 302 during the monitoring window exceeds the amount of data received by wireless client 302 during the monitoring window by more than the traffic differential threshold, then TDC is decremented by J units, thereby reducing the transmit delay interval by J microseconds (step 410). Wireless access point 306 then transmits an access control signal comprising TDC to wireless client 302 (step 418). Process 400 then resumes at step 404.
If TBC−RBC>TDT (step 412), meaning that the amount of data received by wireless client 302 during the monitoring window exceeds the amount of data transmitted by wireless client 302 during the monitoring window by more than the traffic differential threshold, then TDC is decremented by K units, thereby reducing the transmit delay interval by K microseconds (step 414). Wireless access point 306 then transmits an access control signal comprising TDC to wireless client 302 (step 418). Process 400 then resumes at step 404.
If neither RBC−TBC>TDT nor TBC−RBC>TDT, meaning that the amount of data transmitted by wireless client 302 during the monitoring window differs from the amount of data received by wireless client 302 during the monitoring window by less than the traffic differential threshold, then TDC is incremented by L units, thereby increasing the transmit delay interval by L microseconds (step 416). Wireless access point 306 then transmits an access control signal comprising TDC to wireless client 302 (step 418). Process 400 then resumes at step 404.
Preferably J<K. For example, J=1 and K=2. And in one example, L=1. Of course, other values can be used for J, K, and L.
Preferably the access control signal comprises a packet having a predetermined format. FIG. 5 shows one such packet 500 according to a preferred embodiment. Packet 500 comprises 2n fields, where n represents the number of clients. For each wireless client, packet 500 comprises an address field 502 and a TDC field 504. Address field 502 comprises the 8-byte MAC address of the wireless client. TDC field 504 comprises the TDC value computed for the client by the wireless access point.
Of course, other formats can be used. For example, instead of generating one packet with 2n fields, wireless access point can generate one packet for each client where each packet has the 2 fields 502 and 504.
In some embodiments, a device adaptively computes its own transmit delay interval as well as the transmit delay intervals for one for one or more other devices. For example, a wireless access point computes a transmit delay interval based on all the traffic sent and received by the wireless access point, for example as described above with respect to FIGS. 1 and 2. In addition, the wireless access point also measures the amount of traffic exchanged with each of its wireless clients, computes a transmit delay interval for each client based on the measurement for that client, and transmits a TDC value representing the respective transmit delay interval to each client, for example as described above with respect to FIGS. 3 and 4. Each client then uses the received TDC value to determine the timing of its transmissions to the wireless network.
Embodiments of the present invention can be used in ad hoc and infrastructure wireless networks, and can be used in conjunction with conventional back-off algorithms. Embodiments of the present invention can be used in some or all of the wireless network devices in a wireless network. Embodiments of the present invention increase network throughput substantially. In one wireless network comprising a wireless client and a wireless access point, an embodiment of the present invention raised the throughput of the network from 22 Mbps to 26 Mbps when implemented only in the wireless client, and to 31 Mbps when implemented in both the wireless client and the wireless access point.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the following claims.

## Claims

1. A wireless network, comprising:
a first wireless network device; and
a second wireless network device;
wherein the first wireless network device comprises
a first transmit circuit configured to transmit first data to the second wireless network device,
a transmit counter configured to count an amount of the first data transmitted by the first transmit circuit to the second wireless network device during a predetermined monitoring interval,
a first receive circuit configured to receive second data from the second wireless network device,
a receive counter configured to count an amount of the second data received by the first receive circuit from the second wireless network device during the predetermined monitoring interval, and
an adaptive access control circuit configured to calculate a transmit delay interval based on i) the amount of the first data counted by the transmit counter during the predetermined monitoring interval and ii) the amount of the second data counted by the receive counter during the predetermined monitoring interval, and wherein the first transmit circuit is configured to transmit transmits an access control signal representing the transmit delay interval to the second wireless network device, and

wherein the second wireless network device comprises
a second transmit circuit configured to transmit third data to the first wireless network device,
a second receive circuit configured to receive fourth data and control signals from the first wireless network device, wherein the second receive circuit is configured to receive the access control signal from the first wireless network device, and
an access control circuit configured to generate an access trigger signal at a time determined by the transmit delay interval in the access control signal, wherein the second transmit circuit is configured to transmit the third data according to the access trigger signal.

2. The wireless network of claim 1, wherein the first wireless network device is a wireless access point.

3. The wireless network of claim 2, wherein the wireless access point is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

4. The wireless network of claim 1, wherein the second wireless network device is a wireless client.

5. The wireless network of claim 4, wherein the wireless client is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

6. The wireless network of claim 1, wherein the first wireless network device further comprises:
a transmit delay counter configured to store a transmit delay count representing the transmit delay interval,
wherein the adaptive access control circuit is configured to compute the transmit delay count based on i) the amount of the first data counted by the transmit counter during the predetermined monitoring interval, and ii) the amount of the second data counted by the receive counter during the predetermined monitoring interval, and
wherein the access control signal represents the transmit delay count.

7. The wireless network of claim 6:
wherein the adaptive access control circuit is configured to decrement the transmit delay counter by J counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval exceeds the amount of the first data counted by the transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value.

8. The wireless network of claim 7:
wherein J=1.

9. The wireless network of claim 7:
wherein each count of the transmit delay counter represents one microsecond.

10. The wireless network of claim 6:
wherein the adaptive access control circuit is configured to decrement the transmit delay counter by K counts when the amount of the first data counted by the transmit counter during the predetermined monitoring interval exceeds the amount of the second data counted by the receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value.

11. The wireless network of claim 10:
wherein K=2.

12. The wireless network of claim 10:
wherein each count of the transmit delay counter represents one microsecond.

13. The wireless network of claim 6:
wherein the adaptive access control circuit is configured to increment the transmit delay counter by L counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval differs from the amount of the first data counted by the transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value.

14. The wireless network of claim 13:
wherein L=1.

15. The wireless network of claim 13:
wherein each count of the transmit delay counter represents one microsecond.

16. A method for a wireless network comprising i) a first wireless network device and ii) a second wireless network device, the method comprising:
at the first wireless network device,
transmitting first data,
receiving second data,
counting an amount of the first data transmitted by the first wireless network device to the second wireless network device during a predetermined monitoring interval,
counting an amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval, and
calculating a transmit delay interval based on i) the amount of the first data transmitted by the first wireless network device to the second wireless network device during the predetermined monitoring interval, and ii) the amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval, and
transmitting an access control signal representing the transmit delay interval to the second wireless network device; and

at the second wireless network device,
transmitting third data,
receiving fourth data and control signals,
receiving the access control signal from the first wireless network device, and
wherein transmitting the third data comprises transmitting the third data at a time determined by the transmit delay interval in the access control signal.

17. The method of claim 16, wherein the first wireless network device and the second wireless network device are otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

18. The method of claim 16, further comprising:
computing a transmit delay count representing the transmit delay interval based on i) the amount of the first data transmitted by the first wireless network device to the second wireless network device during the predetermined monitoring interval, and ii) the amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval;
wherein the access control signal represents the transmit delay count.

19. The method of claim 18, further comprising:
decrementing the transmit delay count by J counts when the amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval exceeds the amount of the first data transmitted by the first wireless network device to the second wireless network device during the predetermined monitoring interval by a predetermined traffic differential threshold value.

20. The method of claim 19:
wherein J=1.

21. The method of claim 19:
wherein each transmit delay count represents one microsecond.

22. The method of claim 18, further comprising:
decrementing the transmit delay count by K counts when the amount of the first data transmitted by the first wireless network device to the second wireless network device during the predetermined monitoring interval exceeds the amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval by a predetermined traffic differential threshold value.

23. The method of claim 22:
wherein K=2.

24. The method of claim 22:
wherein each transmit delay count represents one microsecond.

25. The method of claim 18, further comprising:
incrementing the transmit delay count by L counts when the amount of the second data received by the first wireless network device from the second wireless network device during the predetermined monitoring interval differs from the amount of the first data transmitted by the first wireless network device to the second wireless network device during the predetermined monitoring interval by less than a predetermined traffic differential threshold value.

26. The method of claim 25:
wherein L=1.

27. The method of claim 25:
wherein each transmit delay count represents one microsecond.

28. A wireless local-area network apparatus, comprising:
a transmit circuit configured to transmit first data to a wireless network device;
a transmit counter configured to count an amount of the first data transmitted by the transmit circuit to the wireless network device during a predetermined monitoring interval;
a receive circuit configured to receive second data from the wireless network device;
a receive counter configured to count an amount of the second data received by the receive circuit from the wireless network device during the predetermined monitoring interval; and
an adaptive access control circuit configured to calculate a transmit delay interval based on the amount of the first data counted by the transmit counter during the predetermined monitoring interval and the amount of the second data counted by the receive counter during the predetermined monitoring interval;
wherein the transmit circuit is configured to transmit an access control signal representing the transmit delay interval to the wireless network device.

29. A media access controller comprising the wireless local-area network apparatus of claim 28.

30. A wireless network device comprising the media access controller of claim 29.

31. The wireless network device of claim 30, wherein the wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

32. The wireless network device of claim 30, further comprising:
a physical layer device configured to transmit the access control signal.

33. A wireless access point comprising the wireless network device of claim 30.

34. The wireless local-area network apparatus of claim 28, further comprising:
a transmit delay counter configured to store a transmit delay count representing the transmit delay interval
wherein the adaptive access control circuit is configured to compute the transmit delay count based on i) the amount of the first data counted by the transmit counter during the predetermined monitoring interval, and ii) the amount of the second data counted by the receive counter during the predetermined monitoring interval, and
wherein the access control signal represents the transmit delay count.

35. The wireless local-area network apparatus of claim 34:
wherein the adaptive access control circuit is configured to decrement the transmit delay counter by J counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval exceeds the amount of the first data counted by the transmit counter during the predetermined monitoring interval by a predetermined traffic differential threshold value.

36. The wireless local-area network apparatus of claim 35:
wherein J=1.

37. The wireless local-area network apparatus of claim 35:
wherein each count of the transmit delay counter represents one microsecond.

38. The wireless local-area network apparatus of claim 34:
wherein the adaptive access control circuit is configured to decrement the transmit delay counter by K counts when the amount of the first data counted by the transmit counter during the predetermined monitoring interval exceeds the amount of the second data counted by the receive counter during the predetermined monitoring interval by a predetermined traffic differential threshold value.

39. The wireless local-area network apparatus of claim 38:
wherein K=2.

40. The wireless local-area network apparatus of claim 38:
wherein each count of the transmit delay counter represents one microsecond.

41. The wireless local-area network apparatus of claim 34:
wherein the adaptive access control circuit is configured to increment the transmit delay counter by L counts when the amount of the second data counted by the receive counter during the predetermined monitoring interval differs from the amount of the first data counted by the transmit counter during the predetermined monitoring interval by less than a predetermined traffic differential threshold value.

42. The wireless local-area network apparatus of claim 41:
wherein L=1.

43. The wireless local-area network apparatus of claim 41:
wherein each count of the transmit delay counter represents one microsecond.

44. A method for a first wireless network device, the method comprising:
transmitting first data;
receiving second data;
counting an amount of the first data transmitted to a second wireless network device during a predetermined monitoring interval;
counting an amount of the second data received from the second wireless network device during the predetermined monitoring interval;
calculating a transmit delay interval based on i) the amount of the first data transmitted to the second wireless network device during the predetermined monitoring interval, and ii) the amount of the second data received from the second wireless network device during the predetermined monitoring interval; and
transmitting an access control signal representing the transmit delay interval to the second wireless network device.

45. The method of claim 44, wherein the first wireless network device is otherwise compliant with at least one standard selected from the group consisting of IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11n, 802.16, and 802.20.

46. The method of claim 44, further comprising:
computing a transmit delay count representing the transmit delay interval based on i) the amount of the first data transmitted to the second wireless network device during the predetermined monitoring interval, and ii) the amount of the second data received from the second wireless network device during the predetermined monitoring interval;
wherein the access control signal represents the transmit delay count.

47. The method of claim 46, further comprising:
decrementing the transmit delay count by J counts when the amount of the second data received from the second wireless network device during the predetermined monitoring interval exceeds the amount of the first data transmitted to the second wireless network device during the predetermined monitoring interval by a predetermined traffic differential threshold value.

48. The method of claim 47:
wherein J=1.

49. The method of claim 47:
wherein each transmit delay count represents one microsecond.

50. The method of claim 46, further comprising:
decrementing the transmit delay count by K counts when the amount of the first data transmitted to the second wireless network device during the predetermined monitoring interval exceeds the amount of the second data received from the second wireless network device during the predetermined monitoring interval by a predetermined traffic differential threshold value.

51. The method of claim 50:
wherein K=2.

52. The method of claim 50:
wherein each transmit delay count represents one microsecond.

53. The method of claim 46, further comprising:
incrementing the transmit delay count by L counts when the amount of the second data received from the second wireless network device during the predetermined monitoring interval differs from the amount of the first data transmitted to the second wireless network device during the predetermined monitoring interval by less than a predetermined traffic differential threshold value.

54. The method of claim 53:
wherein L=1.

55. The method of claim 53:
wherein each transmit delay count represents one microsecond.