# Patent

## Title
System and method to improve the network performance of a wireless communications network by finding an optimal route between a source and a destination

## Abstract

A system and method for calculating an optimal route at a node by making use of routing metrics which if carefully chosen, can provide stability to the network and also provide features like Self Healing and Load Balancing. A Routing metric is calculated as a scalar number based upon a number of factors, such as number of hops, data rate, link quality and device type. Each factor can be determined by evaluation of Hello messages, or other routing messages as required.

## Background
This application claims benefit under 35 U.S.C. § 119(e) from U.S. Provisional Patent Application Ser. No. 60/476,237, filed on Jun. 6, 2003, U.S. Provisional Patent Application Ser. No. 60/546,941, filed on Feb. 24, 2004, and U.S. Provisional Patent Application Ser. No. 60/546,940, filed on Feb. 24, 2004, U.S. Provisional Patent Application Ser. No. 60/476,236, filed on Jun. 6, 2003, and U.S. Provisional Patent Application Ser. No. 60/475,882, filed Jun. 5, 2003, the entire contents of each being incorporated herein by reference


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a system and method for improving the network performance of a wireless communication network by finding an optimal route between a source and a destination. An optimal route is chosen by making use of routing metrics which if carefully chosen, can provide stability to the network and also provide features like Self Healing and Load Balancing.
2. Description of the Related Art
Wireless communication networks, such as mobile wireless telephone networks, have become increasingly prevalent over the past decade. These wireless communications networks are commonly referred to as “cellular networks”, because the network infrastructure is arranged to divide the service area into a plurality of regions called “cells”. A terrestrial cellular network includes a plurality of interconnected base stations, or base nodes, that are distributed geographically at designated locations throughout the service area. Each base node includes one or more transceivers that are capable of transmitting and receiving electromagnetic signals, such as radio frequency (RF) communications signals, to and from mobile user nodes, such as wireless telephones, located within the coverage area. The communications signals include, for example, voice data that has been modulated according to a desired modulation technique and transmitted as data packets. As can be appreciated by one skilled in the art, network nodes transmit and receive data packet communications in a multiplexed format, such as time-division multiple access (TDMA) format, code-division multiple access (CDMA) format, or frequency-division multiple access (FDMA) format, which enables a single transceiver at a first node to communicate simultaneously with several other nodes in its coverage area.
In recent years, a type of mobile communications network known as an “ad-hoc” network has been developed. In this type of network, each mobile node is capable of operating as a base station or router for the other mobile nodes, thus eliminating the need for a fixed infrastructure of base stations. Details of an ad-hoc network are set forth in U.S. Pat. No. 5,943,322 to Mayor, the entire content of which is incorporated herein by reference.
More sophisticated ad-hoc networks are also being developed which, in addition to enabling mobile nodes to communicate with each other as in a conventional ad-hoc network, further enable the mobile nodes to access a fixed network and thus communicate with other mobile nodes, such as those on the public switched telephone network (PSTN), and on other networks such as the Internet. Details of these advanced types of ad-hoc networks are described in U.S. Pat. No. 7,072,605 entitled “Ad Hoc Peer-to-Peer Mobile Radio Access System Interfaced to the PSTN and Cellular Networks”, issued on Jul. 4, 2006, in U.S. Pat. No. 6,807,165 entitled “Time Division Protocol for an Ad-Hoc, Peer-to-Peer Radio Network Having Coordinating Channel Access to Shared Parallel Data Channels with Separate Reservation Channel”, issued on Oct. 19, 2004 and in U.S. Pat. No. 6,873,839 entitled “Prioritized-Routing for an Ad-Hoc, Peer-to-Peer, Mobile Radio Access System”, issued on Mar. 29, 2005, the entire content of each being incorporated herein by reference.
As can be appreciated by one skilled in the art, since certain nodes of the ad-hoc network are mobile, it is necessary for the network to maintain connectivity with those nodes. Transmitted data packets typically “hop” from mobile device to mobile device, creating a transmission path, or route, until reaching a final destination. However, transmission paths between mobile devices are often subject to change as devices move, therefore ad-hoc network communication must be able to adapt to achieve optimum performance while addressing the limited capabilities and capacities of mobile individual devices.
In a typical wireless communication network, the number of hops between the source and the destination is used as the routing metric. The lesser the number of hops the better the route. However, this can lead to un-optimal routes, as there can be a better route with more number of hops but better link quality or data rate.
Accordingly, a need exists for a system and method to discover optimal routes between a source and a destination in an efficient way using factors other than hops as the sole metrics.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a system and method for locating optimal routes between a source and destination node using a broad range of Route metrics.
Another object of the present invention is to provide a system and method for calculating Route metrics using Hello messages exchanged in a network.
Another object of the present invention is to provide a system and method for calculating Route metrics using Routing messages, such as Route Request and Route Reply.
These and other objects are substantially achieved by providing a system and method for making use of routing metrics which if carefully chosen, can provide stability to the network and also provide features like Self Healing and Load Balancing. A Routing metric is calculated as a scalar number based upon a number of factors, such as number of hops, data rate, link quality and device type. Each factor can be determined by evaluation of Hello messages, or other routing messages as required.



BRIEF DESCRIPTION OF THE DRAWINGS
These and other objects, advantages and novel features of the invention will be more readily appreciated from the following detailed description when read in conjunction with the accompanying drawings, in which:
FIG. 1 is a block diagram of an example ad-hoc wireless communications network including a plurality of nodes in accordance with an embodiment of the present invention;
FIG. 2 is a block diagram illustrating an example of a mobile node employed in the network shown in FIG. 1;
FIG. 3 is a conceptual block diagram illustrating an example of a Routing metric computation through Hello packets in accordance with an embodiment of the present invention; and
FIG. 4 is a conceptual block diagram illustrating an example of a Routing metric computation through routing packets in accordance with an embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The embodiments of the present invention described below provide a method and system which improves the network performance of a wireless communication network by finding an optimal route between a source and a destination. An optimal route is the one which either has lower latency and/or higher throughput and/or better utilization of the network resources. This route is chosen by making use of the routing metrics which are described in greater detail below. If carefully chosen, routing metrics can provide stability to the network and also provide features like Self Healing and Load Balancing.
In a typical wireless communication network, such as network 100 of FIG. 1, number of hops between the source and the destination is typically used as the routing metric. The lesser the number of hops the better the route. As noted above, this can lead to un-optimal routes, as there can be a better route with more number of hops but better link quality or data rate.
FIG. 1 is a block diagram illustrating an example of an ad-hoc packet-switched wireless communications network 100 employing an embodiment of the present invention. Specifically, the network 100 includes a plurality of mobile wireless user terminals 102-1 through 102-n (referred to generally as nodes 102 or mobile nodes 102), and can, but is not required to, include a fixed network 104 having a plurality of access points 106-1, 106-2, . . . 106-n (referred to generally as nodes 106 or access points 106), for providing nodes 102 with access to the fixed network 104. The fixed network 104 can include, for example, a core local access network (LAN), and a plurality of servers and gateway routers to provide network nodes with access to other networks, such as other ad-hoc networks, the public switched telephone network (PSTN) and the Internet. The network 100 further can include a plurality of fixed routers 107-1 through 107-n (referred to generally as nodes 107 or fixed routers 107) for routing data packets between other nodes 102, 106 or 107. It is noted that for purposes of this discussion, the nodes discussed above can be collectively referred to as “nodes 102, 106 and 107”, or simply “nodes”.
As can be appreciated by one skilled in the art, the nodes 102, 106 and 107 are capable of communicating with each other directly, or via one or more other nodes 102, 106 or 107 operating as a router or routers for packets being sent between nodes, as described in U.S. Pat. No. 5,943,322 to Mayor, and in U.S. Pat. Nos. 7,072,650, 6,807,165 and 6,873,839 referenced above.
As shown in FIG. 2, each node 102, 106 and 107 includes a transceiver, or modem 108, which is coupled to an antenna 110 and is capable of receiving and transmitting signals, such as packetized signals, to and from the node 102, 106 or 107, under the control of a controller 112. The packetized data signals can include, for example, voice, data or multimedia information, and packetized control signals, including node update information.
Each node 102, 106 and 107 further includes a memory 114, such as a random access memory (RAM) that is capable of storing, among other things, routing information pertaining to itself and other nodes in the network 100. As further shown in FIG. 2, certain nodes, especially mobile nodes 102, can include a host 116 which may consist of any number of devices, such as a notebook computer terminal, mobile telephone unit, mobile data unit, or any other suitable device. Each node 102, 106 and 107 also includes the appropriate hardware and software to perform Internet Protocol (IP) and Address Resolution Protocol (ARP), the purposes of which can be readily appreciated by one skilled in the art. The appropriate hardware and software to perform transmission control protocol (TCP) and user datagram protocol (UDP) may also be included.
As noted above, number of hops between a source node and a destination node is typically used as the routing metric for selecting a route between nodes in a network such as network 100 of FIG. 1. This can lead to un-optimal routes, as there can be a better route with more number of hops but better link quality or data rate. The embodiments described below include the usage of other such metrics.
The routing metric is a scalar number which represents the cost between the source and the destination. The higher the cost, the worse is the route. The different factors which determines the cost can include, but are not limited to the following:

    
    
        1. Number of hops between the source and the destination;
        2. Data rate along the route from the source and the destination;
        3. Link quality along the route from the source and the destination; and
        4. Type of the device present as intermediate node between the source and the destination.
    
    


The use of these factors can be justified for the following category of reasons.
Number of Hops
In any network, the delay incurred by a packet at each hop is a function of the processing and queuing delays at the transmitting node and the transmission, including medium access, and propagation delays over the link. Thus, in a multihop network reducing the number of hops in a route may significantly reduce the end-to-end delays experienced by packets traversing the route. Routing backbones consisting of small numbers of long-range links are frequently employed to provide low-delay, high-speed connectivity between distant nodes in large networks.
In multi-hop wireless networks, the need for reduced route length is even greater than in wireline networks because of the larger delays likely to be experienced at each hop. These delays can include medium access delay resulting from contention for the shared channel, transmission delay resulting from increased packet size for error-control or direct-sequence spread-spectrum coding, retransmission delay resulting from link layer Automatic Repeat Request (ARQ) protocols for reliability over error-prone links, and radio-dependent delay such as that incurred when switching between transmission and reception modes.
Data Rate
A node could be using different data rate to different neighbors depending upon the reliability for the link. Given a choice, a node should use the highest data rate available to increase the throughput and thus, data rate should be a factor in the overall routing metric.
Link Quality
The quality of the link which can be a combined value of the RSSI level, Bit Error Rate, PDSQ values, timeouts and so forth, should also be a part of the metric to allow routing to pick a good quality link over a bad one.
Device Type
There are three different device types in a wireless network, such as a Mesh Network, namely subscriber devices (SD), wireless routers (WR) and intelligent access points (IAP). Given a choice of intermediate node (i.e. not the destination node) devices should choose a WR before an SD or an IAP so that devices do not drain out batteries of other SD devices and also do not make an IAP busy. Similarly devices should use an IAP before an SD as intermediate nodes for the same reason. There can be several other devices in such a network and hence type of device should be an important part of the overall routing metrics. An example of this is described in greater detail below.
The devices used in this kind of network typically have a module called an ATP. This module reports link quality for all MAC addresses that a node has communicated by exchanging data messages. The ATP can also provide the current data rate which is used to communicate with this neighbor. The link quality/data rate can be communicated to the other module, typically routing as a scalar number. A look up table can then be used to find out the reliability of the link and the data rate used. Additional details of an ATP and link quality are discussed in U.S. Pat. No. 6,904,021, entitled “System and Method for Providing Adaptive Control of Transmit Power and Data Rate in Ad-Hoc Networks”, issued on Jun. 7, 2005; in U.S. Patent Publication Number 20040260808 entitled “A Method to Provide a Measure of Link Reliability to a Routing Protocol in an Ad Hoc Network”, published Oct. 23, 2004; in U.S. Patent Publication Number 20040246935, entitled “System and Method for Characterizing the Quality of a Link in a Wireless Network”, published on Dec. 09, 2004, the entire contents of each being incorporated herein by reference.
The following example shows a way to calculate a routing metric which is used in a system using a modified On Demand routing protocol. Details of such routing methods are further discussed in U.S. Patent Application Publication No. 20040143842 entitled “System and Method for Achieving Continuous Connectivity to an Access Point or Gateway in a Wireless Network Following an On-Demand Routing Protocol, and To Perform Smooth Handoff Of Mobile Terminals,” published on Jul. 22, 2004; in U.S. Pat. No. 7,061,925 entitled “System and Method to Improve the Overall Performance of a Wireless Communication Network”, issued on Jun. 13, 2006; and in U.S. Patent Application Publication No. 20040258040 entitled “System and Method to Maximize Channel Utilization in a Multi-Channel Wireless Communication Network”, published on Dec. 23, 2004, the entire content of each being incorporated herein by reference. A Route Metric computation in accordance with an embodiment of the present invention is described in greater detail below.
In infrastructure mode, nodes find out about the routing metric to any destination other than an IAP through exchange of routing packets. Routing metrics to an IAP can be found by exchange of routing packets as well as hearing the hello packets from the neighbors. In case there is a difference in the routing metrics which is being computed from hello messages and that from routing packets, the hello message information is used. The following are Route metrics computation examples in accordance with an embodiment of the present invention.
Route Metrics to the LAP Through Hello Messages
A source node, following the protocol referred above, knows about the routes to the IAP and the route metric to reach it from its neighbors, which periodically broadcast this information in the Hellos. This metric is then added to the metric to the particular neighbor advertising the IAP. A bias is also added to differentiate between different types of nodes and prefer one over another. Mathematically, this can be represented in the following Equation (1) below.

Rsd=Rsn+Rnd+Next Hop Bias  (1)

where Rsd=Route metric between source and destination, Rsn=Route metric between source and next hop, Rnd=Route metric between next hop and destination (which next hop reported), and Rsn i.e. Routing metric to the next hop or neighbor is calculated using the following Equation (2).


















Rsn =
A constant number +
Different biases based on





the quality of the link and





the data rate










Routing metric to destinations other than neighbors are calculated using the Equation (1) where an additional next hop bias is added based on the type of neighbor.
In words the equation can be written as:

Routing metric to the destination=Routing metric to the next hop/neighbor+Routing metric from the next hop/neighbor to the Destination+Biased based on the type of next hop/neighbor

The following example shown in FIG. 3 is presented to clarify the procedure. FIG. 3 is an example illustrating a Routing Metric Computation through hello packets in accordance with an embodiment of the present invention.
In this example ‘s’ 120 is the current node which is trying to find the route to the destination, which is usually IAP, and ‘n’ 130 is its neighboring node advertising its route to the destination through hello packets. The hello packet 140 contains the routing metric from the neighbor to the destination which is Rnd. The routing metrics from ‘s’ to ‘n’ is Rsn and from ‘n’ to ‘s’ is Rns. The link may not be uniform and hence these values can be different. On receiving such a hello message, node ‘s’ uses the Equation (1) above to find the routing metric to the destination which is Rsd. The nodes s and n can be any device (i.e. SD, WR or IAP). In case of IAP the advertised metric is zero.
Route Metrics to Other Destinations Through Routing Messages
Route Request (RREQ) and Route Reply (RREP) are generally used in this kind of network to get routes to different nodes. These messages have a field called “Routing Metrics” and “Hop Count” which gets updated with each hop traveled. When a node initiates a Route Request it puts zero in both of these fields. Now this packet can be received by an intermediate node or a destination. In both the cases, the receiving node creates a route back to the source of the RREQ after adding their “routing metric to the neighbor” in the “Routing Metrics” field and “1” in the “Hop Count” field. It then forwards the RREQ or replies back with a RREP message as specified in the protocol. If it forwards the RREQ the receiving node does the same thing as explained before (i.e. adding route to the source route and adding the “routing metric to the neighbor” in the “Routing Metrics” field of RREQ packet and hence getting the routing metric to the source address).
The node can reply only if it has a valid route to the destination or it itself is the destination. If the node is an intermediate node, it puts the routing metric from the routing table to the field in the RREP. On receiving this RREP a node adds its “routing metric to the neighbor” who forwarded/sent this RREP. And hence has the complete routing metric to the destination concerned. RREP is forwarded to the source if the current node is not the source. Similar action is performed when the replying node is destination, except the fact that it puts zero in the “Routing Metrics” field in the RREP. This value is modified as the RREP traverses through different nodes in the way.
The following example shown in FIG. 4 is presented to clarify the procedure. FIG. 4 is an example illustrating a Routing Metric Computation through routing packets in accordance with an embodiment of the present invention.
There are four nodes shown in FIG. 4, node A 150, B 160, C 170 and D 180. The routing metrics between them are also shown in the diagram. RXY represent the routing metric between node X and Y. Note that due to non symmetry involved in wireless links, RXY can be different from RYX. If node A wants to communicate with node D, it initiates a Route Request packet with “Routing Metrics” field set to zero. When this packet is received by node B, it adds its “routing metric to the neighbor” who forwarded the RREQ packet, in this case it is A itself, to the “Routing metrics” field in the RREQ packet and creates/updates a route to the source (i.e. node A) following the routing protocol. In this example, B will add RBA and zero (the current value stored in the “Routing Metrics” field) to get the routing metric to A. If it doesn't know the route to D, it forwards the RREQ packet which has RBA now in the “Routing Metrics” field. On receiving this packet, C does the same thing and adds RCB to RBA to get the routing metric to A. Hence it calculated the routing metric to A as: RCA=RBA+RCB.
If in the example of FIG. 4, assume that C has a “fresh enough” route to D, that is, it has an unexpired route with routing metric RCD. So it replies to the RREQ packet, and to do so it puts the routing metrics RCD in the “Routing Metrics” field of RREP packet and unicasts the packet to node B. On receiving such a packet node B adds its routing metric to its neighbor, which forwarded the RREP packet to it, to the “Routing Metrics” field in the RREP. In this case it will add RBC to RCD which was already present in the field. Hence it calculated the routing metric to D as: RBD=RBC+RCD 
A similar procedure can be used by node A when it finally receives the RREP. Hence it has the routing metric to node D as: RAD=RAB+RBC+RCD 
A comparison of the above Routing Metric calculations is described below. Given a choice, a node should use the route with minimum route metric associated with it. The Neighbor Handling sub-module maintains a list of routes in the order of increasing route metric to the IAP. The route appearing earlier in this list is given preference over one coming later.
There can be several variations to this approach, for example, some additional bias or hysteresis can be added to prevent oscillations of routes. The “bias” can be a constant value or a function of something like metrics itself or number of hops. The use of bias is explained in the following example.
If in this example a node has a valid route to an IAP and has a metric “x” associated with it, to avoid oscillations it should not try to establish a new route unless it offers a metric which is “y” (bias) less then the current one. A still higher bias can be used if the route is towards some other IAP.
In addition to the metrics identified above, still other metrics can be used, such as battery life, bandwidth, congestion and so forth. Any such category of metrics, including the four discussed above, can be used and propagated as described above, such as in the hello message.
Although only a few exemplary embodiments of the present invention have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention as defined in the following claims.

## Claims

1. A method for calculating an optimal route between nodes in a wireless ad-hoc multi-hopping peer-to-peer communication network, the method comprising:
when one of the nodes acts as a source node and attempts to send a data packet to another one of the nodes which is a destination node which is not within direct communication with the source node, the source node transmits a route request message;
when other nodes receive the route request message, and one of those other nodes has a route to the destination node, that one of the nodes transmits a route reply message for delivery along a path including those other nodes, the route reply message including a route metric for the route between that one node and the destination node, the route metric including information representing at least one of the following: a number of hops between the source and destination node, a data rate along the route between the source and destination node, link quality along the route between the source and destination node, and information representing the types of nodes along the route between the source and destination node, and each of those other nodes, upon receipt of the route reply message, adds its respective route metric for a route between itself and the node from which it received the route reply message, before delivery of the route reply message to the source node; and
the source node transmits the data packet for delivery to the destination node based on the route reply message.

2. A method as claimed in claim 1, wherein: the source node and destination node are mobile nodes.

3. A method as claimed in claim 1, wherein:
the route request message and route reply message each include respective hop count information and route metric information which are updated each time the respective message is sent from one node to another.

4. A method as claimed in claim 1, wherein:
the route metric includes information representing at least one of the following: a data rate along the route between the source and destination node, and information representing the types of nodes along the route between the source and destination node.

5. A method for calculating an optimal route between a node and a destination node through one or more other nodes including at least one neighbor node in a wireless communication network, the method comprising:
the neighbor node broadcasting a message including a routing metric from the neighbor node to the destination node;
in response to receiving the message, the node calculating a route metric to the destination node through the neighbor node by adding to the route metric in the message its respective route metric for a route between itself and the neighbor node from which it received the message and a bias associated with a type of the neighbor node, and uses this updated route metric as the route metric for the route to the node.

6. A method as claimed in claim 5, wherein:
the message is a routing message.

7. A method as claimed in claim 5, wherein:
the message is a hello message.

8. A method as claimed in claim 5, wherein:
the route metric includes information representing at least one of the following: a data rate along the route between the source and destination nodes, and information representing the types of nodes along the route between the source and destination nodes.

9. A method as claimed in claim 5, wherein:
the message is a periodic message.

10. A system for calculating an optimal route between a node and a destination node through one or more other nodes including at least one neighbor node in a wireless communication network, the system comprising:
the neighbor node, which broadcasts a message including a routing metric from the neighbor node to the destination node; and
the node, comprising:
a controller for calculating a route metric to the destination node through the neighbor node by adding, upon receipt of the message, to the route metric in the message its respective route metric for a route between itself and the neighbor node from which it received the message and a bias associated with a type of the neighbor node, and uses this updated route metric as the route metric for the route to the node.

11. A system as claimed in claim 10, wherein:
the message is a routing message.

12. A system as claimed in claim 10, wherein:
the message is a hello message.

13. A system as claimed in claim 10, wherein:
the route metric includes information representing at least one of the following: a data rate along the route between the source and destination nodes, and information representing the types of nodes along the route between the source and destination nodes.

14. A system as claimed in claim 10, wherein:
the message is a periodic message.