用于在对等覆盖网络中事件分发和路由的方法和装置的制作方法

文档序号:7734826阅读:184来源:国知局
专利名称:用于在对等覆盖网络中事件分发和路由的方法和装置的制作方法
技术领域
本申请总体上涉及覆盖网络(overlay network)的操作,更具体地,涉及用于在对 等覆盖网络中的事件分发(distribution)和路由的方法和装置。
背景技术
本文将在没有基于服务器的架构的情况下成员节点在其中获得服务的网络称为 “对等(peer-to-peer)”覆盖网络。在对等覆盖网络中,对等节点彼此协同操作以提供服务 并维持网络。对等覆盖网络可以构造在诸如利用网际协议(IP)网络之类的底层网络的顶 部上。通常,在对等覆盖网络上的事件的路由呈现出与路由等待时间、带宽利用率和路 由表大小有关的折衷。例如,在对事件进行路由时希望等待时间较短。然而,为了实现较短 的等待时间,就会导致产生较大的路由表,这就与参与到覆盖网络中的节点的可用资源不 匹配。而且,较大的路由表会导致较差的带宽利用率,因为需要相当大的带宽来通过覆盖网 络传输路由表及随时间出现的任何变化。传统系统利用了试图管理上述折衷的多种技术。例如,一些系统利用了非常 大的路由表,如上所述,其会减小等待时间,但也会使在参与节点处的资源变得紧张或 者超出该资源。其它系统利用了覆盖网络中的特定节点,这些特定节点对于事件传播 (dissemination)具有更大的响应度。然而,在这些特定节点上的带宽需求是相当大的,以 致于需要合理地提供它们。不幸的是,传统系统所使用的技术会导致在不同节点上的路由表并不一致,这就 引起了传播延迟。此外,不同路由表会具有不同的长度和条目,这会导致以不同的传播树来 从同一事件发信方传播事件。而且,不同路由表会导致“空洞”,以致于一些节点可能不会接 收到所传播的事件。因此,希望具有一种用于在对等覆盖网络中的事件分发和路由的有效机制,其克 服了与传统系统有关的问题。

发明内容
在一个或多个方案中,为在对等覆盖网络中的事件分发和路由提供了包括方法和装置的事件分发系统。在一个方案中,提供了一种用于在包括多个节点的对等覆盖网络中的事件分发和 路由的方法。该方法包括确定该对等覆盖网络上的多个区段(bucket),其中,每一个区 段都分别包括一个或多个节点;确定区段组,其中,每一个区段组都分别包括选定数量的区 段;基于区段组来分发事件;并且基于事件来更新路由表。在一个方案中,提供了一种用于在包括多个节点的对等覆盖网络中的事件分发和 路由的装置。该装置包括用于确定该对等覆盖网络上的多个区段的模块,其中,每一个区 段都分别包括一个或多个节点;用于确定区段组的模块,其中,每一个区段组都分别包括选 定数量的区段;用于基于区段组来分发事件的模块;以及用于基于事件来更新路由表的模 块。在一个方案中,提供了一种节点,其被配置用于在包括多个节点的对等覆盖网络 中的事件分发和路由。该节点包括收发机和耦合到收发机的处理器。该节点被配置为确 定该对等覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节点;确定区段 组,其中,每一个区段组都分别包括选定数量的区段;基于区段组来分发事件;并且基于事 件来更新路由表。在一个方案中,提供了一种计算机程序产品,用于在包括多个节点的对等覆盖网 络中的事件分发和路由。该计算机程序产品包括计算机可读介质,该计算机可读介质包含 可执行来进行以下操作的代码确定该对等覆盖网络上的多个区段,其中,每一个区段都分 别包括一个或多个节点;确定区段组,其中,每一个区段组都分别包括选定数量的区段;基 于区段组来分发事件;并且基于事件来更新路由表。在阅读了以下提出的附图的简要说明、说明和权利要求后,其它方面会变得明显。


通过结合附图参考以下的说明,本文所述的前述方案会变得显而易见图1显示了示出事件分发系统的各个方案的网络;图2显示了根据事件分发系统而产生的传播树;图3显示了根据事件分发系统的方案,被配置为进行两跳(two-hop)路由的对等 覆盖网络;图4显示了对等覆盖网络,其示出了根据事件分发系统的方案的两跳路由的过 程;图5显示了表格,其示出了根据事件分发系统的各种路由实施方式的比较;图6显示了在事件分发系统的方案中,在节点处使用的示例性分发处理器;图7显示了根据事件分发系统,用于根据事件分发系统在对等覆盖网络中提供事 件路由的示例性方法;图8显示了在事件分发系统的方案中,在节点处使用的示例性分发处理器。
具体实施例方式以下描述说明了用于在对等覆盖网络中的事件分发和路由的事件分发系统的多 个方案。在一个方案中,确定固定数量的“区段(bucket)”,其用于构成施加在一个节点的路由表上的“视图(view)”。例如,将参与覆盖网络的节点分配给特定的区段。作为结果, 由所确定的区段构成传播树,且传播树的阵列表示具有固定的长度。系统通过提供能够有 效地管理与等待时间、带宽利用率和路由表大小有关的折衷的一跳、二跳和三跳路由,来管 理这些折衷。这个系统尤其适合于使用IP网络环境的对等覆盖网络,但也可以用于任何类型 的网络环境中,包括但不限于通信网络、公用网络、诸如虚拟专用网络(VPN)之类的专用 网络、局域网、广域网、长程网(long haul network),和/或任何其它类型的网络环境。通过参考以下解释,本文描述的前述方案会变得更显而易见。覆盖网络覆盖网络是这样的网络,即在该网络中对等节点彼此协同操作以提供服务并维持 网络。覆盖网络可以虚拟地包括任何数量的节点。区段是多个临近节点的分组。覆盖网络可以包括多达该覆盖网络中节点数量的总 共“N”个区段,在此情况下,每一个区段都会包括一个节点。例如,覆盖网络可以包括1000 个节点,将它们分组为总共N= 100个区段,其中,每一个区段都包括10个节点。然而,应 注意在每一个区段中的节点数量可以不同。兄弟节点(sibling node)一个区段中的节点被称为兄弟“S”。区段鉬.(bucket Rroup)区段组是多个区段的分组,用以实现预期的覆盖网络组织和路由。“η”表示区段组 的总数。每一个区段组包括“III”个区段,从而使得区段的总数为(n*m) =N0为了易于呈 现,如相关附图所示,每一个区段组都由具有相同阴影的区段来表示。伙伴区段(buddy bucket)指的是在同一区段组中的区段。邻域(neiRhborhood)邻域是多个区段的一个集合,该集合包括来自η个区段组中每一个区段组的至少 一个区段。事件当节点加入或离开覆盖网络时,或者当进行邻域更新时,发生事件。多级分组在多级分组中,将区段组自身再分组到另外的组中。例如,在两级分组中,定义ο 个组,且每一个组由η个区段组组成,以便可以根据N= (o*n*m)来确定区段的总数。还可 以有多于两级的分组;然而,应该针对路由表大小或等待时间的增加而对分组的级进行平图1显示了用于示出事件分发系统的方案的网络100。网络100包括底层网络 (underlying network) 102,其包括诸如网际协议网络之类的任何类型的网络。尽管将底层 网络102显示为单个实体,但底层网络可以包括诸如WAN、LAN、无线网络或者其他任何类型 的网络之类的任何数量或类型的网络。对等覆盖网络104包括底层网络102的节点的子集,并利用底层网络102的服务来进行操作,以允许这些节点进行通信。例如,在106处一般性地显示的多个节点由通信链 路连接,以构成围绕对等覆盖网络104的环形路由通路。通信链路可以是由底层网络102 提供的安全隧道。应注意,对等覆盖网络104可以具有用以实现任何路由模式的任意拓扑 布局或架构,它不限于图1所示的路由。例如,覆盖网络104的节点106可以具有更多的互 连,以提供除了所示的环形通路之外的其他路由通路。在该事件分发系统的操作期间,将对等覆盖网络拓扑布局分为在108处一般性地 显示的N个区段。覆盖中的每个节点都基于其在覆盖网络拓扑布局中的位置而被分配给一 个区段,以使得每一个区段都包括s个兄弟节点。应注意,在每一个区段中的兄弟节点的数 量可以不同。随后,以一种或多种方式将这些区段进行分组。例如,产生η个区段组,以使 得每一组都包括选定数量m个区段。为了易于呈现,每一个区段组都通过具有相同阴影的 区段来图形化地进行表示。产生邻域,其包括来自每一个区段组的至少一个区段。为了有 利于多跳路由,构成多个组,其中所述组包括区段组的分组。再次参考图1,根据事件分发系统来组织对等覆盖网络104,以便包括区段 (0-14)。将每一个节点106都分配给一个区段。在一个实施方式中,将在两个区段之间的 所有节点都分配给前一个区段。例如,节点标识符的高位比特用于确定区段标识符。然而, 应注意,任何算法或分配技术都可以用于将节点分配给每一个区段。在同一个区段中的节 点彼此是兄弟。由于区段的数量是固定的,因此用区段构成的传播树意味着所有节点构成 传播树的同一视图。例如,所有节点都知道将消息路由经过覆盖网络104时所通过的区段 的准确顺序。在一个实施方式中,一个特定节点充当事件分发服务器,并操作以确定区段及相 应的区段组。例如,在覆盖网络104中,节点110充当事件分发服务器。节点110包括分发 处理器(DP) 112,其操作以确定区段(0-14),并从而将节点分配给这些区段。DP 112还根据 本文所述的事件分发系统操作以确定区段组。在本文的另一节中更详细描述了分发处理器 (DP)112的操作。还应注意,可以以其他方式执行对区段和区段组的确定。例如,可以使用 一种分发过程以使得多个节点操作以确定区段和区段组。在另一个实施方式中,在网络配 置、初始化或注册期间,为每一个节点提供区段信息。图2显示了根据事件分发系统而产生的传播树200。例如,该传播树200由图1所 示的区段(0-14)构成,并且表示固定长度的阵列。对于事件传播,在一个特定区段中的节 点通知其自己的区段中的兄弟和在其两个孩子区段(child bucket)中的一个或多个节点。 例如,区段5中的节点通知在区段5中的其兄弟节点和在其两个子区段4和6中的节点。因此,在该事件分发系统的一个实施方式中,确定固定数量的区段,并且这些区段 操作以提供在覆盖网络104中所有节点处的传播树的相同视图,从而减轻了传统系统中会 出现的路由表差异所造成的影响。一跳路由和分析(无兄弟)以下是对于与图2所示的传播树200有关的一跳路由的分析。例如,以下传输是 响应于要通过对等覆盖网络104传播的事件而相对于节点进行的。1. 一个节点从其父区段中的一个节点接收与该事件有关的一条消息。2.该节点向其父区段的所述节点发送一个确认。3.该节点将该消息转发到每一个子区段中的一个或多个节点。
4.该节点从每一个子区段中的所述一个或多个节点接收一个确认。5.该节点将该消息转发到其自己区段中的所有兄弟。6.该节点从其自己区段中的所有兄弟接收确认。此外,假定了 二叉传播树,其中应用以下条件。1. 一半的节点是叶子。2. 一个节点是用于一半事件的叶子。3. 一个节点必须仅转发一半事件。在一个示例中,为了分析与传播树200相关的一跳路由,将假定以下信息。1.消息大小=X字节。2.报头大小=确认大小=y字节。3.事件率=r个事件/秒。4.在每一个区段内不存在兄弟。对于下游分析,以下传输发生。1.来自父亲的、对于每一个事件的一条消息产生每秒r*(x+y)字节的传输速率。2.来自每一个孩子的、对于一半事件的确认产生每秒2*(r/2)*y字节的传输速率。3.对于一跳的总下游带宽是D1 = r*(x+2y)。对于上游分析,以下传输发生。1.发送到孩子的、对于一半事件的两条消息产生2*(r/2)*(x+y)。2.发送到父亲的、对于每一个事件的一个确认产生每秒r*y字节。3.对于一跳路由的总上游带宽是每秒U1 = r*(x+2y)字节。因此,在覆盖网络包括一百万个节点,并确定了一百万个区段(即无兄弟)的情况 下,可以使用以下假设来执行带宽和路由表大小的分析。1. r =每秒200个事件。2· χ = 20 字节。3. y = 30 字节。4.路由表条目是40字节。通过将这些假设代入以上等式,获得了以下一跳带宽和路由表大小。1.带宽=128kbpSo2.路由表大小=40兆字节。一跳路由和分析(有兄弟)以下是对于与传播树200相关的一跳路由的分析,其中,假定在每一个区段中存 在s个兄弟节点。结果,每一个节点有(s-1)个兄弟。例如,以下传输响应于要传播的事件 而相对于一个节点发生。对于下游分析,以下传输发生。1.来自父亲的、对于每一个1/s事件的一条消息产生每秒(r/s)*(x+y)字节的传 输速率。2.来自兄弟的、对于(s-l)/s个事件的一条消息产生(s-1)/s*r*(x+y)。3.来自孩子的、对于一半事件的两个确认产生每秒2*(r/2)*y字节的传输速率。
4.来自(s-1)个兄弟的、对于所有接收到的事件的一个确认产生(s_l)*r/ s*(x+y)ο5.对于一跳的总下游带宽是D1 = r*(x+2y)。对于上游分析,以下传输发生。1.发送到孩子的、对于一半事件的两条消息产生2*r/2* (x+y) = r/s (x+y)。2.发送到兄弟的、对于所有接收到的事件的(s-1)条消息产生(s-1)*r/s*(x+y)。3.发送到父亲的、对于每一个事件的一个确认产生每秒r/s*y字节。4.发送到兄弟的、对于(s-1)/s个事件的一个确认产生(s-l)/s*r*y。5.对于一跳路由的总上游带宽是每秒U1 = r*(x+2y)字节。因此,在每一个区段都包括s个节点的情况下,可以发现带宽需求独立于兄弟的 数量。兄弟的数量影响上游业务量的突发性,这可以用于节能目的。一跳路由和K-ary事件传播树以下是对于利用k-ary树来代替二叉树进行事件传播的一跳路由的分析。在完全 k-ary树中,节点的大约(k_l)/k是叶子。一个节点对于所有事件中的(k_l)/k部分是叶 子,并且一个节点仅需转发消息中的Ι/k部分。对于下游分析,以下传输发生。1.来自父亲的一条消息产生每秒r*(x+y)字节的传输速率。2.来自孩子的、对于事件的Ι/k的k个确认产生每秒k*r/k*y字节的传输速率。3.对于一跳的总下游带宽是Dlk = r*(x+2y)。对于上游分析,以下传输发生。1.发送到孩子的、对于事件中的Ι/k部分的k条消息产生k*r/k*(x+y) =r(x+y)。2.发送到父亲的一个确认产生每秒r*y字节。3.对于一跳路由的总上游带宽是每秒Ulk = r*(x+2y)字节。因此,在使用k-ary传播树的情况下,可以发现带宽需求独立于树的级。树的级的 增加影响上游业务量的突发性,这可以用于节能目的。两跳路由图3显示了根据事件分发系统的方案,被配置为进行两跳路由的对等覆盖网络 300。在覆盖网络300中,将N个区段分为η个组,每组m个区段。因此,可以由N = (n*m)来确定区段的总数N。例如,覆盖网络300示出了 N= 16个区段,将其分为η = 4个 区段组,每组包括m = 4个区段。为了简洁,用编号和阴影来标识每一组中的区段。例如, 图3示出了以下区段组。1.组 l_g(l,x)黑色阴影2.组 2_g(2,x)灰色阴影3.组 3_g(3,x)斑纹阴影4.组4_g(4,x)无阴影(空白的)图3中的每一个区段都由组和各自的编号(即g(组#,区段#))来表示。还显示 了邻域(1-4),其中每一个邻域都包括来自每一组的一个区段。网络300还包括位于区段 g(l,l)中一个节点处的DP 302。DP 302操作以根据事件分发系统来确定区段的数量、节点到区段的分配、组的数量以及每一组中区段的数量。应注意,DP 302适于用作图1所示的 DP 112。在第一实施方式中,在同一组中的两个连续区段之间的距离总是每一组的区段数 m。在组中的区段的顺序对于所有组而言都是相同的;类似的,在邻域中的区段的顺序对于 所有邻域而言都是相同的。应注意,图3中所用的分组分配用于随后所有图示。在第二实施方式中,用映射函数来选择在具有相同阴影的两个连续区段之间的距 离。由于随机化的可能性,这个方案具有预期的安全特性。在这些实施方式中,覆盖网络300的节点知道以下信息,1. 一个节点知道在包含其自己的区段的其邻域中m个区段中的所有节点。邻域 由m个区段的圆弧来表示。在第一选项中,在其自己的区段的任一侧都具有其邻域中一半 的区段。因此,这是这样的一个由m个区段构成的邻域,即其自己的区段在中间。在第二选 项中,邻域由包含该节点的、任意m个区段的圆弧来表示。2. 一个节点知道在其组中所有区段中的所有节点。这些区段被称为“伙伴”区段, 并且它们一起构成伙伴网络。两跳路由示例图4显示了对等覆盖网络400,其示出了根据事件分发系统的方案的两跳路由的 过程。在以下描述中,将一跳路由定义为从第一节点到在该第一节点自己的邻域中的m个 区段中所有其他节点的路由。将两跳路由定义为从第一节点到在该第一节点的区段组中、 但在不同的邻域中的第二节点的路由,随后路由到在该第二节点的邻域中的目标节点。例 如,参考图4,当从邻域3中的区段g(l,3)中的节点向邻域1中伙伴区段g(l,l)中的节点 发送消息时,第一跳402发生,其中,邻域1是目标节点的邻域。当从邻域1中的伙伴区段 g(l,l)中的这个节点向邻域1中的区段W4,l)中的目标节点发送消息时,第二跳404发 生。以下说明了根据事件分发系统的方案,用于两跳路由的区段配置,其中假定了以 下fe息。1. 一个一百万个节点的网络,其中,η = m = 1000。2.每一个节点都知道在其邻域中的1000个节点(包括自己)。3.每一个节点都知道在其伙伴网络中的1000个节点(包括自己),并且其伙伴网 络中的1000个节点中的每一个都知道1000个其他的节点(包括自己)。4.与所有伙伴区段相关的邻域圆弧彼此不重叠,从而相互排斥。5.所有伙伴区段的邻域圆弧覆盖了该覆盖网络中的所有区段,以使得它们总体上 是无遗漏的。结果,每一个节点都可以到达1000*1000 = 1,000,000个节点。例如,一个节点可
以在一跳中到达其邻域中的所有1000个节点。此外,一个节点可以使用其伙伴节点在两跳 中到达所有其他的节点(即,第一跳到达目标节点的邻域中的伙伴节点,第二跳从目标节 点的邻域中的该伙伴节点到达该目标节点)。在两跳路由中的事件传播为了支持两跳路由,一个节点知道在其自己的邻域中所有区段中和所有其伙伴区 段中的加入/离开。将两个二叉树用于事件传播。一个树包括在节点自己的邻域中的所有区段,其被称为本地树。另一个树包括所有伙伴区段,其被称为伙伴树。在完美的离开过程 中,节点在离开之前通知所有其他的节点。对于节点失败(即不完美的离开),监视节点检 测到节点失败,并向在该失败节点的伙伴区段中的节点传播事件。应注意,监视节点的伙伴区段可以具有与失败节点的区段不同的阴影(即,失败 节点在与监视节点不同的组中)。在此情况下,监视节点的伙伴区段中的节点通知失败节点 的伙伴区段中的节点,这可以利用一个附加跳来进行。例如,在黑色区段中的节点失败,且 在该区段中没有其他节点存在。会假定在灰色区段中的节点检测到这个失败,并向该组中 的所有灰色区段传播与这个失败事件有关的信息。在灰色区段中的节点随后通知相邻的黑 色区段。两跳路由分析以下是对于根据事件分发系统的方案的两跳路由的分析。假定了以下参数。1.区段的总数=N,定义η个组,每个组有m个区段,以使得n*m = N2.消息大小=χ3.报头大小=y4.系统事件率=r个事件/秒5.每一个邻域中的事件率=r*(m/N) = r/n6.伙伴网络中的事件率=r*(η/Ν) = r/m7.假定区段中没有兄弟,并完美地加入和离开。对于下游分析,以下传输发生。1.来自本地树中父亲的一条消息产生(r/n)*(x+y)。2.来自伙伴树中父亲的一条消息产生(r/m)*(x+y)。3.来自本地树中孩子的、对于一半本地事件的两个确认产生2*(r/2n)*y。4.来自伙伴树中孩子的、对于一半伙伴事件的两个确认产生2*(r/2m)*y。5.对于两跳路由的总下游带宽是 D2 = r* (x+2y) * ((m+n) /mn = D1* (m+n) /mn。对于上游分析,以下传输发生。1.发送到本地树中孩子的、对于一半本地事件的两条消息产生2*(r/2n)*(x+y)。2.发送到伙伴树中孩子的、对于一半本地事件的两条消息产生2* (r/2m) * (x+y)。3.发送到本地树中父亲的一个确认产生(r/n)*y。4.发送到伙伴树中父亲的一个确认产生(r/m)*y。5.对于两跳路由的总上游带宽是 U2 = r*(x+2y)*((m+n)/mn) = UjOn+rO/mn。可由以上等式发现,在两跳路由中,当使(m+n)/mn最小时,带宽最小。然而,m*n是 固定的(S卩,m*n等于区段的总数N)。因此,对于固定的m*n,当m = η = sqrt(m*n)时,量 值(m+n) /mn最小。作为示例,假定以下参数。1.网络包括IO6个节点2. χ = 20 字节3. y = 30 字节4. m = η = sqrt(106) = IO35.路由表条目大小=40字节
将以上参数带入两跳路由的等式,产生以下结果。1.带宽=256bps2.路由表大小=(m+n)*40 = 2000 条目 *40 = 80kB。为具有IO8个节点的网络重复以上操作,且r等于2000个事件/秒,产生以下结^ οLm = η =IO42.带宽=2. 56kbps3.路由表大小=20000 条目 *40 = 800kB。因此,可以发现,与一跳路由相比,两跳路由提供了减小的带宽和较小的路由表。三跳路由在事件分发系统的另一个实施方式中,提供了三跳路由。在三跳路由中,将两级分 组的所有区段N分为ο个组,每个组包含η个区段组,每个区段组包含m个区段。例如,在 IO6个节点网络中,其中ο = η = m = 100,每一个节点都知道以下内容。1.在其邻域中的100个节点(到100个节点的一跳路由)2. 100个其他节点,其每一个在最多一跳中都可以到达100个更多的节点(提供了 到1000个节点的两跳路由)。3. 100个更多的节点,其每一个在最多两跳中都可以到达10000个节点(提供了到 IO6个节点的三跳路由)。三跳路由分析以下是对于根据事件分发系统的方案的三跳路由的分析。假定了以下参数。1.区段的总数=N,其中,m*n*o = N2.对于固定的 m*n*o ,当 m = η = ο = cuberoot (m*n*o)(立方根((m*n*o)))时, 量值(m+n+o) /mno最小3.消息大小=χ给定以上参数,可以使用与以上提供的分析类似的分析来确定以下下游和上游带
觅ο1.下游带宽D3 = r氺(x+2y)氺(m+n+o) /mno = D1* (m+n+o) /mno2.上游带宽U3 = r氺(x+2y)氺(m+n+o) /mno = U1* (m+n+o) /mno为了说明三跳路由,假定以下参数。1.网络包括IO6个节点2. χ = 20 字节3. y = 30 字节4. m = η = ο = 1005.路由表条目大小=40字节将以上参数带入三跳路由的等式中,产生以下结果。1.带宽=38. 4bps2.路由表大小=(m+n+o) *40 = 300 条目 *40 = 12kB
为具有IO9个节点的网络重复以上操作且r等于200,000个事件/秒,产生以下结果。1. m = η = ο = 10002.带宽=384bps3.路由表大小=3000 条目 *40 = 120kB多种路由实施方式的比较图5显示了表500,其示出了根据事件分发系统的各种路由实施方式的比较。通 常,对于η跳路由实施方式,可以由以下来确定带宽和路由表大小。1.带宽 Dn_K*r*(x+2y)其中,K = (m1+m2+m3+. . . +mn) / 0 *! *! *. . . *mn)2.路由表大小是0* (N的η次方根)其中,N是节点/区段的总数量。如图5所示,显示了路由类型502、节点数量504、带宽506和路由表大小508。因 此,表500可以用于管理在等待时间与带宽或路由表大小之间的折衷。例如,在具有IO6个 节点的覆盖网络中,提供三跳路由的分组配置产生了图5所示的最小的路由表大小。图6显示了用于事件分发系统的方案的示例性分发处理器600。例如,DP 600适 于在对等覆盖网络中的节点处使用,例如,如同图3所示的DP 302 —样。DP 600包括处理 器602、区段配置逻辑604、存储器606和收发机608,其全部都耦合到数据总线610。应注 意,DP 600仅仅是一个实施方式,在所述方案的范围内其它实施方式也是可行的。收发机608包括硬件和/或硬件执行的软件,其操作以允许DP 600与对等覆盖网 络上的多个节点进行数据、事件或其它信息的传递。在一个方案中,收发机608用于与对等 覆盖网络的节点建立一条或多条通信链路612。例如,利用底层IP网络的服务来构成通信 链路612。存储器606包括用于存储路由表614的任何适合的存储设备,路由表614描述了 使用所确定的区段在对等覆盖网络上进行的消息路由。例如,路由表614提供路由信息,以 允许根据如本文所述的事件分发系统的一跳、两跳或三跳路由。存储器606还用于存储分 发模块614,其包括一个或多个包含指令或代码的模块,所述指令或代码可由处理器602执 行以提供本文所述的功能。处理器602包括CPU、处理器、门阵列、硬件逻辑电路、存储单元和/或硬件执行的 软件中的至少一个。在一个方案中,处理器模块602执行分发模块616的指令或代码,以控 制DP 600模块来执行本文所述的功能。在一个实施方式中,处理器602接收覆盖网络配置参数,其包括节点标识符、区段 标识符和区段组标识符。在网络配置、初始化或注册过程中,可以从覆盖网络中的一个或多 个节点接收覆盖网络配置参数,或者从中央服务器接收覆盖网络配置参数。还可以从用户 输入接收覆盖网络配置参数。覆盖网络配置参数存储在存储器606中,处理器602使用这 些配置参数来初始地产生路由表,该路由表作为路由表614存储在存储器606中。路由表 614可以被配置为提供一跳、两跳或三跳路由。在另一个实施方式中,区段配置逻辑604操作以产生覆盖网络配置参数。区段配 置逻辑604包括CPU、处理器、门阵列、硬件逻辑电路、存储单元和/或硬件执行软件中的至少一个。区段配置逻辑604操作以确定固定数量的区段以及分配给这些区段的节点。区段 配置逻辑电路604还操作以执行区段分组,以便实现如本文所述的一级或多级分组。由区 段配置逻辑604产生的覆盖网络配置参数随后存储在存储器606中,并使用收发机608分 发到覆盖网络中的其他节点。处理器602随后可以获得这些配置参数,以初始地产生路由 表614。在覆盖网络中的其他节点执行相同的功能以初始地产生其自己的路由表。在操作期间,收发机608操作以接收一个或多个事件,并将这些事件传送到处理 器602。处理器602操作以基于路由表614中的区段组来分发事件。处理器602还操作以 基于接收到的事件来更新路由表614。例如,当节点加入、离开或发生对邻域的更新时,处理 器602接收与这些事件有关的消息。处理器602使用路由表614来将这些事件在覆盖网络 上进行路由。处理器602还操作以更新路由表614,以便反映这些变化。在覆盖网络中的其 他节点处重复这个操作,以使得每一个节点都更新其自己的路由表。因此,系统为在对等覆 盖网络中的事件分发和路由提供了有效的机制。在一个方案中,事件分发系统包括计算机程序产品,其具有由存储或包含在机器 可读介质上的一条或多条程序指令“指令”或“代码”构成的计算机程序。当由至少一个处 理器(例如处理器60 执行所述代码时,所述代码的执行使得DP 600提供本文所述的事 件分发系统的各个功能。例如,机器可读介质包括软盘、CDR0M、光盘、存储卡、闪存设备、 RAM、ROM,或者可以与DP 600交互的任何其他类型的存储设备或机器可读介质。在另一个 方案中,可以从外部设备或通信网络资源将代码下载到DP 600中,并存储在机器可读介质 中,用于稍后执行。代码集当被执行时,操作以提供本文所述的事件分发系统的各个方案。图7显示了根据事件方法系统的示例性方法700,用于在对等覆盖网络中提供事 件路由。例如,可以在一个节点处由图6所示的DP 600来执行方法700。为了清楚起见,以下将方法700描述为由图6所示的DP 600来执行。在一个方案 中,处理器602执行存储在存储器606中的分发模块616的一个或多个代码,以控制DP 600 执行以下所述的功能。在块702,确定包括对等覆盖网络中一个或多个节点的固定数量的区段。例如,处 理器602操作以确定这些区段。在一个方案中,处理器602基于存储在存储器606中的配 置信息来确定这些区段。例如,基于区段在覆盖网络上的位置,将在覆盖网络上的节点分配 给每一个区段。例如,节点标识符的高位比特用于确定区段标识符。在一个实施方式中,将 在两个区段之间的所有节点都分配给与较小标识符相关联的区段。然而,应注意,任何算法 或分配技术都可以用于将节点分配给每一个区段。在块704,确定包括一个或多个区段的固定数量的区段组。例如,处理器602操作 以确定区段组。在一个方案中,处理器602基于存储在存储器606中的配置信息来确定区 段组。在块706,基于区段组来初始地产生路由表,以便提供一跳、两跳或三跳路由。在一 个方案中,处理器602操作以基于区段组操作来产生路由表。在块708,基于路由表的区段组,来分发接收到的事件。在一个实施方式中,这些事 件包括加入、离开或邻域更新。例如,处理器602操作以基于路由表614的区段组来分发事 件。用收发机608在覆盖网络上分发事件。在块710,基于事件来更新路由表。例如,处理器602基于接收到的加入、离开或邻域更新来更新路由表614。因此,可以执行方法700以根据事件分发系统在对等覆盖网络中提供事件分发和 路由表更新。应注意,方法700仅是一个实施方式,在多个方案的范围内可以重新排列或者 修改方法700的各个操作。因此,在本文所述的多个方案的范围内,其他实施方式也是可行 的。图8显示了在事件分发系统的多个方案中,在节点处使用的示例性分发处理器 800。例如,分发处理器800可以实现为图6中所示的分发处理器600。在一个方案中,分发 处理器800由包括一个或多个模块的至少一个集成电路来实现,所述模块被配置为提供本 文所述的事件分发系统的多个方案。例如,在一个方案中,每一个模块都包括硬件和/或硬 件执行软件。分发处理器800包括第一模块,其包括用于确定覆盖网络上的多个区段的模块 (802),其中,每一个区段都分别包括一个或多个节点,在一个方案中,第一模块包括处理器 602。分发处理器800还包括第二模块,其包括用于确定区段组的模块(804),其中,每一个 区段组都分别包括选定数量的区段,在一个方案中,第二模块包括处理器602。分发处理器 800还包括第三模块,其包括用于基于区段组来分发事件的模块(806),在一个方案中,第 三模块包括收发机608。分发处理器800还包括第四模块,其包括用于基于事件来更新路由 表的模块(808),在一个方案中,第四模块包括处理器602。可以采用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程 门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑电路、分立硬件组件,或者被 设计为执行本文所述功能的其任意组合,来实现或执行结合本文所公开的各个方案所述的 各种示例性逻辑、逻辑块、模块和电路。通用处理器可以是微处理器,但可替换地,该处理器 可以是任何常规处理器、控制器、微控制器,或状态机。处理器还可以实现为计算设备的组 合,例如DSP与微处理器的组合、多个微处理器的组合、结合了 DSP内核的一个或多个微处 理器的组合,或者任何其他这种结构。结合本文所公开的各个方案所述的方法或算法的步骤可以直接包含在硬件中、由 处理器执行的软件模块中,或者二者的组合中。软件模块可以位于RAM存储器、闪存存储 器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM,或者本领域 已知的任何其他形式的存储介质中。示例性存储介质耦合到处理器,以使得处理器能够从 存储介质读取信息,并向其写入信息。可替换地,存储介质可以集成到处理器中。处理器和 存储介质可以位于ASIC中。ASIC可以位于无线通信设备中。可替换地,处理器和存储介 质可以作为分立组件位于无线通信设备中。提供了所公开的各个方案的描述以允许本领域普通技术人员能够实现或使用本 发明。在不背离本发明的精神或范围的情况下,对这些方案的各种修改对于本领域技术人 员而言都是显而易见的,并且本文定义的普遍性原理可以适用于其他方案,例如用于即时 消息发送服务或任何常用无线数据通信应用中。因此,本发明不是旨在限于本文所示的这 些方案,而是与符合本文所公开的原理和创新性特点的最广泛的范围相一致。本文专有地 使用了词语“示例性”,意思是“用作示例、实例或说明”。本文描述为“示例性”的任何方案 都不必解释为优选的,或者比其他方案更有优势。因此,尽管本文示出并描述了事件分发系统的多个方案,但会意识到,在不背离其精神或基本特性的情况下,可以对这些方案做出各种变化。因此,本文的公开文本和描述对 于以下权利要求中阐明的本发明范围旨在是示例性的,而不是限制性的。
权利要求
1.一种用于在包括多个节点的对等覆盖网络中的事件分发和路由的方法,所述方法包括确定所述对等覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节点。确定区段组,其中,每一个区段组都分别包括选定数量的区段; 基于所述区段组分发事件;并且 基于所述事件更新路由表。
2.如权利要求1所述的方法,其中,所述事件包括加入、离开和邻域更新中的至少一个。
3.如权利要求1所述的方法,其中,所述更新包括更新所述路由表,以便构成具有固 定阵列长度的传播树。
4.如权利要求1所述的方法,其中,所述确定多个区段包括确定所述多个区段,以使 得有总共N个区段。
5.如权利要求4所述的方法,其中,所述确定区段组包括确定所述区段组,以便构成 总共η个区段组,每一个区段组包括m个区段,其中,N = n*m。
6.如权利要求1所述的方法,其中,所述更新路由表包括基于所述事件来更新所述路 由表,以便进行两跳路由。
7.如权利要求4所述的方法,其中,所述确定区段组包括确定所述区段组,以便构成 总共ο个组,每一个组包括η个区段组,每一个区段组包括m个区段,其中,N = n*m*o。
8.如权利要求7所述的方法,其中,所述更新路由表包括基于所述事件来更新所述路 由表,以便进行三跳路由。
9.如权利要求1所述的方法,还包括基于所述区段组来初始地产生所述路由表。
10.一种用于在包括多个节点的对等覆盖网络中的事件分发和路由的装置,所述装置 包括用于确定所述对等覆盖网络上的多个区段的模块,其中,每一个区段都分别包括一个 或多个节点;用于确定区段组的模块,其中,每一个区段组都分别包括选定数量的区段; 用于基于所述区段组来分发事件的模块;以及 用于基于所述事件来更新路由表的模块。
11.如权利要求10所述的装置,其中,所述事件包括加入、离开和邻域更新中的至少一个。
12.如权利要求10所述的装置,其中,所述用于更新的模块包括用于更新所述路由表 以便构成具有固定阵列长度的传播树的模块。
13.如权利要求10所述的装置,其中,所述用于确定多个区段的模块包括用于确定所 述多个区段以使得有总共N个区段的模块。
14.如权利要求13所述的装置,其中,所述用于确定区段组的模块包括用于确定所述 区段组以便构成总共η个区段组且每一个区段组包括m个区段的模块,其中,N = n*m。
15.如权利要求10所述的装置,其中,所述用于更新路由表的模块包括用于基于所述 事件来更新所述路由表以便进行两跳路由的模块。
16.如权利要求13所述的装置,其中,所述用于确定区段组的模块包括用于确定所述 区段组以便构成总共ο个组且每一个组包括η个区段组,每一个区段组包括m个区段的模 双,胃巾,N = rpKm氺ο。
17.如权利要求16所述的装置,其中,所述用于更新路由表的模块包括用于基于所述 事件来更新所述路由表以便进行三跳路由的模块。
18.如权利要求10所述的装置,还包括用于基于所述区段组来初始地产生所述路由 表的模块。
19.一种被配置用于在包括多个节点的对等覆盖网络中的事件分发和路由的节点,所 述节点包括收发机;以及耦合到所述收发机的处理器,所述处理器被配置为确定所述对等覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节占.^ w\ 确定区段组,其中,每一个区段组都分别包括选定数量的区段; 基于所述区段组来分发事件;并且 基于所述事件来更新路由表。
20.如权利要求19所述的装置,其中,所述事件包括加入、离开和邻域更新中的至少一个。
21.如权利要求19所述的装置,其中,所述处理器被配置为更新所述路由表,以便构 成具有固定阵列长度的传播树。
22.如权利要求19所述的装置,其中,所述处理器被配置为确定所述多个区段,以使 得有总共N个区段。
23.如权利要求22所述的装置,其中,所述处理器被配置为确定所述区段组,以便构 成总共η个区段组,每一个区段组包括m个区段,其中,N = n*m。
24.如权利要求19所述的装置,其中,所述处理器被配置为基于所述事件来更新所述 路由表,以便进行两跳路由。
25.如权利要求22所述的装置,其中,所述处理器被配置为确定所述区段组,以便构 成总共ο个组,每一个组包括η个区段组,每一个区段组包括m个区段,其中,N = n*m*o。
26.如权利要求25所述的装置,其中,所述处理器被配置为基于所述事件来更新所述 路由表,以便进行三跳路由。
27.如权利要求19所述的装置,其中,所述处理器被配置为基于所述区段组来初始地 产生所述路由表。
28.一种计算机程序产品,用于在包括多个节点的对等覆盖网络中的事件分发和路由, 所述计算机程序产品包括计算机可读介质,包含可执行来进行以下操作的代码确定所述对等覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节占.^ w\ 确定区段组,其中,每一个区段组都分别包括选定数量的区段; 基于所述区段组来分发事件;并且基于所述事件来更新路由表。
29.如权利要求观所述的计算机可读介质,其中,所述事件包括加入、离开和邻域更新 中的至少一个。
30.如权利要求观所述的计算机可读介质,其中,所述代码被配置为更新所述路由 表,以便构成具有固定阵列长度的传播树。
31.如权利要求观所述的计算机可读介质,其中,所述代码被配置为确定所述多个区 段,以使得有总共N个区段。
32.如权利要求31所述的计算机可读介质,其中,所述代码被配置为确定所述区段 组,以便构成总共η个区段组,每一个组包括m个区段,其中,N = n*m。
33.如权利要求观所述的计算机可读介质,其中,所述代码被配置为基于所述事件来 更新所述路由表,以便进行两跳路由。
34.如权利要求33所述的计算机可读介质,其中,所述代码被配置为确定所述区段 组,以便构成总共ο个组,每一个组包括η个区段组,每一个区段组包括m个区段,其中,N =η氺m氺ο。
35.如权利要求34所述的计算机可读介质,其中,所述代码被配置为基于所述事件来 更新所述路由表,以便进行三跳路由。
36.如权利要求33所述的计算机可读介质,其中,所述代码被配置为基于所述区段组 来初始地产生所述路由表。
全文摘要
用于在对等覆盖网络中的事件分发和路由的方法和装置。提供了一种用于在包括多个节点的对等覆盖网络中的事件分发和路由的方法。该方法包括确定所述对等覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节点;确定区段组,其中,每一个区段组都分别包括选定数量的区段;基于所述区段组来分发事件;并且基于所述事件来更新路由表。节点包括收发机和耦合到收发机的处理器,所述处理器被配置为确定所述覆盖网络上的多个区段,其中,每一个区段都分别包括一个或多个节点;确定区段组,其中,每一个区段组都分别包括选定数量的区段;基于所述区段组来分发事件;并且基于所述事件来更新路由表。
文档编号H04L29/08GK102067564SQ200980122817
公开日2011年5月18日 申请日期2009年6月19日 优先权日2008年6月19日
发明者E·T·L·哈迪, L·R·东代蒂, R·S·贾亚拉姆, V·纳拉亚南 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1