FITNESS BASED ROUTING
First Claim
1. At a computer system, the computer system included as a node in an overlay network, the overlay network also including a plurality of other nodes, a method for maintaining a routing table at the computer system, the method comprising:
- an act receiving node information for another node that exists at a specified location within the overlay network, the node information including fitness information for the other node;
an act of accessing a routing table that includes one or more nodes, each node in the routing table being a node that the computer system can send a message to to delivery the message to a destination node within the overlay network, each node in the routing table having a fitness metric value representing an ability of the node to transfer and process messages within the overlay network;
an act of calculating a fitness metric value for the other node, the fitness metric value representing the other node'"'"'s ability to transfer and process messages within the overlay network, the fitness metric value based at least in part on the fitness information for the other node;
an act of inserting the other node into the routing table;
an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of the overlay network;
an act of assigning each node in the routing table to a specified range based on the location of the node in the overlay network;
an act of identifying the range that includes the most nodes;
an act of identifying the node within the identified range that is least able to transfer and process messages within the overly network based on fitness metric values of the nodes in the identified range; and
an act of removing the identified node from the routing table.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for fitness based routing. Embodiments of the invention significantly improve the likelihood that routing nodes contained in routing table have adequate (or even relatively increased) ability to transfer and process messages in an overlay network. Thus, when the node is to make a routing decision for a message, the node has some assurances that any selected routing node is adequate (or is at least the best currently available). Further, a sending node can take preference to routing nodes with higher fitness values when sending a message. Preference to higher fitness metric values further insures that messages are adequately transferred and processed. Accordingly, embodiments of the invention can be used to route messages in a manner that optimizes bandwidth and provides efficient routing capability.
-
Citations
20 Claims
-
1. At a computer system, the computer system included as a node in an overlay network, the overlay network also including a plurality of other nodes, a method for maintaining a routing table at the computer system, the method comprising:
-
an act receiving node information for another node that exists at a specified location within the overlay network, the node information including fitness information for the other node; an act of accessing a routing table that includes one or more nodes, each node in the routing table being a node that the computer system can send a message to to delivery the message to a destination node within the overlay network, each node in the routing table having a fitness metric value representing an ability of the node to transfer and process messages within the overlay network; an act of calculating a fitness metric value for the other node, the fitness metric value representing the other node'"'"'s ability to transfer and process messages within the overlay network, the fitness metric value based at least in part on the fitness information for the other node; an act of inserting the other node into the routing table; an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of the overlay network; an act of assigning each node in the routing table to a specified range based on the location of the node in the overlay network; an act of identifying the range that includes the most nodes; an act of identifying the node within the identified range that is least able to transfer and process messages within the overly network based on fitness metric values of the nodes in the identified range; and an act of removing the identified node from the routing table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. At a computer system, the computer system included as a node in an overlay network, the overlay network also including a plurality of other nodes, a method for maintaining a routing table at the computer system, the method comprising:
-
an act of receiving a message from another node in the overlay network, the message including node information for a plurality of further nodes in the overlay network, the node information including fitness information for each of the plurality of further nodes; an act of accessing the computer system'"'"'s routing table, the computer system'"'"'s routing table including a plurality of nodes that the computer system can communicate with to route messages to destination nodes within the overlay network, each of the plurality of nodes in the computer system'"'"'s routing table having a fitness metric value representing an ability to transfer and process messages within the overlay network; for each of the plurality of further nodes; an act of calculating a fitness metric value for the further node, the fitness metric value representing the further node'"'"'s ability to transfer and process messages within the overlay network, the fitness metric value based at least in part on the fitness information for the further node; and an act of inserting the further node into the computer system'"'"'s routing table; an act of determining that the number of nodes in the computer system'"'"'s routing table exceeds a specified number; an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of the overlay network; an act of assigning each node in the routing table to one of the plurality of ranges based on the location of the node in the overlay network; an act of identifying the range that includes the most nodes; and an act of removing the node that is least fit to transfer and process messages, among the nodes in the identified range, from the routing table based on fitness metric values. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. At a computer system, the computer system included as a node in an overlay network having a doubly linked ring topology, the overlay network also including a plurality of other nodes, a method for maintaining a routing table at the computer system, the method comprising:
-
an act of receiving a message from another node in the doubly linked ring topology, the message including node information for a plurality of further nodes in the other node'"'"'s routing table, the node information indicating routing table size for each further node in the other node'"'"'s routing table; an act of locking the computer system'"'"'s routing table to prevent any routing determinations subsequent to receiving the message, each node in the computer system'"'"'s routing table being a node that the computer system can send messages to to delivery the messages to a destination node within the doubly linked ring topology, each of the plurality of nodes in the computer system'"'"'s routing table stored along with a an indication of a corresponding routing table size of the node; an act of integrating the plurality of further nodes into the computer system'"'"'s routing table; an act of determining that the number of nodes in the computer system'"'"'s routing table exceeds a specified number; an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of doubly linked ring topology; an act of assigning each node in the routing table to one of the plurality of ranges based on the location of the node in the doubly linked ring topology; repeating until the number of nodes in the computer system'"'"'s routing table no longer exceeds the specified number; an act of identifying the range that includes the most nodes; an act of identifying the node within the identified range that has the smallest indicated routing table size; and an act of removing the identified node from the computer system'"'"'s routing table; and an act of unlocking the computer system'"'"'s routing table so that the computer system'"'"'s routing table can again be used in routing determinations subsequent to the number of nodes in the computer system'"'"'s routing table no longer exceeding the specified number.
-
Specification