基于适合度的路由
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其它电子设备以形成计算机系统和其它电子设备可以在其上传输电子内容的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
覆盖网络是遍布当今传统网络(专用网络和因特网两者)并提供掩盖底层网络的细节的统一视图的构造。这一覆盖网络上的节点之间的通信包括由节点(计算机系统)使用特定算法来路由直至到达预期端点的消息。当今,覆盖网络上的路由主要是静态的,即该路由并非是固有地自适应的。
参与覆盖网络的节点就路由而言通常被视作在本质上是同构的。因此,通常假设所有节点都具有相似的计算能力、网络连通性和感知到的负载。该假设至少在某些环境中是有效的,诸如例如,在节点处于具有一致负载的受控数据中心类型环境的情况下。然而,在许多其他环境中,该假设无效。例如,因特网或其他分布式计算环境上的节点具有异构的变化的配置负载和计算能力。
此外,因特网和其他分布式网络上的节点之间的网络链路容量在宽带速度和拨号速度之间变化。例如,假设存在从点A到点B的两条可能的路线。一条路线涉及经过通过拨号来连接的节点而另一条路线涉及经过通过高速宽带连接来连接的节点。如果同等对待所有节点,则在概率上,消息可经由通过拨号连接的节点来路由,这不是最优路线并影响消息传送效率。使用大规模(例如,数百万个节点)且具有可有效利用的高容量机器和链路的覆盖网络,这些以及其他低效性可被放大。
覆盖网络的至少一个其他问题是用于更新节点之间的在场信息的机制(即,一个节点何时知道另一节点的存在)。用于传播在场信息的典型机制包括在覆盖网络或覆盖网络中的大部分上洪泛节点的在场信息。在场信息由覆盖网络的成员获得并作为这些成员的路由表的一部分来存储并用于后续路由决定。然而,将在场信息洪泛到覆盖网络上是非常昂贵的并且消耗大量网络容量。所消耗的网络容量于是不可用于实际应用消息。随着覆盖网络上的节点数量增加,诸如例如,当存在数千或甚至数百万个节点正在发布在场信息时,该问题可能急剧恶化。
还存在与覆盖网络相关联的其他问题。例如,使用覆盖网络,在该覆盖网络上的两个任意节点之间进行通信通常是有益的。为此,源节点需要目的地节点的端点地址(IP地址/DNS名称)。覆盖网络采用用于跨覆盖网络来路由消息的分散机制,其中每一个节点都部分地知晓覆盖网络中的其他节点的位置。消息跨覆盖网络从源节点传递至“较接近”目的地节点的节点,并且每一跃点都在数值上更接近目的地节点直至到达该目的地节点。在考虑节点之间的路线时将“接近度”用作唯一的因素通常可导致节点之间的路线较不高效。
简要概述
本发明涉及用于基于适合度的路由的方法、系统和计算机程序产品。本发明的实施例包括在计算机系统(诸如例如,覆盖网络中的节点)处维护路由表。该计算机系统接收关于存在于覆盖网络中的指定位置的另一节点的节点信息。该节点信息包括关于该另一节点的适合度信息。
该计算机系统访问包括一个或多个节点的路由表,该路由表中的每一节点都是该计算机系统可向其发送消息以便将该消息传递给覆盖网络中的目的地节点的节点。路由表中的每一节点都具有适合度值,该适合度值表示节点在覆盖网络中传送和处理消息的能力。该计算机系统计算该另一节点的适合度值。计算出的适合度值表示该另一节点在覆盖网络中传送和处理消息的能力。该适合度值至少部分地基于关于该另一节点的适合度信息。
该计算机系统将该另一节点插入到路由表中。该路由表被分成多个范围。每一范围都对应于覆盖网络的一部分。该计算机系统基于路由表中的每一节点在覆盖网络中的位置来为该节点分配一指定范围。
该计算机标识包括最多节点的范围。该计算机系统基于所标识的范围内的节点的适合度值来标识所标识的范围内的、最不能够在覆盖网络中传送和处理消息的节点。该计算机系统从路由表中移除所标识的节点。
在某些实施例中,关于覆盖网络中的多个节点的节点信息在来自该覆盖网络中的另一节点的消息中接收。为该多个节点中的每一个计算适合度,并且将其他节点中的每一个插入该计算机系统的路由表中。确定路由表中的节点数超过指定数值。
路由表被分成多个范围,每一范围都对应于覆盖网络的一部分。将路由表中的每一个节点分配给该多个范围中的一个。标识具有最多节点的范围。从所标识的范围内的节点中,基于适合度值来从路由表中移除最不适合传送和处理消息的节点。标识具有最多节点的范围以及从该范围中移除最不适合的节点可继续直到路由表中的节点数不再超过指定数值。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显而易见的,或可通过对本发明的实践领会。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加完全明显,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方法,将通过引用附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1A示出了方便基于适合度的路由的示例环状覆盖网络体系结构的视图。
图1B示出了维护路由表的环状覆盖网络体系结构中的示例节点的视图。
图1C和1D示出了维护路由表的环状覆盖网络体系结构中的示例节点的另一视图。
图2示出了用于维护路由表的示例方法的流程图。
图3示出了用于维护路由表的另一示例方法的流程图。
详细描述
本发明涉及用于基于适合度的路由的方法、系统和计算机程序产品。本发明的实施例包括在计算机系统(诸如例如,覆盖网络中的节点)处维护路由表。该计算机系统接收关于存在于覆盖网络中的指定位置的另一节点的节点信息。该节点信息包括关于该另一节点的适合度信息。
该计算机系统访问包括一个或多个节点的路由表,该路由表中的每一节点都是该计算机系统可向其发送消息以便将该消息传递给覆盖网络中的目的地节点的节点。路由表中的每一节点都具有适合度值,该适合度值表示节点在覆盖网络中传送和处理消息的能力。该计算机系统计算另一节点的适合度值。计算出的适合度值表示该另一节点在覆盖网络中传送和处理消息的能力。该适合度值至少部分地基于关于该另一节点的适合度信息。
该计算机系统将该另一节点插入到路由表中。该路由表被分成多个范围。每一范围都对应于覆盖网络的一部分。该计算机系统基于路由表中的每一节点在覆盖网络中的位置来为该节点分配一指定范围。
该计算机标识包括最多节点的范围。该计算机系统基于所标识的范围内的节点的适合度值来标识所标识的范围内的、最不能够在覆盖网络中传送和处理消息的节点。该计算机系统从路由表中移除所标识的节点。
在某些实施例中,关于覆盖网络中的多个节点的节点信息在来自该覆盖网络中的另一节点的消息中接收。为该多个节点中的每一个计算适合度,并且将其他节点中的每一个插入该计算机系统的路由表中。确定路由表中的节点数超过指定数值。
路由表被分成多个范围,每一范围都对应于覆盖网络的一部分。将路由表中的每一个节点分配给该多个范围中的一个。标识具有最多节点的范围。从所标识的范围内的节点中,基于适合度值来从路由表中移除最不适合传送和处理消息的节点。标识具有最多节点的范围以及从该范围中移除最不适合的节点可继续直到路由表中的节点数不再超过指定数值。
本发明的各实施例可以包括或利用含有计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明范围内的各实施例还包括用于承载或储存计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同的计算机可读介质:物理存储介质和传输介质。
物理存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
对于本说明书和所附权利要求书,“物理网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。
在本说明书和所附权利要求书中,“覆盖网络”被定义为在另一网络(例如,物理网络或另一覆盖网络)之上构建的计算机网络。覆盖网络上的节点可被视作由虚拟或逻辑链路来连接,这些链路中的每一个都对应于一路径,或许通过底层网络中的许多物理网络和/或数据链路。例如,许多对等网络是覆盖网络,因为它们在因特网之上运行。可构造覆盖网络以准许将消息路由至不通过IP地址指定的目的地。例如,可使用分布式散列表来将消息路由至具有特定逻辑地址的节点,该节点的IP地址并不是事先知晓的。
当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,应当理解,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动转移到物理存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传送到计算机系统RAM和/或计算机系统处的较不易失性的物理存储介质。由此,应当理解,物理存储介质可被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
图1A示出了方便基于适合度的路由的网络体系结构100的视图。如图1A所示,网络体系结构100包括环151。环151是可由节点占据的29(即512)个位置的双向双重链表,其提供双重链接的环形拓扑结构(即,覆盖网络)。环151包括多个节点,这些节点包括节点101以及路由表102中的通过ID号列出的其他节点。一般而言,环151表示节点之间的逻辑连接,这些节点可通过各种不同的底层网络和连接来物理地连接。例如,每一个节点都可通过系统总线和/或通过诸如例如,局域网(“LAN”)、广域网(“WAN”)和甚至因特网等一个或多个底层网络(或成为其一部分)来物理地彼此连接。
环151上的节点可使用各种覆盖协议来彼此通信。覆盖协议可构建和/或基于底层物理网络的协议。因此,所描绘的节点中的每一个以及任何其他连接的节点都可以创建消息相关数据并通过底层网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其它更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
节点101维护存储多个节点(下文中称为“路由节点”)的路由表102。节点101可直接与路由表102中的每一个路由节点进行通信。节点101可向一路由节点发送一消息以将该消息传递给比节点101更接近该路由节点的节点。例如,为了将一消息传递至具有ID=403的节点,节点101可将该消息发送到具有ID=401的路由节点。
节点101可根据路由表策略161来维护路由表102。路由表策略161可定义将被包括在路由表102中的路由节点的最大数量。路由表策略161还可指示如何将路由表102中的节点分成多个范围并且定义每一范围内的路由节点的最大数量。例如,路由表策略161可指示路由表102可被分成范围191、192、193、194、195、196、197和198。
范围中所包括的范围ID可以是变化的,以使得较接近节点101的范围用路由节点来较密集地填充而离节点101较远的范围用路由节点来较不密集地填充。例如,范围192包括从离节点101+32个ID到+64个ID的范围内的四个路由节点。范围194包括从+128到+246的范围内的四个路由节点。因此,范围192和194两者都包括四个路由节点。然而,范围192被较密集地填充,因为范围192内的四个路由节点分布在环151上的较小距离上。另一方面,范围194被较不密集地填充,因为范围192内的四个路由节点分布在环151上的较大距离上。
路由表策略161还可定义附近的邻居节点的范围。例如,离节点101+16到-16节点ID内的节点可被自动包括在路由表102中作为邻居节点。邻居节点可被分成前导邻居和后继邻居。例如,路由表102包括前导邻居181和后继邻居182,其各自具有相对接近节点101(在离节点10116个节点ID范围内)的三个节点。
图1B示出了维护路由表102的节点101的视图。现在参考图1B,节点101包括适合度计算模块103和路由表管理器104。适合度计算模块103被配置成计算路由节点的适合度值。适合度计算模块103可实现用于计算路由节点的适合度值的适合度计算算法。一般而言,适合度值指示路由节点处理和路由消息的能力。
适合度值可根据至少在某种程度上指示节点处理和路由消息的能力的各种不同类型的数据来计算。例如,适合度值可根据以下数据中的一个或多个来计算:路由节点的路由表大小、节点101和路由节点之间的等待时间、路由节点发送的消息的数量、以及路由节点接收到的消息的数量。不同类型的数据可在计算适合度值时被不同地加权。在某些实施例中,使用诸如例如,路由表大小等单个类型的数据来计算适合度值。
路由表管理器104被配置成根据路由表策略161来将节点放到路由表102中以及从路由表102中移除节点。路由表管理器104还可比较路由节点之间的适合度值以确定保留什么路由节点以及移除什么路由节点。
有时,节点101与环151上的节点进行通信。在该通信期间,节点可包括关于其本身以及环151上的其他节点的节点信息。节点信息可包括其他节点的路由表大小、节点101和一节点之间的等待时间、节点已发送的消息的数量、以及节点已接收到的消息的数量。基于接收到的节点信息,适合度计算模块可计算一个或多个节点的适合度值。
某些节点可以连同其对应的适合度值一起保留在路由表102中。例如,在范围193中:节点ID 76具有适合度=100,节点ID 90具有适合度=1000,节点ID 99具有适合度=50,而节点ID 112具有适合度=5000。路由表管理器104可准许路由表102及其各个范围用路由节点来填充直至指定的最大值。在到达指定的最大值后,路由表管理器104可以与适合度计算模块103互操作以便将路由表102及其各个范围的大小维持在该指定的最大值。
图2示出了用于维护路由表的方法200的流程图。方法200将参考图1A和1B中的组件和数据来描述。
方法200包括接收关于存在于覆盖网络中的指定位置的另一节点的节点信息的动作,该节点信息包括关于该另一节点的适合度信息(动作201)。例如,节点101可接收节点信息107。节点信息107包括关于节点121的特性。例如,节点信息107指示节点121具有大小为45的路由表。即,节点121的路由表包括45个路由节点。
方法200包括访问包括一个或多个节点的路由表的动作,该路由表中的每一节点都是计算机系统可向其发送一消息以将该消息传递至覆盖网络中的目的地节点的节点,该路由表中的每一节点都具有表示该节点在覆盖网络中传送和处理消息的能力的适合度值(动作202)。例如,路由表管理器104可访问路由表102。路由表102中的每一节点都是节点101可向其发送一消息以便将该消息传递至目的地节点(环151上)的路由节点。路由表102中的每一路由节点都具有适合度值。例如,在范围193中:节点ID 76具有适合度=100,节点ID 90具有适合度=1000,节点ID 99具有适合度=50,而节点ID 112具有适合度=5000。
在访问路由表102之前,路由表管理器104可锁定路由表102。锁定路由表102阻止对路由表102的其他访问(例如,路由判定)。因此,锁定降低由于在路由表102正被更改时访问路由表102而导致路由错误的可能性。
方法200包括计算另一节点的适合度值的动作,该适合度值表示该另一节点在覆盖网络中传送和处理消息的能力,该适合度值至少部分地基于关于该另一节点的适合度信息(动作203)。例如,适合度计算模块103可至少部分地基于节点信息107来计算节点121的适合度值107。适合度值107可基于节点121的、包括路由表大小的一个或多个特性来计算。适合度值107指示节点121在环151中传送和处理消息的能力。
方法200包括将该另一节点插入到路由表中的动作(动作204)。例如,路由表管理器104可将节点ID 97插入到路由表102中。方法200包括将路由表分成多个范围的动作,每一范围都对应于覆盖网络的一部分(动作205)。例如,路由表管理器104可将路由表102分成范围191-198。
方法200包括基于路由表中的每一节点在覆盖网络中的位置来将该节点分配给指定范围的动作(动作206)。例如,路由表管理器可基于路由表102中的每一路由节点在环151中的位置来将该路由节点分配给选自范围191-198的指定范围。可将路由表102分成多个范围并且可将路由节点分配给这些范围,如图1所描绘的。另外,节点121可被分配给范围193,如图1B所描绘的。
方法200包括标识包括最多节点的范围的动作(动作207)。例如,路由表管理器104可标识范围193包括最多节点。范围193包括五个节点,而范围192和194-197包括四个节点(邻居节点可从标识中排除)。
方法200包括基于所标识的范围内的节点的适合度值来标识所标识的范围内的、最不能够在覆盖网络中传送和处理消息的节点的动作(动作208)。例如,路由表管理器104可将节点ID 99标识为在范围193内具有最低适合度值。在计算机体系结构100中,较低的适合度值可指示较小的传送和处理消息的能力。因此,路由表管理器104可将节点ID 99标识为最不能够在环151中传送和处理消息的路由节点。然而,取决于配置,较高的适合度值或者用于根据适合度值来确定消息处理和传送能力的某种其他机制可用于指示较少的传送和处理消息的能力。
方法200包括从路由表中移除所标识的节点的动作(动作209)。例如,路由表管理器104可从路由表102中移除节点ID 99。在移除节点ID 99之后,路由表管理器104可解锁路由表102。解锁路由表102准许对路由表102的其他访问。因此,节点101可在任何更改完成后使用路由表102来标识路由节点。
在某些实施例中,节点接收包括关于多个其他节点的节点信息的消息。图1C和1D示出了在接收到关于多个节点的节点信息时维护路由表的节点101的另一视图。图3示出了用于维护路由表的方法300的流程图。方法300将参考图1C和1D中的组件和数据来描述。
方法300包括从覆盖网络中的另一节点接收消息的动作,该消息包括关于覆盖网络中的多个其他节点的节点信息,该节点信息包括关于该多个其他节点中的每一个的适合度信息(动作301)。例如,节点101可从环151上的另一节点接收消息111。消息111包括关于环151上的多个其他节点的节点信息,该节点信息包括该多个节点中的每一个的适合度信息。例如,消息111包括节点ID 46、144、242和460的路由表大小和其他特性(例如,已发送消息的数量、已接收消息的数量等)。消息111的内容可表示该另一节点的路由表或其一部分。
方法300包括访问计算机系统的路由表的动作,该计算机系统的路由表包括该计算机系统能够与其通信以将消息路由至覆盖网络中的目的地节点的多个节点,该计算机系统的路由表中的多个节点中的每一个都具有表示在覆盖网络中传送和处理消息的能力的适合度值(动作302)。例如,路由表管理器104可访问路由表102。路由表102中的每一个路由节点都具有表示该路由节点在环151中传送和处理消息的能力的适合度值。
在访问路由表102之前,路由表管理器104可锁定路由表102。锁定路由表102阻止对路由表102的其他访问(例如,路由判定)。因此,锁定降低由于在路由表102正被更改时访问路由表102而导致路由错误的可能性。
对于多个其他节点中的每一个,方法300包括计算该其他节点的适合度值的动作,该适合度值表示该其他节点在覆盖网络中传送和处理消息的能力,该适合度值至少部分地基于关于该其他节点的适合度信息(动作303)。例如,适合度计算模块103可分别计算节点ID 46、144、242和460的适合度值40、200、2000和500。适合度值可基于消息111中所指示的路由表大小和/或其他特性来计算。
对于多个其他节点中的每一个,方法300包括将该其他节点插入到计算机系统的路由表中的动作(动作304)。例如,路由表管理器104可将节点ID 46、144、242和460插入到路由表102中。
方法300包括确定计算系统的路由表中的节点数超过指定数值的动作(动作305)。例如,路由表管理器104可参考路由表策略161来取得路由表102的最大路由节点计数。路由表管理器104可确定节点ID 46、144、242和460的插入已导致路由表102中的节点数超过最大路由节点计数。
方法300包括将路由表分成多个范围的动作,每一范围都对应于覆盖网络的一部分(动作306)。例如,路由节点管理器104可将路由表102分成范围191-198。方法300包括基于路由表中的每一节点在覆盖网络中的位置来将该节点分配给多个范围中的一个的动作(动作307)。例如,路由表102中的每一个节点可基于其在环151中的位置来分配给范围191-198中的一个。节点ID46可被分配给范围193,节点ID 144和242可被分配给范围195,而节点ID 460可被分配给范围197。
方法300包括标识具有最多节点的范围的动作(动作308)。例如,路由表管理器可将范围194标识为包括最多(六个)路由节点。方法300包括基于适合度值来从路由表中移除所标识的范围内的节点中的、最不适合传送和处理消息的节点(动作309)。例如,路由表管理器102可从路由表102中移除节点ID 135。路由表管理器104可将节点ID 135标识为在范围193内具有最低适合度值。因此,路由表管理器104确定节点ID 135是最不能够在环151中传送和处理消息的路由节点。(然而,如上所述,取决于配置,较高的适合度值或者用于根据适合度值来确定消息处理和传送能力的某种其他机制可用于指示较少的传送和处理消息的能力。)
在某些实施例中,可重复动作308和309直至路由表102中的节点数不再超过指定数值。例如,在移除一节点后,路由表管理器104可再次针对最大路由节点计数来检查路由表102中的节点数。如果路由表102中的路由节点的数量仍旧超过最大路由节点计数,则可重复动作308和309。
例如,在移除节点ID 135后,路由表管理器104可确定范围192包括五个节点。路由表管理器104可基于适合度值来将节点ID 37标识为最不能够在环151中传送和处理消息的路由节点。因此,路由表管理器104从路由表102中移除节点ID 37。可执行后续类似检查以使得移除节点ID 144(范围193中)和节点ID 463(范围197中)。因此,路由表102最终返回至接收到消息111之前的大小。图1D示出了处理消息111之后的路由表102的所得内容。
在更新路由表102之后,路由表管理器104可解锁路由表102。解锁路由表102准许对路由表102的其他访问。因此,节点101可在任何更改完成后使用路由表102来标识路由节点。由此,在处理消息111后,节点101可以向环151中的目的地节点发送一消息。基于该目的地节点的位置,节点101可以(从路由表102中)选择更接近该目的地节点的路由节点并将该消息发送到该更接近的路由节点。
本发明的实施例显著地提高包含在路由表中的路由节点具有足够的(或甚至相对提高的)能力来在覆盖网络中传送和处理消息的可能性。由此,当节点将要为一消息做出路由决定时,该节点具有任何所选节点都是适当(或者至少是当前可用的最佳节点)的某些保证。此外,发送节点能够在发送消息时优选具有较高适合度值的路由节点。优选较高适合度值还确保消息被适当地传送和处理。因此,本发明的实施例可用于以优化带宽并提供高效路由能力的方式来路由消息。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围所涵盖。