Abstract:
A technique is disclosed for dealing with transmissions between telecommunications stations on a shared-communications channel that avoids some of the costs and disadvantages for doing so in the prior art. The present invention introduces transmission rules that alleviate timing constraints. By following the transmission rules in accordance with the illustrative embodiment of the present invention, stations exchanging data with each other can prepare frames for transmission far enough in advance to overcome timing constraints.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]    This application claims the benefit of U.S. Provisional Patent Application Serial No. 60/441,160, entitled “Efficient Polling, Poll Scheduling and Power Saving,” filed on Jan. 21, 2003 (Attorney Docket: 3655-0192P), which is incorporated by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates to telecommunications in general, and, more particularly, to local area networks.  
         BACKGROUND OF THE INVENTION  
         [0003]    [0003]FIG. 1 depicts a schematic diagram of local area network  100  in the prior art, which comprises point coordinator  101 ; telecommunication stations  102 - 1  through  102 -K, wherein K is a positive integer; and shared-communications channel  103 , interconnected as shown. Stations  102 - 1  through  102 -K enable associated host computers to communicate. Point coordinator  101 , a specialized station, enables stations  102 - 1  through  102 -K to communicate with each other.  
           [0004]    Each station in local area network  100  is able to transmit into shared-communications channel  103  a block of data called a “frame” to another station. To transmit the frame, the station has to follow a standard procedure to gain access to shared-communications channel  103 . A centralized polling protocol is one such procedure.  
           [0005]    In a centralized polling protocol, point coordinator  101  sends polls to stations  102 - 1  through  102 -K, granting them opportunities to transmit. Each polled station may transmit its buffered frames, each frame being acknowledged by point coordinator  101 . If point coordinator  101  has buffered frames destined for a polled station, station  102 - 3  as an example, point coordinator  101  may transmit these frames together with the poll. Since each station transmits only upon receiving a poll, transmission is contention-free.  
           [0006]    To improve the efficiency of frame exchange, according to the protocol, a transmitting station may combine in the same frame i) acknowledgements to a received frame and ii) data transfers. This is called “piggybacking.” Similarly, point coordinator  101  may also “piggyback” acknowledgements and data transfers, as well as polls, in the same frame. For example, during a frame exchange with point coordinator  101 , station  102 - 3  may piggyback an acknowledgement with a data transfer in the same frame if point coordinator  101  had previously transmitted a frame comprising data to station  102 - 3 . (The acknowledgement is necessary because the previously transmitted frame comprising data requires an acknowledgement.)  
           [0007]    Polling protocols require that frames be exchanged within a specified time interval. If the recipient does not acknowledge transmission within the time interval, the source will repeat the transmission. The problem is that the requirement can become difficult to meet if the response frame necessitates computationally intensive processing before transmission. For example, if the acknowledgement is to be piggybacked with a poll or data or both, the time required to generate the combined frame and encrypt it might be longer than the specified time interval.  
           [0008]    What is needed is a technique that deals with polled data exchanges between stations without some of the costs and disadvantages of doing so in the prior art.  
         SUMMARY OF THE INVENTION  
         [0009]    The present invention provides a technique for dealing with transmissions between telecommunications stations on a shared-communications channel that avoids some of the costs and disadvantages of doing so in the prior art. The present invention introduces transmission rules that alleviate timing constraints. By following the transmission rules in accordance with the illustrative embodiment of the present invention, stations exchanging data with each other can prepare frames for transmission far enough in advance to overcome timing constraints.  
           [0010]    A point coordinator, in some embodiments of the present invention, transmits all of the frames to a polled station one at a time and piggybacked with sequential polls, wherein some or all of the frames have been generated and stored in advance of receiving the corresponding frames from the polled station. Following the first frame, all subsequent frames comprise an acknowledgement and possibly data. The polled station might not require receiving an acknowledgement in a given frame and ignores the acknowledgement if it receives one. Generating a frame with the acknowledgement, however, enables the point coordinator to prepare the frame in advance, since the polled station might require the acknowledgement. In some embodiments, the point coordinator in advance of receiving the corresponding frames from the polled station can also perform additional processing of the frame, such as encrypting one or more of the frame bits.  
           [0011]    The polled station, in other embodiments, transmits all of the frames to the point coordinator one at a time, wherein some or all of the frames have been generated and stored in advance of receiving the corresponding frames from the point coordinator. When the polled station receives a data frame piggybacked to a poll, the station sends to the point coordinator an acknowledgement piggybacked to a data frame if the station has data to be sent. When the station receives an acknowledgement with a poll, the station still sends an acknowledgement piggybacked to a frame. The point coordinator might not require receiving an acknowledgement in a given frame and ignores the acknowledgement if it receives one. Generating a frame with the acknowledgement, however, enables the polled station to prepare the frame in advance, since the point coordinator might require the acknowledgement. In some embodiments, the station in advance of receiving the corresponding frames from the point coordinator can also perform additional processing of the frame, such as encrypting one or more of the frame bits.  
           [0012]    An illustrative embodiment of the present invention comprises: a processor for generating a first frame comprising a data payload and an acknowledgement; and a receiver for receiving via a shared-communications channel a second frame after the generating; wherein the acknowledgement is intended as a response to the second frame. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    [0013]FIG. 1 depicts a schematic diagram of wireless local area network  100  in the prior art.  
         [0014]    [0014]FIG. 2 depicts a schematic diagram of a portion of local area network  200  in accordance with the illustrative embodiment of the present invention.  
         [0015]    [0015]FIG. 3 depicts a block diagram of the salient components of point coordinator  201  in accordance with the illustrative embodiment of the present invention.  
         [0016]    [0016]FIG. 4 depicts a block diagram of the salient components of station  202 -i in accordance with the illustrative embodiment of the present invention.  
         [0017]    [0017]FIG. 5 depicts a flowchart of the salient tasks performed by station  202 -i in accordance with the illustrative embodiment of the present invention.  
         [0018]    [0018]FIG. 6 depicts a flowchart of the salient tasks performed by local area network  200  in accordance with the illustrative embodiment of the present invention.  
         [0019]    [0019]FIG. 7 depicts a first message flow diagram in accordance with the illustrative embodiment of the present invention.  
         [0020]    [0020]FIG. 8 depicts a second message flow diagram in accordance with the illustrative embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0021]    [0021]FIG. 2 depicts a schematic diagram of local area network  200  in accordance with the illustrative embodiment of the present invention. Local area network  200  operates in accordance with a set of protocols (e.g., IEEE 802.11, etc.). Local area network  200  comprises point coordinator  201 ; stations  202 - 1  through  202 -L, wherein L is a positive integer; host computers  203 - 1  through  203 -L, wherein L is a positive integer; and shared-communications channel  204 , interconnected as shown. It will be clear to those skilled in the art how to make and use shared-communications channel  204 .  
         [0022]    Point coordinator  201  coordinates communication by polling stations  202 - 1  through  202 -L to determine if they need to transmit frames.  
         [0023]    Station  202 -i is capable of receiving data payloads from host computer  203 -i and transmitting over shared-communications channel  204  frames comprising the data received from host computer  203 -i. Station  202 -i is also capable of receiving frames from shared communications channel  204  and sending to host computer  203 -i data payloads comprising data from the frames. It will be clear to those skilled in the art, after reading this specification, how to make and use station  202 -i.  
         [0024]    Host computer  203 -i is capable of generating data payloads and transmitting those data payloads to station  202 -i. Host computer  203 -i is also capable of receiving data payloads from station  202 -i and of processing and using the data contained within those data payloads. Host computer  203 -i can be, for example, a desktop computer, a laptop computer, a handheld digital assistant, or a packet-data-based telephone that uses local area network  200  to communicate with other host computers and devices. It will be clear to those skilled in the art how to make and use host computer  203 -i.  
         [0025]    [0025]FIG. 3 depicts a block diagram of the salient components of point coordinator  201  in accordance with the illustrative embodiment of the present invention. Point coordinator  201  comprises receiver  301 , processor  302 , memory  303 , and transmitter  304 , interconnected as shown.  
         [0026]    Receiver  301  is a circuit that is capable of receiving frames from shared-communications channel  204 , in well-known fashion, and of forwarding them to processor  302 . It will be clear to those skilled in the art how to make and use receiver  301 .  
         [0027]    Processor  302  is a general-purpose processor that is capable of performing the tasks described below and with respect to FIGS. 6 through 8. It will be clear to those skilled in the art, after reading this specification, how to make and use processor  302 .  
         [0028]    Memory  303  is capable of storing programs and data used by processor  302 . In particular, memory  303  can store frames that are generated ahead of time until the appropriate transmission times. It will be clear to those skilled in the art, after reading this specification, how to make and use memory  303 .  
         [0029]    Transmitter  304  is a circuit that is capable of receiving frames from processor  302 , in well-known fashion, and of transmitting them on shared-communications channel  204 . It will be clear to those skilled in the art how to make and use transmitter  304 .  
         [0030]    Point coordinator  201  transmits all of the frames stored for station  202 -i one at a time and piggybacked with sequential polls. Following the first frame, which might or might not comprise data, all subsequent frames comprise an acknowledgement and possibly data. Station  202 -i might not require receiving an acknowledgement in a given frame, but generating a frame with the acknowledgment enables the frame to be prepared in advance. If point coordinator  201  has no data to send or when point coordinator  201  has transmitted all of its prepared and stored frames comprising data that are intended for station  202 -i, point coordinator  201  sends a poll frame, a poll-plus-acknowledgement frame, or an acknowledgement frame.  
         [0031]    When point coordinator  201  receives a frame comprising data from station  202 -i, point coordinator  201  responds with either i) a data-plus-acknowledgement-plus-poll frame if there is stored data or ii) an acknowledgement-plus-poll frame otherwise. If point coordinator  201  has no frames stored when it receives a null-plus-acknowledgement frame from station  202 -i, point coordinator  201  responds with an acknowledgement frame. A null frame (regardless of whatever else the frame comprises) is a data frame of subtype “null” and has no data payload.  
         [0032]    In some networks, point coordinator  201  is alternatively referred to as a “hybrid coordinator.” In other networks, the functionality that embodies point coordinator  201  resides within an access point. It will be clear to those skilled in the art how to make and use an access point.  
         [0033]    [0033]FIG. 4 depicts a block diagram of the salient components of station  202 -i in accordance with the illustrative embodiment of the present invention. Station  202 -i comprises receiver  401 -i, processor  402 -i, memory  403 -i, and transmitter  404 -i, interconnected as shown.  
         [0034]    Receiver  401 -i is a circuit that is capable of receiving frames from shared-communications channel  204 , in well-known fashion, and of forwarding them to processor  402 -i. It will be clear to those skilled in the art how to make and use receiver  401 -i.  
         [0035]    Processor  402 -i is a general-purpose processor that is capable of performing the tasks described below and with respect to FIGS. 5 through 8. It will be clear to those skilled in the art, after reading this specification, how to make and use processor  402 -i.  
         [0036]    Memory  403 -i is capable of storing programs and data used by processor  402 -i. In particular, memory  403 -i can store frames that are generated ahead of time until the appropriate transmission times. It will be clear to those skilled in the art, after reading this specification, how to make and use memory  403 -i.  
         [0037]    Transmitter  404 -i is a circuit that is capable of receiving frames from processor  402 -i, in well-known fashion, and of transmitting them on shared-communications channel  204 . It will be clear to those skilled in the art how to make and use transmitter  404 -i.  
         [0038]    When station  202 -i receives a data frame piggybacked to a poll, station  202 -i sends either i) an acknowledgement piggybacked to a data frame to point coordinator  201 , if there is a frame comprising data stored at the station, or ii) a null-plus-acknowledgement frame. When station  202 -i receives an acknowledgement with a poll, station  202 -i responds with either i) an acknowledgement piggybacked to a frame, if there is a frame comprising data that is stored, or ii) a null-plus-acknowledgement frame. Point coordinator  201  might not require receiving an acknowledgement in a given frame, but generating a frame with the acknowledgment enables the frame to be prepared in advance.  
         [0039]    [0039]FIG. 5 depicts a flowchart of the salient tasks performed by station  202 -i (station  202 - 1  is used in the example) in accordance with the illustrative embodiment of the present invention. It will be clear to those skilled in the art which tasks depicted in FIG. 5 can be performed simultaneously or in a different order than that depicted. Furthermore, it will be clear to those skilled in the art, after reading this specification, how to perform the tasks depicted in FIG. 5 at point coordinator  201 , alone or in combination with performing the tasks at station  202 -i.  
         [0040]    At task  501 , in some embodiments, station  202 - 1  receives a data payload from host computer  203 -i. In other embodiments, station  202 - 1  itself generates the data payload. It will be clear to those skilled in the art how to generate a data payload for a particular application.  
         [0041]    At task  502 , station  202 - 1  generates a first frame comprising the data payload and an acknowledgement frame. In some embodiments, the first frame also comprises a poll (e.g., when the station generating the frame is a point coordinator, etc.). The acknowledgement is intended as a response to a second frame that is yet to be received by station  202 - 1 .  
         [0042]    At task  503 , in some embodiments, station  202 - 1  encrypts at least one bit of the first frame before receiving the second frame. In other embodiments, station  202 - 1  processes one or more bits of the first frame in a way other than encrypting, such as coding the bits, compressing the bits, filtering the bits, performing an application-specific operation on the bits, etc. In still other embodiments, station  202 - 1  does not perform any additional processing on the bits of the first frame.  
         [0043]    At task  504 , station  202 - 1  receives the second frame via shared-communications channel  204 . In some embodiments, station  202 - 1  receives the second frame from point coordinator  201 . In other embodiments, the second frame comprises an acknowledgement.  
         [0044]    At task  505 , station  202 - 1  transmits the first frame via shared-communications channel  204  after having received the second frame. In some embodiments, station  202 - 1  transmits the first frame to point coordinator  201 .  
         [0045]    [0045]FIG. 6 depicts a flowchart of the salient tasks performed by local area network  200  in accordance with the illustrative embodiment of the present invention. For illustrative purposes, point coordinator  201  exchanges frames with station  202 - 2 . It will be clear to those skilled in the art which tasks depicted in FIG. 6 can be performed simultaneously or in a different order than that depicted.  
         [0046]    At task  601 , in some embodiments, station  202 - 2  receives a data payload from host computer  203 -i. In other embodiments, station  202 - 2  itself generates the data payload. It will be clear to those skilled in the art how to generate a data payload for a particular application.  
         [0047]    At task  602 , local area network  200  generates a first frame comprising the data payload and a first acknowledgement frame. The acknowledgement is intended as a response to a second frame that is yet to be received by station  202 - 2 .  
         [0048]    At task  603 , in some embodiments, station  202 - 2  encrypts at least one bit of the first frame before receiving the second frame. In other embodiments, station  202 - 2  processes one or more bits of the first frame in a way other than encrypting, such as coding the bits, compressing the bits, filtering the bits, performing an application-specific operation on the bits, etc. In still other embodiments, station  202 - 2  does not perform any additional processing on the bits of the first frame.  
         [0049]    At task  604 , point coordinator  201  transmits a second frame comprising a first poll from point coordinator  201  to station  202 - 2  over shared-communications channel  204 .  
         [0050]    At task  605 , station  202 - 2  transmits the first frame to point coordinator  201  over shared-communications channel  204 . The first frame has been available since before the second frame was transmitted by point coordinator  201  (and received by station  202 - 2 ).  
         [0051]    At task  606 , point coordinator  201  transmits a third frame comprising a second acknowledgement and a second poll to station  202 - 2  over shared-communications channel  204 . The third frame has been available since before the first frame was transmitted by station  202 - 2  (and received by point coordinator  201 ).  
         [0052]    [0052]FIG. 7 depicts a first message flow diagram in accordance with the illustrative embodiment of the present invention. Point coordinator  201  has two data frames that have been generated and stored, and are ready for transmission: frame  701  and frame  703 . Frame  701  comprises data and a poll. Frame  703  comprises data, an acknowledgement, and a poll. Exemplary station  202 - 3  has five frames (including four data frames) that have been generated, are stored, and are ready for transmission: frame  702 , frame  704 , frame  706 , frame  708 , and frame  710 . Frames  702 ,  704 ,  706 , and  708  each comprise a data payload and an acknowledgement, and frame  710  comprises a null and an acknowledgement.  
         [0053]    In other embodiments than the one described, at least one of the frames in the message flow is generated in response to having received another frame, instead of being generated ahead of time.  
         [0054]    Point coordinator  201  and station  202 - 3  need to exchange their frames with each other. Point coordinator  201  initiates the exchange by transmitting frame  701  to station  202 - 3  over shared-communications channel  204 . In addition to polling station  202 - 3 , frame  701  conveys data.  
         [0055]    Station  202 - 3  transmits frame  702  to point coordinator  201  over shared-communications channel  204 . In addition to conveying data, frame  702  conveys an acknowledgement of the data transmitted in frame  701 .  
         [0056]    Point coordinator  201  transmits frame  703  to station  202 - 3 . In addition to polling station  202 - 3 , frame  703  conveys data and an acknowledgement of the data transmitted in frame  702 .  
         [0057]    Station  202 - 3  transmits frame  704  to point coordinator  201 . In addition to conveying data, frame  704  conveys an acknowledgement of the data transmitted in frame  703 .  
         [0058]    Point coordinator  201  transmits frame  705  to station  202 - 3 . In addition to polling station  202 - 3 , frame  705  conveys an acknowledgement of the data transmitted in frame  704 . Point coordinator  201  will send poll-plus-acknowledgement frames after transmitting all of its stored frames generated in advance until point coordinator  201  receives a frame comprising a null and an acknowledgement from station  202 - 3 .  
         [0059]    Station  202 - 3  transmits frame  706  to point coordinator  201 . In addition to conveying data, frame  706  conveys an acknowledgement, even though station  202 - 3  did not receive data in frame  705 . Point coordinator  201  ignores the redundant acknowledgement.  
         [0060]    Point coordinator  201  transmits frame  707  to station  202 - 3 . In addition to polling station  202 - 3 , frame  707  conveys an acknowledgement of the data transmitted in frame  706 .  
         [0061]    Station  202 - 3  transmits frame  708  to point coordinator  201 . In addition to conveying data, frame  708  conveys an acknowledgement, even though station  202 - 3  did not receive data in frame  707 . Point coordinator  201  ignores the redundant acknowledgement.  
         [0062]    Point coordinator  201  transmits frame  709  to station  202 - 3 . In addition to polling station  202 - 3 , frame  709  conveys an acknowledgement of the data transmitted in frame  708 .  
         [0063]    Station  202 - 3  transmits frame  710  to point coordinator  201 . In addition to comprising a null, frame  710  conveys an acknowledgement, even though station  202 - 3  did not receive data in frame  709 . Point coordinator  201  ignores the redundant acknowledgement.  
         [0064]    Having received a frame conveying a null and an acknowledgement, and not having any more data to transmit, point coordinator  201  as a result transmits frame  711  to station  202 - 3 . Frame  711  conveys an acknowledgement in response to frame  710 .  
         [0065]    [0065]FIG. 8 depicts a second message flow diagram in accordance with the illustrative embodiment of the present invention. Point coordinator  201  has three data frames that have been generated and stored, and are ready for transmission: frame  801 , frame  803  and frame  805 . Frame  801  comprises data and a poll. Frame  803  and  805  each comprise data, an acknowledgement, and a poll. Exemplary station  202 - 4  has two frames (including one data frame) that have been generated, are stored, and are ready for transmission: frame  802  and frame  804 . Frame  802  comprises a data payload and an acknowledgement, and frame  804  comprises a null and an acknowledgement.  
         [0066]    In other embodiments than the one described, at least one of the frames in the message flow is generated in response to having received another frame, instead of being generated ahead of time.  
         [0067]    Point coordinator  201  and station  202 - 4  need to exchange their frames with each other. Point coordinator  201  initiates the exchange by transmitting frame  801  to station  202 - 4  over shared-communications channel  204 . In addition to polling station  202 - 4 , frame  801  conveys data.  
         [0068]    Station  202 - 4  transmits frame  802  to point coordinator  201  over shared-communications channel  204 . In addition to conveying data, frame  802  conveys an acknowledgement of the data transmitted in frame  801 .  
         [0069]    Point coordinator  201  transmits frame  803  to station  202 - 4 . In addition to polling station  202 - 4 , frame  803  conveys data and an acknowledgement of the data transmitted in frame  802 .  
         [0070]    Station  202 - 4  transmits frame  804  to point coordinator  201 . In addition to comprising a null, frame  804  conveys an acknowledgement of the data transmitted in frame  803 . Station  202 - 4  will transmit a frame comprising a null and an acknowledgment in response to each poll after station  202 - 4  transmits all of its stored data frames generated in advance to point coordinator  201 .  
         [0071]    Point coordinator  201  transmits frame  805  to station  202 - 4 . In addition to polling station  202 - 4 , frame  805  conveys data. Frame  805  also conveys an acknowledgement, even though point coordinator  201  did not receive data in frame  804 . Station  202 - 4  ignores the redundant acknowledgement.  
         [0072]    Station  202 - 4  transmits frame  806  to point coordinator  201 . In addition to comprising a null, frame  806  conveys an acknowledgement of the data transmitted in frame  805 .  
         [0073]    Having received a frame conveying a null and an acknowledgement, and not having any more data to transmit, point coordinator  201  as a result transmits frame  807  to station  202 - 4 . Frame  807  conveys an acknowledgement in response to frame  806 .  
         [0074]    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.