CN101657980A - 分布式路由表体系结构和设计 - Google Patents

分布式路由表体系结构和设计 Download PDF

Info

Publication number
CN101657980A
CN101657980A CN200880011670A CN200880011670A CN101657980A CN 101657980 A CN101657980 A CN 101657980A CN 200880011670 A CN200880011670 A CN 200880011670A CN 200880011670 A CN200880011670 A CN 200880011670A CN 101657980 A CN101657980 A CN 101657980A
Authority
CN
China
Prior art keywords
module
routing table
node
key
node instance
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.)
Granted
Application number
CN200880011670A
Other languages
English (en)
Other versions
CN101657980B (zh
Inventor
T·R·曼尼恩
K·C·兰森
J·L·德威利
S·A·森克斯蒂
B·R·里艾伦
P·德
S·K·辛格豪尔
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 CN101657980A publication Critical patent/CN101657980A/zh
Application granted granted Critical
Publication of CN101657980B publication Critical patent/CN101657980B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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/60Router architectures

Abstract

分布式路由表(DRT)网格可包括两个或更多节点,这些节点中的每一个都维护表示该DRT网格的总路由知识中的部分或全部的其自己的路由表。每一个节点都可包括模块化组件,该组件能够执行各种定义的功能以使得应用程序能够基于哪些模块化组件已被实例化来定制该节点的特征和能力。路由表管理模块可维护每一个节点处的各个路由表,并且可确保在路由表中只维护在网络拓扑结构的意义上靠近该节点的条目。另外,安全模块可基于达成协议的根证书来验证所接收到的消息。

Description

分布式路由表体系结构和设计
背景
计算设备的网络通常包括用作定向该网络上的消息通信的“路由器”的至少一个计算设备。传统上,路由器连接两个或更多子网以使得不同子网上的计算设备之间的消息被定向到适当的子网以便传递到其目标目的地。路由器的功能的中心是“路由表”,其将各个计算设备的标识符与可用于到达该计算机的网络路径相关。路由表能够以各种方式实现,并且不限于传统的查找表。的确,虽然传统的查找表可适用于实现用于包括有限数量的计算设备的网络的路由表,但用于诸如无处不在的因特网等包括数百万个单独的计算设备的大型网络的路由器表可改为以为高效信息检索而设计的独特构造的形式实现。
路由表中所包含的信息同样可取决于所使用的路由类型而变化。例如,在被称为“逐跳路由”的简单路由方案中,路由表可将各个计算设备的标识符与沿着到该目的地的路径的下一个设备(换言之,下一“跳”)的地址相关。或者,更复杂的路由方案基于网络拓扑结构的知识并且因此,这一方案中的路由表可将各个计算设备的标识符与到该计算设备的一条或多条路径相关。
因为路由器可包括对于网间通信而言是重要的信息,所以路由器很容易会成为网络通信的瓶颈。例如,如果路由器变成阻塞的或无响应的,则该路由器可能减缓或甚至中断各种网络通信。为了消除这一瓶颈,可使用分布式路由表(DRT),藉此多个计算设备能够各自主存能够以分布式方式使用的路由表的部分或全部。例如,多个计算设备中的每一个都能够主存DRT中包括关于网络上的计算设备的子集的信息的部分。由此,对于由计算设备接收到的目的地并非该计算设备的每一个消息,该计算设备可参考其在DRT中的部分并标识更有可能能够最终将该消息传递到其预期接收者的另一计算设备。与在其发生故障时不再能够将消息定向到其预期目的地的集中式路由器不同,即使一个或多个计算设备发生故障DRT也能够继续定向消息。在这一故障情形中,其余可操作的计算设备将消息定向到其他仍旧可操作的计算设备即可,并由此最终将消息传递至其预期目的地。
概述
在一个或多个计算设备上执行的多个应用程序可基于分布式路由表拓扑结构来实现应用程序间通信。为了最小化给予这些应用程序之间的恶意行为的机会,在一个实施例中消息可由从根证书中导出的证书来签署。由此,可首先验证接收到的消息已由证书正确地签署,并且随后可验证证书本身以确保该证书是从一个或多个预先选择的根证书中正确导出的。这些验证可由模块化的安全模块来执行,该模块由于其模块化的设计而能够由可基于替换安全机制的另一安全模块来高效地替代。
这一模块化方法可被应用于DRT操作中所使用的其他元件,从而向实现DRT网络的那些应用程序提供更大的灵活性。例如,在一个实施例中,可使用模块化的传输模块来使得应用程序能够使用多个独特的网络通信协议中的任一个来进行通信。由此,一个传输模块能够使用普遍存在的的传输控制协议(TCP)来实现通信,而另一传输模块能够使用诸如用户数据报协议(UDP)等某一其他协议来实现通信。类似地,可使用模块化的引导模块来使得应用程序能够基于各种对等协议或其他名称解析协议来形成和加入DRT网络。例如,一个引导模块使得能够基于对等名称解析协议(PNRP)来形成和加入DRT网络,而另一引导模块能够与域名服务(DNS)一起工作。
在DRT的操作中所使用的模块中,一个实施例构想存在能够基于网络局部性来维护路由表的路由表管理模块。更具体而言,DRT中的每一个单独的路由表中的条目标识在网络拓扑结构的意义上“靠近”路由表管理模块在其上执行的计算设备的计算设备。这些“靠近”的条目可通过例如将与将要添加到路由表的设备的通信的往返时间与已经在该表中的设备的往返时间进行比较,并且仅在到该新设备的通信的往返时间更短的情况下将该新设备添加到该表来维护。通过提供引用本地计算设备的路由表,可提高DRT网络的总体效率。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
当参考附图阅读以下详细描述时,将使得其它特征和优点是显而易见的。
附图说明
以下详细描述在结合附图参考时可得到最佳的理解,附图中:
图1是示例性DRT网络的网络图;
图2是示例性计算设备的框图;
图3是可由应用程序调用的示例性DRT机制的框图;
图4是用于实例化DRT机制的示例性步骤的流程图;
图5是用于加入DRT网络的示例性步骤的流程图;
图6是使得能够向DRT网络注册计算设备的一系列示例性通信的通信图;以及
图7是使得能够搜索DRT网络上的计算设备的一系列示例性通信的通信图。
详细描述
以下描述涉及用于实现并使用依靠分布式路由表(DRT)的计算设备的网络的机制。具体而言,每一个计算设备都可主存可担当基于DRT的网络的端点的一个或多个应用程序。这些应用程序可实例化能够维护DRT的每一个单独部分并且还可提供通信和安全基础结构的进程,从而使得这些应用程序能够创建并使用依靠DRT的网络。
与DRT的实现相关的各种任务可被组件化,以使得可互换的组件能够提供各种各样的功能。在一个实施例中,安全模块可由应用程序来从一个或多个安全模块中选择,其中每一个安全模块都可根据该模块所实现的特定安全策略来验证传入消息。在另一实施例中,传输模块可由应用程序来从一个或多个传输模块中选择,其中每一个传输模块都可使用不同的网络传输协议来提供通信。同样,其他实施例构想引导模块或记录模块,这两个模块中的每一个都可由应用程序来从提供相同的基本功能但各自实现该模块专用的机制的一个或多个模块中选择。
又一实施例构想路由表管理模块,该模块可管理DRT的每一部分的条目以确保每一个路由表中的条目标识在网络拓扑结构中最接近该计算设备的计算设备。在一个实施例中,路由表中的条目或潜在条目的接近度可通过由该条目标识的计算设备和路由表管理模块在其上执行的计算设备之间的通信的往返时间来确定。由此,如果路由表已经包括足够数量的条目,则在一个实施例中,仅在潜在条目的往返时间少于当前在该路由表中的至少一个条目的往返时间的情况下可添加该潜在条目。在一替换实施例中,可自由地向路由表添加条目,但路由表管理模块可周期性地或另外如所请求地测试该路由表中的一个或多个条目的往返时间,并且可丢弃往返时间大于所确定的阈值的那些条目或者只保留阈值数量的条目。
在另一实施例中,安全模块可基于一个或多个预定义根证书来施加安全措施。具体而言,在接收到关于基于DRT的网络的管理的消息后,这一安全模块可验证所接收到的消息已由与该消息一起提供的证书正确地签署,以及所提供的证书构成回头通向预定义根证书中的一个的证书链。根证书可由本地认证机构(CA)或诸如通过因特网来销售和提供服务的商业CA中的任一个等外部CA来提供。
此处所描述的技术聚焦于但不限于,用于创建、加入和管理在一个或多个物理计算设备上执行的多个应用程序的网络的机制,且每一个计算设备通过一个或多个子网物理地连网到其他计算设备。为了在计算设备之间的物理网络连接与一系列互相通信的应用程序之间的物理网络连接之间进行区分,后者将被称为“网格”。由此,使用分布式路由表(DRT)来路由网格中的消息的网格将被称为“DRT网格”。
转向图1,示出了示例性DRT网格99,其包括通过网络90联网在一起的计算设备10、20、30、40和50。在所示的示例性DRT网格99中,参与的计算设备10、20、30、40和50中的每一个都可包括键和路由表。每一个键都可担当计算设备本身或在该计算设备上执行的特定进程或应用程序的唯一标识符。例如,普遍存在的网际协议(IP)地址是用于标识网络中遵照该网际协议的端点的一种类型的键。在所示的示例性DRT网格99中,计算设备10、20、30、40和50已被分别分配键1000、2000、3000、4000和5000。
计算设备10、20、30、40和50的路由表11、21、31、41和51中的每一个分别只包括路由信息的可用部分。相反,担当用于DRT网格99的单个分布式路由表的是路由表11、21、31、41和51的组合。例如,为了将通信发送到计算设备40,计算设备20首先可确定其正在搜索的键是键4000。一旦计算设备20标识了键4000,它就可参考其路由表21以搜索到键4000的最近条目。在路由表21中,计算设备20可将键3000或键5000标识为最近。选择例如键3000可使得计算设备20发起与键3000所标识的计算设备30的通信并且请求该计算设备30将通信从计算设备20转发至具有键4000的计算设备。计算设备30可参考其自己的路由表31并且可标识键4000。因此,将该通信从计算设备20转发至具有键4000的计算设备40。以此方式,通信可在参与图1的DRT网格99的任何计算设备之间路由,即使每一个计算设备都只包括总路由表的一部分。
虽然未作要求,但以下描述将处在诸如程序模块等正由一个或多个计算设备执行的计算机可执行指令的一般上下文中。更具体而言,除非另外指明,否则描述将参考一个或多个计算设备或外围设备所执行的动作以及其所执行的操作的符号表示。由此,可以理解,这些有时被称为计算机执行的动作和操作包括以结构化形式表示数据的电信号的处理单元的操纵。该操纵在存储器中的各个位置变换或维护数据,这以本领域技术人员都理解的方式重新配置或以其他方式更改计算设备或外围设备的操作。其中维护数据的数据结构是具有由该数据的格式定义的特定特性的物理位置。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会认识到这些计算设备不必限于常规个人计算机,并且包括其他计算配置,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机等等。类似地,这些计算设备不必限于独立计算设备,因为各机制也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图2,示出了示例性计算设备100。计算设备100可表示图1的计算设备10、20、30、40和50中的任一个。示例性计算设备100可包括但不限于,一个或多个中央处理单元(CPU)120、系统存储器130和将包括该系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。
计算设备100通常还包括能够包括可由计算设备100访问的任何可用介质的计算机可读介质,并且包括易失性和非易失性介质以及可移动和不可移动介质两者。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算设备100中元件之间传递信息的基本例程,它通常存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在其上操作的数据和/或程序模块。作为示例而非限制,图2示出了操作系统134、其它程序模块135和程序数据136。
计算机系统100还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅仅作为示例,图2示出了对不可移动、非易失性磁性介质进行读写的硬盘驱动器141。可以与示例性计算设备一起使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口连接到系统总线121。
上文讨论并在图2中示出的驱动器及其相关联的计算机存储介质为计算设备100提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图2中,硬盘驱动器141被示为存储操作系统144、其它程序模块145和程序数据146。注意,这些组件可以与操作系统134、其它程序模块135和程序数据136相同,也可以与它们不同。操作系统144、其它程序模块145和程序数据146在这里被标注了不同的标号是为了说明至少它们是不同的副本。
关于以下描述,计算设备100可以使用到一个或多个远程计算机的逻辑连接在联网环境中操作。为了说明简便起见,计算设备100在图2中被示为连接到不限于任何特定网络或联网协议的网络90。图2所描绘的逻辑连接是一般网络连接171,其可以是局域网(LAN)、广域网(WAN)或其他网络。计算设备100通过网络接口或适配器170连接到通用网络连接171,网络接口或适配器170进而连接到系统总线121,但将会认识到,所示网络连接是示例性的并且可使用建立通信链路的其他手段。
在联网环境中,相对于计算设备100或其部分或外围设备所描绘的程序模块可被存储在通过一般网络连接171通信地耦合到计算设备100的一个或多个其他计算设备的存储器中。同样,操作系统144和程序模块145能够与在计算设备100可经由一般网络连接171和网络90通信地耦合到的其他计算设备上执行的其他操作系统和程序模块进行通信。在一个实施例中,程序模块145包括至少一个应用程序,该至少一个应用程序经由诸如图1的DRT网格99等跨网络90实现的DRT网格来与在其他计算设备上执行的其他应用程序进行通信。
转向图3,诸如将由程序模块145中的一个或多个来创建的应用程序进程200被示为包括用于通过诸如DRT网格99等DRT网格来与其他应用程序进程进行通信的元件。具体而言,图3的应用程序进程包括应用程序代码210和两个节点实例220和230。对这两个节点实例的说明旨在仅仅是示例性的,因为可实例化任何数量的一个或多个节点实例作为诸如应用程序进程200等单个应用程序进程的一部分。
在一个实施例中,每一个节点实例都可包括用于实现特殊化任务的多个组件或模块。由此,如图所示,节点实例220包括节点221、路由表管理模块222、传输模块223、引导模块224、安全模块225和记录模块226。节点实例230可包括类似的模块,但图3只示出了节点231。最初,如图3的上面的箭头所示,传输模块223、引导模块224、安全模块225和记录模块226可由应用程序代码210来实例化到应用程序进程200中。随后,节点221可由应用程序代码210来实例化到应用程序进程200中,并且可被提供指向已经实例化的传输模块223、引导模块224、安全模块225和记录模块226的实例的指针,如图3的下面的箭头所示。节点221可实例化路由表管理模块222并且可创建节点实例220,该节点实例包括实例化的节点221、路由表管理模块222、传输模块223、引导模块224、安全模块225和记录模块226的实例。
每一个节点实例220和230都可表示诸如图1的DRT网格99等DRT网格内的可唯一标识的端点。由此,每一个节点实例220和230都可被分配对应于该节点实例的键标识符,并且每一个节点实例都可允许应用程序代码以独立的方式与一个或多个其他节点实例进行通信。可以看出,单个计算设备且实际上是单个应用程序能够主存多个节点实例。由此,虽然图1以及随后的图6和7各自将计算设备示为单个节点实例,但不应将描述中的任何内容解读成需要这样的节点实例与计算设备或者节点实例与在这些计算设备上执行的应用程序之间的一对一对应关系。
转向图4,示出了例示可由应用程序发起以建立诸如图3的节点实例220或230等节点实例的一系列示例性步骤的流程图300。虽然流程图300的步骤按特定次序示出,但这一系列步骤中的许多步骤之间的确切关系是无关的,并且因此,存在等价于所示排序的对流程图300的步骤的多种排序。然而,一般而言,将发生某一发起步骤以使得应用程序执行所示步骤。由此,在图4中,一个这样的发起步骤是在步骤310处的应用程序决定加入DRT网格。在这一发起步骤之后,可发生多个实例化,但如图所示,这些实例化的准确次序并不受限。
在流程图300所示的示例中,在步骤320,应用程序代码210可实例化传输模块223。在一个实施例中,在步骤320处实例化的传输模块223被特别设计成使用特定传输协议来操作,并且应用程序代码210无需为了使得节点221能够利用传输模块223而执行任何进一步的动作。然而,在一替换实施例中,传输模块223能够与多种不同的传输兼容。在这种情况下,应用程序代码210还可在步骤320处实例化传输模块223后在步骤325处向该传输模块通知要使用的底层协议。
随后,在步骤330,应用程序代码210可实例化安全模块225,但是如先前所指示的,安全模块的实例化可等效地在传输模块223的实例化之前发生。一旦实例化了安全模块,在步骤335,应用程序代码210就可向该安全模块提供适当的安全凭证。这些安全凭证可包括由应用程序代码210使用的私钥和公钥对以及公钥证书。在一个实施例中,在步骤335处提供的公钥证书可从通过DRT网格进行通信的所有应用程序所共有的根证书中导出。
在步骤330和335处实例化了安全模块225并向其提供了相关信息之后,在步骤340,应用程序代码210可实例化引导模块224。或者,如先前所指示的,引导模块224的实例化也可等效地在传输模块223和安全模块225的实例化中的任一个或两者之前发生。在一个实施例中,引导模块224被特别设计成使用从中发起与DRT网格的通信的特定网络来操作,并且应用程序代码210无需为了使得节点221能够利用引导模块224而执行任何进一步的动作。在一替换实施例中,引导模块224可以更灵活,在这种情况下,应用程序代码210还可在步骤340处实例化引导模块224后在步骤345处向该引导模块通知要使用的特定网络。
在步骤360处实例化节点之前,应用程序代码210可在步骤350处实例化记录模块226。如同步骤320、330和340的实例化一样,记录模块226的实例化不必按相对于传输模块223、安全模块225或引导模块224的实例化的任何特定次序来发生,并且能够等效地在这些实例化中的任一个或全部之前发生。随后,在步骤355,应用程序代码210可向记录模块226通知要使用的日志存储的名称和位置。或者,诸如记录模块226等每一个记录模块都可被设计成使用特定日志存储,在这种情况下将不执行步骤355。
在传输模块223、引导模块224、安全模块225和记录模块226已由应用程序代码210实例化之后,该应用程序代码可继续实例化节点221,并由此创建DRT实例,诸如DRT实例220。由此,如流程图300所示,在步骤360,应用程序代码210可实例化节点221。应用程序代码210还可将指向实例化的传输模块223、引导模块224、安全模块225和记录模块226的实例的指针传递给节点221,由此使得节点221能够与传输、引导、安全和记录模块进行通信并利用这些模块。节点221然后可创建DRT实例220并且还可实例化路由表管理模块222。
一旦创建了DRT实例220,在步骤365,应用程序代码210就可指示节点221加入DRT网格,诸如图1的DRT网格99。在步骤370,应用程序代码210在加入DRT网格时的初始处理可结束。
为了诸如响应于步骤365来加入DRT网格,节点221可利用实例化的路由表管理模块222、传输模块223、引导模块224、安全模块225和记录模块226。转向图5,流程图400示出了由节点221执行以加入DRT网格的一系列示例性步骤。最初,如图所示,在步骤410,节点221可从应用程序代码210接收加入DRT网格的请求。随后,节点210可请求实例化的引导模块224提供该应用程序正试图加入的DRT网格中的该引导模块所知道的其他节点的列表。如果如步骤430所确定的引导模块224没有返回任何节点,则在步骤440,节点221可保持在离线状态。
在一个实施例中,如果引导模块224没有返回任何节点,则应用程序代码210可请求该引导模块发布其可用性,或者该引导模块可自动发布其可用性。更具体地,为了使得至少两个节点能够在最初进行通信以便首先形成DRT网格,引导模块224可使用预先安排的会合(rendezvous)。这一会合可采取在另一网络的上下文中进行的发布或注册的形式,以便通告节点实例220的可用性及其形成DRT网格的意愿。具体地,引导模块224可使用特定对等协议或例如计算设备10、20、30、40和50所惯用的其他名称解析协议来形成网络90。在一个实施例中,可针对诸如对等名称解析协议(PNRP)等特定协议来定制特定的个别引导模块,由此使得应用程序能够通过简单地实例化适当的引导模块,依靠各种名称解析协议来形成各网络上的DRT网格。
一旦引导模块224已使用网络90的名称解析协议来通告节点实例220的存在,该模块就可等待另一节点变成在网络90上活动。这一后续节点然后可经由网络90中的预先安排的会合点来检查诸如节点实例220等任何其他节点是否可用于创建DRT网格。该后续节点由此能够获悉节点实例220的存在,并且这两个节点可继续进行通信以形成DRT网格。
然而,如果在步骤430处确定引导模块224已返回了至少一个节点,则节点221可继续加入或建立具有该节点的DRT网格。如图所示,如果单个节点先前已经在网络90上以预先安排的方式发布了其形成DRT网格的可用性,则在步骤430,引导模块224可返回这一节点。类似地,如果多个节点已经形成了DRT网格,则在步骤430,引导模块224也可返回这些节点中的一个或多个。在任一种情况下,在步骤450,节点221可请求安全模块225确认由引导模块224返回的节点中的一个或多个。
为了使得节点实例220能够更快地形成有用的路由表,由引导模块224返回的节点可向节点实例220提供关于这些节点所知道的其他节点的信息。这些信息也可由安全模块225来确认。
在一个实施例中,安全模块225可通过验证从节点接收到的信息已由附随该信息的证书正确地签署以及该证书是从根证书中正确地导出的两者来确认由引导模块224标识并提供的节点。例如,从节点接收到的信息可以用唯一键编号来标识该节点。为了防止恶意实体通过提供使用相同键编号的信息来假装成该节点,可使用证书来签署包括键编号的接收到的信息。使用已知密码技术,安全模块225可验证包括键编号的接收到的信息已由所提供的证书正确地签署。例如,安全模块225可使用证书中所提供的公钥来验证所提供的信息和键编号是由对应的私钥签署的。另外,在一个实施例中,键编号可从发布者的公钥中导出,由此使得安全模块能够进一步验证该键编号。在使用证书来验证消息内容后,安全模块225可进一步验证该证书是预先批准的根证书或者是包括预先批准的根证书的证书链的一部分。通过使用根证书而不是自签署的证书,DRT网格可变得更安全并且安全措施可具有更大的灵活性。
一旦安全模块225已在步骤450处确认了由引导模块224返回的节点,在步骤460,节点221就可请求路由表管理模块222将得到验证的节点和相关路由添加到由节点实例220维护的路由表。在一个实施例中,路由表管理模块222可仅在这些节点在网络拓扑结构中比已经在路由表中的节点中的一个或多个更接近主存节点实例220的计算设备的情况下决定添加这些节点中的一个或多个。在一替换实施例中,路由表管理模块222最初可将由引导模块224返回并且得到安全模块225的验证的节点中的部分或全部添加到节点实例220的路由表。随后,路由表管理模块222可确定节点实例220的路由表中的条目数是否超过预定阈值。如果超过这一阈值,则可基于网络拓扑结构中的路由表中的条目所引用的节点和主存节点实例220的计算设备之间的距离来移除条目。更具体而言,能够以有利于表示较接近的节点的条目的方式移除具有更大距离的条目。路由表管理模块对路由表的这一削减可在周期性的基础上或在应用程序代码210或节点221请求时发生,或者以其他方式触发,诸如由监视路由表中的条目数的进程来触发。
在网络拓扑结构中,节点之间的距离或主存这些节点的计算设备之间的距离可以不由节点之间的物理距离,而由节点之间的通信路径的距离来定义。的确,网络拓扑结构通常不符合物理拓扑结构。例如,连接到公司网络的计算设备与连接到同一公司网络的其他计算设备的通信能够比该计算设备与连接到不同的公司网络的另一计算设备的通信更高效,即使连接到同一公司网络的这些计算设备在其它城市而连接到不同公司网络的另一设备位于仅仅数个街区之外。同一网络分区上的两个计算设备之间的通信路径可能是短且直接的,即使这两个计算设备物理上彼此分开,而不同网络分区上的两个计算设备之间的通信路径可能需要大量网间传输并因此可能相当长且复杂。
为了确定节点的接近度,在一个实施例中路由表管理模块222可测量从节点实例220发送到正在测量其距离的节点的消息的往返时间。具有最短往返时间的节点被认为是“较接近”的并因此被保留在路由表中。在另一实施例中,路由表管理模块222可基于主存正在估算其距离的节点的计算设备的网际协议(IP)地址的特性与主存节点实例220的计算设备的IP地址的特性的比较来确定哪一个节点“较接近”。在又一实施例中,可使用上述两个实施例的组合。例如,路由表管理模块222最初可测量往返时间,但如果两个或更多节点被测得具有相似的往返时间并因此被认为与节点实例220的网络拓扑距离大致相等,则可选择将具有更相似的IP地址的节点包括在路由表中。
然而,在最初加入DRT网格时,更有可能的情况是路由表所具有的条目太少。如果路由表管理模块222确定路由表需要其他条目,则该模块可请求节点221执行DRT网格中的搜索以获取其他节点信息。如图5的流程图400所示,在步骤470,节点221可接收这一获取其他节点信息的请求。如果在步骤470处未接收到这一请求,则节点221为加入DRT网格而执行的处理可在步骤490处结束。然而,如果在步骤470处接收到对其他节点信息的请求,则节点221可在步骤480处执行对DRT网格的搜索。
一种可用于执行对DRT网格的搜索的机制由图6的通信流500示出。最初,节点,诸如由键2000标识并由计算设备20主存的节点可标识与正被搜索的节点相关联的键编号。正在搜索的节点无需确定正被搜索的节点的存在,因为对任何键的搜索都将返回由大致等于正被搜索的键的键来标识的节点。在通信流500所示的示例中,由键2000标识的节点可搜索由键4000标识的节点。最初,如通信510所示,诸如节点221的节点可请求路由表管理模块222在本地路由表21中查找被搜索的键4000。作为响应,路由表管理模块222可向节点221返回到被搜索的键的路由或者到最接近被搜索的键的键的路由。在图6所示的特定示例中,被搜索的键4000不存在于路由表21中。因此,路由表管理模块222可向节点221提供到由存在于路由表21中的、与被搜索的键4000最接近的键3000标识的节点的路由。
有了到由键3000标识的节点的路由,节点221可建立与由键3000标识的节点的通信并请求该节点在其路由表中查找由被搜索的键4000标识的节点。由此,如图6所示,这一请求能够以从计算设备20到计算设备30的通信520的形式作出,计算设备20可被认为主存图3的节点实例220,计算设备30在图6的示例性DRT网格99中主存由键3000标识的节点。由键3000标识的节点的路由表31在图6所示的实施例中的确包括对应于由键4000标识的被搜索的节点的条目。因此,在标识路由表31中的条目525后,由键3000标识的节点可经由通信530来响应节点221以便向该节点221通知到由键4000标识的节点的路由。
在一个实施例中,在确定已经定位了由键4000标识的被搜索的节点之前,节点221可向由键4000标识的节点发送通信540以请求该节点同样搜索其路由表以查找由键4000标识的节点。这一消息可被称为“询问”消息,并在图6中经由从主存节点221的计算设备20到计算设备40的通信540示出,计算设备40在图6所示的示例中主存由键4000标识的节点。为了确保响应询问消息540的消息不被某一其他节点取得并重放,该询问消息可包括可随机生成的令牌“现时值”。后续响应消息然后可包括该令牌并且该消息的签名可参考该令牌来计算。
在接收到通信540后,由键4000标识的节点可响应它的确是节点221正在搜索的节点。由此,如图6所示,从主存由键4000标识的节点的计算设备40到主存节点实例220的计算设备20的通信545可指示作出响应的节点用键4000来标识。这一消息可被称为“权威”消息并且可以是经数字签名的并且与包括公钥的证书一起传输。如上所述,该权威消息还可包括来自询问消息540的随机现时值并且证书中的签名可参考该现时值来计算。另外,节点221可在接收到通信545后请求安全模块225验证该权威消息已正确地签署并且证书或者是正确的根证书或者是包括正确的根证书的证书链的一部分。
一旦安全模块225已验证该权威消息,由此为节点221验证它的确已找到由被搜索的键4000标识的节点,节点221可向应用程序代码210提供应用程序净荷。该应用程序净荷是由用该键注册的键4000所标识的节点表示的远程应用程序的信息。在一个实施例中,该应用程序净荷可以是主存该远程应用程序的计算设备40的IP地址或其他常见网络地址。在这种情况下,一旦应用程序代码210接收到该IP地址,它就可继续使用传统TCP/IP通信来与该远程应用程序进行通信。
在一个实施例中,诸如以刚刚描述的方式的对另一节点的搜索可由DRT网格99中的任一节点来执行。然而,在一替换实施例中,只有在DRT网格99中注册的节点才被允许搜索。为了向DRT网格99注册其自身,诸如节点221等节点可向该DRT网格中的其他节点中的一个或多个发布键或其他标识值。转向图7,示出了通信流600,其示出了可使得由计算设备610主存的节点能够将其自身注册为DRT网格99的一部分的一系列示例性通信。在一个实施例中,最初,诸如节点实例220的节点221等由计算设备610主存的节点可请求安全模块225生成可用于在DRT网格99中标识节点实例220的唯一键。在一替换实施例中,取决于安全模块225的功能,节点221自己选择将在DRT网格99中注册该节点时使用的标识键即可。在图7所示的示例中,可选择键1900来标识由计算设备610主存的节点实例220。
为了向DRT网格99注册其自身,节点221最初可执行“解析”操作,藉此标识具有接近对应于节点实例220的所选键的键的节点。在一个实施例中,该解析操作可通过将键1900递增一并且然后向DRT网格99搜索该新键值,即本示例中的1901来执行。由此,如通信流程图600所示,来自计算设备610的通信620可搜索键1901。为了简单起见,搜索请求620被示为被大致定向到DRT网格99而不是该DRT网格的特定节点,但如上文中所详细描述的,这些搜索结果最初被定向到具有存储在由正在搜索的节点维护的路由表中的相似键的节点,并且然后在适当时由每一个后续节点来重定向。类似地,为了简单起见,搜索响应通信625被示为大致来自DRT网格99而不是特定节点,但同样如在上文中所详细描述的,这些搜索响应可从由正在搜索的节点联系的一个或多个节点接收。
在图7所示的示例中,响应通信625可指示由键2000标识的节点具有与被搜索的键1901最接近的键。一旦正在尝试使用键1900来向DRT网格99注册其自身的节点实例220知道由键2000标识的节点,该节点实例220就可向该节点发送“洪泛”消息630,该消息通告作为该DRT网格的一部分的节点实例220的存在并提供标识键1900。响应于接收到洪泛消息,节点最初可使用安全模块来验证该洪泛消息已被正确地签署并且相关联的证书或者是已批准的根证书或者是包括该已批准的根证书的证书链的一部分。一旦该洪泛消息得到验证,诸如图7所示的示例中的由键2000标识的节点等接收节点就可将所接收到的键和路由信息添加到其路由表21中。由此,如图所示,可将对应于键1900的条目635添加到由键2000标识的节点的路由表21。
除了将键1900添加到其路由表21之外,由键2000标识的节点还可在假设其路由表21中的其他条目也希望获悉该新节点的情况下响应于洪泛消息630来将该洪泛消息转发给这些其他条目。由此,如图7所示,由键2000标识的节点可经由通信640来将转发的洪泛消息发送到其路由表21中的其他节点,即由键1000、3000和5000标识的节点。在接收到转发的洪泛消息640后,接收节点中的每一个都能够以类似于由键2000标识的节点在其接收洪泛消息630时的方式来响应;即,由键1000、3000和5000标识的接收节点中的每一个都能够在其各自的安全模块验证转发的洪泛消息640的情况下将由键1900标识的节点添加到其各自的路由表11、31和51。
一旦将关于对应于键1900的节点的路由信息存储在构成DRT网格99的其他节点的一个或多个路由表中,对应于键1900的节点就可被认为是已注册为该DRT网格的一部分。在另一实施例中,最少数量的节点必须在其路由表中具有对应于由键1900标识的节点的条目以使得该节点能够被认为是DRT网格99的已注册节点。在这种情况下,接收转发的洪泛消息640的节点本身可将该洪泛消息进一步转发给这些接收节点的路由表中所标识的节点。如果节点从不止一个源接收到洪泛消息,则该节点忽略重复的洪泛消息即可。然而,通过多次转发洪泛消息,更多数量的节点的路由表可用该洪泛消息中所包含的键和路由信息来更新,从而使得发送该洪泛消息的节点在DRT网格99中注册其自身能够高效得多。
从以上描述中可以看出,DRT网格可由具有实现各种定义的任务的组件化模块的节点来创建、维护和利用,这些组件化模块包括安全模块和路由表管理模块,前者能够允许使用根证书来验证消息,而后者能够提供包括在考虑网络拓扑结构时接近节点的条目的路由表。考虑此处所述的主题的众多可能的变化,本发明要求保护落入以下权利要求书范围内的所有这样的实施例及其等效实施方式。

Claims (19)

1.一种或多种包括用于创建节点实例的计算机可执行指令的计算机可读介质,所述节点实例表示分布式路由表网格的端点,所述计算机可执行指令涉及以下步骤,包括:
根据用于所述分布式路由表网格的网络传输来选择传输模块;
实例化所述传输模块;
根据用于发起与所述分布式路由表网格的其他节点的通信的预定义机制来选择引导模块;
实例化所述引导模块;
根据与所述分布式路由表网格相关联的一个或多个安全机制来选择安全模块;
实例化所述安全模块;以及
实例化节点模块,所述节点模块用于利用所述传输模块、所述引导模块和所述安全模块来参与所述分布式路由表网格。
2.如权利要求1所述的计算机可读介质,其特征在于,所述节点模块包括用于实例化用于管理与所述节点实例相关联的路由表中的条目的路由表管理模块的计算机可执行指令。
3.如权利要求1所述的计算机可读介质,其特征在于,所述路由表管理模块过滤与所述节点实例相关联的路由表中的条目以保留根据网络拓扑结构比不被保留的那些条目更接近所述节点实例的那些条目。
4.如权利要求1所述的计算机可读介质,其特征在于,与所述分布式路由表网格相关联的一个或多个安全机制包括基于至少一个根证书的基于证书的安全机制。
5.如权利要求1所述的计算机可读介质,其特征在于,所述安全模块包括用于通过参考与所述分布式路由表网格中的另一节点实例相关联的证书以确保该证书链接到所述至少一个根证书来验证从该另一节点实例接收到的消息的计算机可执行指令。
6.如权利要求1所述的计算机可读介质,其特征在于,所述引导模块使用所述引导模块专用的对等名称解析协议来与其他节点实例进行通信。
7.如权利要求1所述的计算机可读介质,其特征在于,包括用于创建第二节点实例的其他计算机可执行指令,所述计算机可执行指令执行以下步骤,包括:实例化第二节点模块,所述第二节点模块用于利用第二传输模块、第二引导模块和第二安全模块来参与所述分布式路由表网格。
8.如权利要求1所述的计算机可读介质,其特征在于,所述节点模块包括用于执行以下步骤的计算机可执行指令:请求所述引导模块枚举所述分布式路由表网格中的其他节点,请求所述安全模块验证由所述引导模块提供的所枚举的其他节点,以及请求路由表管理模块将得到验证的、所枚举的其他节点添加到与所述节点实例相关联的路由表。
9.如权利要求1所述的计算机可读介质,其特征在于,所述节点模块包括用于执行以下步骤的计算机可执行指令:向所述安全模块请求与所述节点实例相关联的键,标识与另一键相关联的另一节点,所述另一键在数值上最接近所述键,以及向该另一节点发送包括所述键的洪泛消息。
10.一种或多种包括用于维护与节点实例相关联的路由表的计算机可执行指令的计算机可读介质,所述节点实例表示分布式路由表网格的端点,所述计算机可执行指令涉及以下步骤,包括:
根据网络拓扑结构来确定与第一键相关联的第一节点和所述节点实例之间的第一距离;
根据所述网络拓扑结构来确定与第二键相关联的第二节点和所述节点实例之间的第二距离;
如果所述第一距离小于所述第二距离,则维护与所述节点实例相关联的路由表以包括与所述第一节点相关联的条目,该条目包括所述第一键和从所述节点实例到所述第一节点的第一路由;以及
如果所述第二距离小于所述第一距离,则维护与所述节点实例相关联的路由表以包括与所述第二节点相关联的条目,该条目包括所述第二键和从所述节点实例到所述第二节点的第二路由。
11.一种用于创建节点实例的方法,所述节点实例表示分布式路由表网格的端点,所述方法包括以下步骤:
根据用于所述分布式路由表网格的网络传输来选择传输模块;
实例化所述传输模块;
根据用于发起与所述分布式路由表网格的其他节点的通信的预定义机制来选择引导模块;
实例化所述引导模块;
根据与所述分布式路由表网格相关联的一个或多个安全机制来选择安全模块;
实例化所述安全模块;以及
实例化节点模块,所述节点模块用于利用所述传输模块、所述引导模块和所述安全模块来参与所述分布式路由表网格。
12.如权利要求11所述的方法,其特征在于,所述节点模块执行包括实例化用于管理与所述节点实例相关联的路由表中的条目的路由表管理模块的步骤。
13.如权利要求12所述的方法,其特征在于,所述路由表管理模块过滤与所述节点实例相关联的路由表中的条目以保留根据网络拓扑结构比不被保留的那些条目更接近所述节点实例的那些条目。
14.如权利要求11所述的方法,其特征在于,与所述分布式路由表网格相关联的一个或多个安全机制包括基于至少一个根证书的基于证书的安全机制。
15.如权利要求14所述的方法,其特征在于,所述安全模块执行包括通过参考与所述分布式路由表网格中的另一节点实例相关联的证书以确保该证书链接到所述至少一个根证书来验证从该另一节点实例接收到的消息的步骤。
16.如权利要求11所述的方法,其特征在于,所述引导模块使用所述引导模块专用的对等名称解析协议来与其他节点实例进行通信。
17.如权利要求11所述的方法,其特征在于,还包括以下步骤:创建第二节点实例,所述计算机可执行指令执行以下步骤,包括:实例化第二节点模块,所述第二节点模块用于利用第二传输模块、第二引导模块和第二安全模块来参与所述分布式路由表网格。
18.如权利要求11所述的方法,其特征在于,所述节点模块执行以下步骤,包括:请求所述引导模块枚举所述分布式路由表网格中的其他节点,请求所述安全模块验证由所述引导模块提供的所枚举的其他节点,以及请求路由表管理模块将得到验证的、所枚举的其他节点添加到与所述节点实例相关联的路由表。
19.如权利要求11所述的方法,其特征在于,所述节点模块执行以下步骤,包括:向所述安全模块请求与所述节点实例相关联的键,标识与另一键相关联的另一节点,所述另一键在数值上最接近所述键,以及向该另一节点发送包括所述键的洪泛消息。
CN2008800116706A 2007-04-13 2008-03-18 分布式路由表体系结构和设计 Active CN101657980B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/786,820 US7895345B2 (en) 2007-04-13 2007-04-13 Distributed routing table architecture and design
US11/786,820 2007-04-13
PCT/US2008/057370 WO2008127832A1 (en) 2007-04-13 2008-03-18 Distributed routing table architecture and design

Publications (2)

Publication Number Publication Date
CN101657980A true CN101657980A (zh) 2010-02-24
CN101657980B CN101657980B (zh) 2013-01-02

Family

ID=39853619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800116706A Active CN101657980B (zh) 2007-04-13 2008-03-18 分布式路由表体系结构和设计

Country Status (4)

Country Link
US (2) US7895345B2 (zh)
EP (1) EP2137844B1 (zh)
CN (1) CN101657980B (zh)
WO (1) WO2008127832A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104170333A (zh) * 2012-03-15 2014-11-26 阿尔卡特朗讯公司 用于快速且大规模的最长前缀匹配的方法和系统
CN111684770A (zh) * 2017-12-21 2020-09-18 超威半导体公司 自识别互连拓扑
US11289131B2 (en) 2017-10-05 2022-03-29 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091806A1 (en) * 2006-10-11 2008-04-17 Jinmei Shen Dynamic On-Demand Clustering
US8352634B2 (en) * 2007-04-06 2013-01-08 International Business Machines Corporation On-demand propagation of routing information in distributed computing system
US7895345B2 (en) * 2007-04-13 2011-02-22 Microsoft Corporation Distributed routing table architecture and design
US8782178B2 (en) 2007-06-14 2014-07-15 Cisco Technology, Inc. Distributed bootstrapping mechanism for peer-to-peer networks
US8219706B2 (en) * 2008-11-14 2012-07-10 At&T Intellectual Property I, Lp Interdomain network aware peer-to-peer protocol
US8958339B2 (en) * 2009-05-22 2015-02-17 Nec Europe Ltd. Method for supporting routing decisions in a wireless mesh network and wireless mesh network
US8274910B2 (en) * 2009-12-04 2012-09-25 Telcordia Technologies, Inc. Adaptation protocols for local peer group (LPG) networks in dynamic roadway environments
US8099479B2 (en) * 2009-12-15 2012-01-17 Intel Corporation Distributed mesh network
US11030598B2 (en) 2010-03-02 2021-06-08 Lightspeed Commerce Usa Inc. System and method for remote management of sale transaction data
US10699261B2 (en) 2010-03-02 2020-06-30 Shopkeep Inc. System and method for remote management of sale transaction data
US9317844B2 (en) 2010-03-02 2016-04-19 Shopkeep.Com, Inc. System and method for remote management of sale transaction data
US10735304B2 (en) * 2011-02-28 2020-08-04 Shopkeep Inc. System and method for remote management of sale transaction data
US9268828B2 (en) * 2011-06-15 2016-02-23 Sas Institute Inc. Computer-implemented systems and methods for extract, transform, and load user interface processing
US10484355B1 (en) 2017-03-08 2019-11-19 Amazon Technologies, Inc. Detecting digital certificate expiration through request processing
US9137154B2 (en) 2012-11-29 2015-09-15 Lenovo Enterprise Solutions (Singapore Pte. LTD Management of routing tables shared by logical switch partitions in a distributed network switch
US10127292B2 (en) * 2012-12-03 2018-11-13 Ut-Battelle, Llc Knowledge catalysts
TWI502897B (zh) * 2012-12-28 2015-10-01 Himax Tech Inc 壓控振盪器及鎖相迴路
WO2015013685A1 (en) 2013-07-25 2015-01-29 Convida Wireless, Llc End-to-end m2m service layer sessions
US9892178B2 (en) 2013-09-19 2018-02-13 Workday, Inc. Systems and methods for interest-driven business intelligence systems including event-oriented data
US9118607B2 (en) * 2013-11-14 2015-08-25 Arista Networks, Inc. Method and system for routing packets
EP3031194B1 (en) * 2014-10-30 2019-03-13 Telefonaktiebolaget LM Ericsson (publ) Integrated cellular system with wi-fi-fallback
US9674747B2 (en) 2015-01-16 2017-06-06 Telefonaktiebolaget Lm Ericsson (Publ) Attachment, handover, and traffic offloading between 3GPP RANS and wi-fi RANS
US9807086B2 (en) 2015-04-15 2017-10-31 Citrix Systems, Inc. Authentication of a client device based on entropy from a server or other device
US10122709B2 (en) 2015-05-12 2018-11-06 Citrix Systems, Inc. Multifactor contextual authentication and entropy from device or device input or gesture authentication
US9794163B2 (en) 2015-06-24 2017-10-17 Terranet Ab Enhanced peer discovery in a mesh network
US10171612B2 (en) * 2015-12-28 2019-01-01 Microsoft Technology Licensing, Llc Caching service with client-enabled routing
USD888731S1 (en) 2016-05-10 2020-06-30 Citrix Systems, Inc. Display screen or portion thereof with transitional graphical user interface
US10615987B2 (en) 2017-03-08 2020-04-07 Amazon Technologies, Inc. Digital certificate usage monitoring systems
US10516542B2 (en) * 2017-03-08 2019-12-24 Amazon Technologies, Inc. Digital certificate issuance and monitoring
US10218523B2 (en) 2017-07-17 2019-02-26 Nicira, Inc. Using a central controller cluster to configure a distributed multicast logical router
US10523455B2 (en) 2017-07-17 2019-12-31 Nicira, Inc. Distributed multicast logical router
US10873473B2 (en) * 2017-07-17 2020-12-22 Nicira, Inc. Distributed multicast logical router
US11012418B2 (en) * 2018-02-15 2021-05-18 Forcepoint Llc Multi-access interface for internet protocol security
US10673749B1 (en) * 2018-12-28 2020-06-02 Paypal, Inc. Peer-to-peer application layer distributed mesh routing
US10951518B2 (en) 2018-12-31 2021-03-16 Schweitzer Engineering Laboratories, Inc. Packet routing architecture using a registry
US11811951B2 (en) * 2020-06-30 2023-11-07 Juniper Networks, Inc. Facilitating authentication of routing modules associated with one or more network devices to allow zero touch provisioning
US11595296B2 (en) 2021-06-29 2023-02-28 Vmware, Inc. Active-active support of multicast streams in virtualized environment
US11895010B2 (en) 2021-06-29 2024-02-06 VMware LLC Active-active support of multicast streams in virtualized environment
US11784926B2 (en) 2021-11-22 2023-10-10 Vmware, Inc. Optimized processing of multicast data messages in a host
US20230283484A1 (en) * 2022-03-01 2023-09-07 International Business Machines Corporation Privacy-preserving user certificates
US11803545B1 (en) * 2022-06-24 2023-10-31 Sap Se Runtime statistics feedback for query plan cost estimation

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041049A (en) * 1997-05-06 2000-03-21 International Business Machines Corporation Method and apparatus for determining a routing table for each node in a distributed nodal system
JP2002534842A (ja) * 1998-12-23 2002-10-15 ノキア・ワイヤレス・ルーターズ・インコーポレーテッド アドホック・インターネットワーキングのための統一されたルーティング方式
US6990103B1 (en) 1999-07-13 2006-01-24 Alcatel Canada Inc. Method and apparatus for providing distributed communication routing
US6744775B1 (en) * 1999-09-27 2004-06-01 Nortel Networks Limited State information and routing table updates in large scale data networks
US8510468B2 (en) * 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US8675493B2 (en) * 2002-07-02 2014-03-18 Alcatel Lucent Routing bandwidth guaranteed paths with local restoration in label switched networks
US8438302B2 (en) * 2002-08-22 2013-05-07 International Business Machines Corporation Splitting and sharing routing information among several routers acting as a single border router
US7613796B2 (en) 2002-09-11 2009-11-03 Microsoft Corporation System and method for creating improved overlay network with an efficient distributed data structure
US6850492B2 (en) 2002-11-22 2005-02-01 Nokia Corporation Method and system for enabling a route and flow table update in a distributed routing platform
CN1762123A (zh) * 2003-01-24 2006-04-19 科科通信公司 使未采用集中管理的匿名非信任方之间的通信和资源共享安全的方法与装置
US8532087B2 (en) * 2003-02-03 2013-09-10 Nippon Telegraph And Telephone Corporation Optical network, optical edge router, program thereof, cut through method, and edge router
US7461166B2 (en) * 2003-02-21 2008-12-02 International Business Machines Corporation Autonomic service routing using observed resource requirement for self-optimization
US20040190447A1 (en) * 2003-03-26 2004-09-30 Dacosta Behram M. Dynamic routing for data transmissions
US7269174B2 (en) 2003-03-28 2007-09-11 Modular Mining Systems, Inc. Dynamic wireless network
US7304994B2 (en) 2003-04-09 2007-12-04 Nec Laboratories America, Inc. Peer-to-peer system and method with prefix-based distributed hash table
US8018852B2 (en) * 2003-08-22 2011-09-13 Alcatel Lucent Equal-cost source-resolved routing system and method
US8009556B2 (en) * 2003-10-17 2011-08-30 Ip Infusion, Inc. System and method for providing redundant routing capabilities for a network node
US7620732B2 (en) 2003-11-18 2009-11-17 Kabushiki Kaisha Toshiba Apparatus for and method of setting communication path
ES2409334T3 (es) * 2003-12-23 2013-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Ad hoc predictivo
US7925778B1 (en) * 2004-02-13 2011-04-12 Cisco Technology, Inc. Method and apparatus for providing multicast messages across a data communication network
US7239277B2 (en) * 2004-04-12 2007-07-03 Time Domain Corporation Method and system for extensible position location
US8953432B2 (en) * 2004-11-01 2015-02-10 Alcatel Lucent Softrouter dynamic binding protocol
US8549176B2 (en) * 2004-12-01 2013-10-01 Cisco Technology, Inc. Propagation of routing information in RSVP-TE for inter-domain TE-LSPs
GB0428553D0 (en) * 2004-12-31 2005-02-09 British Telecomm Method PF operating a network
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
US20060193265A1 (en) 2005-02-25 2006-08-31 Microsoft Corporation Peer-to-peer name resolution protocol with lightweight traffic
US20060230446A1 (en) 2005-04-06 2006-10-12 Vu Lan N Hybrid SSL/IPSec network management system
US8072901B1 (en) * 2005-05-09 2011-12-06 Cisco Technology, Inc. Technique for efficient probing to verify policy conformance
US7808971B2 (en) 2005-07-01 2010-10-05 Miller John L Routing cache for distributed hash tables
JP4735157B2 (ja) * 2005-09-22 2011-07-27 ソニー株式会社 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
US8085654B2 (en) * 2005-12-23 2011-12-27 Telecom Italia S.P.A. Method for reducing fault detection time in a telecommunication network
EP1816801A1 (en) * 2006-02-03 2007-08-08 BRITISH TELECOMMUNICATIONS public limited company Method of operating a network
ITTO20060149A1 (it) * 2006-03-01 2007-09-02 Cisco Tech Inc Tecnica per l'instradamento ottimizzato di flussi di dati su una dorsale ip in una rete di computer.
US8023478B2 (en) * 2006-03-06 2011-09-20 Cisco Technology, Inc. System and method for securing mesh access points in a wireless mesh network, including rapid roaming
KR101255857B1 (ko) * 2006-03-16 2013-04-17 리서치 파운데이션 오브 더 시티 유니버시티 오브 뉴욕 트리-안내 분산 링크 스테이트 라우팅 방법
US7729289B2 (en) * 2006-05-11 2010-06-01 International Business Machines Corporation Method, system and computer program product for routing information across firewalls
US8824282B2 (en) * 2006-08-15 2014-09-02 Riverbed Technology, Inc. Network simulation and analysis using operational forwarding data
US7684352B2 (en) * 2006-11-02 2010-03-23 Nortel Networks Ltd Distributed storage of routing information in a link state protocol controlled network
US8094555B2 (en) * 2006-11-27 2012-01-10 Cisco Technology, Inc. Dynamic weighted-fair load-balancing
CN101601238A (zh) * 2007-02-08 2009-12-09 艾利森电话股份有限公司 网络路由器及配置网络路由器的方法
US8161095B2 (en) * 2007-03-12 2012-04-17 Microsoft Corporation Distributed routing table interface
US7895345B2 (en) * 2007-04-13 2011-02-22 Microsoft Corporation Distributed routing table architecture and design
EP2003845B1 (en) * 2007-06-15 2015-07-29 Alcatel Lucent Peer chosen as tester for detecting misbehaving peer in structured peer-to-peer networks
US20090016355A1 (en) * 2007-07-13 2009-01-15 Moyes William A Communication network initialization using graph isomorphism
US20090089078A1 (en) * 2007-09-28 2009-04-02 Great-Circle Technologies, Inc. Bundling of automated work flow

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104170333A (zh) * 2012-03-15 2014-11-26 阿尔卡特朗讯公司 用于快速且大规模的最长前缀匹配的方法和系统
CN104170333B (zh) * 2012-03-15 2017-11-10 阿尔卡特朗讯公司 用于快速且大规模的最长前缀匹配的方法和系统
US11289131B2 (en) 2017-10-05 2022-03-29 Advanced Micro Devices, Inc. Dynamic control of multi-region fabric
CN111684770A (zh) * 2017-12-21 2020-09-18 超威半导体公司 自识别互连拓扑

Also Published As

Publication number Publication date
CN101657980B (zh) 2013-01-02
US7895345B2 (en) 2011-02-22
US9270585B2 (en) 2016-02-23
EP2137844A4 (en) 2012-01-04
EP2137844A1 (en) 2009-12-30
EP2137844B1 (en) 2015-08-19
WO2008127832A1 (en) 2008-10-23
US20110119400A1 (en) 2011-05-19
US20080253306A1 (en) 2008-10-16

Similar Documents

Publication Publication Date Title
CN101657980B (zh) 分布式路由表体系结构和设计
JP6269250B2 (ja) データ転送制御装置、データ転送制御方法、及び、プログラム
CN110601906B (zh) 一种基于区块链的数据传输方法及装置
EP3202107B1 (en) Virtualized on-demand service delivery between data networks via secure exchange network
CN104980427A (zh) 用于内容中心网络中的简单的服务发现的系统和方法
JP2021504783A (ja) ブロックチェーンネットワークなどのネットワーク内でのデータの伝搬及び通信のための、コンピュータにより実施されるシステム及び方法
CN115913790B (zh) 基于隐私计算网络的数据传输方法、电子设备和存储介质
CN109921910A (zh) 证书状态的验证方法及装置、存储介质、电子装置
CN110597917A (zh) 一种旅游数据管理方法、装置、终端及介质
JP2016134861A (ja) ノード装置、ネットワークシステム及びノード装置の接続方法
CN112910663B (zh) 消息广播和终端注册的方法、装置、设备和存储介质
US9936011B2 (en) Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database
CN113056759A (zh) 供网络设备用来获得分布式账本技术网络的状态的可信状态表示的方法和系统
JP2007306331A (ja) ネットワークシステム
CN109039687A (zh) 请求的负载均衡方法、装置、系统、设备以及存储介质
CN109587134A (zh) 接口总线的安全认证的方法、装置、设备和介质
CN105556926B (zh) 匹配第一和第二网络间的数据交换访问规则的方法和系统
CN116112506A (zh) 基于联盟链系统的交易信息处理方法、装置、介质及设备
CN107925603A (zh) 用于运行数据处理设备的方法、装置和计算机程序
JP2013207541A (ja) 通信装置
Lescisin et al. Ad-hoc messaging infrastructure for P2P communication in disaster management
JP6813030B2 (ja) 通信システム
CN106506495A (zh) 一种终端上线控制方法及装置
CN112631623A (zh) 链码部署方法、系统、装置、设备和存储介质
CN117579285A (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: 20150511

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

Effective date of registration: 20150511

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.