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.