Abstract:
A method for sending a multi-rate multi-receiver message containing a multi-receiver multi-response aggregate. The multi-rate multi-receiver aggregate is transmitted until a multi-receiver multi-response aggregate embedded within the multi-rate multi-receiver aggregate is encountered. Transmission of the multi-rate multi-receiver aggregate is suspended for a predetermined time period. After the expiration of the predetermined time period, transmission of the multi-rate multi-receiver aggregate resumes.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of priority of U.S. Provisional Application No. 60/616,306 filed Oct. 6, 2004, the contents of which are herby incorporated by reference. This application is a continuation-in-part of U.S. application Ser. No. 10/840,878, filed on May 7, 2004, which claims the benefit of priority of U.S. Provisional Application No. 60/560,303 filed Apr. 7, 2004, the contents of which are hereby incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     The present invention relates generally to high throughput wireless networks and in particular to aggregation technology.  
         [0003]     The next generation of high throughput (HT) wireless networks, to be covered by the 802.11n specification that is currently being formed, specifies 100 Mbps at the MAC SAP (Media Access Control Service Access Port) of an 802.11n device. Frame aggregation is a key technology employed to achieve such a high throughput.  
         [0004]     One frame aggregation technique, MRMRA (multi-receiver multi-response aggregation), allows for frames for a number of receivers to be aggregated and allows for immediate responses from those multiple receivers as well, thus greatly increases the MAC efficiency, especially for QoS sensitive enterprise applications, such as wireless voice over IP (WVoIP). A benefit of MRMRA is that MRMRA not only allows for more than double the number of admissible phone calls, but also provides considerable amount of additional bandwidth for regular data traffic.  
         [0005]     Another aggregation technique, MMRA (multi-rate multi-receiver aggregation), allows frames for multiple receivers of various rates and modulation schemes to be aggregated. MMRA consists of a bursting of a series of Physical Layer Service Data Units (PSDUs) possibly with various rates and modulation schemes. Each PSDU consists of a single frame or an aggregation of multiple frames either to the same receiver or to multiple receivers of the same rate. MMRA has the advantage of aggregating frames for receivers in a wide range of distances. However, MMRA&#39;s lack of support for immediate responses makes its use very limited, especially for latency sensitive applications such as WVoIP.  
         [0006]     MMRA does not support multiple responses mainly for two reasons. First, an initiator for an MMRA does not know, in general, how long the bursting will last, so it lacks adequate information to schedule multiple responses. Second, the MMRA approach lacks a protection mechanism to protect the multi-responses from legacy nodes or hidden nodes. Moreover, scheduling multiple responses after the end of bursting is not favorable because it introduces excessive latency into the responses, which can be intolerable for latency sensitive applications, such as WVoIP in an enterprise environment, making QoS requirements hard to meet.  
         [0007]     All terms and acronyms unless otherwise defined herein should if defined in the Institute of Electrical and Electronics Engineer&#39;s (IEEE) TGn Sync Proposal Technical Specification, TGn Sync Technical Proposal ROO (TGn Sync) dated Aug. 13, 2004, available at http://www.tgnsync.org/techdocs/tgnsync-proposal-technical-specification.pdf, be accorded the definition given in TGn Sync, otherwise they should be given their usual and customary definitions.  
       BRIEF SUMMARY OF THE INVENTION  
       [0008]     In accordance with an aspect of the present invention, there is disclosed herein a new aggregation technology, the multi-rate multi-response, multi-receiver aggregation (MRMRMRA). MRMRMRA introduces two new operations for an MRA: suspension and resumption of MMRA bursting, along with the protection and scheduling aspects of MRMRA. In particular the following steps are taken for an MRMRMRA:  
         [0009]     1) MRMRMRA bursting suspend temporarily after the transmission of an MRMRA aggregate;  
         [0010]     2) The MRMRA comprises the channel reservation information for protection against legacy and hidden nodes and the multi-response scheduling information;  
         [0011]     3) Multiple receivers of the MRMRA respond with ACKs (Acknowledgements) or Bas (Block Acknowledgements), possibly with bidirectional data attached, conforming to the response schedule of the MRMRA;  
         [0012]     4) After the MRMRMRA initiator receives responses for the MRMRA, it sends a BA to the multiple receivers and finishes the MRMRA; and  
         [0013]     5) The MRMRMRA bursting resumes and continues until the burst is complete or until another MRMRA aggregate is encountered.  
         [0014]     The present invention comprises a methodology and system for implementing the MRMRMRA as described herein. MRMRMRA significantly enhances existing aggregation technology by broadening the scope of the applications of aggregation and benefiting from both MMRA and MRMRA. The present invention seamlessly combines MRMRA and MMRA without introducing any degradation in channel utilization. A feature of the present inventions is that the overhead to support the multi-response aspect of an MRMRMRA is very low. Moreover, the MRMRMRA minimizes latency, which is advantageous for latency sensitive applications, such as WVoIP, allowing them to meet their QoS requirements.  
         [0015]     Still other objects of the present invention will become readily apparent to those skilled in this art from the following description wherein there is shown and described a preferred embodiment of this invention, simply by way of illustration of one of the best modes best suited for to carry out the invention. As it will be realized, the invention is capable of other different embodiments and its several details are capable of modifications in various obvious aspects all without departing from the invention. Accordingly, the drawing and descriptions will be regarded as illustrative in nature and not as restrictive.  
     
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING  
       [0016]     The accompanying drawings incorporated in and forming a part of the specification, illustrate several aspects of the present invention, and together with the description serve to explain the principles of the invention.  
         [0017]      FIG. 1  is a timing diagram of an exemplary multi-rate aggregation scheme in accordance with an aspect of the present invention.  
         [0018]      FIG. 2  is a block diagram of an aggregate data frame with multiple messages in accordance with an aspect of the present invention.  
         [0019]      FIG. 3  is a block diagram of a PSDU frame header in accordance with an aspect of the present invention.  
         [0020]      FIG. 4  is a block diagram of a methodology in accordance with an aspect of the present invention.  
         [0021]      FIG. 5  is a block diagram of a computer system for implementing an aspect of the present invention.  
         [0022]      FIG. 6  is a block diagram of a system for implementing an aspect of the present invention.  
     
    
     DETAILED DESCRIPTION OF INVENTION  
       [0023]     Throughout this description, the preferred embodiment and examples shown should be considered as exemplars, rather than limitations, of the present invention. The present invention is directed to a multi-rate aggregation scheme that is in the form of PSDU bursting, which aggregates multiple frames, either to the same receiver or a number of receivers of the same rate, in a single PSDU and bursts a number of PSDUs of various rates in sequence. To allow for a MRMRA, the PSDU bursting suspends temporarily after it transmits a MRMRA. After receiving acknowledgements from the recipients of the MRMRA, a block acknowledgement, is transmitted and the bursting resumes. This approach seamlessly combines MRMRA and multi-rate aggregation without introducing any degradation in channel utilization.  
         [0024]     Referring to  FIG. 1 , there is illustrated an example timing diagram  100  illustrating an aspect of the present invention. A timeline T is employed for the purpose of illustrating the various timing sequences illustrated in timing diagram  100 . At T 1 , illustrated by doted line  130 , a burst is initiated that sends a portion  102  of a PPDU that comprises Frame  0   104 , Frame  1   106  and Frame  2 ,  108 , where frame  2   108  is a MRMRA frame. The burst continues, and at time T 2 , illustrated by dotted line  132 , the MRMA Frame  108  is encountered. The burst is suspended after sending the MRMA Frame  108  at T 3 , illustrated by dotted line  134 .  
         [0025]     The burst is suspended until time T 4 , illustrated by dotted line  136 . In a preferred embodiment the amount of time for suspending the burst is contained within the MRMRA frame  108 . For example, MRMRA frame  108  contains a spoofed NAV field to prevent third parties from transmitting between times T 3  and T 4  which can also be used by the initiator to determine how long to suspend the burst transmission. While the burst is suspended, e.g., from T 3  to T 4 , acknowledgements are received from receivers of the MRMRA frame  108 . As shown in the example of  FIG. 1 , acknowledgements with data (ACK+Data  110  and ACK+Data  112 ) are received between T 3  and T 4 . IT should be noted that Acknowledgements can be sent by themselves, or can include bidirectional data as shown in  FIG. 1 . The initiator of the burst sends a block acknowledgement with data (BA+Data)  114 . Preferably, all of the receivers of the MRMRA have sent an ACK or an ACK+Data in response to the MRMRA frame  108 . However, if one of the intended recipients of the MRMRA frame  108  does not respond to an MPDU, the initiator may retry transmitting the MPDU after sending the block acknowledgement  114 , or alternatively, may include the MPDU in a future MRMRA, depending on the initiator&#39;s policy. Time line  118  illustrates the amount of time, T 2  to T 4 , used for sending the MRMRA frame  108 , receiving the acknowledgements  112  and  114 , and the block acknowledgement  116 .  
         [0026]     At T 4 , the burst resumes, sending the remaining portion  120  of the PPDU. The burst comprising Frame  3   122 , Frame  4   124  and Frame  5   126 , and is completed, as shown at time T 6 . However, if another MRMRA frame (not shown) is encountered in the remaining portion of  120  of the PPDU, the burst is again suspended and the MRMRA is processed.  
         [0027]     Extending MRMRA to multi-rate aggregation is a significant enhancement to aggregation mechanism, which greatly widens the application scopes of both MRMRA and multi-rate aggregation. It is especially beneficial in enterprise environment for applications such as wireless voice over IP.  
         [0028]     One aspect of the present invention is that it allows for multiple responses, a desirable feature for many wireless applications. Another aspect of the present invention is that it allows for multi-rate aggregation, so that there are more frames to aggregate than single rate cases.  
         [0029]     Referring now to  FIG. 2 , there is illustrated a block diagram of an aggregate data frame  200  with multiple messages in accordance with an aspect of the present invention. Data frame  200 , as shown has a PPDU header (PLCP Header)  202 , a first data unit (PSDU 1 )  204 , a second data unit PSDU 2 )  206  and can have additional data units  208 . PSDU 1   204  comprises a first header and a first data segment. The first header has data fields for indicating the scheduled response time for acknowledging receipt of PDSU 1   204 . Likewise, PSDU 2   206  has a second header and a second data segment, wherein the second header has data fields for indicating the scheduled response time for acknowledging receipt of PSDU 2   206 . Additional data units  208  can be appended to aggregate data frame  200  as desired. The additional data units  208  can have fields to indicate scheduled response times for corresponding data units. PLCP header  202  can have a field indicating the length of aggregate data frame  200 . The value set in the field indicating the length of aggregate data frame  200  can be spoofed to include the length of time of aggregate data frame  200 , the length of time allocated for a response to PSDU 1   204 , the time period allocated for a response to PSDU 2   206 , and the time period allocated for responding to any additional data units  208 .  
         [0030]     For example, if aggregate data frame  200  is a PPDU frame, a NAV in PCLP header  202  can be used to indicate the length of data frame  200 . Each data unit, PSDU 1   204 , PSDU 2   206  and any additional data units  208  can have a corresponding NAV and TXOP set to indicate the time to respond and the length of Is time allocated for their corresponding response. The NAV in PLCP header  202  would be set to include the length of aggregate data frame  110 , the scheduled response period (TXOP) for PSDU 1   204 , scheduled response period (TXOP) for PSDU 2   206  and any other additional data units  208 . The NAV for the aggregate data frame can also include any SIF or other interframe time periods.  
         [0031]      FIG. 3  is a block diagram of an exemplary PPDU header  202  in accordance with an aspect of the present invention. The frame header includes at least one header field  222 , NAV  224  and TXOP  226 . The at least one header field  222  can include any fields desired for the header of the associated PSDU frame, including but not limited to synchronization (SYNCH), source, destination, frame check sequence (e.g., CRC) or for any field defined in the 802.11 or appropriate specification for the frame. NAV  224  indicates to the recipient when to send an acknowledgement to the PSDU frame. TXOP  226  field indicates the amount of time allocated for the acknowledgement for the PSDU frame. Frame headers similarly configured like frame header  202  can be employed by the PSDU&#39;s within the MRMRA, for example PSDU 1   204 , PSDU 2   206  and additional data units  208  ( FIG. 2 ). When a receiver that is not a recipient of the MRMRA receives the MRMRA, it sets its NAV corresponding to the NAV in the PPDU header  202 . If the receiver is a receiver of the MRMRA, then it sets its NAV according to the NAV in the corresponding PSDU.  
         [0032]     In view of the foregoing structural and functional features described above, a methodology in accordance with various aspects of the present invention will be better appreciated with reference to  FIG. 4 . While, for purposes of simplicity of explanation, the methodology of  FIG. 4 , is shown and described as executing serially, it is to be understood and appreciated that the present invention is not limited by the illustrated order, as some aspects could, in accordance with the present invention, occur in different orders and/or concurrently with other aspects from that shown and described herein. Moreover, not all illustrated features may be required to implement a methodology in accordance with an aspect the present invention. Embodiments of the present invention are suitably adapted to implement the methodology in hardware, software, or a combination thereof.  
         [0033]     Referring to  FIG. 4 , there is illustrated a block diagram of a methodology  400  in accordance with an aspect of the present invention. At  402  a burst transmission is initiated. Frames of the burst transmission are examined at  404 , where it is determined whether a multi-receiver multi-response (MRMRA) frame is encountered.  
         [0034]     If at  404  it is determined an MRMRA frame is being processed (YES) at  406  the MRMRA frame is transmitted. At  408  the burst is suspended. The initiator of the burst then waits for the end of the response period as shown at  410 . In a preferred embodiment, the length of time for the initiator to wait is included in the MRMRA. For example, for an 802.11 implementation, a spoofed NAV in the header of the MRMRA is used to determine how long to wait. The NAV for the MRMRA can also include any SIF or other interframe time periods. During the response period, recipients of the MRMRA packet respond with an acknowledgement (ACK) or with an acknowledgement that includes data for the initiator (ACK+Data).  
         [0035]     At  412  the initiator sends a block acknowledgement (Block ACK). Optionally, the block acknowledgement may include bidirectional data. The block acknowledgement is sent to the recipients of the MRMRA. Preferably, all of the receivers of the MRMRA have sent an ACK or an ACK+Data in response to the MRMRA. However, if one of the intended recipients of the MRMRA does not respond to an MPDU, the initiator may retry transmitting the MPDU after sending the block acknowledgement at  412 , or alternatively, may include the MPDU in a future MRMRA, depending on the initiator&#39;s policy.  
         [0036]     At  414 , it is determined whether the burst is finished. If the burst is finished (YES), then the initiator stops transmitting at  416 . If the burst is not finished (NO), then the methodology  400  returns to  404  where the next frame is evaluated.  
         [0037]     If at  404  it is determined that the frame being transmitted is not an MRMRA (NO), then at  418  bursting continues and the next frame is transmitted. At  414 , it is determined whether the burst is finished. If the burst is finished (YES), then the initiator stops transmitting at  416 . If the burst is not finished (NO), then the methodology  400  returns to  404  where the next frame is evaluated.  
         [0038]     It should be noted that if at  414  it is determined that the burst is not completed, processing returns to  404  for the next frame. If the next frame is an MRMRA, then the burst is again suspended and  406 ,  408 ,  410  and  412  are repeated. If the next frame is not an MRMRA, then as shown at  418  the burst continues. The burst may be suspended as many times as necessary for processing MRMRA frames.  
         [0039]      FIG. 5  is a block diagram that illustrates a computer system  500  upon which an embodiment of the invention may be implemented. Computer system  500  includes a bus  502  or other communication mechanism for communicating information and a processor  504  coupled with bus  502  for processing information. Computer system  500  also includes a main memory  506 , such as random access memory (RAM) or other dynamic storage device coupled to bus  502  for storing information and instructions to be executed by processor  504 . Main memory  506  also may be used for storing a temporary variable or other intermediate information during execution of instructions to be executed by processor  504 . Computer system  500  further includes a ready only memory (ROM)  508  or other static storage device coupled to bus  502  for storing static information and instructions for processor  504 .  
         [0040]     A storage device  510 , such as a magnetic disk or optical disk, is provided and coupled to bus  502  for storing information and instructions.  
         [0041]     An aspect of the present invention is related to the use of computer system  500  for Multi-Rate Multi-Receiver Multi-Response Aggregation (MRMRMRA). According to one embodiment of the invention, MRMRA is provided by computer system  500  in response to processor  504  executing one or more sequences of one or more instructions contained in main memory  506 . Such instructions may be read into main memory  506  from another computer-readable medium, such as storage device  510 . Execution of the sequence of instructions contained in main memory  506  causes processor  504  to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory  506 . In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.  
         [0042]     The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor  504  for execution. Such a medium may take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media include for example optical or magnetic disks, such as storage device  510 . Volatile media include dynamic memory such as main memory  506 . Transmission media include coaxial cables, copper wire and fiber optics, including the wires that comprise bus  502 . Transmission media can also take the form of acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include for example floppy disk, a flexible disk, hard disk, magnetic cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASHPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.  
         [0043]     Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to processor  504  for execution. For example, the instructions may initially be borne on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system  500  can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus  502  can receive the data carried in the infrared signal and place the data on bus  502 . Bus  502  carries the data to main memory  506  from which processor  504  retrieves and executes the instructions. The instructions received by main memory  506  may optionally be stored on storage device  510  either before or after execution by processor  504 .  
         [0044]     Optionally, computer system  500  includes a communication interface  518  coupled to bus  502 . Communication interface  518  provides a two-way data communication coupling to a network link  520  that is connected to a local network  522 . For example, communication interface  518  may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface  518  may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface  518  sends and receives electrical, electromagnetic, or optical signals that carry digital data streams representing various types of information.  
         [0045]     Network link  520  typically provides data communication through one or more networks to other data devices. For example, network link  520  may provide a connection through local network  522  to a host computer  524 . Local network  122  uses electrical, electromagnetic, and/or optical signals that carry the digital data to and from computer system  500 , are exemplary forms of carrier waves transporting the information.  
         [0046]     Computer system  500  can send messages and receive data, including program codes, through the network(s), network link  520 , and communication interface  518 . For example, host  524  might transmit a requested code for an application program through local network  522 , and communication interface  518 . In accordance with the invention, one such downloaded application provides for implementing MRMRMRA as described herein.  
         [0047]     The received code may be executed by processor  504  as it is received, and/or stored in storage device  510 , or other non-volatile storage for later execution. In this manner, computer system  500  may obtain application code in the form of a carrier wave.  
         [0048]      FIG. 6  is a block diagram of a system  600  configured to operate in accordance with an aspect of the present invention. System  600  includes a transmitter  602  and a receiver  604 . A controller (Control)  606 , for example a computer system  500  ( FIG. 5 ), is suitably adapted for controlling the transmitter  602  and receiver  604 . Controller  606  suitably includes program code, or logic for performing control functions. “Logic”, as used herein, includes but is not limited to hardware, firmware, software and/or combinations of each to perform a function(s) or an action(s), and/or to cause a function or action from another component. For example, based on a desired application or need, logic may include a software controlled microprocessor, discrete logic such as an application specific integrated circuit (ASIC), a programmable/programmed logic device, memory device containing instructions, or the like, or combinational logic embodied in hardware. Logic may also be fully embodied as software. A transmit buffer  608  is used for buffering frames for transmission by transmitter  608 . Controller  606  may suitably be connected to both transmit buffer  608  and transmitter  602  to monitor frames being transmitted or waiting to be transmitted by transmitter  602 . Receiver  604  receives frames and stores them in receive buffer  610 . Memory  612  is coupled to controller  606 . Memory  612  is at least one of volatile or non-volatile memory and may be used by controller  606  for storing variables or other data used by controller  606  for controlling transmitter  602  and receiver  604 . In addition, controller  606  can be configured for transferring data between memory  606  and transmit buffer  608  and/or memory  606  and receive buffer  610 .  
         [0049]     In operation, controller  606  puts frames into transmit buffer  608  for transmitting. Transmitter  602  initiates a burst transmission. When a MRMRA frame is detected, then controller  606  signals transmitter  602  to suspend transmitting the burst. In one embodiment, controller  606  may determine when an MRMRA is about to be transmitted by monitoring transmit buffer  608 . In another embodiment, transmitter  602  signals controller  606  when it encounters an MRMRA frame. Controller  606  determines from the MRMRA frame the amount of time allocated for the MRMRA to receive responses, such as ACKs or ACKs+data and sets timer  614  accordingly.  
         [0050]     While the burst transmission is suspended, receiver  604  receives responses to the MRMRA. The responses are forwarded to receive buffer  610 . Optionally, controller  606  can examine the packets in receive buffer  610  to determine which receivers responded to the MRMRA and use memory  612  to track which receivers responded.  
         [0051]     When timer  614  expires, controller  606  sends a block acknowledgement (BA) or a block acknowledgement with data (BA+data). Preferably, all receivers of the MRMRA responded and the BA or BA+data is directed to all recipients of the MRMRA. However, as those skilled in the art can readily appreciate, there may be circumstances where a receiver does not acknowledge the MRMRA, for example the receiver doesn&#39;t receive the MRMRA, or the corresponding MPDU within the MRMRA, and therefore doesn&#39;t respond. How the controller  606  handles a missing ACK can vary. For example, in one embodiment controller  606  resends the MPDU via transmitter  602  immediately after sending the BA. In another embodiment, controller  606  resends the MRMRA in a future packet. In still another embodiment, if the time period for delivering the MPDU expired, the MPDU is discarded.  
         [0052]     In view of the foregoing, those skilled in the art can readily appreciate that the present invention extends the use of MRMRA to multi-rate aggregation. Furthermore, the present invention substantially enhances MMRA by allowing multiple immediate responses, a desirable feature for many wireless applications, such as QoS sensitive applications like WVoIP for example. The present invention provides higher MAC efficiency and much wider application scope than either MMRA or MRMRA by themselves while adding very little overhead and very little additional implementation cost for MMRA.  
         [0053]     What has been described above includes exemplary implementations of the present invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the present is invention, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present invention are possible. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims interpreted in accordance with the breadth to which they are fairly, legally and equitably entitled.