The present invention generally relates to systems and methods for efficiently multicasting a data packet through a wireless network.
Multicast is a method of sending data packets over a network infrastructure to a group of interested group members in a single transmission. It uses network infrastructure efficiently by requiring the source to send a packet only once, even if it needs to be delivered to a large number of group members. The transit nodes, i.e. nodes lying between the source node and the destination nodes, replicate the packet to reach multiple group members such that the packets are sent over a network link only once. This is different from unicast where the source sends as many copies of the packet as there are intended recipients. Multicast is an essential service in military networks and the Internet and is widely deployed in wireless and wired networks. Its driving applications include voice, video, on-line gaming, and situational awareness.
Multicast can be implemented using proactive or reactive multicast routing protocols. Proactive routing has been seen to be more appropriate for military ad-hoc networks in battlefields. Most, if not all military systems under development (e.g. WNW, WNaN, SRW, etc.) utilize proactive routing. Proactive routing is also commonly used in the Internet. Link state routing source-based trees multicast routing protocols, using Shortest Path Forwarding (SPF) trees, are often used to direct multicast traffic through the network. A SPF tree provides the shortest path between a source and destination node, ensuring the minimum amount of network latency for multicast traffic. Other common forwarding trees include multi-point relaying (MPR) trees, which a node can generally calculate with lower processor overhead compared to SPF trees, and Steiner trees, which attempt to minimize the number of transmissions from source to destination.
However, existing multicast routing protocols based on simple link state routing source-based trees exhibit two major problems which prevent them from being scaled to networks with a large number of nodes. First, in order to avoid redundant transmissions and transmission loops, these protocols involve each node computing an SPF tree for all other nodes in the network. This is computationally expensive and makes these protocols difficult to scale for a large number of nodes in the network. Second, these existing protocols require a consistent network topology view, which is not realistic in mobile scenarios.
The systems and methods described herein provide an efficient alternative to link state routing source-based trees for multicasting a data packet through a wireless network. In contrast to the existing multicast protocols described above, each node maintains only a self-rooted forwarding tree (i.e. a tree in which each node maintains a single forwarding tree where that node is the root of the forwarding tree) for determining the routing path. Using a self-rooted forwarding tree as the sole forwarding multicast mechanism results in redundant multicast packet transmissions in the network. To solve the problem of redundant packets, packet metadata is introduced which maintains information regarding the next-hop node on the routing path as well as the corresponding destination node to which each next-hop node is responsible for forwarding the packet. This ensures that only intended transit nodes on the desired routing path will forward the packet.
To multicast a data packet, the source node first identifies the desired destination nodes of the packet using existing multicast addressing resolution techniques known in the art. In one embodiment of the invention, a SPF tree is used to resolve the routing path for the data packet from source to destination. For each destination node, the source node uses the SPF tree to determine a next-hop node, which represents the next step on the routing path to the destination node. The source node then generates packet metadata including the list of next-hop and corresponding destination nodes and appends it to the beginning of the data packet. The data packet, which now includes the metadata, is then broadcast over the network.
The method for retransmitting a data packet at a transit node is slightly different from the method for transmitting from a source node. Upon receiving the data packet, the transit node first checks the metadata to determine whether it is included in the list of next-hop nodes. If it is not, then the packet is dropped, ensuring that the packet is forwarded by only the intended recipients. If the transit node identifies itself as a next-hop node based on the metadata, the transit node identifies from the metadata the multicast group members to which it is responsible for forwarding the packet, hereinafter referred to as its assigned destination nodes. The transit node then performs a SPF tree lookup to resolve the routing path from itself to each assigned destination node. The new path is used to determine a new next-hop node, and the process is repeated for each assigned destination node. The transit node updates the metadata with the new set of next-hop nodes and assigned destination nodes, and the data packet is broadcast to the network. This method ensures that only a reduced number of copies of the data packet, in some cases only one copy, are forwarded to each destination node, which reduces the number of redundant data packets on the network.
In some embodiments, the metadata may be processed to reduce its size such that there is a minimal increase in the packet size due to the metadata. For example, 8-bit aliases can be assigned instead of the full 32-bit node IDs to each of the nodes within a 1-hop neighborhood. Since the number of 1-hop neighbors is usually limited due to MAC scaling issues, the use of 8-bit aliases does not generally result in a loss in functionality. These aliases can be added to heartbeat messages already known in the art for nodes in wireless networks to determine neighbor reachability. By using aliases, the next-hop node may be addressed by a single bit in a bitmap and the size of the metadata can be substantially reduced while still maintaining the functionality of node IDs. In some embodiments, the alias can be 4-bits, 12-bits, or any suitable size to reduce the size of the metadata while maintaining functionality. For larger multicast groups, to avoid having the metadata grow too large, the source node divides the multicast group member list into multiple virtual multicast groups and sends a copy of the packet to each virtual group.
In some embodiments, alternative forwarding trees to SPF trees may be used with the packet metadata. Specifically, a node can generally calculate MPR trees with lower processing overhead than SPF trees, making MPR trees ideal for applications with limited processing resources. Steiner trees attempt to minimize the number of transmissions from source to destination. Depending on the requirements of the specific application, these alternatives may be desirable over SPF trees due to their respective benefits.
In some embodiments such as mobile scenarios, the routing path to the destination may have changed due to changes in the network topology. For example, new nodes may have been introduced or removed from the network or environmental conditions may degrade the link to certain nodes. Upon the detection of a network topology change, the forwarding tree at each node may be updated using any suitable method. This ensures that the packet follows the optimal routing path to its destination as defined by the most up-to-date forwarding tree, even if a network topology change causes the optimal path to change during transfer. Each node does not require a consistent view of the network topology.
In some embodiments, duplicate detection can be used to eliminate redundant packets. Furthermore, the method can be modified for controlled redundancy, allowing the source to send multiple copies to different next-hop nodes with the intention of increasing the probability of delivery. In such an application, the duplicate detection may need to be modified to allow a certain number of redundant packets through the system.
The following figures depict certain illustrative embodiments of the invention in which like reference numerals refer to like elements. These depicted embodiments may not be drawn to scale and are to be understood as illustrative of the invention and not as limiting in any way.
To provide an overall understanding of the invention, certain illustrative embodiments will now be described, including methods for multicasting data packets through a wireless network. However, it will be understood by one of ordinary skill in the art that the methods and systems described herein may be adapted and modified as is appropriate for the application being addressed and that the system and methods described herein may be employed in other suitable applications, and that such other additions and modifications will not depart from the scope hereof.
As will be seen from the following description, in one embodiment, the invention relates to systems and methods for multicasting a data packet through a wireless network. In contrast to existing multicast protocols, in one embodiment, each node maintains only a self-rooted forwarding tree (i.e. a tree in which each node maintains a single forwarding tree where that node is the root of the forwarding tree) for determining the routing path. Furthermore, packet metadata is introduced which identifies the next-hop node on the routing path as well as assigned destination nodes to which the next-hop node is responsible for delivering the data packet.
In some embodiments, the network topology can vary with time. For networks that include mobile nodes, when new nodes are introduced into or leave the network, or when environmental conditions disrupt links between nodes, each node 202-216 recalculates its self-rooted forwarding tree, thereby maintaining the forwarding tree even in unstable network topologies.
As set forth above, the source node 202 first determines the destination nodes of the data packet (step 302). The packet is addressed to a multicast group. To determine the destination nodes of the packet, the source node 202 uses standard multicast address resolution techniques known in the art.
For each destination node, the source node 202 determines a corresponding next-hop node using its maintained forwarding tree (step 304). In one embodiment, the forwarding tree is a SPF tree, which is used to resolve the routing path from source to destination. The source node 202 then generates packet metadata including the list of next-hop nodes and assigned destination nodes (step 306).
The source node 202 may optionally reduce the size of the metadata (step 308) prior to augmenting the data packet with the metadata (step 310). Specifically, the source node 202 may assign unique 8-bit aliases instead of full 32-bit node IDs to the nodes in its 1-hop neighborhood. Neighbors may exchange aliases by adding them to periodic heartbeat packets known in the art for wireless networks or by using other regular communications. By using these aliases, each node can still interpret the next-hop node lists based on their maintained list of aliases, and the size of the metadata may be reduced while still maintaining its functionality. In one embodiment, the alias for a next-hop node can be assigned a position in a bitmap and addressed by a single bit in a bitmap. Since the number of 1-hop neighbors is usually limited due to MAC scaling issues, the use of 8-bit aliases does not generally result in a loss in functionality. In some embodiments, the alias can be 4-bits, 12-bits, or any suitable size to reduce the size of the metadata while maintaining functionality. For larger multicast groups, to avoid having the metadata grow too large, the source node divides the multicast group member list into multiple virtual multicast groups and sends a copy of the packet to each virtual group.
After reducing the size of the metadata as indicated above, the source node 202 appends it to the beginning of the data packet (step 310). The data packet, which now includes the processed metadata, is then broadcast over the network (step 312).
For the set of assigned destination nodes, the transit node determines the corresponding next-hop nodes using its maintained forwarding tree (step 510), which is similar to the analogous step for the source node 202 described above (step 304). In some embodiments, such as mobile applications, the optimal path may change due to changes in the network topology, which is reflected in the maintained forwarding tree at each transit node. Each node makes packet forwarding decisions based on its self-rooted forwarding tree, which results in the packet always being forwarded according to the up to date routing path. The transit node then updates the next-hop list in the existing metadata, which may include processing the metadata to reduce its size and replacing the existing metadata (step 512), and broadcasts the packet to the network (step 514).
In some embodiments of the invention, duplicate detection can be used to eliminate redundant packets. The duplicate detection can also be configured to allow for controlled redundancy, allowing a predetermined number of duplicate packets through to increase the probability of packet delivery. For example, the source node 202 might initially or probabilistically send multiple copies of the same data packet to different next-hop nodes with the intention of increasing the probability of delivery.
Although other nodes in the area may receive the data packet, only the desired transit nodes 604 and 606 will identify themselves as on the next-hop node list and correctly forward the packet (step 504). Transit nodes 604 and 606 update the next-hop node list in the packet metadata for their assigned destination nodes 616 and 612 (steps 508, 510, and 512). The nodes 604 and 606 broadcast the packet again for the next set of intended next-hop nodes. The process is repeated until the data packet reaches its intended destination node 616 or 612.
By using the packet metadata in conjunction with a self-rooted forwarding tree at each node, a data packet can be multicast on the optimal path from source to destination without any redundant transmissions. The elimination of multiple SPF tree calculations at each transit node significantly reduces the processing load, which also makes this method highly scalable for large networks.
It will be apparent to those skilled in the art that such embodiments are provided by way of example only. It should be understood that numerous variation, alternatives, changes, and substitutions may be employed by those skilled in the art in practicing the invention. It is intended that the following claims define the scope of the invention and the methods and structures within the scope of these claims and their equivalents be covered thereby.
The U.S. Government has a paid-up license in this invention and the right in limited circumstances to require the patent owner to license others on reasonable terms as provided for by the terms of Contract No. FA8750-07-C-0169, awarded by the Defense Advanced Research Project Agency (DARPA).