U.S. patent application number 11/932068 was filed with the patent office on 2008-02-28 for method and system for efficient and reliable mac-layer multicast wireless transmissions.
Invention is credited to Arup Acharya, Archan Misra.
Application Number | 20080049771 11/932068 |
Document ID | / |
Family ID | 36460875 |
Filed Date | 2008-02-28 |
United States Patent
Application |
20080049771 |
Kind Code |
A1 |
Acharya; Arup ; et
al. |
February 28, 2008 |
Method and System for Efficient and Reliable Mac-Layer Multicast
Wireless Transmissions
Abstract
A method and system for reliable multicasting on a communication
network includes sending Request-to-Send (RTS) signals from a
sender node of the network to the receiver nodes, the RTS signals
include a set of identifiers corresponding to the receiver nodes.
The Clear-to-Send (CTS) signals and Acknowledgment (ACK) signals
are sent from the receiver nodes according to an ordering function
of the set of identifiers.
Inventors: |
Acharya; Arup; (Nanuet,
NY) ; Misra; Archan; (Irvington, NY) |
Correspondence
Address: |
Frank Chau, Esq.;F. CHAU & ASSOCIATES, LLC
130 Woodbury Road
Woodbury
NY
11797
US
|
Family ID: |
36460875 |
Appl. No.: |
11/932068 |
Filed: |
October 31, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10996078 |
Nov 23, 2004 |
|
|
|
11932068 |
Oct 31, 2007 |
|
|
|
Current U.S.
Class: |
370/408 |
Current CPC
Class: |
H04W 76/40 20180201;
H04L 69/324 20130101; H04W 28/26 20130101; H04W 74/0816
20130101 |
Class at
Publication: |
370/408 |
International
Class: |
H04L 12/28 20060101
H04L012/28 |
Claims
1. A program storage device readable by machine, tangibly embodying
a program of instructions executable by the machine to perform
method steps for reliably multicasting on a communication network,
the method steps comprising: sending one or more Request-to-Send
(RTS) signals from a sender node of the network to a plurality of
receiver nodes of the network, the RTS signals including a set of
identifiers corresponding to the receiver nodes; sending one or
more Clear-to-Send (CTS) signals from one or more of the receiver
nodes according to an ordering function of the set of identifiers;
sending a data packet from the sender node to the receiver nodes;
sending one or more Acknowledgment (ACK) signals from one or more
of the receiver nodes receiving the data packet to the sender node
according to an ordering function of the set of identifiers;
determining from the one or more CTS signals and the one or more
ACK signals received by the sender node whether any of the receiver
nodes did not receive the data packet correctly; and multicasting
the data packet from the sender node to the one or more receiver
nodes that did not correctly receive the data packet.
2. The device of claim 1, further comprises instructions for: a
plurality of locally unique labels addressing each of the receiver
nodes.
3. The device of claim 2, wherein the locally unique labels are
shorter than a full MAC network address of the receiver nodes.
4. The device of claim 1, wherein the set of identifiers
comprising: a plurality of binary bits addressing each of the
receiver nodes.
5. The device of claim 4, wherein the binary bits are shorter than
a full MAC network address of the receiver nodes.
6. The device of claim 1, wherein the ordering function of the set
of identifiers follows the sequential position of the identifiers
in the set of identifiers.
7. The device of claim 1, wherein the sender node and the receiving
nodes comprise a wireless network.
8. The method of claim 1, wherein the wireless network operating on
a IEEE 802.11 protocol.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This is a Continuation Application of U.S. application Ser.
No. 10/996,078 filed on Nov. 23, 2004, the disclosure of which is
herein incorporated by reference in its entirety.
TECHNICAL FIELD
[0002] The present invention is directed to the field of computer
networks. It is more particularly directed to medium access schemes
for Wireless Local Area Networks (WLANs) and multi-hop wireless
(mesh) networks.
DISCUSSION OF THE RELATED ART
[0003] Advances in the field of computer networking have enabled a
vast area of applications that share information and resources
between computers spread over a small or large geographical area.
Various networking protocols and network topologies have been
developed. With the advent of wireless networking, newer protocol
families have gained prominence. For example, the IEEE 802.11
protocols for wireless networking have become popular.
[0004] While the higher-level wireless networking protocols have
evolved, there are only a few practical solutions for reliable
multicasting at the Media Access Control (MAC) layer in the 802.11
networks. In particular, the existing approaches rely on the
higher-level protocols, rather than a lower layer MAC protocol, to
provide an acknowledgement for a received packet. But this approach
typically involves additional channel accesses, and hence reduces
the network throughput and increases the complexity of the network
software.
[0005] Hence, there is a need for a lower-level protocol that
provides acknowledgement for received packets and increases the
throughput of the network.
[0006] Existing approaches for multicasting over wireless networks
are considered next. One such approach groups packets and nodes
into tuples, while relying on higher-level protocols to filter out
the messages to individual recipient nodes. For example, U.S. Pat.
No. 6,577,609 to Sharony describes a system where a multicasting
address is associated with two or more recipient nodes' MAC
addresses. This approach is discussed next.
[0007] A transmitter in a network combines two unicast packets that
are addressed to two nodes with different MAC addresses into a
single multicast MAC transmission having a multicasting address.
The recipient nodes with two different MAC addresses receive the
combined multicast packet where the data part includes a tuple
having both the MAC addresses and the data packets. The recipient
nodes rely on higher layer protocols to filter out messages to the
individual MAC addresses of the nodes. This approach does not
provide any mechanism for recipient nodes to send acknowledgments
for received packets, and hence make the multicasting process
unreliable.
[0008] There are few known solutions for reliable multicasting on
the 802.11 at the MAC level. However, the known 802.11 multicasting
approaches do not offer reliable delivery since there is no MAC
level mechanism for the receivers to send acknowledgements for the
received packets.
[0009] One approach that uses shorter addresses (with only local
scope) instead of a unique MAC address to reduce the overhead is
discussed next. For example, U.S. Pat. No. 6,625,124 to Fan et al.
discusses a technique for automatic reconfiguration of such shorter
addresses that are unique within a virtual network (e.g., every
one-hop neighborhood). However, this approach focuses on unicast
transmissions from one transmitter to a uniquely identified
recipient node.
[0010] Another approach uses multicast address groups as a
destination indicator in air link frames. For example, the Patent
Application Pub. No. 20030026240 (M. Eyuboglu) is directed to
cellular standards such as IS-856, a high-speed wireless packet
based standard for the emerging 3G networks. In a cellular
environment, there are potentially dedicated channels for each
transmitter to receiver link. The Eyuboglu disclosure focuses on
how the multicast packet is repeatedly unicast over each such link,
to each intended recipient, using IS-856 specific signaling
parameters. Alternatively, the multicast packet is sent over a
common broadcast channel to avoid the unicast overhead.
SUMMARY
[0011] In one aspect of the invention, a method for reliable
multicasting on a communication network operating at the MAC layer
includes sending Request-to-Send (RTS) signals from a sender node
of the network to the receiver nodes, the RTS signals include a set
of identifiers corresponding to the receiver nodes. The
Clear-to-Send (CTS) signals and Acknowledgment (ACK) signals are
sent from the receiver nodes according to an ordering function of
the set of identifiers. The ACK signals are sent after a data
packet is received correctly.
[0012] In an another aspect of the invention, the identifiers sent
with the RTS signals are labels or bit vectors. Multicasting
iteration is performed till all packets are correctly transmitted.
In yet another aspect of the invention, a device to perform the
multicasting technique is disclosed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Exemplary embodiments of the invention are described with
reference to the accompanying drawings, of which:
[0014] FIG. 1 shows a representation of a conventional four-way
handshake arrangement as used in the 802.11 protocols;
[0015] FIG. 2 shows a timing sequence for multicasting that uses
short labels in an exemplary embodiment of the invention;
[0016] FIG. 3 shows a timing sequence for multicasting that uses a
bit-vector in an exemplary embodiment of the invention;
[0017] FIG. 4 is a flowchart for a multicast sending procedure in
an exemplary embodiment of the invention;
[0018] FIG. 5 is a flowchart for a multicast receiving procedure in
an exemplary embodiment of the invention; and
[0019] FIG. 6 is a computer system used in an exemplary embodiment
of the invention.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
[0020] Exemplary embodiments of the invention are described with
reference to the accompanying drawings, of which:
[0021] FIG. 1 shows a representation of a conventional four-way
handshake arrangement as used in the 802.11 protocols. Timing
Diagram 10 illustrates 802.11 MAC layer Distributed Coordination
Function (DCF) using exemplary nodes 12 and 14 (labeled as "A" and
"B").
[0022] In a typical computer network, several nodes may try to send
data at the same time leading to packet collisions and channel
congestion. One technique used by various communication protocols
to deal with packet collision is the Collision Sense Multiple
Access (CSMA), which is typically applied as the CSMA/Collision
Detection (CSMA/CD) or the CSMA/Collision Avoidance (CSMA/CA)
scheme. Both, CSMA/CD and CSMA/CA, are types of contention
protocols where the nodes compete for the availability of the
channel to transmit data over a network channel.
[0023] The CSMA/CA protocol works by having a network node
intending to transmit a packet of information first listen to the
network channel to determine if it is safe to transmit data. The
802.11 contention resolution and access control mechanism is based
on the Carrier-Sense Multiple-Access with Collision Avoidance
(CSMA/CA) algorithm, which consists of two distinct steps:
[0024] a) A node interested in sending an IP packet first senses
the channel to see if the channel is idle. If the channel is busy,
i.e., some activity from a neighboring node is detected, and then
the node backs off and idles for a period before retrying.
[0025] b) On sensing an idle channel, the node transfers data to
the neighboring recipient using a four-way handshake mechanism for
reliable and contention-free packet delivery.
[0026] The 802.11 protocol's DCF in the form of a four-way
handshake is described next:
[0027] 1. Node 12 ("A") sends a RTS (request-to-send) signal 16 to
the node 14 ("B"), effectively informing anyone within A's
neighborhood that the medium is "reserved" for the duration
T.sub.RTS.
[0028] 2. Node 14 sends a CTS (clear-to-send) signal 18 to the node
12, specifying the time interval TCTS during which the node 12 is
permitted to send the data. The CTS signal 18 informs all neighbors
of the node 14 that the channel is reserved for the duration
T.sub.CTS.
[0029] 3. Node 12 then sends a data packet 20 to the receiving
node. This data transfer phase immediately follows the reception of
the CTS signal 18.
[0030] 4. On a successful reception of the data packet 20, the node
14 sends a final data ACK (Acknowledgement) signal 22.
[0031] The RTS, CTS and ACK signals are part of the MAC layer's
operation.
[0032] FIG. 2 shows a timing sequence for multicasting using short
labels in an exemplary embodiment of the invention. A timing
diagram 24 shows the representations of the exemplary nodes 12, 26
("R1"), 28 ("R2"), 30 ("R3"). A packet of data is to be multicasted
from the node 12 to the nodes 26, 28 and 30. Node 12 sends the
sequence of labels L(R1), L(R2) and L(R3) in a RTS signal 34 in the
form of a label-vector.
[0033] The RTS signal 34 sent to the recipient nodes includes a
label vector with label indicators. The labels are short
identifiers that uniquely identify the receiving nodes. The order
of recipient nodes in the label vector also determines the order in
which the recipient nodes respond with their CTS and ACK messages.
In the present illustration, the RTS sent from the node 12 includes
the label vector that specifies the order of recipients as first
the node 26 and then the node 30. Hence, following this order, the
ACK signal 42 was received first (in the 1.sup.st ACK time-slot)
from the node 26 and then the ACK signal 44 from the node 30.
[0034] In general, the label L(.) need not be restricted to a
one-hop unique identifier, but may be any identifier that is unique
(whether globally or locally). For example, L(R1) may simply equal
R1, the MAC address of the receiver R1, and so on. In one exemplary
embodiment, one hop neighbor nodes are identified using short
labels L(R1), L(R2), L(R3) and L(R4) that have only a local scope.
These short labels uniquely identify each neighbor of a
transmitting node. For N one-hop neighbors only a log(N) bit size
label is required to ensure the uniqueness of the label. Using the
short labels to identify the one-hop neighbor nodes avoids the need
to identify each one-hop neighbor with its full MAC address. Unlike
the MAC addresses, the labels are unique only from the perspective
of the sender. Hence, the same label can be reused in the nodes
that are two-hop away.
[0035] The recipient nodes send back the CTS signals to the
sending/transmitting node depending upon their availability to
accept the transmission of the data-packet. The transmitting node
then sends the data packet if at least one node has responded back
with a CTS. In the present example, nodes 26 and 30 respond with
the CTS signals 36 and 38 in the 1.sup.st and 3.sup.rd
time-slots.
[0036] The CTS signals are sent back in an order that is a function
of the sequence in which their addresses, i.e., labels were
specified in the RTS label-vector. For example, the receiving nodes
could respond back with CTS signals in the same sequence in which
the labels appeared in the label-vector sent with the RTS. Further,
the CTS signals can be sent back in an order that is a pre-defined
mathematical function of the sequence of the labels in the RTS
label-vector.
[0037] As the size and duration of each CTS transmission is fixed
by a protocol standard, each receiving node can correctly and
independently compute the time by which it needs to stagger the CTS
transmission. This staggering technique ensures that no two
receivers collide with each other when sending the CTS signals.
Thus, the sender node can correctly deduce which subset of
receiving target nodes have indicated their availability based upon
the received CTS signals.
[0038] Node 28 does not respond because its NAV (Network Allocation
Vector) entry prohibits it from responding at the given instant.
The NAV is maintained under the IEEE 802.11 protocol to monitor the
state of the channel. After receiving the CTS signals 36 and 38,
the node 12 sends a data packet 40 to the nodes 26 and 30 that had
sent the CTS signals 36 and 38. Nodes 36 and 38 send back ACK
signals 42 and 44 in the 1.sup.st and 3.sup.rd slot for ACK
responses.
[0039] The receiving nodes send back the ACK signals in an order
that is a function of the order of the labels in the label-vector.
The function can be a simple one to one mapping or a mathematical
function. The receiving nodes that did not receive the data packet
40 correctly will not send back an ACK signal. Sender can then
determine based on absence of ACK signals from the receiving nodes
as to which nodes did not receive the packet correctly. The RTS
signal, CTS signal and the ACK signal can be used as packets to
transmit the signals.
[0040] Reliable delivery service over a wireless (mesh) network is
made possible by the receiving nodes sending back acknowledgements
in the order specified by the label vector in the RTS signals. The
network's performance efficiency is enhanced by providing reliable
delivery service at the MAC layer. Hence, the need to use higher
layer protocols to provide reliable service is minimized.
[0041] FIG. 3 shows a timing sequence for multicasting using a
bit-vector in an exemplary embodiment of the invention. The labels
for nodes can be replaced with N bits, where N is the number of
neighbors of the sending node. All the neighbors of the source are
indexed such that each neighbor knows its position in this
"neighborhood index/list".
[0042] The source node then sends a RTS packet as a vector of bits
("bit-vector") with each bit in the bit-vector indicating the
corresponding recipient node in the neighborhood index. In the
present example, the node 12 is the source node and the nodes 26,
28 and 30 are recipient nodes. Each one of the recipient nodes has
a unique bit index in the neighborhood index. A bit-vector with
entries for the recipient nodes 26, 28 and 30 is sent along with
the RTS signal 34. The i th position in the bit-vector of the RTS
signal 34 that contains the bit pattern "1011" indicates the i th
neighbor of the sender node.
[0043] The receiving nodes 26 and 30 send back the CTS signals 36
and 38 to indicate their willingness to accept the data packet 40.
Node 12 sends the data-packet 40 to the nodes that sent the CTS
signals, i.e., the nodes 26 and 30, which after receiving the
data-packet 40 send back the ACK signals 42 and 44.
[0044] The bit vector indexing technique provides an effective
addressing process when the number of neighbor nodes is relatively
high and the multicast group is dense, i.e., the packet is targeted
to a relatively large subset of the entire set of receiving
nodes.
[0045] Many basic aspects of the 802.11 standard are left unchanged
in an exemplary embodiment of the invention. For example, the
sender node is allowed to send the initial RTS signal only if its
entry in the NAV is empty. The NAV tracks the time for which the
channel is reserved. Accordingly, if the node 28 was actually
receiving a packet from some other sender node (S1, not shown),
then the node 28's CTS would have caused node 12's NAV to be
updated. As a result, the node 12 would have been blocked from
sending its RTS until the 4-way handshake between S1 and the node
28 had completed. The details of the 802.11 MAC, such as the
backoff mechanism for contention resolution are left unchanged. The
802.11 protocol is used as an illustration, and any other network
protocol can also be used.
[0046] FIG. 4 is a flowchart for a multicast sending procedure in
an exemplary embodiment of the invention. Flowchart 48 starts at a
step 50 where an input data packet P is received at a MAC layer of
the network node. The packet P can be sent to a set of one-hop
receiver nodes indicated by the set RS={R.sub.1, R.sub.2, . . .
R.sub.N}. This set can include any number of receiver nodes in the
network.
[0047] At a step 52, a vector Recvd[i] is initialized that stores
the status of the acknowledgments received indicating correct and
successful transmission of a packet. The vector Recvd[i] is used as
a loop counter to continue process iteration till all packets are
transmitted successfully. At a step 54, a Seq{R.sub.i:Recvd[i]=0}
where Seq{ } is a sequence of receiver nodes yet to correctly
receive the current packet P is stored. Seq{ } is assumed to have S
elements.
[0048] At step 56 if the NAV is clear, i.e., the network channel is
available then a RTS signal is sent to all receivers in the order
specified by the {Seq.sub.1, Seq.sub.2, . . . , Seq.sub.s} sequence
or a function of the sequence's order. However, if the NAV is not
clear then as per the network protocol backoff with idling is
performed at the step 58.
[0049] A subset of Seq{ } receivers indicated by CTR are the
receivers that sent CTS signals at a step 62. Then at a step 64 if
no receivers have sent the CTS signal then the control proceeds to
a step 58 to perform a backoff and idling procedure. However, if
even one or more receiver nodes have sent the CTS signals to the
sender node then the current data packet P is transmitted to the
nodes that sent back the CTS signal as shown at a step 66. A step
68 shows that the ACK acknowledgement signals are received from a
subset of receiver nodes that had sent back the CTS signals.
[0050] At a step 70, the Recvd vector is updated for all the
receiver nodes that sent back the ACK signal indicating that they
correctly received the data packet P. The whole process iterates at
a step 72 to return to the step 54 if any receiver nodes that had
sent the CTS signals have not received the data packet P correctly.
The transmission process ends at step 74 when the multicasting to
all receiver nodes in the multicast set RS is complete.
[0051] FIG. 5 is a flowchart for a multicast receiving procedure in
an exemplary embodiment of the invention. Flowchart 76 shows the
process of multicasting from a perspective of a receiver node. At a
step 78, a RTS signal is received from a sender node S. The
received RTS signal will contain one of a label vector, a bit
vector or a vector with receiver flags as a receiver set. At step
80 the receiver node checks the label vector to determine if its
address, i.e., its label or bit identifier, is a part of the
receiver set. If the receiver node is not a part of the receiver
set in the RTS signal then receiving process at the current
receiver node ends at a step 92.
[0052] If the current receiver node is a part of the receiver set
then it determines the position in the receiver set (assumed as i).
At a step 84, the receiver node determines the status of the
network channel through the NAV. If the channel is not free then
the process ends at the step 92. However, if the channel is free
(i.e., available) the receiver node sends a CTS signal in the
i.sup.th slot for sending a CTS signal as shown at a step 86.
[0053] The receiver node receives the data packet P after the CTS
signal is sent. The receiver node checks if the data packet P was
received correctly at a step 88. If the data packet was not
received correct then the process ends at the step 92. If the data
packet was received correctly, then an ACK signal is sent to
indicate successful receipt of the data packet at a step 90, and
then the receiving process ends at the step 92.
[0054] The order of sending the CTS signal and the ACK signal is
the same as determined by the position of the receiver node in the
receiver set, i.e., the label vector, bit vector or other vector.
However, different orders can be followed.
[0055] In at least one exemplary embodiment of the invention, a
special per-packet vector in a sender node's MAC card is used to
ensure reliable delivery of the packet to all the intended
recipient nodes. Any packet P at the sender node is associated with
a vector, where each element of the vector corresponds to a single
intended recipient. Before the first transmission is initiated, all
the elements of the vector are set to a "NOT_RECEIVED" status. Once
a set of recipient nodes indicates that they have correctly
received the packet, the source node sets the corresponding vector
elements to a "RECEIVED" status. The source node then subsequently
restricts the packet retransmission only to those receivers that
still have the vector element set to a "NOT_RECEIVED" status. By
iterating over this process, the sender node can eventually ensure
that all the elements of the vector have the value RECEIVED, which
then indicates that all the recipient nodes received the data
packet correctly. At this stage, the source node can discard the
data packet.
[0056] In at least one exemplary embodiment, additional policies
for multicasting can be implemented. For example, the source node
can stop retransmission attempts after a certain number of retries,
or after a certain fraction of the recipients have correctly
received their packets. This policy will restrict the source node
continuously attempting to retransmit. Those skilled in the art
will appreciate that multiple policies can be applied either singly
or in combination depending upon the user's requirements.
[0057] Referring to FIG. 6, according to an exemplary embodiment of
the invention, a computer system 101 for implementing the exemplary
embodiment can comprise, inter alia, a central processing unit
(CPU) 102, a memory 103 and an input/output (I/O) interface 104.
The computer system 101 is generally coupled through the I/O
interface 104 to a display 105 and various input devices 106 such
as a mouse and keyboard. The support circuits can include circuits
such as cache, power supplies, clock circuits, and a communications
bus. The memory 103 can include random access memory (RAM), read
only memory (ROM), disk drive, tape drive, etc., or a combination
thereof. At least one embodiment of the present invention can be
implemented as a routine 107 that is stored in memory 103 and
executed by the CPU 102 to process the signal from the signal
source 108. As such, the computer system 101 is a general-purpose
computer system that becomes a specific purpose computer system
when executing the routine 107 of the present invention.
[0058] The computer platform 101 also includes an operating system
and micro instruction code. The various processes and functions
described herein may either be part of the micro instruction code
or part of the application program (or a combination thereof),
which is executed via the operating system. In addition, various
other peripheral devices may be connected to the computer platform
such as an additional data storage device and a printing
device.
[0059] It is to be further understood that, because some of the
constituent system components and method steps depicted in the
accompanying figures may be implemented in software, the actual
connections between the system components (or the process steps)
may differ depending upon the manner in which an exemplary
embodiment of the present invention is programmed. Given the
teachings of the exemplary embodiments present invention provided
herein, one of ordinary skill in the related art will be able to
contemplate these and similar implementations or configurations of
the present invention.
[0060] While the present invention has been particularly shown and
described with reference to exemplary embodiments thereof, it will
be understood by those skilled in the art that various changes in
form and details may be made therein without departing from the
spirit and scope of the present invention as defined by the
appended claims.
* * * * *