Abstract:
A complex adaptive routing system and method for routing data packets in a nodal network, in particular, an ad-hoc nodal network. Each data packet contains data representing its routing strategy for routing to a destination node. When a node receives the data packet, it executes an agent program to determine the best route for routing the data packet to its destination node based on the routing strategy and other factors, such as the current conditions of the nodes and paths to the nodes. The agent program updates the strategy data in the data packet, as well as the routing table of the node, before the node sends the data packet to the next node in the selected route. The system and method therefore enables the data packet routing decisions to be dynamically adapted to changing conditions in the network.

Description:
FIELD OF THE INVENTION 
   The present invention relates to an improved routing system and method for routing data packets in a nodal network. More particularly, the present invention relates to an adaptive complex routing system and method that utilizes agents in both the packets of data and nodes in the network to adaptively determine the best paths from a source node to a destination node for the data packets. Overall control of the complex adaptive routing system is maintained by a program which establishes rules for the detection and acquisition of information and rules to determine the effects of the detected and acquired information. 
   DESCRIPTION OF THE RELATED ART 
   In recent years, a type of mobile communications network known as an “ad-hoc” network has been developed for use by the military. In this type of network, each user terminal (hereinafter “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. Accordingly, data packets being sent from a source mobile node to a destination mobile node are typically routed through a number of intermediate mobile nodes before reaching the destination mobile node. 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 conventional ad-hoc networks, further enable the mobile nodes to access a fixed network and thus communicate with other types of user terminals, 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,650 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. 
   Traditional routing systems in some nodal networks use a designed infrastructure which provides efficient routes for data to flow from a source node to a destination node.  FIG. 1  illustrates a conceptual block diagram of a nodal network  100  including nodes  102  (identified as nodes N 1  through N 13 ), wherein the nodes N 1  through N 13  are interconnected by links, for example, links  104 A through  104 U. A node can be, for example, a stationary or mobile radio, a wireless telephone, or any other suitable device having a transceiver. Likewise, a link can be any suitable wireless link, such as a radio frequency or microware communications link, or any suitable fixed communications link, such as a conductive or fiber optic cable or the like. Also, although only a finite number of nodes and links are represented, the network  100  can include any practical number of nodes, with each node having temporary or permanent links between itself and one or more neighboring nodes. 
   A packet of data traversing the nodal network  100  has both a source address and a destination address. The designed infrastructure associated with the network  100  chooses the most appropriate route and transports the packet from the source node to the destination node. An analogy of this type of routing system is a conventional package delivery service, such as the mail. 
   For example, assume that a packet of data P 1  entering the network  100  at node N 1  (or generated by node N 1 ) is addressed to N 12 . The designed infrastructure of network  100  will provide direction from N 1  to N 12 . For example, these direction could entail traveling from node N 1  to node N 2  along link  104 A, from node N 2  to node N 4  along link  104 D, from node N 4  to node N 3  along link  104 F, and finally, from node N 3  to node N 12  along link  104 G. Of course, the designed infrastructure alternatively could have directed packet P 1  to travel from node N 1  to node N 12  via link  104 B which would appear to be the most direct route. However, as discussed below, sometimes there are reasons why the seemingly most direct route is not necessarily the best route. That is, since a link is a connection between two adjacent nodes; its physical form will be determined by the network  100  of which it is part. For example, in a cellular network, the links could be landlines, wireless transmissions, satellite up and down links or fiber optic links, to name a few. 
   Networks that use a designed infrastructure typically employ algorithms that are used to determine the path of intermediate nodes via which the data packets are routed between source and destination nodes. The algorithms determine paths that are typically based on the shortest distance between the source and destination nodes or, assuming that the data packet transport medium is wireless, the least power required to perform the routing. However, such algorithms do not necessarily produce a predictable delivery of data packets. For example, routing of data packets can be delayed due to congestion in intermediate nodes. Also, delivery failure of data packets can occur on noisy radio links between nodes. Furthermore, certain nodes may become inaccessible, or certain links may have deteriorated due to factors such as interference, physical obstructions, and so on. Therefore, these routing systems may be less adaptable than desired to changes that might occur in the status of nodes or links between nodes. 
   Accordingly, a need exists for a nodal network that is capable of effectively and efficiently adapting to changing conditions of nodes and links in the network when making routing path selections for routing data packets from source nodes to destination nodes. 
   SUMMARY OF THE INVENTION 
   It is therefore an object of the invention to provide a nodal network that can, in real time, adapt to current conditions in acquiring and making path selections, when routing a path from a source to a destination. 
   Another object of the invention to provide a complex adaptive routing system and method for a nodal network that utilizes agents in both the packets of data and nodes in the network to adaptively determine the best paths from a source node to a destination node for the data packets. 
   These and other objects are substantially achieved by providing a complex adaptive routing system and method for routing data packets in a nodal network, in particular, an ad-hoc nodal network. Each routing data packet contains data representing its routing strategy for routing to a destination node. When a node receives the data packet, it executes an agent program to determine the best route for routing the data packet to its destination node based on the routing strategy and other factors, such as the current conditions of the nodes and paths to the nodes. The agent program updates the strategy data in the data packet, as well as the routing table of the node, before the node sends the data packet to the next node in the selected route. The system and method therefore enables the data packet routing decisions to be dynamically adapted to changing conditions in the network. 
   These and other objects are also substantially achieved by providing a system and method for routing a data packet in a network, such as an ad-hoc network comprising nodes interconnected by links. The system and method employs the operations of receiving a data packet at a receiving node, and extracting routing strategy data from the received data packet, the routing strategy data including information pertaining to at least one routing path via which to route the received data packet to a destination node, with each routing path including at least one other node. The system and method further perform the operations of selecting a selected routing path via which to route the data packet based on the routing strategy data, and updating the routing strategy data in the data packet. The selected routing path can be one of the routing paths identified by the routing strategy, or a different routing path deemed most suitable for routing based on the routing strategy. Also, the routing strategy data also can include information representing at least some of the nodes that the data packet visited prior to being received by the receiving node. The system and method further include the operations of transmitting the data packet to a node along the selected routing path, updating a routing table at the receiving node based on the updated routing strategy data, and sending the updated routing strategy data to other nodes. In addition, the system and method can combine data representing at least two routing paths to generate data representing a different routing path, to thus reproduce the routing strategy data with some mutation. 

   
     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  illustrates a conceptual block diagram of a nodal network having a plurality of nodes and links between the nodes; 
       FIG. 2  illustrates a conceptual block diagram of a nodal network employing an adaptive complex routing system and method according to an embodiment of the present invention; 
       FIG. 3  is a block diagram illustrating features of a node employed in the network shown in  FIG. 2 ; and 
       FIG. 4  is a flowchart illustrating exemplary operations performed by the network shown in  FIG. 2  for routing a data packet to a destination node according to an embodiment of the present invention. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   A nodal network  200  employing a complex adaptive routing system and method according to an embodiment of the present invention is shown in  FIG. 2 . As indicated, the network  200  is preferably an ad-hoc network as discussed in the Background section above, and includes a plurality of nodes  202 - 1  through  202 - n  (referred to generally as node or nodes  202 ). A node  202  can be, for example, a fixed or mobile wireless radio, or any other type of device having a transceiver that is capable of transmitting and receiving data packets. 
   For example, as shown in  FIG. 3 , each node  202  includes a transceiver  204  including a transmitter and a receiver which is capable of respectively transmitting and receiving signals, such as packetized data signals, under the control of a controller  206 . The packetized data signals can include, for example, voice, data or multimedia. Each node  202  further includes a memory  208 , which can include a random access memory (ROM) for storing information pertaining to the operation of the node  202 , and a random access memory (RAM) for storing information such as routing table information and the like in accordance with which data packets are transmitted, received and routed by the transceiver  204  as described in more detail below. A node  202  can also function as an intelligent access point (IAP) which can provide access to other networks, such as other ad-hoc networks, the PSTN, the Internet, and so on, or simply as a router for routing data packets to other nodes. 
   As shown in  FIG. 2 , the nodes  202  therefore are capable of establishing communication links  210  with each other, which can be, for example, wireless radio frequency (RF) communications linked, fixed terrestrial links such as cable or optical fiber links, and so on. Also, as can be appreciated by one skilled, in the art, because the network  200  can be an ad-hoc network, the status of the links  210  between the nodes  202 , as well as the status of the nodes  202  themselves, can change on a dynamic basis. Accordingly, although links  210 - 1  through  210 - n  are shown for exemplary purposes in  FIG. 2 , these can change in status, and more or fewer links may be present in the network  200  at any given time. 
   An example of a complex adaptive routing system and method according to an embodiment of the present invention that can be employed in the network  200  will now be described. Specifically, the system is formed by a large number of individual agents with unique strategies, which operate as a group in a physical environment, and pass forward successful strategies by direct communication and by reproduction of the most successful agents with trait recombinations and a very small percentage of mutations. Some concepts of complex adaptive routing systems are described in a book by John Holland entitled “Hidden Order”; Addison Wesley, 1995 and, in particular, in the chapter entitled “How Adaptation Builds Complexity”. The entire content of the book is herein incorporated by reference. 
   A general analogy of a complex adaptive routing system is a bee hive. That is, many individual bees follow strategies which serve the entire colony, and which also serve the individual bee. Successful strategies are communicated to other bees. The entire colony thus has an emergent behavior which is different from the behavior of the individuals bees. Successes are rewarded, and new strategies are discovered and tested. 
   By way of another real world comparison, when driving in a car, if a driver hears on the radio that the freeway is jammed, the driver selects an alternate route. This behavior in a complex adaptive system allows for optimization. Packets inbound to the wired world could route themselves over parallel routes, distributing themselves according to link congestion, thereby effectively increasing the bandwidth of the network. 
   The type of agents that can be employed by the complex routing system according to an embodiment of the present invention can generally be classified into two types, namely, data packets and nodes  202  of the type described above. The primary agents are the data packets, which interact with the routing information at the nodes  202  to determine the next hop of their choice based on their strategy. A data packet contains data representing the nodes  202  that it has passed through, which is referred to as node history. A data packet also includes data representing its strategy or strategies, which may include the desired route that it is to traverse when traveling to its destination node  202 . The data packet uses this information while employing its strategy and discovering new strategies. 
   Strategies are typically associated with a goal or goals that the data packet is to achieve from a routing standpoint. For example, to traverse from point A to point B, for example, from node  202 - 1  to node  202 - 8 , the best strategy contains the best route to point B from point A. However, to traverse back from point B to point A, the goal is different, and thus, the strategy is different. The knowledge of the best strategy from point A to point B can be used in the discovery of the best strategy from point B to point A. However the strategy of using the reverse of the best route from point A to point B is not necessarily always the best strategy. 
   For example, if there is an fiber link available from point B to point A, but only in that direction, and at a much higher speed than the Ethernet link from point A to point B, then the discovery of the fiber link route will outperform a competing strategy of the reverse Ethernet route from point B to point A, and will be assigned credit for the better strategy as discussed in more detail below. This credit will allow the most fit strategy to reproduce during rule discovery. 
   An example of a rule discovery sequence will now be demonstrated with reference to a group of existing rules as follows:
         Rule A: “Dest:  292  Strategy: C F G *”   Rule B: “Dest:  292  Strategy: D H G *”   Rule C: “Dest:  284  Path:  204 , 207 , 211 , 220 , 218 , 284 ”   Rule D: “Dest:  284  Path:  208 , 211 , 224 , 232 , 284 ”   Rule F: “Dest:  278  Path:  284 , 274 , 275 , 268 , 278 ”   Rule G: “Dest:  292  Path:  278 , 284 , 286 , 292 ”   Rule H: “Dest:  278  Path:  284 , 268 , 278 ”       

   Since Rules F and H are both routes from a node numbered “ 284 ” to a node numbered “ 278 ” using intermediate nodes (e.g., “ 274 ”, “ 268 ”, etc.), they are both building blocks for that route and are interchangeable. Since Rule H provide a shorter route, where there are equally performing links, it will be faster. The new rule discovery will recombine A (C F G) and B (D H G) and produce new rule N (C H G). In this case, the discovery is more efficient than previously known rules. This rule has a high probability of success. In the case of a less efficient rule, subsequent trials will not produce good results, and the rule will be abandoned. 
   This allows real-time feedback from the physical environment to be considered in the dynamic discovery of new and more efficient strategies. For example, node  202  can store information in its memory  208  about data packets that have traversed the node  202 , the strategies they used, and the destinations they have selected. For example, if 99% of the data packets received during the last minute by node  202 - 1  selected the next hop to node  202 - 8  to be through node  202 - 4  via link  210 - 3  (route A), and 1% chose the next hop to node  202 - 8  to be through node  202 - 2  via link  210 - 1  (route B), then the packet received by node  202 - 1  can choose routes A or B as locally discovered routes, and can qualify the choice based on factors such as link reliability, speed, or popularity. This technique is an example of dynamic discovery. In this case, the data packet may chose route A since it is presumably the preferred route. However, by taking into account other factors, the data packet may chose route B. 
   For example, when a data packet arrives at a node  202 , the controller  206  of the node  202  (see  FIG. 3 ) extracts the data packet&#39;s node history and strategy and provides this information to an agent program that the controller  206  is executing. The agent program also considers the latest routing information in the routing table that is stored in the memory  208  of the node  202 . In addition, information included in the data packet as acted on by the agent program can be used to update the routing table information stored in the memory  208  of the node  202 . A node  202  can also update its routing table information by receiving specific routing table broadcasts from its neighboring nodes. 
   A strategy can be represented by a simple character string, and an agent program contains functions referred to as detectors and effectors which interact with the strategies in the data packet. The detectors retrieve data from the data packet representing, for example, the data packet&#39;s node history and strategy, and control the storing and collating of the data. This is done for all packets that are received by the particular node  202 . Effectors, on the other hand, interpret the data collected by detectors and creates a new best routing path, for example, a new strategy, for the data packet. The output of the effectors thus can be considered by the controller  206  to thus determine the manner in which the data packet is to be routed. 
   An example of a very simple strategy is a strategy containing only a destination address “x.x.x.x”. This strategy is interpreted by the effector as “please send me to address x.x.x.x”, without any concern for paths. A more advanced strategy might be represented by “DestHost A, B, C; D; *”, which is interpreted by the effector as “my destination is DestHost, and I would like to be routed to DestHost via known paths A, B, or C, or if those fail use known route D, and if that fails, use locally discovered paths.” 
   For example, assuming that the packet has been received at node  202 - 1  and the “DestHost” is node  202 - 8 , path “A” could comprise links  210 - 1  and  210 - 6 , path “B” could comprise links  210 - 1 ,  210 - 5  and  210 - 13 , and path “C” could comprise links  210 - 3  and  210 - 13 . In accordance with this strategy, the agent program will chose one of these paths if it is available. However, assuming that one or more of the links in each of these paths have become obstructed or undesirable (e.g., due to noise or interference), then the agent program will chose route “D” which could, for example, comprise links  210 - 3 ,  210 - 11  and  210 - 19 . In the event that the less preferred route “D” is unavailable, the agent program will attempt other locally discovered paths to route the data packet to node  202 - 8 . 
   An alternative strategy might try the locally discovered paths first, which may be a risky but possibly rewarding behavior. Also, an explicit strategy can carry an advertisement of a known path with a unique identifier to the nodes: “Path P 321  To DestHost  144   153   12   72  DestHost”. This explicit strategy becomes known as the symbolic strategy “P 321 ” and facilitates the exchange of knowledge in the development of new strategies. 
     FIG. 4  illustrates a flowchart of exemplary operations performed by a network  200  employing a complex adaptive routing system and method according to an embodiment of the invention as discussed above. In step  300 , a data packet arrives at a node  202 . The data packet is a data packet agent and contains a node history and strategy. In step  302 , the detector of agent program being executed by the controller  206  of node  202  extracts the node history and strategy from the data packet. In step  304 , the agent program obtains the node history from, for example, the memory  208  of the node  202 . This information, along with the information extracted from the data packet, is considered by the effector of the agent program. Using the information obtained by detector, as well as the routing table information, data packet traffic, and so on as discussed above, the effector determines in step  306  which path should best be selected to best send the data packet to its destination. 
   In step  308 , the agent program can then update the strategy of the data packet, as well as the node&#39;s routing table information in the node&#39;s memory  208 . In step  310 , the controller  206  controls the transceiver  204  of the node  202  to transmit the data packet to the appropriate next node  202  in the routing path according to the interpretation by the effector of the agent program. This process then repeats itself over and over, at each node  202 , as first packet  102  winds it way through the network  100  to its ultimate destination. 
   As discussed above, successful strategies are rated on their performance. For example, strategies with the fewest number of hops to a destination can be rewarded. The most successful strategies are allowed to reproduce, and the least successful strategies age and die, and are replaced by newly formed strategies. All of these operations can be accomplished by the agent programs at the nodes  202 . Accordingly, the agent program is therefore able to determine the most suitable node  202  to which to transmit the data packet according to the information in the data packet and the routing table information as considered by the agent program. As mentioned above, the agent program being executed by the controller  206  of a node  202  can cause the controller  206  to control the node&#39;s transceiver  204  to transmit newly discovered routes to the neighboring nodes  202 . 
   Additional strategy behaviors include alternate strategy selection, and complex route loop detection. The former would be invoked if a network node fails, or moves. Adaptive agents, such as the nodes  202 , can select alternate strategies and routes to heal the network. The latter is a simple strategy to implement by searching the packet travel memory for duplicate nodes. 
   It is also noted that the agent program can assign the strategies credit (fitness) based on their performance, and can select certain strategies for reproduction based on fitness. Reproduction can introduce a random crossover and exchange of “genetic” strategy (the symbols which represent strategies), thus producing new strategies in the offspring. For example, a successful strategy “Dest 1  A B C D”, when mated with the strategy “Dest 1  E F G H”, could produce the new strategy “Dest 1  A B G H”. Genetic crossover can occur randomly, or using qualifications. A random crossover algorithm for equal length parents is, for example, a crossover of the parent strands at one random location in the string, for the remainder of the string. This produces two child strands, each with strategy information inherited from both parents. Because the child strands are different from the parents, this is a discovery process. The success of the child strategies will be determined by subsequent testing in the environment. 
   In the case of qualification, parents can be selected based on known desired traits. For example, parents may be selected based on a common building block that meets system goals, such as in the above example of rule discovery, where the final destination of  292  was a goal used in the selection of the appropriate building blocks. In this case, only parents and building blocks that provided a path to get to node  292  could be selected. 
   In either case, subsequent testing of the new rule will determine its value and its survival. This is an important point, because it transforms a simple random selection or qualified selection algorithm into a genetic rule discover, test, and reward algorithm. Also, a small amount of mutation is introduced by the adaptive agent program, which prevents stagnation or locking. 
   Mutation is the introduction of a random element (atomic or symbolic) at a very low rate, for example, 0.0001 percent, which prevents lockout. Lockout occurs when successful strategies are undiscovered due to a feedback loop of success with existing strategies. In that case, the system is so focused on the success of known routes that it does not bother to look for other routes. Mutation corrects this, and keeps the doorway open to all new environmental information, most of which is useless, but a small portion of which is extremely valuable. An individual node does not have the time to evaluate all of this information, but the complex system, the general population of nodes and packets over time, does. 
   The new strategies just created join the general population, and as older and less fit strategies die, the new strategies replace them, and the cycle continues. Also, the adaptive agent program can change the reward structure to favor certain strategies, and then those strategies quickly emerge in the majority of the population. When opposite strategies are rewarded, they propagate similarly. The system adapts to environmental conditions under the control of the adaptive agents. 
   This system could be modified or extended through the introduction of new inputs from the network  200  and the outside environment, and new input and output actions provided in the form of a new detectors and effectors, with corresponding strategy symbols to be generated by a detector and acted upon by an effector. New inputs, strategy symbols, detectors, and effectors allow the emergent strategies to address all inputs with new behaviors in the newly provided effectors, creating new actions by the system. 
   For example, as discussed above, rule discovery generates new symbols by aggregating successful groups of specific nodes in a route into new optimized symbols. For example, the rule discovery could use a group of specific nodes representing a path from node “ 1 ” to destination node “ 292 ” (Dest:  292  History:  1 , 5 , 7 , 1 , 5 , 7 , 8 , 9 , 8 , 292 ) into new optimized symbols (NewRule N: Dest:  292  Path:  1 , 5 , 7 , 8 , 292 ). Detectors can then query the node&#39;s routing information for the path N&#39;s availability from this node. This translates to the question, “is the current node number in the path described by rule N?” The rule N is offered to the node, which will want to keep it if the node is contained in rule N, as future packets may benefit from the routing information in rule N. If however, rule N goes unused for a long time, it may be discarded. 
   In addition, new strategies can also be generated. For example, if a portion of the network (nodes  250  through  260 ) becomes congested during working hours, then strategy A (Dest  270 : path  240 , 250 , 245 , 260 , 270 ) becomes temporarily unavailable. A node neighboring the congested node (e.g., the node numbered “ 245 ”), will drop the success score of path A based on failures, and an alternative strategy B (Dest:  270 : path  240 , 244 , 247 , 266 , 267 , 268 , 270 ) becomes successful in spite of its length, due to the congestive failures in path A which are avoided by B. Child paths of A and B which traverse the congestion will fail during congestion, and succeed during other hours, so they are partially successful. Child paths of A and B which avoid the congestion are completely successful, and may begin to compete in path length efficiency, perhaps surpassing strategies that use the periodically congested nodes. 
   The resulting strategies are conditioned and tested for the alternative environments, along the entire path of the strategy. All that a strategy needs to do is list the desired paths for the detector (A, B, *). When A has become congested, any neighboring node becomes aware of the condition, so the packet agent detector does not see A at node “ 245 ” because it has had multiple failures. When the next strategy is evaluated by the detector, the node replies in the affirmative that B is visible and available. When the packet agent, working with the node agent, selects the path B, it inherits the experience of many previous generations of packets that have traversed around the congestion and, following the B strategy, it will not even attempt to re-enter the congestion zone, although nodes along that path will have the congestion zone visible as neighbors. The B strategy will thus become the primary strategy until it either is replaced by another strategy (e.g., strategy A) because the congestion has dissipated and its scores increased, or a random mutation has occurred to promote a periodic test to determine if the congested area is still congested. 
   Accordingly, as can be appreciated from the above, the technique generates a strategy that circumnavigates a known region of periodic congestion, and provides a manner to test for existence of congestion in the region. The technique also provides a route around the congestion, as well as the ability to restore use of the region when it is no longer congested, and the ability to continue to monitor all of the extremities of a periodically congested region for changes, such as improvements or degradations in the area. 
   Furthermore, to preserve bandwidth in a bandwidth limited network, a small percentage of data packets may be used as packet agents. For example, a specific type of data packet can be used, such as an advertisement packet. Alternatively, a threshold can be set by the controller  206  of a node to cause the node  202  to generate and transmit a packet agent after a specified time interval has elapsed or a specified number of data packets have been transmitted. 
   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.