WO2009020980A1 - Fitness based routing - Google Patents
Fitness based routing Download PDFInfo
- Publication number
- WO2009020980A1 WO2009020980A1 PCT/US2008/072250 US2008072250W WO2009020980A1 WO 2009020980 A1 WO2009020980 A1 WO 2009020980A1 US 2008072250 W US2008072250 W US 2008072250W WO 2009020980 A1 WO2009020980 A1 WO 2009020980A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- routing table
- act
- nodes
- computer system
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/127—Shortest path evaluation based on intermediate node capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
Definitions
- Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic content. Accordingly, the performance of many computing tasks are distributed across a number of different computer systems and/or a number of different computing components.
- An overlay network is a fabric that extends over today's traditional networks (both private networks and the internet) and provides a uniform view that masks the specifics of the underlying networks.
- network link capacities between nodes on the Internet and other distributed networks vary from broadband to dialup speeds. For example, assuming there are two potential routes to get from point A to point B. One route involves going through a node that is connected by a dialup and another route involves going through a node that is connected by a high speed broadband connection. If all nodes were to be treated alike, probabilistically, messages can be routed through the node connected by dial-up, which is a sub-optimal route and affects the efficiency of message transfer. These, as well as other, inefficiencies can be magnified using overlay networks that are large scale (e.g., millions of nodes) and have high capacity machines and links that can be effectively utilized.
- At least one other problem with overlay networks is the mechanism that is used to update presence information between nodes (i.e., when one node knows of the presence of another node).
- Typical mechanisms for propagating presence information include flooding the overlay or, at least a large portion of the overlay, with the node's presence information. The presence information is picked up by members of the overlay and stored as part of their routing table and used for subsequent routing decisions.
- flooding presence information onto the overlay is very expensive and consumes significant network capacity. The consumed network capacity is then unavailable for actual application messages.
- the problem is potentially significantly exacerbated as the number of nodes on an overlay network increases, such as, for example, when there are thousands or even millions of nodes publishing presence information.
- Overlay networks employ a decentralized mechanism for routing messages across the overlay, wherein each node has a partial knowledge of the location of other nodes in the overlay. Messages are passed across the overlay from the source to a node that is "closer" to the destination and with each hop gets numerically closer to the destination, until the destination node is reached.
- the use of "closeness" as a sole factor in considering a route between nodes can often cause less efficient routes between nodes.
- the present invention extends to methods, systems, and computer program products for fitness based routing.
- Embodiments of the invention include maintaining a routing table at a computer system, such as, for example, a node in an overlay network.
- the computer system receives node information for another node that exists at a specified location within the overlay network.
- the node information includes fitness information for the other node.
- the computer system accesses 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.
- the computer system calculates a fitness metric value for the other node.
- the calculated fitness metric value represents 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.
- the computer system inserts the other node is inserted into the routing table.
- the routing table is divided into a plurality of ranges. Each range corresponds to a portion of the overlay network.
- the computer system assigns each node in the routing table a specified range based on the location of the node in the overlay network.
- the computer identifies the range that includes the most nodes.
- the computer system identifies 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.
- the computer system removes the identified node form the routing table.
- node information for a plurality of nodes in an overlay network is received in a message from another node in the overlay network.
- a fitness metric is calculated for each of the plurality of nodes and each of the other nodes is inserted in the computer system's routing table. It is determined that the number of nodes in the routing table exceeds a specified number.
- the routing table is divided into a plurality of ranges, each range corresponding to a portion of the overlay network. Each of the nodes in the routing table is assigned to one of the plurality of ranges. The range with the most nodes is identified. From among the nodes in the identified range, the node least fit to transfer and process messages, based on fitness metric values, is removed from the routing table.
- Figure IA illustrates a view of an example overlay ring network architecture that facilitates fitness based routing.
- Figure IB illustrates a view of an example node of the overlay ring network architecture maintaining a routing table.
- Figures 1C and ID illustrates another view of the example node of the overlay ring network architecture maintaining a routing table.
- Figure 2 illustrates a flow chart of an example method for maintaining a routing table.
- Figure 3 illustrates a flow chart of another example method for maintaining a routing table.
- the present invention extends to methods, systems, and computer program products for fitness based routing.
- Embodiments of the invention include maintaining a routing table at a computer system, such as, for example, a node in an overlay network.
- the computer system receives node information for another node that exists at a specified location within the overlay network.
- the node information includes fitness information for the other node.
- the computer system accesses 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.
- the computer system calculates a fitness metric value for the other node.
- the calculated fitness metric value represents 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.
- the computer system inserts the other node is inserted into the routing table.
- the routing table is divided into a plurality of ranges. Each range corresponds to a portion of the overlay network.
- the computer system assigns each node in the routing table a specified range based on the location of the node in the overlay network.
- the computer identifies the range that includes the most nodes.
- the computer system identifies 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.
- the computer system removes the identified node form the routing table.
- node information for a plurality of nodes in an overlay network is received in a message from another node in the overlay network.
- a fitness metric is calculated for each of the plurality of nodes and each of the other nodes is inserted in the computer system's routing table. It is determined that the number of nodes in the routing table exceeds a specified number.
- the routing table is divided into a plurality of ranges, each range corresponding to a portion of the overlay network.
- Each of the nodes in the routing table is assigned to one of the plurality of ranges.
- the range with the most nodes is identified. From among the nodes in the identified range, the node least fit to transfer and process messages, based on fitness metric values, is removed from the routing table. Identification of the range with the most nodes and removal of least fit nodes from within that range can continue until the number of nodes in the routing table no longer exceeds the specified number.
- Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware, as discussed in greater detail below.
- Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures.
- Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
- Computer-readable media that store computer- executable instructions are physical storage media.
- Computer-readable media that carry computer-executable instructions are transmission media.
- embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: physical storage media and transmission media.
- Physical storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
- a "physical network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices.
- an "overlay network” is defined as a computer network that is built on top of another network (e.g., a physical network or another overlay network). Nodes on an overlay network can be viewed as being connected by virtual or logical links, each of which corresponds to a path, perhaps through many physical networks and/or data links, in an underlying network. For example, many peer-to-peer networks are overlay networks because they run on top of the Internet. Overlay networks can be constructed in order to permit routing messages to destinations not specified by an IP address.
- distributed hash tables can be used to route messages to a node having specific logical address, whose IP address is not known in advance.
- a network or another communications connection can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
- program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to physical storage media (or vice versa).
- program code means in the form of computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a "NIC"), and then eventually transferred to computer system RAM and/or to less volatile physical storage media at a computer system.
- a network interface module e.g., a "NIC”
- NIC network interface module
- physical storage media can be included in computer system components that also (or even primarily) utilize transmission media.
- Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
- the computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
- the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like.
- the invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks.
- program modules may be located in both local and remote memory storage devices.
- FIG. IA illustrates a view of network architecture 100 that facilitates fitness based routing.
- network architecture 100 includes ring 151.
- Ring 151 is a bi-directional doubly linked list of 2 9 , or 512, locations that may be occupied by a node, providing a doubly linked ring topology (i.e., an overlay network).
- Ring 151 includes a plurality of nodes including node 101 and other nodes listed by ID number in routing table 102.
- ring 151 represents logical connectively between nodes that may be physically connected over various and different underlying networks and connections.
- each of the nodes can be physically connected to one another over a system bus and/or over (or be part of) one or more underlying networks, such as, for example, a Local Area Network ("LAN”), a Wide Area Network (“WAN”), and even the Internet.
- LAN Local Area Network
- WAN Wide Area Network
- Nodes on ring 151 can use various overlay protocols to communicate with another. Overlay protocols can build and/or be based on protocols of the underlying physical networks.
- each of the depicted nodes as well as any other connected nodes can create message related data and exchange message related data (e.g., Internet Protocol (“IP”) datagrams and other higher layer protocols that utilize IP datagrams, such as, Transmission Control Protocol (“TCP”), Hypertext Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol (“SMTP”), etc.) over the underlying networks.
- IP Internet Protocol
- TCP Transmission Control Protocol
- HTTP Hypertext Transfer Protocol
- SMTP Simple Mail Transfer Protocol
- routing table policy 161 can dictate that routing table 102 can be divided into ranges 191, 192, 193, 194, 195, 196, 197 and 198.
- the range IDs includes in a range can be varied such that ranges closer to node 101 are more densely populated with routing nodes and ranges further from node 101 are less densely populated with routing nodes.
- range 192 includes four routing nodes in a range from +32 IDs to +64 IDs from node 101.
- Range 194 includes four routing nodes in a range from +128 to +246.
- both range 192 and 194 include four routing nodes. However, range 192 is more densely populated since the four routing nodes in range 192 are spread over a smaller distance on ring 151. On the other hand, range 194 is less densely populated since the four routing nodes in range 192 are spread over a greater distance on ring 151.
- Routing table policy 161 can also define a range for nearby neighborhood nodes. For example, nodes within +16 to -16 node IDs from node 101 can automatically be include in routing table 102 as neighborhood nodes. Neighborhood nodes can be split between predecessor and successor neighborhoods. For example, routing table 102 includes successor neighborhood 181 and predecessor neighborhood 182 each having three nodes relatively close to (within 16 node IDs of) node 101.
- FIG. IB illustrates a view of node 101 maintaining routing table 102.
- node 101 includes fitness calculation module 103 and routing table manager 104.
- Fitness calculation module 103 is configured to calculate fitness values for routing nodes.
- Fitness calculation module 103 can implement a fitness calculation algorithm to calculate fitness values for routing nodes.
- a fitness value indicates a routing node's ability to process and route messages.
- a fitness value can be calculated from a variety of different types of data that indicate, at least to some extent, a node's ability to process and route messages.
- a fitness value can be calculated from one or more of: routing table size of the routing node, latency between node 101 and the routing node, the number of messages that a routing node sends, and the number of messages that a routing node receives. Different types of data can be weighted differently when calculating a fitness value. In some embodiments, a single type of data, such as, for example, routing table size, is used to calculate a fitness value.
- Routing table manager 104 is configured to put nodes into and remove nodes from routing table 102 in accordance with a routing table policy 161.
- Routing table manager 104 can also compare fitness values between routing nodes to determine what routing nodes to keep and what routing nodes remove.
- node 101 communicates with nodes on ring 151.
- the nodes can include node information about themselves as well as other nodes on ring 151.
- the node information can include routing table sizes of other nodes, latency between node 101 and a node, the number of messages that a node has sent, and the number of messages a node has received.
- fitness calculation module can calculate a fitness value for one or more nodes.
- Routing table manager 104 can permit the routing table 102 and its various ranges to fill up with routing nodes to specified maximum values. After reaching specified maximum values, routing table manager 104 can interoperate with fitness calculation module 103 to maintain the size of routing table 102 and its various ranges at the specified maximum values.
- Figure 2 illustrates a flow chart of method 200 for maintaining a routing table. Method 200 will be described with respect to the components and data in Figures IA and IB.
- Method 200 includes an act of 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 (act 201).
- node 101 can receive node information 107.
- Node information 107 includes characteristics about node 121.
- node information 107 indicates that node 121 has routing table size of 45. That is, the routing table of node 121 includes 45 routing nodes.
- Method 200 includes 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 (act 202).
- routing table manager 104 can access routing table 102.
- Each node in routing table 102 is a routing node that node 101 can send a message to to delivery the message to a destination node (on ring 151).
- Each routing node in routing table 102 also has a fitness value.
- routing table manager 104 can lock routing table 102. Locking routing table 102 prevents other access to routing table 102 (e.g.., routing determinations). Thus, locking mitigates the potential for routing errors due to accessing routing table 102 when routing table 102 is being altered.
- Method 200 includes 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 (act 203).
- fitness calculation module 103 can calculate fitness value 107 for node 121 based at least in part on node information 107.
- Fitness value 107 can be calculated based on one or more characteristics of node 121, including routing table size.
- Fitness metric value 107 indicates the ability of node 121 to transfer and process messages within ring 151.
- Method 200 includes an act of inserting the other node into the routing table (act 204).
- routing table manager 104 can insert node ID 97 into routing table 102.
- Method 200 includes an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of the overlay network (act 205). For example, routing table manager 104 can divide routing table 102 into ranges 191 - 198.
- Method 200 includes 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 (act 206). For example, routing table manager can assign each routing node of routing table 102 to a specified range, selected from among ranges 191-198, based on the location of the routing node within ring 151. Routing table 102 can be divided and routing nodes assigned to ranges as depicted in Figure 1. Additionally, node 121 can be assigned to range 193 as depicted in Figure IB.
- Method 200 includes an act of identifying the range that includes the most nodes (act 207). For example, routing table manager 104 can identify that range 193 includes the most nodes. Range 193 includes five nodes, while ranges 192, and 194-197 include four nodes (neighborhood nodes can be excluded from the identification).
- Method 200 includes 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 (act 208).
- routing tale manager 104 can identify node ID 99 as having the lowest fitness metric value in range 193.
- a lower fitness metric value can indicate a lesser ability to transfer and process messages.
- routing table manager 104 can identify node ID 99 as the routing node least able to transfer and process messages within ring 151. (However, depending on configuration, a higher fitness metric value, or some other mechanism for determining messaging processing and transfer abilities from fitness metric values, can be used to indicate a lesser ability to transfer and process messages).
- Method 200 includes an act of removing the identified node from the routing table (act 209).
- routing table manager 104 can remove node ID 99 from routing table 102. Subsequent, to removing node ID 99, routing table manager 104 can unlock routing table 102. Unlocking routing table 102 permits other access to routing table 102.
- node 101 can used routing table 102 to identify routing nodes after any alteration is complete.
- a node receives a message that includes node information for a plurality of other nodes.
- Figures 1C and ID illustrates another view of node 101 maintaining a routing table when node information for a plurality of nodes is received.
- Figure 3 illustrates a flow chart of a method 300 for maintaining a routing table. Method 300 will be described with respect to the components and data in Figures 1C and ID.
- Method 300 includes 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 (act 301). For example, node
- message 101 can receive message 111 from another node on ring 151.
- Message 111 includes node information for a plurality of other nodes on ring 151, including fitness information for each of the plurality of nodes.
- message 111 includes routing table size and other characteristics (e.g., number of sent messages, number of received messages, etc.) for node IDs 46, 144, 242, and 460.
- the contents of message 111 can represent the other node's routing table or a portion thereof.
- Method 300 includes 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 (act 302).
- routing table manger 104 can access routing table 102.
- Each routing node in routing table 102 has a fitness metric value represent the ability of the routing node to transfer and process messages within ring 151.
- routing table manager 104 Prior to accessing routing table 102, can lock routing table 102. Locking routing table 102 prevents other access to routing table
- method 300 includes 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 (act 303).
- fitness calculation module 103 can calculate fitness metric values 40, 200, 2000, and 500 for node IDs 46, 144, 242, and 460 respectively.
- Fitness metric values can be calculated based on routing table sizes and/or other characteristics indicated in message 111.
- method 300 includes an act of inserting the further node into the computer system's routing table (act 304).
- routing table manager 104 can insert node IDs 46, 144, 242, and 460 into routing table 102.
- Method 300 includes an act of determining that the number of nodes in the computer system's routing table exceeds a specified number (act 305).
- routing table manager 104 can refer to routing table policy 161 to access a maximum routing node count for routing tables 102. Routing table manger 104 can determine that the insertion of node IDs 46, 144, 242, and 460 has caused the number of nodes in routing table 102 to exceed the maximum routing node count.
- Method 300 includes an act of dividing the routing table into a plurality of ranges, each range corresponding to a portion of the overlay network (act 306).
- routing node manager 104 can divide routing table 102 into ranges 191- 198.
- Method 300 includes 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 (act 307).
- each of the nodes in routing table 102 can be assigned to one of the ranges 191-198 based on their location in ring 151.
- Node ID 46 can be assigned to range 193
- node IDs 144 and 242 can be assigned to range 195
- node ID 460 can assigned to range 197.
- Method 300 includes an act of identifying the range with the most nodes (act 308).
- routing table manager can identify range 194 as including the most (six) routing nodes.
- Method 300 includes 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 (act 309).
- routing table manager 102 can remove node ID 135 from routing table 102.
- Routing table manager 104 can identify node ID 135 as having the lowest fitness metric value in range 193. Accordingly, routing table manager 104 determines that node ID 135 is the routing node least able to transfer and process messages within ring 151. (However, as previously described depending on configuration, a higher fitness metric value, or some other mechanism for determining messaging processing and transfer abilities from fitness metric values, can be used to indicate a lesser ability to transfer and process messages).
- acts 308 and 309 can be repeated until the number of nodes routing table 102 no longer exceeds the specified number. For example, after the removal of a node, routing table manager 104 can again check the number of nodes in routing table 102 to the maximum routing node count. If the number of routing nodes in routing table 102 still exceeds the maximum routing node count, acts 308 and 309 can be repeated.
- routing table manager 104 can determine that range 192 includes five nodes. Routing tale manager 104 can identify node ID 37 the routing node least able to transfer and process messages within ring 151 based on fitness metric values. Accordingly, routing table manager 104 removes node ID 37 from routing table 102. Subsequent similar checks can be performed resulting in the removal of node ID 144 (in range 193) and node ID 463 (in range 197). Thus, routing table 102 is eventually returned to the size before message 111 was received. Figure ID shows the resulting contents of routing table 102 subsequent to processing message 111.
- routing table manager 104 can unlock routing table 102. Unlocking routing table 102 permits other access to routing table 102.
- node 101 can used routing table 102 to identify routing nodes after any alteration is complete.
- node 101 can send a message towards a destination node in ring 151.
- node 101 can select a routing node (from routing table 102) in closer proximity to the destination node and send the message to the proximally closer routing node.
- 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.
- the node 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 metric 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. [0069]
- the present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010520264A JP5107429B2 (en) | 2007-08-06 | 2008-08-05 | Routing based on aptitude |
EP08826955.0A EP2183883A4 (en) | 2007-08-06 | 2008-08-05 | Fitness based routing |
BRPI0812975-4A2A BRPI0812975A2 (en) | 2007-08-06 | 2008-08-05 | FITNESS BASED ROUTING |
CN2008801020503A CN101803289B (en) | 2007-08-06 | 2008-08-05 | Fitness based routing |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95420107P | 2007-08-06 | 2007-08-06 | |
US60/954,201 | 2007-08-06 | ||
US12/173,195 US7961711B2 (en) | 2007-08-06 | 2008-07-15 | Fitness based routing |
US12/173,195 | 2008-07-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009020980A1 true WO2009020980A1 (en) | 2009-02-12 |
Family
ID=40341689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2008/072250 WO2009020980A1 (en) | 2007-08-06 | 2008-08-05 | Fitness based routing |
Country Status (7)
Country | Link |
---|---|
US (1) | US7961711B2 (en) |
EP (1) | EP2183883A4 (en) |
JP (1) | JP5107429B2 (en) |
CN (1) | CN101803289B (en) |
BR (1) | BRPI0812975A2 (en) |
RU (1) | RU2454008C2 (en) |
WO (1) | WO2009020980A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016153997A1 (en) * | 2015-03-20 | 2016-09-29 | Convida Wireless, Llc | Methods to support message routing at service layer |
CN114143711A (en) * | 2021-11-25 | 2022-03-04 | 深圳Tcl新技术有限公司 | Information processing method, information processing device, electronic equipment and storage medium |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9894093B2 (en) | 2009-04-21 | 2018-02-13 | Bandura, Llc | Structuring data and pre-compiled exception list engines and internet protocol threat prevention |
US8468220B2 (en) * | 2009-04-21 | 2013-06-18 | Techguard Security Llc | Methods of structuring data, pre-compiled exception list engines, and network appliances |
CN104160762B (en) | 2012-03-08 | 2019-03-15 | 三星电子株式会社 | Method for controlling the service in wireless communication system |
WO2013141552A1 (en) * | 2012-03-19 | 2013-09-26 | 삼성전자 주식회사 | Method and device for transferring and receiving message in roaming system |
CN117170876A (en) * | 2016-10-07 | 2023-12-05 | 康维达无线有限责任公司 | Service layer resource management for universal interworking and extensibility |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164754A1 (en) * | 2000-06-15 | 2001-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements in a telecommunications system |
EP1164753A1 (en) * | 2000-06-15 | 2001-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for handling information packets via user selectable relay nodes |
JP2006246205A (en) * | 2005-03-04 | 2006-09-14 | Nippon Telegr & Teleph Corp <Ntt> | Routing method coping with overlay network and overlay node |
US20070153782A1 (en) * | 2005-12-30 | 2007-07-05 | Gregory Fletcher | Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6563823B1 (en) * | 1997-10-30 | 2003-05-13 | Marconi Communications, Inc. | Multi-resolution tree for longest match address lookups |
US6611872B1 (en) | 1999-01-11 | 2003-08-26 | Fastforward Networks, Inc. | Performing multicast communication in computer networks by using overlay routing |
US6415323B1 (en) | 1999-09-03 | 2002-07-02 | Fastforward Networks | Proximity-based redirection system for robust and scalable service-node location in an internetwork |
GB0007834D0 (en) * | 2000-03-31 | 2000-05-17 | British Telecomm | Processing capacity management |
US7230949B2 (en) | 2001-08-24 | 2007-06-12 | Juniper Networks, Inc. | Efficient method and system for automatic discovery and verification of optimal paths through a dynamic multi-point meshed overlay network |
KR100777096B1 (en) * | 2001-08-25 | 2007-11-19 | 노키아 코포레이션 | System and method for collision-free transmission scheduling using neighborhood information and advertised transmission times |
US7769839B2 (en) | 2002-06-21 | 2010-08-03 | International Business Machines Corporation | Method and structure for autoconfiguration of overlay networks by automatic selection of a network designated router |
US7554988B2 (en) | 2002-09-10 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Creating expressway for overlay routing |
US7613796B2 (en) | 2002-09-11 | 2009-11-03 | Microsoft Corporation | System and method for creating improved overlay network with an efficient distributed data structure |
US7266125B2 (en) | 2002-10-31 | 2007-09-04 | Hewlett-Packard Development Company, L.P. | Landmark numbering based auxiliary network for peer-to-peer overlay network |
US20040185845A1 (en) * | 2003-02-28 | 2004-09-23 | Microsoft Corporation | Access point to access point range extension |
US7539771B2 (en) * | 2003-06-06 | 2009-05-26 | Microsoft Corporation | Organizational locality in prefix-based structured peer-to-peer overlays |
US20050015511A1 (en) | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
US7386606B2 (en) | 2003-09-12 | 2008-06-10 | Microsoft Corporation | Self-organizing overlay networks |
US7388841B2 (en) | 2003-10-20 | 2008-06-17 | Mitsubishi Electric Research Laboratories, Inc. | Selecting multiple paths in overlay networks for streaming data |
GB2411541B (en) * | 2004-02-26 | 2006-09-13 | Siemens Ag | A sip server |
US7715396B2 (en) | 2004-08-19 | 2010-05-11 | Microsoft Corporation | Network routing |
US9100266B2 (en) * | 2004-11-01 | 2015-08-04 | Alcatel Lucent | SoftRouter protocol failovers |
WO2006081454A2 (en) | 2005-01-26 | 2006-08-03 | Internet Broadcasting Corporation | Layered multicast and fair bandwidth allocation and packet prioritization |
US7808971B2 (en) * | 2005-07-01 | 2010-10-05 | Miller John L | Routing cache for distributed hash tables |
DE602005019718D1 (en) * | 2005-07-28 | 2010-04-15 | Univ Berlin Tech | Communication network, method for routing data packets and methods for locating and securing data of a desired resource in such a communication network |
JP2009508410A (en) | 2005-09-08 | 2009-02-26 | パナソニック株式会社 | Parallel execution of peer-to-peer overlay communication using multi-destination routing |
WO2007034313A1 (en) | 2005-09-23 | 2007-03-29 | Thomas Friedrich Theo Fuhrmann | Routing method and apparatus |
-
2008
- 2008-07-15 US US12/173,195 patent/US7961711B2/en not_active Expired - Fee Related
- 2008-08-05 WO PCT/US2008/072250 patent/WO2009020980A1/en active Application Filing
- 2008-08-05 RU RU2010104017/08A patent/RU2454008C2/en not_active IP Right Cessation
- 2008-08-05 EP EP08826955.0A patent/EP2183883A4/en not_active Withdrawn
- 2008-08-05 CN CN2008801020503A patent/CN101803289B/en not_active Expired - Fee Related
- 2008-08-05 BR BRPI0812975-4A2A patent/BRPI0812975A2/en not_active IP Right Cessation
- 2008-08-05 JP JP2010520264A patent/JP5107429B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1164754A1 (en) * | 2000-06-15 | 2001-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements in a telecommunications system |
EP1164753A1 (en) * | 2000-06-15 | 2001-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for handling information packets via user selectable relay nodes |
JP2006246205A (en) * | 2005-03-04 | 2006-09-14 | Nippon Telegr & Teleph Corp <Ntt> | Routing method coping with overlay network and overlay node |
US20070153782A1 (en) * | 2005-12-30 | 2007-07-05 | Gregory Fletcher | Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows |
Non-Patent Citations (3)
Title |
---|
See also references of EP2183883A4 |
ZHI LI ET AL.: "QRON: QoS-Aware Routing in Overlay Networks", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol. 22, no. 1, January 2004 (2004-01-01) |
ZHI LI ET AL.: "QRON: QoS-Aware Routing in Overlay Networks", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol. 22, no. 1, January 2004 (2004-01-01), pages 29 - 39, XP011105199 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016153997A1 (en) * | 2015-03-20 | 2016-09-29 | Convida Wireless, Llc | Methods to support message routing at service layer |
US10645004B2 (en) | 2015-03-20 | 2020-05-05 | Convida Wireless, Llc | Methods to support message routing at service layer |
CN114143711A (en) * | 2021-11-25 | 2022-03-04 | 深圳Tcl新技术有限公司 | Information processing method, information processing device, electronic equipment and storage medium |
CN114143711B (en) * | 2021-11-25 | 2024-04-02 | 深圳Tcl新技术有限公司 | Information processing method, information processing device, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US7961711B2 (en) | 2011-06-14 |
JP5107429B2 (en) | 2012-12-26 |
EP2183883A1 (en) | 2010-05-12 |
BRPI0812975A2 (en) | 2014-12-16 |
EP2183883A4 (en) | 2014-04-16 |
RU2454008C2 (en) | 2012-06-20 |
RU2010104017A (en) | 2011-08-10 |
JP2010536259A (en) | 2010-11-25 |
CN101803289B (en) | 2012-12-12 |
CN101803289A (en) | 2010-08-11 |
US20090041033A1 (en) | 2009-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7961711B2 (en) | Fitness based routing | |
US6392997B1 (en) | Technique for group-based routing update with limited per neighbor/adjacency customization | |
JP5331123B2 (en) | Various route server systems and devices | |
US6567380B1 (en) | Technique for selective routing updates | |
US6721275B1 (en) | Bridged network stations location revision | |
EP1668848B1 (en) | Distributed software architecture for implementing the bgp protocol in a router | |
AU2004308327B2 (en) | System and method for distributing route selection in an implementation of a routing protocol | |
US7437476B2 (en) | Optimizing flooding of information in link-state routing protocol | |
US7355983B2 (en) | Technique for graceful shutdown of a routing protocol in a network | |
EP1683311B1 (en) | Dynamic unknown l2 flooding control with mac limits | |
EP2055051A1 (en) | Recursively partioned static ip router tables | |
US8886705B1 (en) | Goal-oriented storage management for a distributed data storage network | |
CN110838935A (en) | High-availability SDN controller clustering method, system, storage medium and equipment | |
Shi et al. | Re-designing compact-structure based forwarding for programmable networks | |
US11770338B2 (en) | Increasing multi-path size using hierarchical forwarding equivalent classes | |
US11223561B2 (en) | Method to mitigate hash correlation in multi-path networks | |
US6700883B1 (en) | Algorithm to bypass L4 processing in an internet protocol forwarding processor | |
US6654372B1 (en) | Algorithm to bypass L4 processing in an internet protocol forwarding processor | |
Martin et al. | An active platform as middleware for services and communities discovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200880102050.3 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08826955 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010520264 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 665/CHENP/2010 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010104017 Country of ref document: RU |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2008826955 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008826955 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: PI0812975 Country of ref document: BR Kind code of ref document: A2 Effective date: 20091228 |