Abstract:
A technique for optimizing transmissions on a shared communications channel is disclosed. When legacy stations and enhanced stations are present on the same shared communications channel, control frames can be used to make the communications between enhanced stations visible to the legacy stations. The technique disclosed selects between multiple control frames when more than one candidate control frame is available.

Description:
Cross-Reference to Related Applications  
       [0001]    This application claims the benefit of U.S. Provisional Patent Application Serial No. 60/440,576, entitled “OFDM Protection Optimization in Clients,” filed on Jan. 16, 2003 (Attorney Docket: 680-042us), which is incorporated by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates to telecommunications in general, and, more particularly, to wireless local area networks.  
         BACKGROUND OF THE INVENTION  
         [0003]    [0003]FIG. 1 depicts a schematic diagram of a portion of wireless local area network  100  in the prior art. Local area network  100  comprises communications stations  101 ,  102 - 1 , and  102 - 2 . Station  101  is a legacy station, and stations  102 - 1  and  102 - 2  are enhanced stations. Station  101 , as a legacy station, is capable of transmitting and receiving on a shared communications channel in accordance with a first modulation scheme only, such as complementary code keying (CCK). In contrast, stations  102 - 1  and  102 - 2  are capable, as enhanced stations, of transmitting and receiving on the shared communications channel in accordance with either a first modulation scheme or a second modulation scheme. An example of the second modulation scheme is orthogonal frequency division multiplexing (OFDM). Consequently, station  101  and station  102 - 2  must communicate with each other using the first modulation scheme. Stations  102 - 1  and  102 - 2 , however, are able to communicate with each other using either the first or second modulation scheme.  
           [0004]    Stations  102 - 1  and  102 - 2  communicate with each other using the second modulation scheme whenever possible, since doing so can optimize (e.g., speed up, etc.) communications. One effect of using the second modulation scheme, however, is that station  101  cannot detect the communications between station  102 - 1  and  102 - 2  (i.e., stations  102 - 1  and  102 - 2  are essentially invisible to station  101  when stations  102 - 1  and  102 - 2  are communicating using the second modulation scheme).  
         SUMMARY OF THE INVENTION  
         [0005]    One technique that makes an enhanced station visible to a legacy station involves having the enhanced station transmit a control frame using a legacy modulation scheme before transmitting a data frame using an enhanced modulation scheme. In some protocols, a station can select between multiple control frames, such as request_to_send and clear_to_send frames. Having this flexibility might seem desirable, but in fact, selecting the “wrong” control frame can result in a loss of transmission efficiency on the shared communications channel.  
           [0006]    To illustrate the drawback, suppose that an enhanced station selects a clear_to_send frame as the control frame to be transmitted via the legacy modulation scheme. In this case, if a collision occurs, the station will not be aware that a collision has occurred until after the station has also transmitted the subsequent data frame and has experienced a timeout. Furthermore, the longer the data frame, the costlier the collision, in terms of lost bandwidth and time. In contrast, if the enhanced station selects a request_to_send frame as the control frame to be transmitted via the enhanced modulation scheme and if a collision occurs, the station becomes aware that a collision has occurred as soon as it times out, having not received a corresponding clear_to_send. Therefore, it appears that a request_to_send frame is better to use than a clear_to_send frame. There is, however, a cost in always using a request_to_send as the control frame, since the corresponding clear_to_send frame must always be received before the data frame can be sent, consuming bandwidth.  
           [0007]    The present invention addresses this frame selection dilemma by selecting a control frame to transmit before a data frame, wherein the selection of the control frame at a transmitting station is based on the length of time required to transmit the data frame. If the length of time is large, then the transmitting station selects a first frame as the control frame. If the length of time is small, then the transmitting station selects a second frame as the control frame.  
           [0008]    Some embodiments of the present invention account for the collision threshold applicable to the shared communications channel in use. The collision threshold represents the relative amount of collisions occurring or expected to occur.  
           [0009]    The illustrative embodiment of the present invention comprises: selecting a control frame from a first frame and a second frame to transmit before a data frame wherein the selection of the control frame is based on the length of time required to transmit the data frame; transmitting the control frame on a shared-communications channel in accordance with a first modulation scheme; and transmitting the data frame on the shared-communications channel in accordance with a second modulation scheme that is different than the first modulation scheme. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]    [0010]FIG. 1 depicts a schematic diagram of a portion of wireless local area network  100  in the prior art.  
         [0011]    [0011]FIG. 2 depicts host computer  201  and station  202  in accordance with the illustrative embodiment of the present invention.  
         [0012]    [0012]FIG. 3 depicts a block diagram of the salient components of station  202  in accordance with the illustrative embodiment of the present invention.  
         [0013]    [0013]FIG. 4 depicts a flowchart of the illustrative embodiment of the present invention.  
         [0014]    [0014]FIG. 5 depicts a schematic diagram of a request_to_send control frame in accordance with the illustrative embodiment of the present invention.  
         [0015]    [0015]FIG. 6 depicts a schematic diagram of a clear_to_send control frame in accordance with the illustrative embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0016]    [0016]FIG. 2 depicts a block diagram of the salient components of host computer  201  and station  202  in accordance with the illustrative embodiment of the present invention. Host computer  201  is capable of generating data messages and transmitting those data messages to station  202 . Host computer  201  is also capable of receiving data messages from station  202  and of processing and using the data contained within those data messages. It will be clear to those skilled in the art how to make and use host computer  201 .  
         [0017]    Station  202  is capable of receiving data messages from host computer  201  and transmitting over a shared communications channel data frames comprising the data received from host computer  201 . Station  202  is also capable of receiving data frames from the shared communications channel and sending to host computer  201  data messages comprising data from the data frames. It will be clear to those skilled in the art, after reading this specification, how to make and use station  202 .  
         [0018]    [0018]FIG. 3 depicts a block diagram of the salient components of station  202  in accordance with the illustrative embodiment of the present invention. Station  202  comprises receiver  301 , processor  302 , memory  303 , and transmitter  304 , interconnected as shown.  
         [0019]    Receiver  301  is a circuit that is capable of receiving frames from the shared communications channel, in well-known fashion, and of forwarding them to processor  302 . The frames include both data frames and control frames. Examples of control frames include request_to_send, clear_to_send, and acknowledgement frames. It will be clear to those skilled in the art how to make and use receiver  301 .  
         [0020]    Processor  302  is a general-purpose processor that is capable of performing the tasks described below and with respect to FIGS. 4, 5, and  6 . It will be clear to those skilled in the art, after reading this specification, how to make and use processor  302 .  
         [0021]    Memory  303  is capable of storing programs and data used by processor  302 . It will be clear to those skilled in the art how to make and use memory  303 .  
         [0022]    Transmitter  304  is a circuit that is capable of receiving frames from processor  302 , in well-known fashion, and of transmitting them on the shared communications channel. It will be clear to those skilled in the art, after reading this specification, how to make and use transmitter  304 .  
         [0023]    [0023]FIG. 4 depicts a flowchart of the salient tasks performed by the illustrative embodiment of the present invention. It will be clear to those skilled in the art which tasks depicted in FIG. 4 can be performed simultaneously or in a different order than that depicted.  
         [0024]    At task  401 , processor  302  receives data from host computer  201 , parses the data into one or more frames, in well-known fashion, and stores the frames into memory  303 .  
         [0025]    Before transmitting the data received from host computer  201 , processor  302  at task  402  selects a control frame from a first frame and second frame. The first frame and second frame, essentially “candidate” frames, are described in detail below. Processor  302  makes the selection based on the length of time required to transmit the first data frame from the portion of data to be transmitted. Processor  302  selects the control frame for the purpose of transmitting the control frame before transmitting one or more data frames.  
         [0026]    In accordance with the illustrative embodiment of the present invention, the length of time required to transmit a data frame is compared against a mathematical expression. The expression comprises the length of time required to transmit the first candidate frame, D 1 ; the length of time required to transmit the second candidate frame, D 2 ; and the collision fraction, F, of the shared communications channel. It will be clear to those skilled in the art how to determine the length of time required to transmit the first candidate frame and the length of time required to transmit the second candidate frame.  
         [0027]    The collision fraction represents the fraction of transmissions on the shared communications channel that result in collisions. The collision fraction can be determined by estimation, by basing it on measurements of previous sent frames, or through some other method. The collision fraction can be a static property, or it can be updated over time. It will be clear to those skilled in the art how to determine and use the collision fraction.  
         [0028]    The average duration, D A , of a first IEEE 802.11 message sequence comprising a clear_to_send frame, followed by a data frame, followed by an acknowledgement frame is equal to:  
           D   A =(1− F )*( D   CTS   +D   Data   +D   Ack )+ F *( D   CTS   +D   Data )  (Eq. 1)  
         [0029]    wherein F is the collision threshold, and D CTs , D Data , and D Ack  refer to the lengths of time required to transmit the clear_to_send, data, and acknowledgement frames, respectively, accounting for the intermediate time intervals contributed by interframe spaces (e.g., short interframe space, etc.). Similarly, the average duration, D B , of a second IEEE 802.11 message sequence comprising a request_to_send frame, followed by a clear_to_send frame, followed by a data frame, followed by an acknowledgement frame is equal to:  
           D   B =(1− F )*( D   RTS   +D   CTs   +D   Data   +D   Ack )+ F *( D   RTS )  (Eq. 2)  
         [0030]    wherein F is the collision threshold, and D RTS , D CTS , D Data , and D ACk  refer to the lengths of time required to transmit the request_to_send, clear_to_send, data, and acknowledgement frames, respectively, accounting for the intermediate time intervals contributed by interframe spaces.  
         [0031]    By setting D A  and D B  equal to each other and solving for D Data , the value for D Data  at which the use of either message sequence results in equal levels of optimization is determined to be equal to:  
         ( D   1   −D   2   *F )/ F   (Eq. 3)  
         [0032]    wherein D 1  and D 2  are generalizations of D RTS  and D CTS , respectively.  
         [0033]    At task  403 , transmitter  304  transmits the control frame on the shared communications channel. Transmitter  304  transmits the control frame in accordance with a first modulation scheme. An example of a first modulation scheme is complementary code keying, which is known in the art.  
         [0034]    At task  404 , transmitter  304  transmits the data frame on the shared communications channel. Transmitter  304  transmits the data frame in accordance with a second modulation scheme. An example of a second modulation scheme is orthogonal frequency division multiplexing, which is known in the art. The modulation scheme used to transmit the data frame can be the same as the modulation scheme used to transmit the control frame, or it can be different.  
         [0035]    [0035]FIG. 5 depicts a block diagram of a first type of control frame in accordance with the illustrative embodiment of the present invention. The request_to_send frame depicted is the first of two possible frames selected as the control frame and transmitted by station  202 . The request_to_send frame, when received by any station, has the effect of invoking the virtual carrier-sense mechanism of that station, as is known in the art.  
         [0036]    The virtual carrier-sense mechanism in IEEE 802.11 relies on a two-octet duration field, depicted in FIG. 5 along with other fields. The duration field contains a value that is used by the receiving station to update, in well-known fashion, the network allocation vector (NAV) that is part of the virtual carrier-sensing mechanism. The value in the duration field is based on the length of time required to transmit the one or more frames associated with the request_to_send frame. Typically, the value in the duration field is also based on an estimate of the length of time covering:  
         [0037]    transmission of the corresponding clear_to_send frame sent back to station  202 ;  
         [0038]    transmission of the subsequent data frames;  
         [0039]    transmission of the acknowledgement frames that correspond to the data frames; and  
         [0040]    any required spacing between the individual frames.  
         [0041]    It will be clear to those skilled in the art how to create and use a request_to_send frame.  
         [0042]    [0042]FIG. 6 depicts a block diagram of a second type of control frame in accordance with the illustrative embodiment of the present invention. The clear_to_send frame depicted is the second of two possible frames selected as the control frame to be transmitted by station  202 . The clear_to_send frame, when received by any station, has the effect of invoking the virtual carrier-sense mechanism of that station, as is known in the art.  
         [0043]    The virtual carrier-sense mechanism in IEEE 802.11 relies on a two-octet duration field, depicted in FIG. 6 along with other fields. The duration field contains a value that is used by the receiving station to update, in well-known fashion, the network allocation vector (NAV) that is part of the virtual carrier-sensing mechanism. The value in the duration field is based on the length of time required to transmit the one or more frames associated with the clear_to_send frame. Typically, the value in the duration field is also based on an estimate of the length of time covering:  
         [0044]    transmission of the subsequent data frames;  
         [0045]    transmission of the acknowledgement frames that correspond to the data frames; and  
         [0046]    any required spacing between the individual frames.  
         [0047]    It will be clear to those skilled in the art how to create and use a clear_to_send frame.  
         [0048]    It is to be understood that the above-described embodiments are merely illustrative of the present invention and that many variations of the above-described embodiments can be devised by those skilled in the art without departing from the scope of the invention. It is therefore intended that such variations be included within the scope of the following claims and their equivalents.