Plaque It!
Sponsored by: Flash of Genius |
[0001] The present application is based on U.S. Provisional Application entitled “System And Method For Synchronizing Data Transmission Across an Interface With Variable Timing”, Application No. 60/261,436 filed Jan. 11, 2001, which is hereby incorporated by reference in its entirety.
[0002] The present invention relates to network communications, and more particularly to a system and method for providing a selectable retry strategy for frame-based communications.
[0003] Network communication is a growing area of technology, both for business and home applications. A network system enhances communication and provides a suitable environment for enhanced productivity and capabilities, both at home and in the workplace. It is becoming more advantageous and common for small businesses and home environments to include a local area network (LAN) that is connected to external networks, such as the Internet, that provides access to common databases and libraries and the like, and that enables communication between multiple devices that support various services, such as file sharing, printing, faxing, e-mail, voice-over-IP, video streaming, video conferencing, etc.
[0004] Many such small networks are connected through a set of wires. Wired networks are well known and generally have acceptable performance, but have many limitations, such as various cable management and convenience issues. For various reasons, wireless LAN (WLAN) technology is becoming more popular. Radio frequency (RF) appears to be the technology of choice for establishing a practical WLAN. The typical environment for wireless communications, however, is very noisy and not optimal for LAN communications. For example, most homes and work places include many electronic devices that transmit or emit RF energy resulting in an electronically noisy environment that may interfere with WLAN communications. Examples of such transmitters are microwave ovens, garage door openers and cordless telephones. Examples of unintentional emitters are radios, television sets, computer systems, etc. Further, the signal propagation characteristics of the communication medium between wireless devices constantly changes. For example, most indoor environments or rooms include multiple surfaces that are reflective to RF energy, creating multipath noise. Also, movement of items or devices or the like, such as hands, bodies, jewelry, mouse pointers, etc. or activation of electronic devices, such as cooling fans or the like, affects the overall wireless communication path and potentially degrades wireless communication performance. In summary, wireless communications must be made through a dynamic and unpredictable medium.
[0005] Wireless communications are problematic for various other reasons. The physical area served by a wireless network in not precisely defined due to the dynamic environment. In some environments, separate WLANs are proximally located which increases the likelihood for destructive interference between wireless devices that are not intended to communicate with each other. This is true because range at which WLAN radios interfere with each other is typically two to three times greater than the range at which they can reliably communicate. Power management is also an important consideration in wireless communication since wireless devices are often battery-powered. Typical solutions of increasing transmit power (or “RF power” or “radiated power”) or increasing clock speed that are often available in wired devices with ready access to utility power or the like is not usually available for wireless devices. It is not necessarily an option to decrease transmit power to reduce interference since this also reduces the communication area within a WLAN and reduces coverage faster than interference due to the square law.
[0006] Consumers are demanding high-speed wireless applications and relatively high quality of service (QoS) applications. Video applications, for example, consume four or more megabits per second (Mbps) of bandwidth. Audio applications are not as bandwidth intense, which require bandwidth on the order of 30 kilobits per second (Kbps). Nonetheless, audio applications still have many timing constraints and requirements. Audio information, for example, is very sensitive to jitter and latency variation, which if not properly addressed may result in a breakdown of communications or dissatisfied users at much lower levels at which the audio cannot be understood at all. This is particularly true for two-way communications, such as voice-over-IP and video conferencing where delay, latency and jitter issues must be addressed and resolved, which is especially difficult for wireless communications. In spite of the limited capabilities of wireless communication as compared to wired communication, consumers desire wireless devices that support these high speed timing critical applications.
[0007] The IEEE (Institute of Electrical and Electronics Engineers) 802.11-1999 standard (“the 802.11 standard”) is a protocol standard for wireless LANs. The present disclosure employs various concepts and terminology of the 802.11 standard for purposes of explanation and illustration of exemplary embodiments, although it is understood that the present invention is not limited to communications according to the 802.11 standard but instead is applicable to any communication architecture and protocol. The 802.11 standard focuses on the media access control (MAC) and physical (PHY) layer communication protocols. The basic intent of this standard is to establish communication via a wireless medium regardless of the configuration or implementation of the upper layers. In other words, the WLAN standard is an attempt to make lower communications transparent to the upper layers. Upper layer applications, however, were designed to communicate via success-oriented wired and/or optical fiber media.
[0008] Wired LANs, such as communications based on Ethernet 802.3, for example, are success-oriented and have relatively low delay and very low loss of data packets, whereas wireless communications are much less robust and have a substantially higher data loss rate. In particular, wired LANs communications typically lose less than one in one million or (1 in 10
[0009] Wired Ethernet communications use a collision detection method referred to as carrier sense multiple access with collision detection (CSMA/CD) for arbitrating access to the medium between two or more devices. Such collision detection methods are not practical in wireless communication since it is difficult for a wireless receiver to detect wireless transmission of another device while the local transmitter is operating. Wired Ethernet communications conduct retry and acknowledge functions at higher layers due to typical undetected frame loss rates of 10
[0010] The problems with WLAN communications are compounded when implemented on personal computer (PC) platforms or the like commonly employed in home or small office environments. For example, mid- and high-layer protocol functions may be implemented using application and driver software running on a host processor, such as a central processing unit (CPU) of a PC or the like, whereas lower layer protocol functions may be implemented by firmware running on a MAC controller chip or the like mounted to an expansion board or card that is plugged into an expansion connector of the computer. This card also incorporates the physical layer (PHY) communication transceiver, such as a radio or the like, coupled between the MAC controller and one or more antennas. The variable interface between the layers above the MAC and the transceiver may include one or more input/output (I/O) buses and corresponding interface circuitry. It is imperative for proper operation that the higher layers communicate with the MAC/PHY transceiver in order to manage the information being transmitted. In the typical computer system or wireless access point (AP), a common communication mechanism between the higher layers and the transceiver is interrupt driven. Host processor interrupt latency, however, is variable, not readily determinable, and for the most part, uncontrollable by the wireless system including both the higher layer protocol software and the MAC/PHY transceiver. The timing of data transfers, interrupts, and indications between the upper-layer protocol functions and the lower-layer MAC/PHY transceiver functions, therefore, is variable and not known and subject to indeterminate delay and latency, so that the host software and drivers are unable to closely control or accurately determine the timing of the information transmission.
[0011] In the IEEE 802.11 environment, for example, the higher layer protocols handle the establishment of and bandwidth reservations for information streams with particular QoS requirements, and assumes the existence of a scheduling mechanism within the logical link or network layer, which is conceptually just above the MAC. For wireless LANs, the scheduling function is always required to achieve QoS at APs and may be required at other stations. For an IEEE 802.11 AP, this scheduler prioritizes outgoing traffic, polls other wireless stations with active QoS streams, and initiates controlled contention intervals. The scheduler delivers an appropriately ordered set of MPDUs (MAC Protocol Data Units) to the MAC transmit function for transmission during each Superframe or interval of time in conformance with the bandwidth priority, latency and other QoS criteria. A Superframe generally begins with transmission of a beacon frame followed by a contention-free period (CFP), which is then followed by a contention period (CP). The AP MAC controller performs the real time point coordination functions, transmits MPDUs, contention control (CC) frames and contention-free (CF) polls as enqueued by the scheduler, receives and validates MPDUs and reservation request (RR) frames, provides valid MPDUs to the MAC repeater of the distribution system as appropriate, controls Superframe timing using initialization parameter values provided by the scheduler or management information base (MIB), and generates acknowledgements, beacons and management frame responses in accordance with the 802.11 standard.
[0012] There are several different time bases that exist within the 802.11 AP point coordinator configuration. A first time base includes foreground tasks executed by the MAC in direct synchronism with the time base specified for intervals within 802.11 frame exchange sequences. A second time base includes background tasks activated by the MAC in response to real time events, including signals from foreground firmware, expiration of interval timers, and attention conditions when the host Input/Output (I/O) driver writes to a command register or certain other interface registers. Although background task firmware has direct access to the current 802.11 time synchronization function (TSF) timer value (a 1 microsecond (μs) time base accurate to within 4 μs at all stations in the wireless service set), processing by those tasks is subject to preemption by foreground tasks. Thus, background task processing latency varies due to WLAN traffic, host driver activity and proximity to period boundaries within the Superframe. A third time base is the host system itself, which includes an independent processor that executes the scheduler and distribution functions. The scheduler software has no control over nor ability to measure host processor interrupt response latency. This is especially problematic when the host is running a general purpose operating system, such as Windows NT or the like, rather than a real-time operating system (RTOS), because a general purpose OS is not concerned with limiting interrupt latency whereas an RTOS typically specifies an upper bound on such latency.
[0013] The scheduler is responsible for managing MPDU delivery, polling, and contention interval sequence in each Superframe, while the MAC processes outgoing frames in the order they appear on the transmit queue(s) pursuant to transmit commands from the scheduler (across the I/O interface). The MAC generates the beacon to begin the Superframe, then performs transmissions and receptions due to CF-polls and/or CC frames until the transmit queue(s) are empty or until the maximum duration for the CF interval, or CFMaxDuration, is reached. Any undelivered frames remaining on the transmit queue when the CF-End is generated at CFMaxDuration are either returned to the scheduler or discarded, depending upon the status reporting requested by the scheduler when it enqueued those frames. The scheduler generally marks frames belonging to streams with sufficiently large latency tolerance to be returned so that they may be rescheduled for transmission during a subsequent Superframe. By returning such frames to the scheduler, this rescheduling can consider the priority, latency tolerance, incurred waiting time and/or other QoS parameters defined for the stream, as well as ensuring appropriate prioritization and ordering relative to new MSDUs arriving from the distribution system, the wireless medium, or local application layer entities.
[0014] There may be a relatively short time period between the end of the CFP and the end of the Superframe. There is no guarantee that the scheduler will be able to respond fast enough to classify new arrivals, retrieve undelivered frames, make the required prioritization decisions, and load the first frame(s) for transmission during the CFP of the next Superframe between the end of a full-length CFP and the end of the Beacon that starts the next Superframe. Furthermore, after the scheduler issues the Transmit command for the first Frame Descriptor (FD) to be used during the new Superframe, several background MAC tasks have to perform some processing before that FD is ready for use by the foreground transmit task. It is noted that there is much foreground activity to preempt these background tasks, in addition to what might occur due to non-QoS traffic during the contention period near the target beacon transmission time (TBTT) when the Beacon is being prepared and transmitted.
[0015] Therefore, the scheduler needs to be able to begin submitting frames for transmission during the next Superframe prior to the end of the current Superframe and perhaps before the end of the CFP of the current Superframe. It is necessary to ensure proper allocation of frames to the intended Superframes, regardless of when the first frame for transmission during the next Superframe reaches the head of the relevant transmit queue. For example, it is necessary to achieve equivalent operation if the first frame for transmission during the next Superframe reaches the head of the relevant transmit queue before the end of the CFP of the current Superframe or after the transmission of the CF-End{+ACK} of the current Superframe but before the end of transmission of the Beacon at the beginning of the next Superframe. It is necessary to achieve proper operation when this frame does not reach the head of the transmit queue until after the end of transmission of the Beacon at the beginning of the next Superframe. Because each frame descriptor must be processed by background firmware between the time that the scheduler issues the Transmit command and that descriptor is available to the foreground MAC transmit task, the first frame of the next Superframe may reach the head of the relevant transmit queue after the end of the current Superframe even if the Transmit command for the first frame is issued before the end of the current CFP. Also, due to uncontrollable and unmeasurable (by the scheduler in real time) variations in host interrupt latency, it is not possible to ensure that the first frame of the next Superframe reaches the head of the relevant transmit queue in time even if the frame is submitted in response to a Superframe-timed interrupt, such as in response to a CF-End or a TBTT event.
[0016] Other than the sequencing problems described above, which can effect the synchronization between scheduler and MAC transmitter timing, the variable interface delay or latency hinders the scheduler's ability to perform properly various periodic functions and to monitor such periodic functions. Collocated with the scheduler is the point coordinator and the distribution services which provide AP functions. The point coordinator coordinates the flow of frames for active streams of the associated stations, which requires polling those stations for inbound frames. In particular, the point coordinator generates and enqueues polling lists and must monitor the success of the polling lists and make the necessary adjustments. In a QoS environment the scheduler is generally responsible for admittance and re-admittance of QoS frames to the set of transmit queues of the MAC at the AP and for maintaining polling lists for QoS streams. To compensate for the much greater probability of the loss of data frames on a wireless medium, the WLAN MAC protocol incurs significant overhead, including transmission of acknowledgement frames and data frame retransmissions when not acknowledged. This reduces the portion of the already limited wireless bandwidth that is available for user data transfers.
[0017] It is desired to implement wireless communications for all types of protocols and architectures that is capable of meeting arbitrary bandwidth and QoS demands by consumers. It is desired to implement wireless communication devices that efficiently utilize the wireless medium to establish and maintain successful wireless communications for many applications, including high bandwidth and latency sensitive voice, video, and multi-media applications. It is desirable to provide service and priority differentiation so that the QoS scheduler function may enforce a bandwidth allocation policy specified by the network operator. Such differentiation, for example, would enable allocation of bandwidth to subscribers who pay for a “premium service” in preference to those who subscribe to a “basic service”.
[0018] A method of providing a selectable retry strategy for frame-based communications according to an embodiment of the present invention includes programming a retry value to indicate a selected one of no retry or a retry count, transmitting a frame that is associated with the selected retry value, and suppressing retransmission of the frame regardless of the retry count if the retry value indicates no retry.
[0019] The normal operation of many communications systems is to retry transmission of a frame at least once if that frame is not successfully received. A standard or normal retry count may be specified to limit the number of retries, where the normal retry count is used by default for each frame. For example, a management information base (MIB) for wireless communications according to the 802.11 standard may specify a normal retry count. An acknowledgement frame or the like may be sent by the receiving device to the transmitting device for each frame to acknowledge successful reception of the frame. In some applications, however, such as those that use a real-time video stream or the like, there may be insufficient time to retry the frame. It may be too late, for example for the receiver that is displaying the video stream to use the failed frame by the time it is received. The selectable retry strategy, by selection of no retry, is useful in such applications in which it would otherwise be wasteful to consume time on the medium retrying a frame that will not be used even if it were to be received successfully.
[0020] The method may further include programming the retry value to indicate a selected one of no retry, a first retry count or a second retry count. The first retry count, for example, may be a normal retry count that would otherwise be applicable to all frames, such as a normal or standard retry count specified in an 802.11 MIB. The use of an alternative retry count provides at least one benefit in that a controller or host software may program a different retry count for specific frames depending on the particular application. A significantly smaller number of retries may be used, for example, for latency sensitive frames. Of course, the alternative retry count may be programmed to any reasonable number. The no retry indication may mean that a first attempt is treated as successful so that retransmission is not attempted.
[0021] The retry value may indicate treating a first attempt as successful and not retrying transmission or returning an unsuccessful transmission attempt as a failure and not retrying transmission. In the first case, the transmission is treated as successful since there may be no benefit in retransmitting the frame even if unsuccessfully received. In the second case, the transmitting device determines if an acknowledgement frame is received, and if not, reports the failure back to a higher level, such as a network driver or the like. In either case, transmission is only attempted once and not retried.
[0022] The method may further include specifying a frame lifetime for the associated frame that indicates a maximum retry time and attempting re-transmission until expiration of the frame lifetime or as many times specified by the retry count, whichever occurs first. The retry count may be a normal retry count or an alternative retry count.
[0023] In one embodiment, the retry strategy is implemented using two bits to achieve up to four optional indications, including a normal retry count, an alternative retry count, treating a first attempt as successful and not retrying transmission, or returning an unsuccessful transmission attempt as a failure and not retrying transmission. These above-listed four options are exemplary only and additional indications are contemplated that may be used instead or in addition in which additional retry strategy bits may be used. The method may include programming a retry strategy field of a frame descriptor for each frame to be transmitted to indicate the selected retry strategy. A frame descriptor is provided for each frame to include control and status information for the frame. Thus, a selectable retry strategy may be programmed for each frame.
[0024] The method may further include programming the retry value to indicate treating a first attempt as successful and not retrying transmission and programming the frame to indicate that acknowledgement (ACK) is not requested. This allows an additional benefit in that the acknowledgement response may also be selectively suppressed. The method may further include transmitting a second frame before completion of an acknowledgement period of time. In this case, the next outgoing frame can be transmitted without waiting for the acknowledgement frame thereby eliminating the time for the acknowledgement frame and its inter-frame gap. It is noted that programming the frame with a selectable acknowledgement request may not be supported by some devices, such as those according to the 802.11 standard in which the protocol was standardized without provision for a selectable ACK function. Thus, may be desired to encode the selectable acknowledgement request in the frame in such a manner that it will be ignored by those devices that do not support the selectable ACK option. In a particular embodiment, the method includes programming at least one bit in a duration/ID field of the frame. The low order bits of the duration/ID field of the MAC header are particularly advantageous in that those devices or stations that do not support the selectable ACK option will ignore the programmed bits (if the high order two bits of this field are each “1”) and thus not be affected. A separate field may be used to incorporate the retry strategy, such as a separate Quality of Service (QoS) field or the like.
[0025] The method described herein is applicable to any type of frame-based communication system, including those that use wired or wireless mediums. It is noted that the present invention is particularly advantageous to wireless LAN communications, which are typically very noisy and not optimal for LAN communications. A selectable retry strategy allows significant improvement for time-sensitive or latency-sensitive applications in which the standard or normal retry approach is insufficient or inefficient, such as, for example, when the time required to utilize the normal approach may cause unacceptable delay to other frames destined for other stations that are enqueued behind the frame being retried.
[0026] A method of improving usage of a wireless medium according to an embodiment of the present invention includes applying, by a first transceiver system, a no retry strategy to a first frame so that retransmission of the first frame will not be attempted, programming the first frame with an indication that acknowledgement is not requested, and transmitting the first frame via the wireless medium. The method further includes successfully receiving, by a second transceiver system, the first frame via the wireless medium, detecting the no acknowledgement indication, and suppressing sending an acknowledgement frame in response to successfully receiving the first frame. The usage of the wireless medium is improved by eliminating frame retries and further eliminating acknowledgement frames in response to successful reception. The method may further include programming at least one bit of a duration/ID field of the first frame with the acknowledgement request. Alternatively, the method may further include programming at least one bit of a Quality of Service control field of the first frame with the acknowledgement request.
[0027] The method may further include transmitting, by the first transceiver system via the wireless medium, a second frame prior to expiration of a predetermined inter-frame gap period, or prior to expiration of a predetermined acknowledgement period after transmission of the first frame. In this manner, data throughput of the wireless medium may be increased for selected applications since the time reserved for the acknowledgement frame and its interframe gap may instead be used for frame transmission.
[0028] A frame-based communications system with selectable retry strategy according to an embodiment of the present invention includes a controller that programs a retry value associated with a frame, where the retry value indicates a selected one of no retry and a retry count, and a transceiver that transmits the frame at least once, that attempts retransmission of the frame up to as many times indicated by the retry count if the retry value indicates the retry count, and that does not attempt retransmission of the frame if the retry value indicates no retry. The controller may include a scheduling entity that programs a retry value for each frame to be transmitted. The transceiver may include a queue and a frame manager that receives and enqueues frames into the queue and that determines the retry value for each enqueued frame. The scheduling entity may be configured to program a retry strategy field of a frame descriptor for each frame to be transmitted. The frame manager may be configured to determine the retry value for each frame from the retry strategy field of a corresponding frame descriptor. The controller may be configured to program the retry value to indicate a selected retry strategy in a similar manner as previously described.
[0029] The controller may further be configured to program a frame lifetime that specifies a maximum time for attempting retries for the frame. In this manner, the transceiver is configured to transmit the frame at least once and to attempt retransmission of the frame until expiration of the frame lifetime or for as many times indicated by a retry count, if specified, whichever occurs first.
[0030] The transceiver may further include a transmission scheduler that programs a frame for transmission with an acknowledgement request indicating whether acknowledgement of successful receipt of the frame is requested. The duration/ID field of the frame or a separate QoS control field may be used for programming the selectable acknowledgement request. The transmission scheduler may be configured to program the frame with a no acknowledgment request and to schedule transmission of a subsequent frame before expiration of a predetermined acknowledgement period. In this case, it is assumed that the receiving device is configured to detect the no acknowledgement request and not send an acknowledgement frame. In one embodiment, the transceiver may include receive logic that is configured to send an acknowledgement frame by default in response to a successfully received frame, and acknowledgement logic that is configured to instruct the receive logic to suppress sending an acknowledgement frame if an acknowledgement request of a successfully received frame indicates that acknowledgement is not requested.
[0031] Many different embodiments or options are contemplated without departing from the spirit and scope of the present invention. The controller and transceiver may be implemented as a wireless access point (AP). The controller may be implemented on a computer system, which further includes a memory that stores application software, a processor that executes the application software to perform controller functions, and an expansion bus system. In this case, the transceiver may be implemented on an expansion card that interfaces the expansion bus system of the computer system. The transceiver may include a host interface, a media access control (MAC) device, and a radio that enables wireless communications via a wireless medium. The MAC device may include a queue, a frame manager that receives and enqueues frames into the queue and that detects a retry value for each frame, and a transmission scheduler that dequeues frames from the queue and that transmits frames in accordance with an associated retry value. The transmission scheduler may be configured to return an unsuccessful indication, such as to the host, if an acknowledgement frame is not received within a predetermined period of time for a frame transmitted once and having a no retry and return unsuccessful attempt as failure indication.
[0032] The transmission scheduler may include retry logic that selectively programs frames for transmission with an acknowledgement request. For those frames having a retry value of no retry and treat first attempt as successful indication, the retry logic may selectively program an acknowledgement request for that frame to indicate that acknowledgment is not requested. The MAC device may further include acknowledgement logic that is configured to instruct the receive logic to suppress sending an acknowledgement frame if an acknowledgement request of a successfully received frame indicates that acknowledgement is not requested.
[0033] A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
[0034]
[0035]
[0036]
[0037]
[0038] FIGS.
[0039]
[0040] FIGS.
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051] The AP controller
[0052] The particular configuration and implementation of the AP controller
[0053] In the embodiment shown, the AP controller
[0054] In many network configurations, the distribution system
[0055] Embodiments of the present invention are directed towards aspects of the transmission control logic
[0056] In contrast, the wireless transceiver
[0057] In accordance with embodiments of the present invention, many of the communication functions traditionally conducted solely or partially by the scheduling entity
[0058]
[0059] To perform the AP function, the computer system
[0060] The MAC device
[0061] The application programs
[0062]
[0063] In the embodiment shown, the transmit queues
[0064] Each transmit queue
[0065] The outputs of the transmit queues
[0066] As described previously, a common communication mechanism between the network I/O driver
[0067] The frame descriptor further includes a persistence (PRST) field that instructs the transmission scheduler
[0068] The transmission scheduler
[0069]
[0070] As shown, the TX control field
[0071] The TX control field
[0072] FIGS.
[0073] The transmit scheduler
[0074] As shown in
[0075] As shown in
[0076]
[0077] The use of the PRST field to mark a frame as persistent provides many benefits and advantages for improving the control of wireless communications. In order to properly implement a packet oriented wireless communications protocol, and some types non-packet protocols, the application programs
[0078] In the conventional network interface card (NIC) model, such repetitive activities would require the scheduling entity
[0079] The use of persistent frames facilitates the periodic functionality to occur without multiple or repetitive traversals of the variable delay interface
[0080] FIGS.
[0081]