一种在分布式散列表中提供和保持实时最新数据的节点和方法

文档序号:7938012阅读:212来源:国知局
专利名称:一种在分布式散列表中提供和保持实时最新数据的节点和方法
技术领域
本发明涉及一种在分布式散列表网络架构中提供和维护实时最新数据 的节点和方法,特别地,本发明提供一种用于在分布式散列表网络架构的 对等节点中配置、提供和维护实时最新对等体标识和互联网协议地址映射 信息的节点和方法。
背景技术
一种对等(peer-to-peer)覆盖协议族被称为分布式散列表(DHT, Distributed Hash Tables),其为对等应用提供选路和目标位置功能。DHT 是结构化覆盖网络架构,其提供用于连接通信网络中的多个节点的灵活方 法。DHT协议提供了被称为结构化覆盖的有效和容易实现的基础,用于建 立可扩展和自组织的分布式应用。结构化覆盖将标识应用数据的键映射到 负责管理该数据的覆盖节点。在最基础层,DHT允许一组分布式主机在没 有任何固定层级并具有很少人工辅助的情况下集体管理从键到数据值的映 射。该建立功能块然后可用于简化各种不同的对等应用的实现,例如文件 共享服务、DNS替代、web緩存等。
DHT允许使用典型为log(N)个消息的有限数量的消息来定位存储在 覆盖网络中的任意一块数据。构成覆盖网络的节点被称为对等体(peers )。 每个对等体在加入DHT时获得有时也称为节点ID的唯一对等体标识 (ID) 。 DHT通常被组织成环形拓朴。散列表的键空间可以是环形的, 并且对等体ID可以是代表环形键空间中的位置的128位无符号整数。通 常,通过对对等体IP地址进行散列来创建对等体ID。因此,如果对等体 的IP地址改变,则对等体ID也改变。在本文档的上下文中,除IP地址
8之外或作为IP地址的替代,"IP地址"还可包括传输控制协议(TCP ) 和/或用户数据报协议(UDP)端口号。

发明内容
根据本发明的一个实施例,提供了一种节点,所述节点包括具有一列 邻近节点的节点标识符和对应的地址的表,其中,节点标识符列和所述地 址4皮彼此独立地配置为,更新与所述邻近节点中的至少一个相关联的所述 地址中的至少一个的改变。
根据本发明的一个实施例,提供了一种节点,所述节点被配置为创建 指针表,被配置为订阅包括在所述指针表中的至少一个其它节点的网络地 址的改变,以及被配置为接收至少一个通知,所述通知包括所述至少一个 其它节点的标识符和网络地址。所述节点还被配置为,以在所述至少一个 通知中接收的所述至少 一个其它节点的新网络地址更新所述指针表。
根据本发明的一个实施例,提供了一种节点,所述节点被配置为创建
逆指针表,;故配置为接收来自至少一个其它节点的对所述节点的网络地址 的改变的订阅,以及被配置为在所述逆指针表中存储所述至少一个其它节 点的网络地址。所述节点还被配置为,在所述节点的网络地址改变时,从 所述节点向所述逆指针表中的所述至少 一个其它节点发送新网络地址的通 知。
根据本发明的一个实施例,提供了一种节点,所述节点被配置为创建
邻居表,;故配置为获知邻居节点的网络标识符和/或网络地址,以及被配置 为在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址。所述节 点还#>配置为,在所述节点的网络地址改变时,向所述邻居表中的至少一 个其它邻居节点发送新网络地址的通知。
根据本发明的一个实施例,提供了一种节点,所述节点被配置为创建 邻居表,净皮配置为获知邻居节点的网络标识符和/或网络地址,以及4皮配置 为在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址。所述节 点还被配置为,在存储于所述邻居表中的至少一个其它邻居节点处接收来自所述节点的新网络地址的通知,以及被配置为,用来自所述节点的新网 络地址更新所述至少一个其它邻居节点的所述邻居表。
才艮据本发明的一个实施例,提供了一种节点,所述节点包括用于创 建指针表的装置;用于订阅包括在所述指针表中的至少一个其它节点的网 络地址的改变的装置;以及,用于接收至少一个通知的装置,所述通知包 括所述至少一个其它节点的标识符和网络地址。所述节点还包括用于以在 所述至少一个通知中接收的所述至少一个其它节点的新网络地址更新所述 指针表的装置。
根据本发明的一个实施例,提供了一种节点,所述节点包括用于创 建逆指针表的装置;用于接收来自至少 一个其它节点的对所述节点的网络 地址的改变的订阅的装置;以及用于在所述逆指针表中存储所述至少一个 其它节点的网络地址的装置。所述节点还包括用于在所述节点的网络地址 改变时,从所述节点向所述逆指针表中的至少 一个其它节点发送新网络地 址的通知的装置。
根据本发明的一个实施例,提供了一种节点,所述节点包括用于创 建邻居表的装置;用于获知邻居节点的网络标识符和/或网络地址的装置; 以及,用于在所述邻居表中存储邻居节点的网络标识符和/或网络地址的装 置。所述节点还包括用于在所述节点的地址改变时,向所述邻居表中的至 少 一个其它邻居节点发送新网络地址的通知的装置。
根据本发明的一个实施例,提供了一种节点,所述节点包括用于创 建邻居表的装置;用于获知邻居节点的网络标识符和/或网络地址的装置; 用于在所述邻居表中存储邻居节点的网络标识符和/或网络地址的装置;以 及用于在存储于所述逆指针表中的所述至少一个其它邻居节点处接收来自 所述节点的新网络地址的通知的装置。所述节点还包括用于以来自所述节 点的新网络地址更新所述至少一个其它邻居节点的所述邻居表的装置。
根据本发明的一个实施例,提供了一种方法,所述方法包括将表配 置为包括一列邻近节点的节点标识符和对应的地址;将节点标识符列和所 述地址彼此独立地配置为,更新与所述邻近节点中的至少一个相关联的所
10述地址中的至少一个的改变。
根据本发明的一个实施例,提供了一种方法,所述方法包括在节点 处创建指针表;订阅包括在所述指针表中的至少一个其它节点的网络地址 的改变;以及,接收包括所述至少一个其它节点的标识符和网络地址的至 少一个通知。所述方法还包括,用在所述至少一个通知中接收的所述至少 一个其它节点的新网络地址更新所述指针表。
根据本发明的一个实施例,提供了一种方法,所述方法包括在节点 处创建逆指针表;接收来自至少 一个其它节点的对所述节点的网络地址的 改变的订阅;以及在所述逆指针表中存储所述至少 一个其它节点的网络地 址。所述方法还包括,在所述节点的网络地址改变时,从所述节点向所述 逆指针表中的所述至少 一个其它节点发送新网络地址的通知。
根据本发明的一个实施例,提供了一种方法,所述方法包括在节点 处创建邻居表;获知邻居节点的网络标识符和/或网络地址;以及,在所述 邻居表中存储邻居节点的所述网络标识符和/或网络地址。所述方法还包 括,在所述节点的网络地址改变时,从所述节点向所述邻居表中的所述至 少一个其它邻居节点发送新网络地址的通知。
根据本发明的一个实施例,提供了一种方法,所述方法包括在节点 处创建邻居表;获知邻居节点的网络标识符和/或网络地址;在所述邻居表 中存储邻居节点的网络标识符和/或网络地址;以及,在存储于所述邻居表 中的所述至少一个其它邻居节点处接收来自所述节点的新网络地址的通 知。所述方法还包括,以来自所述节点的新网络地址更新所述至少一个其 它邻居节点的所述邻居表。


从以下结合附图对优选实施例的详细描述中,本发明的其他实施例、 细节、优点和修改将变得明显,其中
图1示例性示出了分布式散列表(DHT)环和该DHT环中的节点之 一的邻居表。图2示例性示出了 DHT环和该DHT中的节点中的一个的指针表。 图3示例性示出了才艮据本发明的一个实施例的DHT环中的节点处的 逆指针表。
图4示出了才艮据本发明的一个实施例的配置,其中,多个对等体订阅 了对等体的对等体事件状态包。
图5示例性示出了根据本发明的一个实施例的配置,用以在对等体获 取新IP地址之后通知对等体。
图6示例性示出了根据本发明的一个实施例的用于更新逆指针对等体 的可替换会话发起协议机制。
图7示例性示出了根据本发明的一个实施例的用于在IP地址改变之后
更新邻近对等体的会话发起协议机制。
图8示例性示出了才艮据本发明的一个实施例的方法,其中,节点订阅 了节点的节点事件状态包。
图9示例性示出了根据本发明的一个实施例的用于配置逆指针表的方法。
图10示例性示出了根据本发明的一个实施例的方法,用于在节点获取 新地址之后通知邻近节点。
图11示例性示出了根据本发明的一个实施例的方法,用于接收邻近节 点的新地址并更新邻居表。
具体实施例方式
现在将详细参考本发明的优选实施例,其中,所述优选实施例的示例 在附图中示出。
图1示例性示出了分布式散列表(DHT)环和该DHT环中的节点(节 点15, (N15))的邻居表。使用数据标识符(ID)来索引存储在DHT 中的数据。数据ID分布在DHT节点之间。每个DHT节点存储数据ID 的子集。
取决于对DHT的布置,DHT环中的每个节点可以有两个直接邻居
12前趋对等体和后继对等体。在一些情况下,为提高网络的可靠性,对等体 可以链接到一个、两个、三个或更多前趋和/或一个、两个、三个或更多后
继。可以使用对等体标识(ID)来确定DHT环中的位置或地点。后继对 等体是这样的节点,在顺时针移动时其对等体ID可以被定义为DHT环中 的下一个(N30、 N60、 N65等)。节点的前趋可以被定义为在逆时针移动 时DHT环中的下一个节点(N10和N5)。对等体可以链接到的前趋和后 继的数量可以被保持为低数值。每个对等体可以通过发送某种类型的保持 活动的消息来明了其前趋和后继。为了示例目的,节点的前趋和后继可以 被集体称为邻居。每个对等体存储其邻居的互联网协议(IP)地址(和/ 或其它连通性信息)。这允许节点联系其前趋和后继。
此夕卜,每个对等体还维护路由表,有时被称为指针表,其包括覆盖DHT 网络中的对等体和对应的IP地址(和/或其它连通性信息)的列(列表中 对等体的数量通常远小于覆盖DHT网络中的对等体的数量)。图2示例 性示出了 DHT环和该DHT中的节点之一的指针表。实质上,指针表是一 种类型的用于遍历DHT环的捷径的集合。因此,指针表可用于最小化定 位覆盖DHT网络中的资源所需的跳数。
必须维护DHT环拓朴结构。这包括明了前趋、后继、其活动性,以 及还要保持最新的指针表。为了维护DHT环,邻居可以向彼此发送保持 活动消息,以查看邻居是否仍然在线。如果对等体离开网络,则覆盖网络 不得不适应这样的改变。这样的改变可包括例如对等体的前趋和后继变 成直接邻居;邻居中的一个变成负责离开DHT网络的对等体曾经负责的 数据ID池;如果覆盖网^M吏用复制机制进行数据保护,则接手负责曾经 存储在离开网络的节点中的数据ID池的节点不得不更新其存储数据ID的 数据库以及关联的数据;和/或,在其指针表中具有指向离开网络的对等体
的指针的覆盖中的对等体应该更新其指针表。
这在对等体之间引入了额外的业务开销,并且需要修改关于邻居和指
针表的信息所需的额外的处理能力。在对等体加入覆盖网络(第一次或在
离开网络之后)时,覆盖不得不实施甚至比对等体离开网络的情况更多的
13操作。此外,对DHT的更新不是在节点已离开之后立即进行。到所有数 据再次在适当的位置为止可能要花一些时间,包括指针表的重建。
在一个实例中,对等会话发起协议(P2PSIP)网络可以基于DHT, 并且可存在两种类型的实体。第一种实体将是对等体,其将通过运行DHT 协议来维护P2PSIP覆盖网络,并存储用户数据(例如,联系信息M 发起协议(SIP)到互联网协议(IP)的映射),所述用户数据原则上将 提供PUT方法和GET方法。PUT方法将允许数据在覆盖DHT网络中的 存储。GET方法将允许从覆盖DHT网络的数据取回。第二种实体将是客 户端,其连接到对等体,并且允许用户向/从覆盖网络放置/获得信息。可 将SIP用户代理(UA)与对等体或客户端并置。除此以外,对等体还可以 (充当)与SIP代理、媒体中继和NAT穿越服务器并置。
在一个实例中,存储于覆盖网络中的P2PSIP数据可以代表SIP注册 数据,例如SIP统一资源标识符(URI)到IP地址的绑定。数据ID是经 散列的SIP URI。在P2PSIP中,因为P2PSIP数据必须是始终可用的并且 可实时访问,所以,存储在DHT中的用户的可达性数据远比存储在文件 共享网络的DHT中的内容重要(特别是对定时(timing)变化)。
因此,在其中数据准确性极度重要的网络中,例如P2PSIP网络,要 求实时地向需要该信息的剩余对等体传递数据或DHT环结构的改变(例 如在对等体离幵DHT时)。
例如,移动终端或任意其它类似类型的移动i殳备通过在不同接入网之 间进行切换或从一个WLAN接入点移动到另 一个WLAN接入点来从一个 网络移动到另 一个网络时,可导致网络不稳定并需要额外资源来处理网络 适配。这样的网络适配需求可能还影响移动终端的电池寿命和系统可靠性。 在过渡期内,用户联系信息的搜索延迟可能明显更高,从而延迟了呼叫建 立。
相应地,提供了根据本发明的各实施例的节点和方法,其中,对网络 中的每个对等体或节点(例如分布式散列表(DHT)网络)独立于相关联 的互联网协议(IP)地址来分配对等节点标识符。根据本发明的一个实施例,提供了一种节点和方法,其中,第一对等 体将指针表配置为包括至少一个或更多对等体的标识符和对应的地址。第 一对等体向一个或更多对等体中的每个输出通知。每个通知包括第一对等 体的标识符和对应的地址。关联于所述地址中的一个的第二对等体被配置 为响应于接收到来自第一对等体的通知,将逆指针表定义为包括第一对等 体的标识符和对应的地址。
根据本发明的另一实施例,提供了一种节点和方法,其中,对等体被 配置为将指针表定义为包括至少一个对等体的标识符和对应的地址,并且 被配置为向所述至少 一个对等体输出通知。每个通知包括该对等体的标识 符和对应的地址。关联于所述地址中的一个的对等体被配置为响应于接收 到来自所述对等体的通知,确定所述对等体的地址是否匹配于在所存储的
逆指针表中预定义的并且对应于所述对等体的标识符的地址,并JU皮配置 为在关联于所标识的对等体的地址与在逆表中预定义的地址不匹配时,更 新所述对等体的地址。响应于接收到通知,对等体可进一步^L配置为标识 和i人证所述对等体。
相应地,本发明的一些实施例关于P2PSIP中的移动性方面。例如, 移动终端可以充当P2PSIP对等体,其具有间歇连通性和多接入网能力。
每当对等体改变其接入网(例如从WCDMA到WLAN)时,其IP
地址也改变。因此其对等体ID也改变,引起DHT环中的不稳定。根据本
发明的一方面,对等体ID可以净皮静态地分配,并且其分配不取决于对应
的对等体IP地址。根据本发明的一个实施例,配置了静态分配的唯一(在
DHT环内)对等体ID,而不是通过对对应的IP地址进行散列来创建对等
体ID,其中所述对等体ID在与DHT的连接期间不再是静态的。IP地址
也可以由于除改变接入网之外的原因而改变,所述原因例如是如果节点从
DHCP获得新地址。
当与对等体关联的移动设备在切换之后移动到另一子网或接入网时,
该对等体接收到用于该移动设备的新IP地址。根据本发明的一方面,因为 对等体ID被配置为不改变,所以对等体ID不会引起DHT环的不稳定。然而,对等体将需要把关联于所述其它子网的新IP地址通知给邻近对等
体。对于每个邻居,对等体将发送现有对等体ID、新IP地址以及(如果 被这样配置)认证数据(例如证书)。每个邻居转而认证更新请求,并存 储绑定于该对等体ID的新IP地址。如果对等体在保持活动间隔或预定时 间间隔期满之前通知邻居,则不需要执行DHT网络的重新配置。每个对 等体将把其IP地址的改变通知到每个邻近的对等体。可在初始化期间定义
并且基于特定应用来配置保持活动间隔或预定时间间隔,或者其可适于 DHT的扰动速率(churn rate )(在此情况下,可消除不必要的保持活动 消息)。
根据本发明的另 一方面,对等体可以将该对等体的IP地址的改变通知 到其它对等体,其中,所述其它对等体在其各自的指针表中存储了指向该 对等体的指针。由于存储在指针表中的连通性信息被保持为最新,所以该 操作减小了搜索延迟。
图3示例性示出了根据本发明的一个实施例的位于DHT环中的节点 处的逆指针表。当第一对等体创建其指针表时,该对等体将选择多个对等 体并将其节点ID和IP地址插入第一对等体的指针表中。根据本发明的一 个实施例,该过程可以被扩展,使得第一对等体(N15)可以通知那些所 选节点或对等体(N80、 NllO、 N5和N10)它们已被插入N15指针表中。 这样做时,每个,皮通知的对等体(N80、 NllO、 N5和N10)创建如图3中 所示存储关于所述对等体的信息的节点的逆指针表。如果任何被通知的对 等体(N80、 NllO、 N5和N10)在某一时间点改变了它的IP地址,则所 选对等体将通知第一对等体以及其逆指针表中列出的其它对等体,从而其 可更新其各自的指针表。根据本发明的一个实施例,可以在后台以较低优 先级或者在网络较不拥塞时进行在第一对等体或任何所选对等体处的逆指 针表的创建。
图4示例性示出了才艮据本发明的一个实施例的配置,其中多个对等体 订阅了对等体的对等体事件状态包。若干对等体或节点构建了其对应的指 针表。如步骤100中所示,对等体1配置其自己的指针表。对等体1将对等体A的ID和对应的IP地址插入其指针表中并且向对等体A发送指示, 在一个实施例中,可以通过使用会话发起协议的订阅来实现。
会话发起协议(SIP )的基础设施在互联网工程任务组(IETF )RFC3261 (Rosenberg等人,2002年6月)中定义。 一般而言,SIP是用于创建、 修改和终止与一个或更多参与者的会话的应用层控制(信令)协议。M 可以包括互联网电话呼叫、多媒体分发和多媒体会汉。用于创建会话的SIP 邀请携带允许节点对一组兼容媒体类型达成协定的会话描述。在2002年7 月A. Roach的RFC 3265 "SIP-Specific Event Notification"(此后简称为 "RFC 3265")中,描述了一种用于实现向互联网中的任意对等体或节点 的基于事件的信息提供的SIP事件框架。该类信息的示例是出席、位置信 息、内容/服务可用性或控制接入的SIP事件。
如RFC 3265中所讨论的, 一般概念是,网络中的实体可以对网络中 的各种资源或呼叫订阅资源或呼叫状态,并且那些实体(或代表它们进行 操作的实体)可以在那些状态改变时发送通知。对等体A与对等体l之间
的典型消息流程在图4的步骤1-4中示出。
在步骤l-4中,才艮据RFC 3265,订阅者或对等体1向对等体A发送 SIP SUBSCRIBE (SIP订阅)请求。SUBSCRIBE (订阅)消息净艮头包括 用于发现事件包的合适事件包标识符。基于对订阅消息的接收,对等体A 提取消息体,并解析所包含的发现查询的语义信息。如果该发现查询可以 由对等体A支持(即,语义在本地被支持,或者如果合适的上下文查询服 务器可用于完成该请求),则按照RFC 3265,对等体A用'200 OK,消 息确认该订阅,并发送NOTIFY (通知)消息。按照RFC 3265,对等体1 将通过发回'200 OK,消息来确认其收到了 NOTIFY消息。如图4所示, 在对等体A与对等体2 (步骤5-8)、对等体3 (步骤9-12)和对等体4 (步骤13 - 16 )之间执行与相对于对等体1所描述的类似的步骤。相应地, 对在步骤1 - 4之间所执行的步骤的描述在此被并入步骤5 - 16。在可替换 实现中,可以使用SIP PUBLISH (SIP发布)请求(RFC 3903),其不 需要之前的订阅来更新对等体详细情况,而不是使用SIP事件通知框架
17(SUBSCRIBE/NOTIFY)。
基于在对等体A对指示或订阅的接收,在步骤110,对等体A将通过 包括至少对等体1的ID和对应IP地址来配置逆指针表。本领域技术人员 将理解,其它对等体的ID和IP地址可以被有选择地包括在对等体A的逆 指针表中。意在将有选择地定义为每个对等体能够将其关联的表配置为 包括覆盖中的所有对等体或较少对等体的ID和IP地址。
如步骤120中所示,对等体2配置其自身的指针表。对等体2将对等 体A的ID和对应的IP地址插入其指针表中,并且向对等体A发送指示, 其中,所述指示在一个实施例中可以用关于会话发起协议的订阅来实现。 基于在对等体A对该指示或订阅的接收,在步骤130处,对等体A将通过 包括至少对等体2的ID和对应的IP地址来配置逆指针表。如步骤140中 所示,对等体3配置其自身的指针表。对等体3将对等体A的ID和对应 的IP地址插入到其指针表中,并向对等体A发送指示,其中,所述指示 在一个实施例中可以使用关于M发起协议的订阅来实现。基于在对等体 A对该指示或订阅的接收,在步骤150处,对等体A将通过包括至少对等 体3的ID和对应的IP地址来配置逆指针表。
如步骤160中所示,对等体4配置其自身的指针表。对等体4将对等 体A的ID和对应的IP地址插入到其指针表中,并且向对等体A发送指 示,其中,所述指示在一个实施例中可以使用关于^"发起协议的订阅来 实现。基于在对等体A对该指示或订阅的接收,在步骤170处,对等体A 将通过包括至少对等体4的ID和对应的IP地址来配置逆指针表。
本领域技术人员将理解,其它对等体的ID和IP地址可以被有选择地 包括在对等体1、对等体2、对等体3和/或对等体4中。相应地,如图4 中所示,在第一对等体构建其指针表并将第二对等体的对等体ID插入第 一对等体指针表中的情况下,第一对等体通知第二对等体,从而第二对等
体也可以通过将第一对等体的对等体ID和IP地址插入第二对等体逆指针 表中来构建逆指针表。这可以使用任意类型的协议框架来实现,其中,可 通过合适的事件包(例如对等体事件包)来扩展所述协议框架。除了其他
18内容外,事件包定义了由SIP事件通知使用的数据格式。在这种情况下, 对等体事件包包含对等体ID、 IP地址或URI、和/或认证数据的信息。
图5示例性示出了根据本发明的一个实施例的配置,用于在获取新IP 地址之后通知对等体。根据本发明的一方面,在对等体改变其IP地址时, 其通知每个订阅者。通知可以包括对等体ID、新IP地址(或解析为该IP 地址的URI)和i人证数据(例如证书)。
在步骤200处,对等体A通过进行不同接入网之间的切换或从一个 WLAN接入点移动到另 一个WLAN接入点来从一个网络移动到另 一个网 络,由此改变与其关联的IP地址或URI并获得新IP地址或URI,或者, 其可以由于其他原因而获得新IP地址。在步骤210处,按照任何已建立的 协议来执行通知。在可替换实现中,可以使用SIP PUBLISH (SIP发布) 请求,其不需要之前的订阅来更新对等体详细情况,而不是使用SIP事件 通知框架(SUBSCRIBE/NOTIFY)。对等体A向对等体1发送通知,该 通知(如果被如此配置的话)除了其他内容外,包括对等体A的ID、认 证数据(例如证书)和新IP地址。在步骤220处,对等体1使用对等体A 的ID和认证数据(例如证书)来认证对等体A,由此确认对等体A在对 等体1的表中被注册。对等体1然后以对等体A的新IP地址(或URI) 对其表进行更新。
在步骤230处,类似于步骤210,按照任何已建立的协议来执行通知。 对等体A向对等体2发送通知,该通知(如果被如此配置的话)除了其他 内容外,包括对等体A的ID、认证数据(例如证书)和新IP地址。在步 骤240处,对等体2使用对等体A的ID和认证数据(例如证书)来认证 对等体A,由此确认对等体A在对等体2的表中被注册。对等体2然后以 对等体A的新IP地址(或URI)对其表进行更新。
尽管可以顺序地对每个关联对等体进行对等体A的IP地址改变的通 知,但是本领域技术人员可以理解,对等体A可以被配置为同时通知所有 对等体所述改变,或者可以以随机方式通知所有关联对等体所述改变。
例如,在图5中所描述的实施例中,在更新对等体2中的表之后,对
19等体A通过更新对等体4的表而继续,而不是继续更新对等体3。在步骤 250处,类似于步骤210,按照已建立的协议来执行通知。对等体A向对 等体4发送通知,该通知(如果被如此配置的话)除了其他内容外,包括 对等体A的ID、认证数据(例如证书)和新IP地址。在步骤260处,对 等体4使用对等体A的ID和认证数据(例如证书)来认证对等体A,由 此确认对等体A在对等体4的表中被注册。对等体4然后以对等体A的新 IP地址(或URI)对其表进行更新。
在步骤270处,类似于步骤210,按照已建立的惯例来执行通知。对 等体A向对等体3发送通知,该通知(如果被如此配置的话)除了其他内 容外,包括对等体A的ID、认证数据(例如证书)和新的对等体A的IP 地址。在步骤280处,对等体3使用对等体A的ID和认证数据(例如证 书)来认证对等体A,由此确认对等体A在对等体3的表中被注册。对等 体3然后以对等体A的新IP地址(或URI)对其表进行更新。可以按照 任何已建立的协议来执行步骤290-296,其中,对等体A的逆指针表中的 每个对等体都将向对等体A发送'200 OK,。
图6示例性示出了根据本发明的一个实施例的用于更新对等体的可替 换会话发起协议机制或其方法。所述协议可以邀请参与者到不必包括发起 者的单播或组播会话。由于SIP支持名称映射和重定向服务,所以这使得 用户可以从任何位置发起和接收通信和服务,并使得网络可以识别用户, 无论用户在哪里。SIP是请求-响应协议,处理来自客户端的请求和来自 服务器的响应。参与者通过SIPURL来识别。可以通过任何传输协议来发 送请求,例如用户数据报协议(UDP)、简单控制传输协议(SCTP)或 传输控制协议(TCP) 。 SIP确定将被用于会话的端系统、通信媒体和媒 体参数、以及被叫方加入通信的期望。这些一旦被确定,则SIP在通信的 任一端建立呼叫参数,并且处理呼叫传输和终止。相应地,图6示出了可 替换图5中所描述的机制的实现。取代使用NOTIFY请求(基于订阅而构 建),该可替换实现使用被发送到逆指针表中的节点的PUBLISH (发布) 请求。在步骤310、 330、 350、 370和390-396中交换的信息与图5的步骤210、 230、 250、 270和2卯-296中的那些NOTIFY请求相同,在此处 将其并入。类似地,图5中所描述的步骤200、 220、 240、 260和280与图 6相同,相应地,在此并入其描述。
才艮据本发明的另 一方面,还提供了 一种用于更新对等体的邻居的邻居 表的机制。可以通过SIP PUBLISH请求来实现这样的机制。本领域技术 人员将理解,可以使用例如SIP或HTTP协议的任何其它类型的协议来取 代SIP PUBLISH 。如果实现SIP协议,则SIP请求可以包括对等体ID、 对应的新IP地址(或解析为该IP地址的URI)和认证数据(例如证书)。 图7示例性示出了才艮据本发明的一个实施例的用于在IP地址改变后更新邻 近对等体的^l"发起协议机制或方法。图7示例性示出了根据本发明的一 个实施例的更新过程,其可在不需要任何订阅的情况下使用SIP PUBLISH 请求。 一种可替换方法可使用订阅(SUBSCRIBE/NOTIFY)。
在步骤400处,对等体A通过进行不同接入网络之间的切换或从一个 WLAN接入点移动到另 一个WLAN接入点而从一个网络移动到另 一个网 络,由此改变与其关联的IP地址或URI,由此获得新IP地址或URI。在 步骤410处,SIP PUBLISH请求消息被发送到前趋2,该请求消息不需要 之前的订阅来更新对等体详细情况。在可替换实现中,可以使用SIP事件 通知框架(SUBSCRIBE/NOTIFY) (RFC 3265 ),而不是使用SIP PUBLISH。对等体A向前趋2发送通知,除了其他内容外,该通知包括 对等体A的ID、认证数据(例如证书)和新IP地址。在步骤420处,前 趋2使用对等体A的ID和认证数据(例如证书)来认证对等体A,由此 确认对等体A在前趋2的邻居表中被注册。前趋2然后使用对等体A的新 IP地址(或URI)更新其邻居表。
在步骤430处,类似于步骤410,按照任何已建立的协议来执行通知。 对等体A向前趋1发送通知,除了其他内容外,该通知包括对等体A的 ID、认证数据(例如证书)和新IP地址。在步骤440处,前趋1使用对 等体A的ID和认证数据(例如证书)来认证对等体A,由此确认对等体 A在前趋l的邻居表中被注册。前趋l然后使用对等体A的新IP地址(或URI)更新其邻居表。
更新前趋l中的表之后,对等体A通过更新后继2的邻居表而继续。 在步骤450处,类似于步骤410,按照任何已建立的协议来执行通知。对 等体A向后继2发送通知,除了其他内容外,该通知包括对等体A的ID、 认证数据(例如证书)和新IP地址。在步骤460处,后继2使用对等体A 的ID和认证数据(例如证书)来认证对等体A,由此确认对等体A在后 继2的表中被注册。后继2然后使用对等体A的新IP地址(或URI)对 其表进行更新。在本说明书的上下文中的此处和其它地方,认证和/或安全 特征是可选实施例,并且实现本发明不限于包括此类特征的实施例。
在步骤470处,类似于步骤410,按照已建立的协议来执行通知。对 等体A向后继1发送通知,除了其他内容外,该通知包括对等体A的ID、 认证数据(例如证书)和新IP地址。在步骤480处,后继1使用对等体A 的ID和认证数据(例如证书)来认证对等体A,由此确认对等体A在后 继1的表中被注册。后继1然后使用对等体A的新IP地址(或URI)对 其表进行更新。步骤490-496可以按照已建立的协议来实施,其中,每个 邻近对等体将向对等体A发送'200 OK,。
尽管可以顺序地对每个关联的邻近对等体执行对等体A的IP地址改 变的通知,但是本领域技术人员可以理解,对等体A可以被配置为同时通 知所有关联的前趋或后继所述改变,或者可以以随机方式通知所有关联的 邻近对等体所述改变。
相应地,如图7中所示,在对等体A中的IP地址改变之后,该节点 将其新IP地址通知给其邻居。其通过向每个邻居发送SIP PUBLISH请求 消息来完成。PUBLISH请求包括主体,其中,所述主体包含通知者的对 等体ID、新IP地址或解析为该IP地址的URI以及认证数据。基于对该 PUBLISH请求的接收,邻居对该对等体组合进行认证(使用证书),并 使用新更新的信息对其邻居表进行更新。
图8示例性示出了才艮据本发明的一个实施例的方法,其中,节点订阅 节点的节点事件状态包。在步骤600处,该方法包括在节点中创建指针表。在步骤610处,该方法订阅包括在指针表中的至少一个其它节点的网络地 址的改变。在步骤620处,该方法在该节点处接收包括至少一个其它节点 的标识符和网络地址的至少一个通知。在步骤630处,该方法使用在通知 中接收的至少 一个其它节点的新网络地址来更新指针表。
图9示例性示出了根据本发明的一个实施例的用于配置逆指针表的方 法。在步骤700处,该方法在节点处创建逆指针表。在步骤710处,该方 法接收来自至少一个其它节点的对自身网络地址的改变的订阅。在步骤 720处,该方法在逆指针表中存储至少一个其它节点的网络地址。在步骤 730处,当节点的网络地址或其它对应的连通性信息改变时,该方法从该 节点向存储在逆指针表中的至少一个其它节点发送新网络地址的通知。
图10示例性示出了根据本发明的一个实施例的方法,用于在节点获得 新地址后通知邻近节点。在步骤800处,该方法在节点处创建邻居表。在 步骤810处,该方法使用例如适当定义的DHT协议来获知邻居节点的网 络标识符和/或网络地址。在步骤820处,当节点的网络地址改变时,该方 法从该节点向存储在邻居表中的至少一个其它邻居节点发送新网络地址的 通知。
图11示例性示出了根据本发明的一个实施例的用于接收邻近节点的 新地址并更新邻居表的方法。在步骤卯O处,该方法在节点创建邻居表。 在步骤910处,该方法使用例如适当定义的DHT协议来获知邻居节点的 网络标识符和/或网络地址。在步骤920处,该方法接收来自所述节点去往 存储在邻居表中的至少一个其它邻居节点的新网络地址的通知。在步骤 930处,该方法使用来自节点的新网络地址更新至少一个其它邻居节点的 邻居表。
本发明诸多优点中的一部分包括最小化覆盖网络不稳定性,最小化 处理网络重配置所需的开销业务和对资源的使用(例如电池电源),以及, 在网络扰动的情况下(例如对等体加入和/或离开覆盖DHT网络)减小搜 索延迟。
鉴于前述,才艮据本发明的各实施例,提供了一种在分布式散列表网络
23架构的对等体节点中配置、提供和维护实时最新对等体标识和互联网协议 地址映射信息的节点和方法。
应当理解,在本发明的实施例中,步骤以所示的顺序和方式^L实施, 尽管在不脱离本发明的精神和范围的情况下, 一些步骤的顺序等可以被改 变。另外,图4-9中所描述的方法可以被重复需要的次数。
根据本发明的一个实施例,还可以提供一种包含在计算机可读介质上 的计算才几程序产品,根据本发明的一个实施例,其编码用于实施至少图4 -9中所描述的方法的指令。计算机程序产品可以被包含在计算机可读介 质上。计算机程序产品可包括也可存储在计算机可读介质上的用于处理无 线多跳无线系统的隧道传输的已编码指令。
计算枳4呈序产品可以用硬件、软件或混合方式来实现。计算机程序产 品可以由模块组成,其中,所述冲莫块彼此揭:作上通信,并被设计为向例如 用户设备或网络节点的通信设备传递信息或指令。计算机程序产品可以被 配置为在通用计算机或专用集成电路(ASIC)上运行。
根据本发明的一个实施例,与节点或对等体通信的设备可以包括任意 类型的移动或非移动网络单元,其包括但不限于移动台、膝上电脑、用户 设备、无线发送/接收单元、固定或移动订户单元、移动电话、计算机(固 定或l更携式)、寻呼机、个人数字助理或组织器或者能够运行于无线环境 或具有联网功能的任意其它类型的网络元件。例如,如果设备是膝上电脑, 则当该膝上电脑被打开时,对可用网络及其支持的服务(包括位置配置协 议)进行扫描。膝上电脑然后可以具有列出准则用于从可用网络进行选择 的筒档。膝上电脑可以自动选择与简档匹配较好的网络。 一旦膝上电脑不 得不移动时,其可以被关闭并且随后在新位置被再次打开,在此情况下, 此处描述的方法#>重复。
另外,尽管术语"数据"已被用于本发明的描述中,但本发明已引入 许多类型的网络数据。对于本发明,术语"数据"包括分组、信元、帧、 数据4艮、桥协议数据单元分组、分组数据及其任何等效物。
根据本详细说明,本发明的许多特性和优点是明显的,因此,旨在由所附权利要求覆盖落在本发明的实质精神和范围内的本发明的所有此类特 性和优点。此外,由于对于本领域技术人员来说容易进行诸多修改和改变, 因此没有预期将本发明限于所示例性说明和描述的精确构造和步骤,因此 可以釆用落在本发明的范围内的所有合适的修改和等效变换。
权利要求
1.一种节点,包括包括一列邻近节点的节点标识符和对应的地址的表,其中,节点标识符列和地址被彼此独立地配置为,更新与所述邻近节点中的至少一个相关联的所述地址中的至少一个的改变。
2. 根据权利要求l所述的节点,其中,所a包括网络中至少一个不 是邻近节点的节点的节点标识符和对应的地址。
3. 根据权利要求l所述的节点,其中,所述地址包括互联网协议地址 或统一资源标识符。
4. 一种节点,其被配置为创建指针表,被配置为订阅包括在所述指针 表中的至少一个其它节点的网络地址的改变,被配置为接收至少一个包括 所述至少一个其它节点的标识符和网络地址的通知,以及4皮配置为,用在 至少一个通知中接收的所述至少一个其它节点的新网络地址更新所述指针表。
5. 根据权利要求4所述的节点,其中,所述指针表包括不与所述节点 邻近的至少 一个节点的标识符和对应的地址。
6. 根据权利要求4所述的节点,其中,所述节点通知在逆表中存储指 向该节点的指针的所有节点该节点的地址已改变。
7. 根据权利要求4所述的节点,其中,所述至少一个通知包括会话发 起协议事件通知框架或M发起协议发布请求。
8. 根据权利要求4所述的节点,其中,所述至少一个通知进一步包括 用于认证发送所述通知的至少一个节点的认证数据。
9. 根据权利要求4所述的节点,其中,所述至少一个节点对于所述节 点是邻近节点、后继或前趋。
10. —种节点,其被配置为创建逆指针表,;故配置为接收来自至少一 个其它节点的对所述节点的网络地址改变的订阅,^皮配置为在所述逆指针 表中存储所述至少一个其它节点的网络地址,以及被配置为,在所述节点的网络地址改变时,从所述节点向所述逆指针表中的所述至少 一个其它节 点发送新网络地址的通知。
11. 根据权利要求10所述的节点,其中,所述逆指针表包括不与所述节点邻近的至少 一个节点的标识符和对应的地址。
12. 根据权利要求10所述的节点,其中,所述节点通知存储指向该节 点的指针的所有节点该节点的地址已改变。
13. 根据权利要求10所述的节点,其中,所述通知包括会话发起协议 事件通知框架或^发起协议发布请求。
14. 根据权利要求10所述的节点,其中,所述通知进一步包括用于至 少 一个其它节点对所述节点进行认证的认证数据。
15. 根据权利要求10所述的节点,其中,所述节点对于所述至少一个 节点是邻近节点、后继或前趋。
16. —种节点,其被配置为创建邻居表,被配置为获知邻居节点的网 络标识符和/或网络地址,被配置为在所述邻居表中存储邻居节点的网络标 识符和/或网络地址,以及被配置为,在所述节点的网络地址改变时,向所 述邻居表中的至少一个其它邻居节点发送新网络地址的通知。
17. —种节点,其被配置为创建邻居表,被配置为获知邻居节点的网 络标识符和/或网络地址,被配置为在所述邻居表中存储邻居节点的网络标 识符和/或网络地址,被配置为,在存储在逆指针表中的所述至少一个其它 邻居节点处接收来自所述节点的新网络地址的通知,以及,皮配置为,用来 自所述节点的所述新网络地址更新所述至少一个其它邻居节点的所述邻居 表。
18. —种节点,包括 用于创建指针表的装置;用于订阅包括在所述指针表中的至少 一个其它节点的网络地址的改变的装置;用于接收包括所述至少一个其它节点的标识符和网络地址的至少一个通知的装置;以及用于4吏用在所述至少 一个通知中接收的所述至少 一个其它节点的新网 络地址更新所述指针表的装置。
19. 一种节点,包括 用于创建逆指针表的装置;用于接收来自至少一个其它节点的对所述节点的网络地址的改变的订 阅的装置;用于在所述逆指针表中存储所述至少一个其它节点的网络地址的装 置;以及用于在所述节点的网络地址改变时,从所述节点向所述逆指针表中的 所述至少 一个其它节点发送新网络地址的通知的装置。
20. —种节点,包括 用于创建邻居表的装置;用于获知邻居节点的网络标识符和/或网络地址的装置; 用于在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址 的装置;以及用于在所述节点的网络地址改变时,向所述邻居表中的至少一个其它 邻居节点发送新网络地址的通知的装置。
21. —种节点,其包括用于创建邻居表的装置,其被配置为获知邻居节点的网络标识符和/ 或网络地址;用于在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址 的装置;用于在存储在所述邻居表中的至少一个其它邻居节点处接收来自所述 节点的新网络地址的通知的装置;以及用于使用来自所述节点的所述新网络地址更新所述至少 一个其它邻居 节点的所述邻居表的装置。
22. —种方法,包括将表配置为包括一列邻近节点的节点标识符和对应的地址;以及将节点标识符列和地址彼此独立地配置为,更新与所述邻近节点中的 至少一个关联的所述地址中的至少一个的改变。
23. 根据权利要求22所述的方法,进一步包括将所"配置为,包括网络中至少一个不是邻近节点的节点的节点标 识符和对应的地址。
24. 根据权利要求22所述的方法,进一步包括 将所述地址配置为包括互联网协议地址或统一资源标识符。
25. —种方法,包括 在节点处创建指针表;订阅包括在所述指针表中的至少 一个其它节点的网络地址的改变; 接收包括所述至少一个其它节点的标识符和网络地址的至少一个通 知;以及用在所述至少 一个通知中接收的所述至少 一个其它节点的新网络地址 更新所述指针表。
26. 根据权利要求25所述的方法,进一步包括将所述指针表配置为,包括不与所述节点邻近的至少 一个节点的标识 符和对应的地址。
27. 才艮据权利要求25所述的方法,进一步包括 通知在逆表中存储指向该节点的指针的所有节点该节点的地址已改变。
28. 根据权利要求25所述的方法,进一步包括 将所述至少一个通知配置为,包括^"发起协议事件通知框架或^"发起协议发布请求。
29. 根据权利要求25所述的方法,进一步包括 将所述至少一个通知配置为,进一步包括用于认证发送该通知的至少一个节点的认证数据。
30. 根据权利要求25所述的方法,进一步包括在时间间隔期间,使用所述节点向所述邻近节点中的每个节点输出所述通知o
31. —种方法,包括 在节点处创建逆指针表;接收来自至少一个其它节点的对所述节点的网络地址的改变的订阅; 在所述逆指针表中存储所述至少一个其它节点的网络地址;以及 在所述节点的网络地址改变时,从所述节点向所述逆指针表中的所述 至少 一个其它节点发送新网络地址的通知。
32. 根据权利要求31所述的方法,进一步包括 将所述逆指针表配置为,包括不与所述节点邻近的至少一个节点的标识符和对应的地址。
33. 根据权利要求31所述的方法,进一步包括通知存储指向该节点的指针的所有节点所述节点的地址已改变。
34. 根据权利要求31所述的方法,进一步包括 将所述通知配置为,包括会话发起协议事件通知框架或会话发起协议发布请求。
35. 根据权利要求31所述的方法,进一步包括 将所述通知配置为,进一步包括用于至少一个其它节点对所述节点进行认证的认证数据。
36. —种方法,包括在节点处创建邻居表;获知邻居节点的网络标识符和/或网络地址;在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址;以及 在所述节点的网络地址改变时,从所述节点向所述邻居表中的至少一 个其它邻居节点发送新网络地址的通知。
37. —种方法,包括 在节点处创建邻居表; 获知邻居节点的网络标识符和/或网络地址; 在所述邻居表中存储邻居节点的所述网络标识符和/或网络地址;在存储于所述邻居表中的至少一个其它邻居节点处接收来自所述节点的新网络地址的通知;以及^使用来自所述节点的新网络地址更新所述至少一个其它邻居节点的所 述邻居表。
全文摘要
提供了一种节点和方法,其在所述节点处创建指针表,订阅包括在所述指针表中的至少一个其它节点的网络地址的改变,接收包括所述至少一个其它节点的标识符和网络地址的至少一个通知,以及,用在所述至少一个通知中接收的所述至少一个其它节点的新网络地址更新所述指针表。所述节点和方法还在节点处创建逆指针表,接收来自另一节点的对所述节点的网络地址的改变的订阅,在所述逆指针表中存储所述其它节点的网络地址,以及在所述节点的网络地址改变时,从所述节点向所述逆指针表中的其它节点发送新网络地址的通知。
文档编号H04L29/06GK101682618SQ200880015615
公开日2010年3月24日 申请日期2008年5月14日 优先权日2007年5月17日
发明者M·A·加西亚-马丁, M·马图谢夫斯基 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1