CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/469,263, entitled “Variable-Width Modulation Schemes Featuring Backward-Compatible Local Area Network Operation,” filed on May 9, 2003, which is incorporated by reference.
FIELD OF THE INVENTION
The present invention relates to telecommunications in general, and, more particularly, to local area networks.
BACKGROUND OF THE INVENTION
FIG. 1 depicts a schematic diagram of a portion of wireless local area network 100 in the prior art. Local area network 100 comprises legacy stations 101-1 through 101-K, wherein K is a positive integer, and enhanced stations 102-1 through 102-L, wherein L is a positive integer. Legacy stations 101-1 through 101-K and enhanced stations 102-1 through 102-L use shared-communications medium 103 to communicate among themselves. Shared-communications medium 103 comprises multiple shared-communications channels. Only one of the stations can transmit into a given channel at a time, although one of the stations can transmit into a first channel while another station transmits into a second channel.
When two stations transmit into a given channel at the same time, the result is a cacophony and both transmissions are garbled. Prior art techniques, such as Carrier Sense Multiple Access, are used by the stations to coordinate when each of them transmits over a single shared-communications channel.
Legacy stations 101-1 through 101-K can transmit and receive using:
- i. a modulation scheme that uses one shared-communications channel at a time (i.e., a single-channel modulation scheme).
In contrast, enhanced stations 102-1 through 102-L can transmit and receive using:
- i. a modulation scheme that uses one shared-communications channel at a time (i.e., a single-channel modulation scheme), and
- ii. a modulation scheme that uses multiple shared-communications channels simultaneously (i.e., a multi-channel modulation scheme).
Any two stations that need to communicate must do so in accordance with a modulation scheme that is available to both of them. Therefore, two enhanced stations can communicate with each other by using a multi-channel modulation scheme, but any communication involving a legacy station must use a single-channel modulation scheme.
Enhanced stations 102-1 and 102-2, for example, communicate with each other by using the multi-channel modulation scheme when possible because it enhances communication throughput in comparison to the single-channel modulation scheme. One effect of using the multi-channel modulation scheme, however, is that legacy station 101-1, for example, cannot detect when enhanced stations 102-1 and 102-2 are communicating (i.e., enhanced stations 102-1 and 102-2 are essentially undetectable by legacy station 101-1 when enhanced stations 102-1 and 102-2 are communicating by using the multi-channel modulation scheme). This can cause legacy station 101-1 to transmit when enhanced stations 102-1 and 102-2 are communicating, which causes all of the transmissions to be garbled.
Even if enhanced station 102-1 successfully transmits the data block to enhanced station 102-2, enhanced station 102-2 might subsequently have difficulty transmitting an acknowledgment of the data block back to enhanced station 102-1. The difficulty in transmitting the acknowledgment is attributed to the same reason of enhanced nodes being undetectable that was described earlier. In the event of an unsuccessful acknowledgment transmission, enhanced station 102-1 has to re-transmit the data block in its entirety.
What is needed is a way to improve data transmission over multiple shared-communications channels without some of the performance disadvantages in the prior art.
SUMMARY OF THE INVENTION
The present invention provides a technique that improves the efficiency of transmitting data over multiple shared-communications channels without some of the costs and disadvantages associated with techniques in the prior art. In particular, and in accordance with the illustrative embodiment of the present invention, a data frame is simultaneously transmitted across a plurality of channels, but the acknowledgment frame to the data frame is not. Instead, a plurality of redundant acknowledgment frames are generated and each one is transmitted independently and within each of the channels used to transmit the data frame.
For example, a single data frame is transmitted across two channels, and a redundant acknowledgment frame is transmitted in each of the two channels in legacy mode. Although a single acknowledgment frame could be transmitted across the two channels, the transmission of redundant acknowledgment frames in each channel is advantageous because it increases the likelihood that the acknowledgment will be received. The likelihood that the acknowledgment will be received is increased in accordance with the present invention because the acknowledgment will be received even when one of the channels is unusable, whereas the disruption of either channel would prevent the reception of an acknowledgment frame that spans two channels.
When the likelihood that the acknowledgment will be received is increased, the number of unnecessary data retransmissions is reduced, which saves channel bandwidth.
The station receiving the acknowledgment, in some embodiments, can take action based on (i) the contents of the received acknowledgment frame or frames and (ii) the channel or channels over which the acknowledgment was received. For example, depending on the indications provided in a received acknowledgment and the channel over which the acknowledgment was received, the station might decide to re-transmit some of the data block or the entire data block over one or more shared-communications channels, or the station might decide that a re-transmission is unnecessary.
In some embodiments of the present invention, before transmitting the data frame, a station transmits a control frame (e.g., a clear_to_send frame, etc.) into each communications channel to ensure that the communications channel is available. The multiple control frames specify a duration value that protects the subsequent transmission over multiple channels.
An illustrative embodiment of the present invention comprises: receiving a first portion of a data block on a first shared-communications channel; receiving a second portion of the data block on a second shared-communications channel; transmitting a first acknowledgment frame into the second shared-communications channel only, wherein the first acknowledgment frame indicates receipt of the first portion of the data block; and transmitting a second acknowledgment frame into the first shared-communications channel only, wherein the second acknowledgment frame indicates receipt of the second portion of the data block.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts a schematic diagram of wireless local area network 100 in the prior art.
FIG. 2 depicts a schematic diagram of a portion of network 200 in accordance with the illustrative embodiment of the present invention.
FIG. 3 depicts a block diagram of the salient components of station 203-j in accordance with the illustrative embodiment of the present invention.
FIG. 4 depicts a flowchart of the salient tasks performed in accordance with the first illustrative embodiment of the present invention.
FIG. 5 depicts a message flow diagram in accordance with the first illustrative embodiment of the present invention.
FIG. 6 depicts a flowchart of the salient tasks performed in accordance with the second illustrative embodiment of the present invention.
FIG. 7 depicts a message flow diagram in accordance with the second illustrative embodiment of the present invention.
DETAILED DESCRIPTION
FIG. 2 depicts a schematic diagram of network 200 in accordance with the illustrative embodiment of the present invention. Network 200 operates in accordance with the IEEE 802.11 set of protocols and comprises legacy stations 201-1 through 201-M, wherein M is a positive integer; legacy host computers 202-1 through 202-M; enhanced stations 203-1 through 203-N, wherein N is a positive integer; host computers 204-1 through 204-N; and wireless communications medium 205, interconnected as shown. Wireless communications medium 205 comprises shared-communications channels 206-1 through 206-P.
It will be clear to those skilled in the art, after reading this specification, how to make and use embodiments of the present invention that operate in accordance with other protocols. Furthermore, it will be clear to those skilled in the art, after reading this specification, how to make and use embodiments of the present invention that use a wireline or tangible communications medium.
Legacy station 201-i, for i=1 through M, comprises the radios that enable legacy host computer 202-i to communicate via communications medium 205 by using a single shared-communications channel 206-k at a time, wherein k is a value between 1 and P, inclusive. Legacy station 201-i is capable of receiving data blocks from legacy host computer 202-i and transmitting over communications medium 205 data frames comprising the data received from legacy host computer 202-i. Legacy station 201-i is also capable of receiving data frames from shared communications channel 205 and sending to legacy host computer 202-i data blocks comprising data from the data frames. It will be clear to those skilled in the art how to make and use legacy station 201-i.
Legacy host computer 202-i is capable of generating data blocks and transmitting those data blocks to legacy station 201-i. Legacy host computer 202-i is also capable of receiving data blocks from legacy station 201-i and of processing and using the data contained within those data blocks. Legacy host computer 202-i can be, for example, a desktop or a laptop computer that uses network 200 to communicate with other hosts and devices. It will be clear to those skilled in the art how to make and use legacy host computer 202-i.
Enhanced station 203-j (or, concisely, “station” 203-j), for j=1 through N, comprises the radios that enable host computer 204j to communicate via communications medium 205 by using one or more of shared-communications channels 206-1 through 206-P at a time. Station 203-j is capable of receiving data blocks from host computer 204-j and transmitting over communications medium 205 data frames comprising the data received from host computer 204-j. Station 203-j is also capable of receiving data frames from shared communications channel 205 and sending to host computer 204-j data blocks 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 203-j. The salient details for station 203-j are described below and with respect to FIG. 3.
Host computer 204-j is capable of generating data blocks and transmitting those data blocks to station 203-j. Host computer 204-j is also capable of receiving data blocks from station 203-j and of processing and using the data contained within those data blocks. Host computer 204-j can be, for example, a desktop or a laptop computer that uses network 200 to communicate with other hosts and devices. It will be clear to those skilled in the art how to make and use host computer 204-j.
In some embodiments, station 203j, wherein j is equal to a value between 1 and N, inclusive, is an access point as is known in the art. Station 203j, when functioning as an access point, enables other stations 203-1 through 203-N within network 200 to communicate with devices in other communications networks. Furthermore, stations 203-1 through 203-N communicate with each other through the access point, because the access point can be used to coordinate communications on network 200.
Communications medium 205 comprises one or more shared-communications channels 206-k, for k=1 through P. Shared-communications channel 206-k exists in a variety of forms. For example, each shared-communications channel 206-k can correspond to a given block of frequency spectrum out of multiple blocks, contiguous or otherwise. It will be clear to those skilled in the art how to allocate one or more shared-communications channels 206-k, for k=1 through P.
FIG. 3 depicts a block diagram of the salient components of station 203-j in accordance with the illustrative embodiment of the present invention. Station 203-j comprises receiver 301-j, processor 302-j, memory 303-j, and transmitter 304-j, interconnected as shown.
Receiver 301-j is a circuit that is capable of receiving frames from one or more of shared-communications channels 206-1 through 206-P, in well-known fashion, and of forwarding them to processor 302-j. It will be clear to those skilled in the art how to make and use receiver 301-j.
Processor 302-j is a general-purpose processor that is capable of performing the tasks described below and with respect to FIGS. 4 through 7. It will be clear to those skilled in the art, after reading this specification, how to make and use processor 302-j.
Memory 303-j is capable of storing programs and data used by processor 302-j. It will be clear to those skilled in the art how to make and use memory 303-j.
Transmitter 304-j is a circuit that is capable of receiving frames from processor 302-j, in well-known fashion, and of transmitting them on one or more of shared-communications channels 206-1 through 206-P. It will be clear to those skilled in the art how to make and use transmitter 304-j.
FIG. 4 depicts a flowchart in accordance with the first illustrative embodiment of the present invention. In the example depicted, station 203-1 exchanges frames with station 203-2. It will be clear to those skilled in the art, after reading this specification, how to make and use stations that exchange frames in the manner depicted.
For pedagogical purposes, two shared-communications channels are used throughout the examples in this specification. It will be clear, however, to those skilled in the art, after reading this specification, how to apply the illustrative embodiment of the present invention to two or more shared-communications channels.
At task 401, in some embodiments, station 203-1 transmits a first control frame on shared-communications channel 206-1 in well-known fashion. In some embodiments, the first control frame is a request_to_send frame or a clear_to_send frame, as is known in the art. It will be clear to those skilled in the art how to make and use a control frame.
Station 203-1, in some embodiments, also transmits a second control frame on shared-communications channel 206-2. In some embodiments, the second control frame is a request_to_send frame or a clear_to_send frame, as is known in the art.
Station 203-1, in some embodiments, transmits the first and second control frame at substantially the same time. Transmitting the first and second control frame at substantially the same time and with the duration fields set to an effective value has the effect of protecting a pending data block transmission that utilizes both shared-communications channel 206-1 and 206-2. It will be clear to those skilled in the art how to set the duration field to a value that is effective in covering the time interval of a subsequent data transmission. In this specification, control frames transmitted in this fashion are referred to as providing “stacked protection.”
At task 402, station 203-1 transmits to station 203-2 a first portion of a data block on shared-communications channel 206-1, in well-known fashion.
At task 403, station 203-1 transmits to station 203-2 a second portion of the data block on shared-communications channel 206-2, in well-known fashion. In some embodiments, the first portion corresponds to the part of a multi-channel-modulated signal that utilizes shared-communications channel 206-1, while the second portion corresponds to the part of the same multi-channel-modulated signal that utilizes shared-communications channel 206-2. Stated differently, the first portion and the second portion constitute the same modulated signal. In other embodiments, the first portion corresponds to a first collection of bits constituting a data block, while the second portion corresponds to a second collection of bits constituting the same data block. It will be clear to those skilled in the art how to allot portions of a data block across multiple shared-communications channels in other ways.
Station 203-1, in some embodiments, transmits the first portion and the second portion of the data block at substantially the same time.
At task 404, station 203-2 receives the first portion of the data block.
At task 405, station 203-2 receives the second portion of the data block.
At task 406, station 203-2 transmits to station 203-1 a first acknowledgment frame on shared-communications channel 206-2. The first acknowledgment frame comprises an indication of having received (i) the first portion of the data block, (ii) the second portion of the data block, or (iii) both. In other embodiments, the first acknowledgment frame comprises an indication of having received either (i) all of the transmitted portions of the data block or (ii) not all of the transmitted portions of the data block. It will be clear to those skilled in the art how to provide the indication in the first acknowledgment frame.
At task 407, station 203-2 transmits to station 203-1 a second acknowledgment frame on shared-communications channel 206-1. The second acknowledgment frame comprises an indication of having received (i) the first portion of the data block, (ii) the second portion of the data block, or (iii) both. It will be clear to those skilled in the art how to provide the indication in the second acknowledgment frame.
Station 203-2, in some embodiments, transmits the first acknowledgment frame and second acknowledgment frame at substantially the same time.
At task 408, station 203-1 receives the first acknowledgment frame.
At task 409, station 203-1 receives the second acknowledgment frame.
In some embodiments, station 203-1 transmits an additional portion of the data block after receiving one or both of the first and second acknowledgment frames. Station 203-1, in some embodiments, transmits the additional portion of the data block on one shared-communications channel 206-k (e.g., shared-communications channel 206-1, etc.). In other embodiments, station 203-1 transmits the additional portion of the data block on more than one shared-communications channel 206-k.
FIG. 5 depicts a message flow diagram in accordance with the first illustrative embodiment of the present invention. In the two examples depicted, station 203-1 exchanges frames with station 203-2. It will be clear to those skilled in the art, after reading this specification, how to make and use stations that exchange frames in the manner depicted.
In the first example, station 203-1 transmits clear_to_send control frames 501 and 502 in well-known fashion. Each of control frames 501 and 502 specify a duration value as is known in the art that protects the pending transmission of a data block on shared-communications channel 206-1 and concurrently on shared-communications channel 206-2.
Station 203-1 then transmits to station 203-2 data block 503 using both shared-communications channels 206-1 and 206-2.
Upon receiving data block 503, station 203-2 transmits to station 203-1 acknowledgment frames 504 and 505 in well-known fashion. Acknowledgment frames 504 and 505 each comprise an indication of the channel or channels on which data block 503 was received.
In the second example, station 203-1, an access point in this example, transmits poll frames 506 and 507 in well-known fashion. Each of poll frames 506 and 507 specify a duration value as is known in the art that protects the pending transmission of a data block on shared-communications channel 206-1 and concurrently on shared-communications channel 206-2.
Station 203-1 then transmits to station 203-2 data block 508 using both shared-communications channels 206-1 and 206-2.
Upon receiving data block 508, station 203-2 transmits to station 203-1 acknowledgment frames 509 and 510 in well-known fashion. Acknowledgment frames 509 and 510 each comprise an indication of the channel or channels on which data block 508 was received.
FIG. 6 depicts a flowchart in accordance with the second illustrative embodiment of the present invention. In the example depicted, station 203-3 processes frames in accordance with the illustrative embodiment.
At task 601, station 203-3 receives an acknowledgment after having transmitted a data block via both shared-communications channels 206-1 and 206-2. The acknowledgment indicates receipt of at least one portion of the data block on (i) shared-communications channel 206-1, (ii) shared-communications channel 206-2, or (iii) both.
At task 602, station 203-3 evaluates the received acknowledgment. Station 203-3 checks if the acknowledgment was received on both channels or one channel. Station 203-3 checks each acknowledgment frame received for an indication of the channel or channels over which the data block was successfully received.
At task 603, station 203-3 re-transmits a portion of the data block. Station 203-3 re-transmits on one of or both shared-communications channels 206-1 and 206-2. In accordance with the illustrative embodiment of the present invention, station 203-3 chooses the channel or channels over which to re-transmit based on the evaluation performed at task 602.
FIG. 7 depicts a message flow diagram in accordance with the second illustrative embodiment of the present invention. In the two examples depicted, station 203-3 exchanges frames with station 203-4 in accordance with the illustrative embodiment.
In the first example depicted, station 203-3 transmits data block 701 to station 203-4 in well-known fashion. Data block 701 comprises a first portion that is transmitted on shared-communications channel 206-1 and a second portion that is transmitted on shared-communications channel 206-2.
Station 203-4 receives the first portion of data block 701 on shared-communications channel 206-1. As part of the example, station 203-4 does not receive the second portion of data block 701. Station 203-4 transmits to station 203-3 first acknowledgment frame 702 indicating that has received the first portion of data block 701.
Acknowledgment frame 702 comprises fields that are used to indicate receipt of the corresponding portions of data. For instance, the fields can indicate the particular portion of data received, the shared-communications channel over which the portion was received, etc.
Station 203-3 then receives first acknowledgment frame 702 on shared-communications channel 206-1 from station 203-4. Station 203-3 determines that it only received an acknowledgment frame (i.e., acknowledgment frame 702) on shared-communications channel 206-1 and that received acknowledgment frame 702 indicated that only the first portion of data block 701 was received by station 203-4 and on shared-communications channel 206-1.
Consequently, station 203-3 re-transmits the second portion of data block 701, in the form of data block 703, on shared-communications channel 206-1. Station 203-3 bases this decision on the contents of received acknowledgment 702 and on the shared-communications channel on which acknowledgment 702 was received (i.e., shared-communications channel 206-1).
In the second example depicted, station 203-3 transmits data block 704 to station 203-4 in well-known fashion. Data block 704 comprises a first portion that is transmitted on shared-communications channel 206-1 and a second portion that is transmitted on shared-communications channel 206-2.
The difference of the second example from the first example is that station 203-4 receives the second portion of data block 704 on shared-communications channel 206-2. Also, station 203-4 does not receive the first portion of data block 704. Station 203-4 transmits to station 203-3 first acknowledgment frame 705 indicating that it has received the second portion of data block 704.
Station 203-3 then receives first acknowledgment frame 705 on shared-communications channel 206-1 from station 203-4. Station 203-3 determines that it only received an acknowledgment frame (i.e., acknowledgment frame 705) on shared-communications channel 206-1 and that received acknowledgment frame 705 indicated that only the second portion of data block 704 was received by station 203-4 and on shared-communications channel 206-2.
Consequently, station 203-3 re-transmits the first portion of data block 704, in the form of data block 706, using both shared-communications channels 206-1 and 206-2. Station 203-3 bases this decision on the contents of received acknowledgment 705 and on the shared-communications channel on which the acknowledgment was received (i.e., shared-communications channel 206-1).
It will be clear to those skilled in the art that other outcomes are possible, with respect to re-transmitting portions of data blocks based on the contents of an acknowledgment, the shared-communications channel on which the acknowledgment was received, and other conditions.
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. For example, in this Specification, numerous specific details are provided in order provide a thorough description and understanding of the illustrative embodiments of the present invention. Those skilled in the art will recognize, however, that the invention can be practiced without one or more of those details, or with other methods, materials, components, etc.
Furthermore, in some instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the illustrative embodiments. It is understood that the various embodiments shown in the Figures are illustrative, and are not necessarily drawn to scale. Reference throughout the specification to “one embodiment” or “an embodiment” or “some embodiments” means that a particular feature, structure, material, or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the present invention, but not necessarily all embodiments. Consequently, the appearances of the phrase “in one embodiment,” “in an embodiment,” or “in some embodiments” in various places throughout the Specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments. It is therefore intended that such variations be included within the scope of the following claims and their equivalents.