[0001] REDUCING LATENCY WHEN TRANSMITTING
ACKNOWLEDGEMENTS IN MESH NETWORKS
[0002] FIELD OF INVENTION
[0003] The present invention relates generally to wireless local area networks (WLANs) and, more particularly, to a method for reducing latency in transmitting acknowledgements (ACKs) in a mesh network.
[0004] BACKGROUND
[0005] In an 802.11 wireless local area network (WLAN) setting, one type of network that can be created is a mesh network, which involves several stations (STAs) or nodes communicating directly with each other, rather than through an access point (AP). Two problems in WLANs are especially prevalent in mesh networks: hidden node and exposed node.
[0006] Figures Ia and Ib show a general overview of the hidden node problem. The hidden node problem results from the scenario in which, as shown in Figure Ia, node A is within range of node B and node C is within range of node B, but node A is not within range of node C. In this setting, node A and node C are "hidden" from each other. If both node A and node C attempt to send information to node B at the same time, there will be a collision at node B, as shown in Figure Ib.
[0007] The use of the request-to-send (RTS)/clear-to-send (CTS) virtual carrier-sense mechanism can prevent some of the hidden node problems, but not all. A node that wants to transmit (a source node) sends an RTS frame to the intended recipient node (a destination or target node). The RTS frame can also be heard by all nodes within the range of the source node. The destination node replies to the RTS frame by sending a CTS frame to the source node. As with the RTS frame, the CTS frame can be heard by all nodes within range of the destination node.
[0008] The RTS/CTS mechanism can cause additional problems when used in a mesh network. Figure 2 shows a mesh network with four nodes (A, B, C, and D), where node A is a source node, node B is a destination node, node C is a
hidden destination node, and node D is a source node. In the example shown in Figure 2, node A sends an RTS frame. Because node C is hidden from node A, it does not hear the RTS from node A. Node B receives the RTS frame and replies with a CTS frame.
[0009] At the same time node B transmits its CTS frame, node D sends an
RTS frame. Both the CTS frame from node B and the RTS frame from node D are received at node C at the same time, causing a collision at node C. This collision prevents node C from responding to node D's RTS frame, requiring node D to retransmit the RTS frame. At the same time of the collision at node C, node A receives the CTS frame from node B and prepares to begin its data transmission. [0010] While node A is beginning its data transmission, node C receives the second RTS frame from node D. Node C replies to the second RTS from node D, and the CTS frame from node C is also heard by node B. At the same time, the data transmission arrives from node A, causing a collision at node B. This example illustrates that overhearing a CTS (at node C) from neighboring nodes (node B) over the same channel can inhibit a remote node (node D) from transmitting to its neighboring nodes (node C).
[0011] The exposed node problem results from a scenario like that shown in
Figure 3, where a node that overhears communications intended for another node is prevented from transmitting to a remote node. For example, node B sends a CTS, which is received by both node A and node C. When node C receives the CTS, it enters a backoff period, thereby preventing it from sending its own RTS. Due to the unintentional backoff in the mesh configuration, this behavior has a large impact on the overall system performance. The exposed node problem can prevent independent parallel communication among other mesh points over the same channel.
[0012] Each node has a network allocation vector (NAV) table which contains the remaining time of packet transmission of the neighboring nodes. Nodes conduct virtual carrier-sense detection and when the channel is physically sensed to be idle and the NAV table is empty, the source node sends an RTS packet. All other idle nodes, upon hearing an RTS, update their NAV table and
defer their own transmissions (i.e., enter a backoff period). The destination node sends a CTS packet to respond to the RTS packet. Nodes neighboring the destination node overhear the CTS and update their NAV tables. After receiving the CTS, the source node transmits data and receives an acknowledgement (ACK).
[0013] In a WLAN, each frame has to be acknowledged by the receiving side. For example, as shown in Figure 4, when node B receives a data frame from node A, node B has to send an ACK for this data packet and then start forwarding the data packet to node C. Performing the ACKs at each node increases both the traffic load and the latency in an 802.11 mesh network. [0014] The hidden node and exposed node problems are conflicting issues, and are especially relevant in an auto-configured mesh deployment. RTS/CTS virtual carrier-sensing is not sufficient to completely resolve those problems for the mesh architecture. In addition, the enabling of broadcast and multicast traffic within the mesh network can intensify the hidden node and exposed node interference problems, thereby degrading the overall system throughput. Therefore, a method and apparatus are needed for reducing latency when transmitting ACKs in mesh networks.
[0015] SUMMARY
[0016] A method for reducing latency in transmitting an acknowledgement
(ACK) in a mesh network begins by receiving a data packet at an intermediate node from a source node. The intermediate node generates an ACK upon receipt of the data packet. The intermediate node then forwards the data packet to a target node, including the ACK in the forwarded data packet. By combining the ACK with the data packet, the source node receives the ACK while the target node receives the data packet.
[0017] A system for reducing latency in transmitting an acknowledgement
(ACK) in a mesh network having a source node, an intermediate node, and a target node includes a data packet and an ACK. The data packet is sent by the source node to the intermediate node. The ACK is generated by the intermediate
node upon receipt of the data packet from the source node. The intermediate node then forwards the data packet with the ACK to the target node. By combining the ACK with the data packet, the source node receives the ACK while the target node receives the data packet.
[0018] A node for use in a mesh network, includes an antenna, a transmitter/receiver connected to the antenna, and a packet updating device connected to the transmitter/receiver. The packet updating device adds an acknowledgement to a received packet, whereby upon transmission of the received packet, a first node receives the data contained in the packet and a second node receives the acknowledgement contained in the packet.
[0019] BRIEF DESCRIPTION OF THE DRAWINGS
[0020] A more detailed understanding of the invention may be had from the following description of a preferred embodiment, given byway of example, and to be understood in conjunction with the accompanying drawings, wherein:
[0021] Figures Ia and Ib are diagrams of an overview of the hidden node problem in a WLAN;
[0022] Figure 2 is a diagram showing an example of a collision problem caused by the hidden node problem;
[0023] Figure 3 is a diagram of the exposed node problem in a WLAN;
[0024] Figure 4 is a diagram showing a prior art WLAN acknowledgement mechanism;
[0025] Figure 5 is a diagram showing a piggybacked acknowledgement mechanism;
[0026] Figure 6 is a diagram of an existing 802.11 data frame format;
[0027] Figure 7 is a diagram of a data frame format in accordance with one embodiment of the present invention;
[0028] Figure 8 is a diagram of a data frame format in accordance with another embodiment of the present invention;
[0029] Figure 9 is a diagram of a negative acknowledgement frame format in accordance with the present invention; and
[0030] Figure 10 is a diagram of a node configured to add an ACK to a data packet in accordance with the present invention.
[0031] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0032] Hereafter, a node includes, but is not limited to, a wireless transmit/receive unit (WTRU), a user equipment, a mobile station, a fixed or mobile subscriber unit, a pager, or any other type of device capable of operating in a wireless environment. When referred to hereafter, an access point includes, but is not limited to, a base station, a Node B, a site controller, or any other type of interfacing device in a wireless environment.
[0033] To avoid increasing system load and latency, the present invention provides for piggybacking acknowledgements (ACKs) on data packets. When a node receives a data packet, it updates the address field in the data packet and piggybacks the ACK of the received packet onto the forwarded data packet. Since the carrier sense multiple access with collision avoidance (CSMA/CA) medium access protocol allows all the near nodes to hear this transmission (by exploiting the exposed node problem), the previous and next nodes in the communication path will be able to hear the transmission. The previous node receives the ACK and the next node receives the forwarded data packet.
[0034] By transmitting only a single packet, instead of separate ACK and data packets, the system latency is improved and the system load is decreased. Utilizing this mechanism requires changing the 802.11 MAC frame format, to properly address the data packet and the ACK packet. It is noted that the source node, as referred to herein, is the node that is transmitting at the time in question, and not necessarily the node the originated the transmission. [0035] Figure 5 shows a diagram of an ACK mechanism for mesh networks in accordance with the present invention. In this example, node A sends a data frame (Data (I)) to node B. When node B receives the data frame, it forwards the data frame (Data (2)) to node C as follows:
[0036] 1) Piggyback the ACK to node A (ACK(I)) on the data frame; and
[0037] 2) Forward the data frame with the piggybacked ACK (Data
(2VACK(I)) to node C.
[0038] Since node A also hears node B's transmission to node C, it knows that the packet was received successfully and that the ACK timer will not expire. A similar transmission occurs when node C forwards the data packet to node D. By way of example, three embodiments of this ACK mechanism may be employed as explained below.
[0039] Figure 6 shows a typical frame format under current 802.11 standards. The first embodiment of the ACK mechanism is a positive ACK mechanism; a data frame format in accordance with this embodiment is shown in Figure 7. When the destination node receives the data packet correctly, it piggybacks the ACK to the data packet indicating that the data packet was received properly.
[0040] This embodiment adds a field, Address 5, to indicate the ACK recipient's address (i.e., the source node). As shown in Figure 7, Address 1 indicates the data frame recipient's address (RA_data) and Address 5 indicates the ACK frame recipient's address (RA_ACK). As applied to the example shown in Figure 5, Address 1 would have the address of node C and Address 5 would have the address of node A.
[0041] The second embodiment of the ACK mechanism is an ACK/NACK mechanism. Similar to the first embodiment, when the destination node receives the data packet, it piggybacks the ACK to the data packet indicating that the data packet was received. Referring to Figure 8, Address 1 indicates the data frame recipient's address (RA_data) and the new field Address 5 indicates the ACK frame recipient's address (RA_ACK), as explained above. [0042] A second new field, called the ACK/NACK field, is a Boolean field. If it is set to zero, this means that the recipient did not receive the packet properly, and the recipient has the choice to either ACK or NACK the packet. The ACK/NACK field allows the destination node to send an ACK frame when it receives the packet from the sender properly, by setting the field to one. If the recipient node does not receive the packet (i.e., when a packet is received with an
incorrect sequence number, the recipient knows that it missed the packet) or if the recipient node could not decode the received packet properly, it can send a NACK to the sender by setting the field to zero.
[0043] As applied to the example shown in Figure 5, the ACK/NACK field would be set to zero if node B did not correctly receive the Data(l) packet from node A. When node B sends the Data(2)/ACK(1) packet, node C receives the data packet, and node A is informed that the packet was incorrectly received by node B. Whether node B sends the Data(2) packet to node C depends on what caused the incorrect receipt at node B. If the current packet was not received properly, node B will not send a Data(2) packet to node C and will send a NACK to node A. However, if node B received the packet properly, but with a sequence number other than what it was expecting, node B can still forward the Data(2) packet to node C and send a NACK to node A for the missed packet. For example, if node B receives a packet with a sequence number of "n+1" instead of "n", then node B can forward the "n+1" packet to node C and send a NACK to node A for the "n" packet.
[0044] The third embodiment of the ACK mechanism is a negative acknowledgement (NACK) mechanism. In this embodiment, when the destination node does not receive a data packet, it sends a NACK to the source node to indicate that the data packet was missing. The destination node knows that it missed a packet when a packet is received with an incorrect sequence number or if a packet is received that it cannot decode correctly. The source node assumes that the data packet was received properly if it did not receive a NACK within a specific period of time. Figure 9 shows an example of a NACK frame in accordance with this embodiment. It is noted that the NACK frame format is the same as the standard 802.11 ACK frame format.
[0045] Figure 10 is a diagram of a node 1000 configured to add an ACK to a data packet in accordance with the present invention. The node 1000 includes an antenna 1002, a transmitter/receiver 1004 connected to the antenna 1002, and a packet updating device 1006 connected to the transmitter/receiver 1004. The packet updating device 1006 receives a data packet from the transmitter/receiver
1004, adds an ACK to the data packet, and returns the data packet with the ACK to the transmitter/receiver 1004. The packet updating device 1006 can add an ACK or a NACK to the data packet in accordance with any of the methods described above.
[0046] Embodiments
[0047] 1. A method for reducing latency in a mesh network, including the step of adding an acknowledgement (ACK) to a data packet.
[0048] 2. The method according to embodiment 1, further including the step of sending the data packet containing the ACK to a first node and a second node.
[0049] 3. The method according to any preceding embodiment wherein the first node is a source node, the second node is a destination node, and the adding step is performed at an intermediate node.
[0050] 4. A method for reducing latency in transmitting an acknowledgement (ACK) in a mesh network, including the steps of: receiving a data packet at an intermediate node from a source node; generating an ACK upon receipt of the data packet at the intermediate node; and forwarding the data packet from the intermediate node to a target node including the ACK in the forwarded data packet, whereby the source node receives the ACK while the target node receives the data packet.
[0051] 5. The method according to embodiment 4, wherein the data packet includes the address of the source node to receive the ACK.
[0052] 6. The method according to any of embodiments 4 or 5, wherein the data packet includes a field to indicate whether the packet was received at the intermediate node.
[0053] 7. The method according to any of embodiments 4-6, wherein the data packet includes the address of the source node to receive the ACK and a field to indicate whether the packet was received at the intermediate node.
[0054] 8. A system for reducing latency in transmitting an acknowledgement (ACK) in a mesh network having a source node, an
intermediate node, and a target node, the system including: a data packet sent by the source node to the intermediate node; and an ACK generated by the intermediate node upon receipt of the data packet from the source node, the intermediate node forwarding the data packet with the ACK to the target node, whereby the source node receives the ACK while the target node receives the data packet.
[0055] 9. The system according to embodiment 8, wherein the data packet includes an address of the source node, the address being inserted into the data packet by the intermediate node prior to transmitting the data packet to the target node, such that the ACK is properly addressed to the source node.
[0056] 10. The system according to any of embodiments 8 or 9, wherein the data packet includes a field to indicate whether the packet was received at the intermediate node.
[0057] 11. The system according to any of embodiments 8-10, wherein the data packet includes an address of the source node, the address being inserted into the data packet by the intermediate node prior to transmitting the data packet to the target node, such that the ACK is properly addressed to the source node; and a field to indicate whether the packet was received at the intermediate node.
[0058] 12. A node for use in a mesh network, including an antenna; a transmitter/receiver connected to the antenna; and a packet updating device connected to the transmitter/receiver.
[0059] 13. The node according to embodiment 12, wherein the packet updating device adds an acknowledgement to a received packet, whereby upon transmission of the received packet, a first node receives the data contained in the packet and a second node receives the acknowledgement contained in the packet.
[0060] 14. The node according to embodiment 12, wherein the packet updating device uses the method of any one of embodiments 1-7.
[0061] 15. The node according to embodiment 12, wherein the node is part of the system of any one of embodiments 8-11.
[0062] Although the features and elements of the present invention are described in the preferred embodiments in particular combinations, each feature or element can be used alone (without the other features and elements of the preferred embodiments) or in various combinations with or without other features and elements of the present invention.