CN101803289B - 基于适合度的路由 - Google Patents

基于适合度的路由 Download PDF

Info

Publication number
CN101803289B
CN101803289B CN2008801020503A CN200880102050A CN101803289B CN 101803289 B CN101803289 B CN 101803289B CN 2008801020503 A CN2008801020503 A CN 2008801020503A CN 200880102050 A CN200880102050 A CN 200880102050A CN 101803289 B CN101803289 B CN 101803289B
Authority
CN
China
Prior art keywords
node
routing table
action
nodes
routing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008801020503A
Other languages
English (en)
Other versions
CN101803289A (zh
Inventor
M·J·马鲁切克
B·H·洛夫林
M·A·菲恩戈尔德
R·L·哈萨
M·阿博特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101803289A publication Critical patent/CN101803289A/zh
Application granted granted Critical
Publication of CN101803289B publication Critical patent/CN101803289B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/127Shortest path evaluation based on intermediate node capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及用于基于适合度的路由的方法、系统和计算机程序产品。本发明的实施例显著地提高包含在路由表中的路由节点具有足够的(或甚至相对提高的)能力来在覆盖网络中传送和处理消息的可能性。由此,当节点将要为一消息做出路由决定时,该节点具有任何所选节点都是适当(或者至少是当前可用的最佳节点)的某些保证。此外,发送节点能够在发送消息时优选具有较高适合度值的路由节点。优选较高适合度值还确保消息被适当地传送和处理。因此,本发明的实施例可用于以优化带宽并提供高效路由能力的方式来路由消息。

Description

基于适合度的路由
背景
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中)选择更接近该目的地节点的路由节点并将该消息发送到该更接近的路由节点。
本发明的实施例显著地提高包含在路由表中的路由节点具有足够的(或甚至相对提高的)能力来在覆盖网络中传送和处理消息的可能性。由此,当节点将要为一消息做出路由决定时,该节点具有任何所选节点都是适当(或者至少是当前可用的最佳节点)的某些保证。此外,发送节点能够在发送消息时优选具有较高适合度值的路由节点。优选较高适合度值还确保消息被适当地传送和处理。因此,本发明的实施例可用于以优化带宽并提供高效路由能力的方式来路由消息。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (20)

1.一种在计算机系统处的用于在所述计算机系统处维护路由表的方法,所述计算机系统作为节点(101)包括在覆盖网络(100)中,所述覆盖网络(100)还包括多个其他节点(121),所述方法包括:
接收关于存在于所述覆盖网络(100)中的指定位置的另一节点(121)的节点信息(107)的动作,所述节点信息(107)包括关于所述另一节点(121)的适合度信息;
访问包括一个或多个节点的路由表(102)的动作,所述路由表(102)中的每一节点都是所述计算机系统可向其发送一消息以将该消息传递至所述覆盖网络(100)中的目的地节点的节点,所述路由表(102)中的每一节点都具有表示该节点在所述覆盖网络(100)中传送和处理消息的能力的适合度值;
计算所述另一节点的适合度值(107)的动作,所述适合度值(107)表示所述另一节点在所述覆盖网络(100)中传送和处理消息的能力,所述适合度值(107)至少部分地基于关于所述另一节点的适合度信息(107);
将所述另一节点(121)插入到所述路由表(102)中的动作;
将所述路由表分成多个范围(191、192、193)的动作,每一范围都对应于所述覆盖网络(100)的一部分;
基于所述路由表中的每一节点在所述覆盖网络中的位置来将该节点分配给指定范围的动作;
标识包括最多节点的范围(194)的动作;
基于所标识的范围内的节点的适合度值来标识所标识的范围内的、最不能够在所述覆盖网络中传送和处理消息的节点的动作;以及
从所述路由表(102)中移除所标识的节点的动作。
2.如权利要求1所述的方法,其特征在于,所述接收关于另一节点的节点信息的动作包括接收所述另一节点的路由表大小以及所述另一节点的一个或多个其他特性的动作。
3.如权利要求1所述的方法,其特征在于,所述访问路由表的动作包括访问包含可用于在环形拓扑结构中路由消息的节点的路由表的动作。
4.如权利要求1所述的方法,其特征在于,所述计算所述另一节点的适合度值的动作包括基于所述另一节点的路由表大小来计算适合度值的动作。
5.如权利要求1所述的方法,其特征在于,所述将所述路由表分成多个范围的动作包括将所述路由表分成多个范围的动作,每一范围都取决于该范围离所述计算机系统的距离而对应于所述覆盖网络的呈指数地较小或呈指数地较大部分,较接近所述计算机系统的范围较小,而较远离所述计算机系统的范围较大。
6.如权利要求1所述的方法,其特征在于,标识所标识的范围内的、最不能够在所述覆盖网络中传送和处理消息的节点的动作包括标识具有最小路由表的节点的动作。
7.如权利要求1所述的方法,其特征在于,所述从所述路由表中移除所标识的节点的动作包括从所述计算机系统的路由表中移除具有最小路由表的节点的动作。
8.如权利要求1所述的方法,其特征在于,还包括:
在访问所述路由表之前锁定所述路由表的动作;以及
在移除所标识的节点之后解锁所述路由表的动作。
9.如权利要求1所述的方法,其特征在于,还包括:
在移除所标识的节点之后从所述路由表中选择路由节点的动作;以及
将消息发送到所选路由节点的动作。
10.一种在计算机系统处的用于在所述计算机系统处维护路由表(102)的方法,所述计算机系统作为节点(101)包括在覆盖网络中,所述覆盖网络还包括多个其他节点,所述方法包括:
步骤1,从所述覆盖网络中的另一节点接收消息(111)的动作,所述消息(111)包括关于所述覆盖网络(100)中的多个其他节点的节点信息,所述节点信息包括关于所述多个其他节点中的每一个的适合度信息;
步骤2,访问所述计算机系统的路由表的动作,所述计算机系统的路由表(102)包括所述计算机系统能够与其通信以将消息路由至所述覆盖网络(100)中的目的地节点的多个节点,所述计算机系统的路由表(102)中的多个节点中的每一个都具有表示在所述覆盖网络中传送和处理消息的能力的适合度值;
步骤3,对于所述多个其他节点中的每一个:
计算所述其他节点的适合度值的动作,所述适合度值表示所述其他节点在所述覆盖网络(100)中传送和处理消息的能力,所述适合度值至少部分地基于关于所述其他节点的适合度信息;
将所述其他节点插入到所述计算机系统的路由表(102)中的动作;
步骤4,确定所述计算机系统的路由表中的节点数超过指定数值(161)的动作;
步骤5,将所述路由表分成多个范围(191、192、193)的动作,每一范围都对应于所述覆盖网络(100)的一部分;
步骤6,基于所述路由表中的每一节点在所述覆盖网络(100)中的位置来将该节点分配给所述多个范围中的一个的动作;
步骤7,标识包括最多节点的范围(194)的动作;以及
步骤8,基于适合度值来从所述路由表(102)中移除所标识的范围内的节点中的、最不适合传送和处理消息的节点的动作。
11.如权利要求10所述的方法,其特征在于,所述从所述覆盖网络中的另一节点接收消息的动作包括接收包括所述多个其他节点中的每一个的路由表大小以及所述多个其他节点中的每一个的一个或多个其他特性的消息的动作。
12.如权利要求10所述的方法,其特征在于,所述计算所述其他节点的适合度值的动作包括基于所述其他节点的路由表大小来计算适合度的动作。
13.如权利要求10所述的方法,其特征在于,所述计算所述其他节点的适合度值的动作包括仅基于所述其他节点的路由表大小来计算适合度的动作。
14.如权利要求10所述的方法,其特征在于,所述确定所述计算机系统的路由表中的节点数超过指定数值的动作包括参考路由表策略的动作。
15.如权利要求10所述的方法,其特征在于,还包括在从所标识的范围内的节点中移除最不适合传送和处理消息的节点之后:
重复以下动作直到所述计算机系统的路由表中的节点数不再超过所述指定数值:
标识包括最多节点的下一范围的动作;以及
基于适合度值来从所述路由表中移除所标识的下一范围内的节点中的、最不适合传送和处理消息的节点的动作。
16.如权利要求10所述的方法,其特征在于,还包括:
在访问所述路由表之前锁定所述路由表的动作;以及
在移除所标识的节点之后解锁所述路由表的动作。
17.如权利要求10所述的方法,其特征在于,还包括:
在移除所标识的节点之后从所述路由表中选择路由节点的动作;以及
将消息发送到所选路由节点的动作。
18.如权利要求10所述的方法,其特征在于,所述覆盖网络是环形拓扑结构。
19.如权利要求10所述的方法,其特征在于,所述覆盖网络是覆盖在因特网上的对等网络。
20.一种在计算机系统处的用于在所述计算机系统处维护路由表的方法,所述计算机系统作为节点包括在具有双重链接的环形拓扑结构的覆盖网络中,所述覆盖网络还包括多个其他节点,所述方法包括:
步骤1,从所述双重链接的环形拓扑结构中的另一节点接收消息的动作,所述消息包括关于所述另一节点的路由表中的多个其他节点的节点信息,所述节点信息指示所述另一节点的路由表中的每一个其他节点的路由表大小;
步骤2,在接收到所述消息后锁定所述计算机系统的路由表以阻止任何路由判定的动作,所述计算机系统的路由表中的每一节点都是所述计算机系统可向其发送消息以便将该消息传递至所述双重链接的环形拓扑结构中的目的地节点的节点,所述计算机系统的路由表中的多个节点中的每一个都连同该节点的对应的路由表大小的指示一起存储;
步骤3,将所述多个其他节点集成到所述计算机系统的路由表中的动作;
步骤4,确定所述计算机系统的路由表中的节点数超过指定数值的动作;
步骤5,将所述路由表分成多个范围的动作,每一范围都对应于双重链接的环形拓扑结构的一部分;
步骤6,基于所述路由表中的每一节点在所述双重链接的环形拓扑结构中的位置来将该节点分配给所述多个范围中的一个的动作;
步骤7,重复以下动作直到所述计算机系统的路由表中的节点数不再超过所述指定数值:
标识包括最多节点的范围的动作;
标识所标识的范围内的、具有最小所指示的路由表大小的节点的动作;以及
从所述计算机系统的路由表中移除所标识的节点的动作;以及
步骤8,解锁所述计算机系统的路由表以使得所述计算机系统的路由表能够在所述计算机系统的路由表中的节点数不再超过所述指定数值后再次在路由判定时使用的动作。
CN2008801020503A 2007-08-06 2008-08-05 基于适合度的路由 Expired - Fee Related CN101803289B (zh)

Applications Claiming Priority (5)

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
PCT/US2008/072250 WO2009020980A1 (en) 2007-08-06 2008-08-05 Fitness based routing

Publications (2)

Publication Number Publication Date
CN101803289A CN101803289A (zh) 2010-08-11
CN101803289B true CN101803289B (zh) 2012-12-12

Family

ID=40341689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801020503A Expired - Fee Related CN101803289B (zh) 2007-08-06 2008-08-05 基于适合度的路由

Country Status (7)

Country Link
US (1) US7961711B2 (zh)
EP (1) EP2183883A4 (zh)
JP (1) JP5107429B2 (zh)
CN (1) CN101803289B (zh)
BR (1) BRPI0812975A2 (zh)
RU (1) RU2454008C2 (zh)
WO (1) WO2009020980A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
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 (zh) 2012-03-08 2019-03-15 三星电子株式会社 用于控制无线通信系统中的服务的方法
KR102024815B1 (ko) * 2012-03-19 2019-09-24 삼성전자 주식회사 로밍 시스템에서 메시지 송수신 방법 및 장치
US10645004B2 (en) * 2015-03-20 2020-05-05 Convida Wireless, Llc Methods to support message routing at service layer
EP3523724B1 (en) * 2016-10-07 2023-12-06 Convida Wireless, LLC Service layer resource management for generic interworking and extensibility
CN114143711B (zh) * 2021-11-25 2024-04-02 深圳Tcl新技术有限公司 信息处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN1819581A (zh) * 2004-11-01 2006-08-16 朗迅科技公司 软路由器协议故障恢复
JP2006246205A (ja) * 2005-03-04 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> オーバレイネットワーク対応ルーチング方法およびオーバレイノード

Family Cites Families (24)

* Cited by examiner, † Cited by third party
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
DE60028018T2 (de) 2000-06-15 2006-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und Anordnungen in einem Telekommunikationssystem
WO2003019870A2 (en) 2001-08-24 2003-03-06 Peribit Networks, Inc. Dynamic multi-point meshed overlay network
JP4105090B2 (ja) * 2001-08-25 2008-06-18 ノキア コーポレイション 近傍情報及び公示伝送時間を利用する無衝突伝送スケジューリングのためのシステム及び方法
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
EP1847071A4 (en) 2005-01-26 2010-10-20 Internet Broadcasting Corp B V MULTI-DIFFUSION IN LAYERS AND EXACT ATTRIBUTION OF BANDWIDTH AND PRIORIZATION OF PACKETS
US7808971B2 (en) * 2005-07-01 2010-10-05 Miller John L Routing cache for distributed hash tables
DE602005019718D1 (de) * 2005-07-28 2010-04-15 Univ Berlin Tech Kommunikationsnetz, Verfahren zur Leitweglenkung von Datenpaketen sowie Verfahren zum Lokalisieren und Sichern von Daten einer gewünschten Ressource in einem solchen Kommunikationsnetz
US20090116484A1 (en) 2005-09-08 2009-05-07 Matsushita Electric Industrial Co., Ltd. Parallelizing Peer-to-Peer Overlays Using Multi-Destination Routing
WO2007034313A1 (en) 2005-09-23 2007-03-29 Thomas Friedrich Theo Fuhrmann Routing method and apparatus
US7660296B2 (en) 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN1819581A (zh) * 2004-11-01 2006-08-16 朗迅科技公司 软路由器协议故障恢复
JP2006246205A (ja) * 2005-03-04 2006-09-14 Nippon Telegr & Teleph Corp <Ntt> オーバレイネットワーク対応ルーチング方法およびオーバレイノード

Also Published As

Publication number Publication date
US20090041033A1 (en) 2009-02-12
RU2454008C2 (ru) 2012-06-20
RU2010104017A (ru) 2011-08-10
BRPI0812975A2 (pt) 2014-12-16
EP2183883A4 (en) 2014-04-16
WO2009020980A1 (en) 2009-02-12
EP2183883A1 (en) 2010-05-12
US7961711B2 (en) 2011-06-14
CN101803289A (zh) 2010-08-11
JP5107429B2 (ja) 2012-12-26
JP2010536259A (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
CN101803289B (zh) 基于适合度的路由
CN100552626C (zh) 用网络栈同步和上载已卸载网络栈连接的方法
CN101573927B (zh) 网络系统中的路径最大传输单元发现
CN107925674B (zh) 在内容为中心的网络(ccn)中推送数据的方法和装置
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
CN102763380B (zh) 用于路由分组的系统和方法
CA2480933C (en) Metaspace: communication middleware for partially connected mobile ad hoc networks
CN101047714B (zh) 一种处理网络数据的方法及系统
RU2540815C2 (ru) Прерывание, по меньшей мере частичное, передачи кадра
JP2006526302A (ja) 有線又は無線ネットワークにおけるパケットのルーティングのためのシステム及び方法
US9467374B2 (en) Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway
US20140040477A1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN113726907A (zh) 一种路由处理方法、网元设备、装置以及可读存储介质
US10536368B2 (en) Network-aware routing in information centric networking
CN105052106A (zh) 用于接收和传输互联网协议(ip)数据包的方法和系统
JP6055553B2 (ja) キュースケジューリング方法、装置及びシステム
US7245640B2 (en) Packet origination
US11160139B2 (en) Method for optimizing per message type data exchange between connected objects
EP2645677B1 (en) A method and a network element for content based addressing in a data transfer network
CN116418726A (zh) 源路由编码方法、数据包路由方法、装置、设备及介质
CN115150280A (zh) 一种数据包发送方法及设备
Bonaventure Computer networking: principles, protocols and practice
CN106664217A (zh) 候选问题网络实体的标识
Raveneau et al. Experiments and results on DTN for IOT III Urbanet collaboration
CN101964721B (zh) 用于联网的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150513

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150513

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121212

Termination date: 20150805

EXPY Termination of patent right or utility model