会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 对等网络 / 基于对等网络的资源信息处理方法及对等网络

基于对等网络的资源信息处理方法及对等网络

申请号 CN200910133724.2 申请日 2009-04-08 公开(公告)号 CN101860474B 公开(公告)日 2015-07-22
申请人 中兴通讯股份有限公司; 发明人 彭永林; 陶全军; 张永辉; 裘晓峰; 雷震宇; 张春红; 李漓春; 王岩; 弭伟;
摘要 本发明提供一种基于对等网络的资源信息处理方法,所述对等网络的节点具有域标识,且与其保存的资源信息具有相同域标识,所述域标识是根据节点或资源信息的地域位置信息确定的,且不同的域标识对应不同的地域位置范围,该方法包括:节点接收请求方发送的操作请求,其中携带要操作资源信息的地域位置信息;所述节点根据所述操作请求中的地域位置信息确定所述资源信息的域标识;所述节点若判定所述要操作的资源信息的域标识与所述节点的域标识不同,则向外域节点转发操作请求,否则进行域内处理。本发明资源信息处理方法及对等网络可以提高系统性能。
权利要求

1.一种基于对等网络的资源信息处理方法,其特征在于:所述对等网络的节点具有域标识,且与其保存的资源信息具有相同域标识,所述域标识是根据节点或资源信息的地域位置信息确定的,且不同的域标识对应不同的地域位置范围,该方法包括:节点接收请求方发送的操作请求,其中携带要操作资源信息的地域位置信息;

所述节点根据所述操作请求中的地域位置信息确定所述资源信息的域标识;

所述节点若判定所述要操作的资源信息的域标识与所述节点的域标识不同,则向外域节点转发操作请求,否则进行域内处理。

2.如权利要求1所述的方法,其特征在于:所述请求方是外部业务处理点,所述外部业务处理点发送的操作请求中还携带要操作资源信息的特征信息,所述进行域标识判定前,先根据所述资源信息的特征信息确定所述资源信息的资源标识,所述节点向外域节点转发的操作请求中携带由资源信息的域标识和资源标识组成的全局标识符,所述外域节点根据所述全局标识符进行域内处理。

3.如权利要求1或2所述的方法,其特征在于:所述域内处理是这样进行的:所述节点根据所述资源信息的资源标识、所述节点保存的域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;

若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符,所述域内路由表包括与所述节点存在连接关系的域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的。

4.如权利要求3所述的方法,其特征在于:所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。

5.一种对等网络,其特征在于:所述对等网络的节点具有域标识,所述域标识是根据节点地域位置信息确定的,且不同的域标识对应不同的地域位置范围,所述节点包括依次连接的接收模块、标识确定模块及处理模块,以及与处理模块连接的存储模块;其中,所述接收模块,用于接收请求方的操作请求,所述操作请求中包括要操作资源信息的地域位置信息;

所述标识确定模块,用于根据所述操作请求中的地域位置信息确定所述资源信息的域标识;

所述处理模块,用于判定所述要操作的资源信息的域标识与所述节点的域标识是否相同,若不同,则向外域节点转发操作请求,否则用于进行域内处理;

所述存储模块,用于保存资源信息,所述节点保存的资源信息具有与所述节点相同的域标识。

6.如权利要求5所述的对等网络,其特征在于:所述请求方是外部业务处理点,所述外部业务处理点发送的操作请求中还携带要操作资源信息的特征信息,所述标识确定模块还用于根据所述资源信息的特征信息确定所述资源信息的资源标识,所述处理模块向外域节点转发的操作请求中携带由所述资源信息的域标识和资源标识组成的全局标识符;所述处理模块还用于接收对等网络其他节点发送的操作请求,其中携带要操作资源信息的全局标识符。

7.如权利要求5或6所述的对等网络,其特征在于:所述存储模块还用于存储域内路由表,所述域内路由表包括与所述节点存在连接关系的域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的;所述处理模块是这样进行域内处理的:根据所述资源信息的资源标识、所述域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;

若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符。

8.如权利要求7所述的对等网络,其特征在于:所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。

9.一种对等网络,其特征在于:所述对等网络的节点具有域标识,所述节点保存的资源信息与所述节点具有相同的域标识,所述节点的域标识是根据所述节点地域位置信息确定的,且不同的域标识对应不同的地域位置范围,所述资源信息具有全局标识符,包括域标识及资源标识,所述域标识根据所述资源信息的地域位置信息确定,所述资源标识根据所述资源信息的特征信息确定,所述节点根据资源信息的全局标识符对所述资源信息进行相应的处理。

10.如权利要求9所述的对等网络,其特征在于:所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的。

说明书全文

基于对等网络的资源信息处理方法及对等网络

技术领域

[0001] 本发明涉及对等网络,尤其涉及一种基于对等网络的资源信息处理方法及对等网络。

背景技术

[0002] 对等(Peer to Peer,P2P)网络作为现有互联网(Internet)的覆盖网络(Overlay Network),通过系统之间的对等交换来共享计算机资源和服务,以实现分布式、可靠、可扩展、健壮的网络应用模式。它打破了传统的Client/Server(C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。
[0003] 随着互联网和宽带接入网的迅速发展,P2P技术得到了大量的应用和研究,特别是基于分布式哈希表(Distributed Hash Table,简称DHT)和覆盖网络(Overlay Network)的全分布式结构化P2P网络(即DHT网络)得到业界的广泛重视。
[0004] DHT网络主要是采用分布式散列表技术来组织网络中的节点(即加入到P2P网络中的用户主机或服务器)。DHT是一个由广域范围大量节点共同维护的巨大散列表。散列表被分割成不连续的块,每个节点被分配给一个属于自己的散列块,并成为这个散列块的管理者。通过加密散列函数,一个对象的名字或关键词被映射为128位或160位的散列值。DHT类结构能够自适应节点的动态加入/退出,有着良好的可扩展性、鲁棒性、节点ID分配的均匀性和自组织能力。由于重叠网络采用了确定性拓扑结构,DHT可以提供精确的发现。
只要目的节点存在于网络中DHT总能发现它,发现的准确性得到了保证,最经典的案例是Tapestry、Pastry、Chord和CAN。
[0005] 以下以Chord为例说明典型的DHT网络的实现方法,图1为Chord的网络拓扑示意图。Chord项目诞生于美国的麻省理工学院。它的目标是提供一个适合于P2P环境的分布式资源发现服务,它通过使用DHT技术使得发现指定对象只需要维护O(logN)长度的路由表。O()是表示空间复杂度一个记号,N为网络中节点的总数。在此网络中,节点按照一定的方式分配一个唯一节点标识符(Node ID),资源对象通过散列运算产生一个唯一的资源标识符(Object ID),且该资源将存储在节点ID与之相等或者相近的节点上。需要查找该资源时,采用同样的方法可定位到存储该资源的节点。因此,Chord的主要贡献是提出了一个分布式查找协议,该协议可将指定的关键字(Key)映射到对应的节点(Node)。
[0006] 上面提到的典型的DHT网络的路由查找的复杂度一般随网络节点数目增多而增大,一般为O(log N),N为网络中最大节点数。在DHT网络中还有一类基于常数路由复杂度的路由算法O(1)DHT,这类DHT算法的路由复杂度是不随网络最大节点数的变化而变化的,它对应的路由复杂度是一个常数,也就是查找需要的跳数是一个常数。现在一些结构化覆盖网的研究者提出一些在一跳或两跳之内即可完成消息路由的结构化覆盖网协议,其中典型有Kelips算法、One-hop算法等。
[0007] 以下简要介绍Kelips算法。这种算法将所有节点分成k组(affinitygroup),节点都通过哈希函数映射到0到k-1这k个整数上,所有的文件也通过哈希函数映射到这k个整数上,组内节点保持全连接,通过Gossip(一种广播算法)的方式进行路由更新。
[0008] 参见图2,每个节点维护三张表,Affinity Group View(组内路由表)、Contacts(组间路由表)、Filetuples(文件索引表)。
[0009] Affinity Group View存储的是节点同组内所有节点的路由信息,每一条目包含节点的ID(节点的IP和端口号),到这个节点的rtt(round-trip time,消息往返时延),和heartbeat count(定时心跳时间,用于路由表的更新)。
[0010] Contacts存储的是节点到其他组的路由信息,每一条目包含组号(0到k-1),和连接这些组的节点序列,以及分别到这些节点的rtt、heartbeat count。
[0011] Filetuples存储的是所有文件索引信息在本组内的文件索引,表内每一条目包含文件名(filename),和存储这些文件索引的节点,即这些文件的主节点,还有节点到这些主节点的heartbeat count。
[0012] 由上面三种表的结构可以得出节点路由表的大小为
[0013] 网络中的节点与组内每个节点保持全连接(即每个节点均保存组内其他所有节点的路由信息),并与其他组的部分节点序列保持联系,通过这种路由设计方式可以实现资源查找的复杂度为O(1),即不与网络中节点的数目有关。先将要查找的文件映射出组号,若组号是自己的组,则直接找到文件存储的节点;若不是自己的组号,则通过查找contacts表,找到对应组的节点,就能找到文件存储的节点。所以可以看出这种路由算法的查找跳数就是2,即也是O(1)的。
[0014] 目前的DHT网络的可扩展性、可靠性、可维护性、发现算法的效率都很好,在实际网络中也普遍采用。但由于在一般DHT网络中用户数据的存储、查询、传输都是随机进行的,这种传输方式可能占据任意一个网络节点或者出口的带宽,每个节点之间的交换也是完全无序的。一个北京的用户,既可能和广州的用户进行文件片段的交换,也可能和远在美国的某用户进行交换。显然,无序的交换导致了无谓的跨地区甚至是跨国的流量传输,这耗费了宝贵的国内和国际带宽资源,同时这种查找也产生了较大的路由跳数和延时,代价巨大。另外文中的Kelips算法仅仅是对网络进行简单的HASH算法进行分组,这在组内同样存在上述的资源交换无序的问题,另外它的路由维护开销很大,且由于路由维护算法中采用Gossip的广播算法,这种算法相对简单,但有一定的盲目性,因此会带来大量的冗余消息,很大程度上影响了系统的性能。

发明内容

[0015] 本发明要解决的技术问题是提供一种基于对等网络的资源信息处理方法及对等网络,以提高系统性能。
[0016] 为解决上述技术问题,本发明提供一种基于对等网络的资源信息处理方法,所述对等网络的节点具有域标识,且与其保存的资源信息具有相同域标识,所述域标识是根据节点或资源信息的地域位置信息确定的,且不同的域标识对应不同的地域位置范围,该方法包括:
[0017] 节点接收请求方发送的操作请求,其中携带要操作资源信息的地域位置信息;
[0018] 所述节点根据所述操作请求中的地域位置信息确定所述资源信息的域标识;
[0019] 所述节点若判定所述要操作的资源信息的域标识与所述节点的域标识不同,则向外域节点转发操作请求,否则进行域内处理。
[0020] 进一步地,所述请求方是外部业务处理点,所述外部业务处理点发送的操作请求中还携带要操作资源信息的特征信息,所述进行域标识判定前,先根据所述资源信息的特征信息确定所述资源信息的资源标识,所述节点向外域节点转发的操作请求中携带由资源信息的域标识和资源标识组成的全局标识符,所述外域节点根据所述全局标识符进行域内处理。
[0021] 进一步地,所述域内处理是这样进行的:所述节点根据所述资源信息的资源标识、所述节点保存的域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符,所述域内路由表包括与所述节点存在连接关系的域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的。
[0022] 进一步地,所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。
[0023] 为解决上述技术问题,本发明还提供一种对等网络,所述对等网络的节点具有域标识,所述域标识是根据节点地域位置信息确定的,且不同的域标识对应不同的地域位置范围,所述节点包括依次连接的接收模块、标识确定模块及处理模块,以及与处理模块连接的存储模块;其中,
[0024] 所述接收模块,用于接收请求方的操作请求,所述操作请求中包括要操作资源信息的地域位置信息;
[0025] 所述标识确定模块,用于根据所述操作请求中的地域位置信息确定所述资源信息的域标识;
[0026] 所述处理模块,用于判定所述要操作的资源信息的域标识与所述节点的域标识是否相同,若不同,则向外域节点转发操作请求,否则用于进行域内处理。
[0027] 所述存储模块,用于保存资源信息,所述节点保存的资源信息具有与所述节点相同的域标识。
[0028] 进一步地,所述请求方是外部业务处理点,所述外部业务处理点发送的操作请求中还携带要操作资源信息的特征信息,所述标识确定模块还用于根据所述资源信息的特征信息确定所述资源信息的资源标识,所述处理模块向外域节点转发的操作请求中携带由所述资源信息的域标识和资源标识组成的全局标识符;所述处理模块还用于接收对等网络其他节点发送的操作请求,其中携带要操作资源信息的全局标识符。
[0029] 进一步地,所述存储模块还用于存储域内路由表,所述域内路由表包括与所述节点存在连接关系的域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的;所述处理模块是这样进行域内处理的:根据所述资源信息的资源标识、所述域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符。
[0030] 进一步地,所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。
[0031] 为解决上述技术问题,本发明还提供另一种对等网络,所述对等网络的节点具有域标识,所述节点保存的资源信息与所述节点具有相同的域标识,所述节点的域标识是根据所述节点地域位置信息确定的,且不同的域标识对应不同的地域位置范围,所述资源信息具有全局标识符,包括域标识及资源标识,所述域标识根据所述资源信息的地域位置信息确定,所述资源标识根据所述资源信息的特征信息确定,所述节点根据资源信息的全局标识符对所述资源信息进行相应的处理。
[0032] 进一步地,所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的。
[0033] 相较于现有技术,本发明资源信息处理方法及对等网络,根据地域位置信息将对等网络划分为不同的域,不同域对应不同的域标识,通过根据资源信息的地域位置信息确定的域标识,将资源信息保存在与其有相同域标识的节点上,从而减少资源信息插入或查询操作所需的路由跳数和时延,并减少不同地域间的流量传输,有效的节省网络带宽。

附图说明

[0034] 图1为Chord的拓扑结构。
[0035] 图2为Kelips算法的节点中存放路由表的示意图。
[0036] 图3为本发明基于对等网络的资源信息处理方法的示意图。
[0037] 图4为本发明节点全局标识符及资源全局标识符的示意图。
[0038] 图5为本发明网络节点中需存储的内容示意图。
[0039] 图6为本发明应用实例所基于的P2P网络架构示意图。
[0040] 图7为本发明应用实例1查询查询本域用户数据的示意图。
[0041] 图8为本发明应用实例2查询外域用户数据的示意图。
[0042] 图9为本发明对等网络中节点的模块结构示意图。

具体实施方式

[0043] 本发明基于对等网络(以下简称:P2P网络)的资源信息处理方法及对等网络的主要思想是,将整个对等网络根据地域位置划分为若干个域,各个域都有对应的域标识,即不同的域标识对应不同的地域位置范围;域内节点保存的资源信息与所述节点具有相同的域标识,述节点的域标识是根据所述节点地域位置信息确定的,且不同的域标识对应不同的地域位置范围,所述资源信息具有全局标识符,包括域标识及资源标识,所述域标识根据所述资源信息的地域位置信息确定,所述资源标识根据所述资源信息的特征信息确定,所述节点根据资源信息的全局标识符对所述资源信息进行相应的处理。本发明可以减少节点和资源信息查询所需的路由跳数和时延,并减少不同地域间的流量传输,有效的节省网络带宽。
[0044] 具体地,本发明中,将整个P2P网络划分为若干域,域的划分按照地域位置来进行,对于每个域有唯一的域标识(简称域ID)与之对应;地域划分所依据的地域位置信息可以是节点或用户所在的行政区域划分,或运营商区域划分等。整个P2P网络中的域划分以及域的数目可以根据实际情况来定。
[0045] 域标识即域ID的产生可以依据不同的原则,一般为集中式统一静态分配,也可以由相应服务器分布式动态生成(即节点的域ID在其生存时间内不变),但要求域ID全局唯一,域ID的取值位数全局统一,但其长度根据预期的最大域规模可变。
[0046] 对等网络中的节点根据其地域位置信息确定其所属的域,每个节点具有全局标识符,所述全局标识符是所述节点在全网内的唯一标识,包括域标识和节点标识,同一域内的所有节点具有相同的域标识。
[0047] 节点地理位置信息的获得可以静态分配或通过P2P系统外的其他方式获得,保证地理相近的节点属于相同的域。
[0048] 节点标识(简称节点ID)是通过对节点的特征信息进行哈希运算得到,节点的特征信息指该节点的唯一性信息,如IP地址、网卡号、或机器序号,哈希算法的选取可以是任意的;
[0049] 节点的全局标识符包括域标识及节点标识,如以域ID为前缀,节点ID为后缀生成。
[0050] 如图3所示,对于外部业务处理点的操作请求,本发明基于对等网络(以下简称:P2P网络)的资源信息处理方法包括:
[0051] 步骤301:所述节点接收外部业务处理点发送的操作请求,所述操作请求中包括要操作资源信息的地域位置信息及特征信息;
[0052] 步骤302:所述节点根据所述操作请求中的地域位置信息确定所述资源信息的域标识,根据操作请求中的特征信息确定所述资源信息的资源标识;
[0053] 资源信息的域标识(简称域ID)是根据所述资源信息的地域位置信息及域标识映射关系表确定的;资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;地理位置信息的获得是静态分配或通过P2P系统外的其他方式获得,保证地理位置相近的资源信息属于相同的域。
[0054] 资源信息的资源ID是通过对资源的特征信息进行哈希算法得到的,所说资源的特征信息是能标识该资源的信息,如资源的具体内容、用户名、用户数据的名称等,哈希算法的选取可以是任意的。
[0055] 所述资源信息的域标识及资源标识构成所述资源信息的全局标识符,如图4所示。
[0056] 步骤303:所述节点若判定所述要操作的资源信息的域标识与所述节点的域标识不同,则向外域节点转发操作请求,否则进行域内处理。
[0057] 向外域节点转发的操作请求中携带由资源信息的域标识和资源标识组成的全局标识符。
[0058] 所述域内处理是这样进行的:所述节点根据所述资源信息的资源标识、所述节点保存的域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符。
[0059] 为了说明节点对操作请求的具体处理方法,以下对节点保存的信息进行说明:
[0060] 如图5所述,对等网络中的节点保存域内路由表和域标识映射关系表、域外路由表和资源信息表,当然节点中还可包含其他信息,这可以根据需要而定,图中仅列出了必要信息。
[0061] 域内路由表体现了当前节点与其他域内节点的路由关系,由域内节点按照一定的DHT算法得到的,可以使用Tapestry、Pastry、Chord或one-hop DHT来构建,各个域所使用的DHT算法可以不一样;
[0062] 这里所说的是每个域所采用的DHT算法,涉及到每个域内部路由表的生成和维护等,不涉及域间路由的维护等。
[0063] 域外路由表包括所有与当前节点存在连接关系的域外节点信息,如域外节点的全局标识符与该节点IP地址的映射关系;域外路由表体现了当前节点与其他外域的部分节点的路由关系,根据该域外路由表,当前节点可以和外域取得联系。
[0064] 每个节点的域内和域外路由表是动态更新的,域内路由更新和域外的路由更新是相互独立的过程。
[0065] 资源信息表是该节点所保存的资源信息,如节点为归属用户服务器HSS,则保存在HSS上的资源信息是用户签约数据等,该资源信息表包括资源全局标识符与资源内容的映射关系,所述资源全局标识符包括所述资源信息的域标识及资源标识(简称资源ID),如以域ID为前缀,资源ID为后缀生成,如图4所示。
[0066] 整个P2P网络中的节点和资源信息都分别有唯一的节点全局标识符和资源全局标识符,其中节点全局标识符和资源全局标识符长度相等(由DHT中资源的存储特征所决定的)。节点(或资源信息)全局标识符用于在整个对等网络内唯一标识该节点(或资源信息)。
[0067] 资源信息按照一定的存放规则存放在某个节点上,该存放规则根据该域内对应的分布式散列表DHT算法确定,如资源信息存放在全局标识符与其资源全局标识符最接近的节点上,所述资源信息的插入或查询也是根据域内的DHT算法进行的。
[0068] 所述节点是根据所述资源信息的资源标识、域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的。
[0069] 所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。
[0070] 下面结合具体应用实例对本发明作进一步的说明:
[0071] 如图6所示,网络根据节点的地域不同,把整个网络分为若干个域(此处为4个),图中指出了域内所使用的DHT算法,其中域1、3采用Chord算法,域2、4采用One-hop DHT算法,对于域外,不失一般性,图中只列出了域2中的节点和外域节点的联系情况,其中域2的每个节点都和其他3个域的一个节点保持联系,其他域的节点与外域的联系和域2的情形相同。图中域内和域外路由联系都是动态更新的,可以适应网络情况的变化。
[0072] 本实例中节点特指HSS服务器。参见图6、7,图中每个节点为一个HSS(Home Subscriber Server,归属用户服务器)服务器,HSS服务器为支持用于处理调用/会话的IMS网络实体的主要用户数据库。它包含用户配置文件,执行用户的身份验证和授权,并可提供有关用户物理位置的信息。在此实施例中,每个HSS服务器(以下简称节点)中保存了部分用户的用户数据,此用户数据中包含有此用户注册的SIP Proxy(即用户通过SIP协议进行通话的代理服务器)的地址信息。
[0073] 该应用实例中,用户数据的域ID是根据其用户的所属域来确定的,用户数据存放的节点的全局标识符是与该用户数据的资源全局标识符最接近的,可以看出满足这一规则的节点必须是本域的节点(即域ID必须相同),而且该节点也是唯一的。
[0074] 用户数据根据它的资源全局标识符保存在全局标识符与之相等或相近的本域节点(即该节点所具有的节点全局标识符中的域ID与此用户数据的资源全局标识中的域ID相同)上;当有更接近的节点加入后,用户数据资源需要转节点保存,这也是新节点加入中需要经过的必要的过程,这也是具体DHT算法的路由维护的过程。
[0075] 图中共有8个节点,这些节点按照地理位置分为两个域,其中节点a、b、c、d属于域A,域A的域ID为001,节点e、f、g、h属于域B,域B的域ID为011(这里是2进制表示的)。图中每个节点在域内采用One-hopDHT算法(即域内每个节点均保有一份域内的全局路由表,从而和域内的其他节点保持全连接),此外每个节点还包含一份域外路由表,此域外路由表包含外域的部分节点的路由信息,例如节点a的域外路由表中只包含域B中的节点h的路由信息。
[0076] 应用实例1:域内用户数据查询
[0077] 图7中用户X需要和用户Y建立连接,用户X向他的SIP Proxy 1发送呼叫请求,呼叫请求中包含用户Y的URI(Uniform Resource Indicator,统一资源标识符),为了完成该请求,SIP Proxy 1需要通过查找用户Y的用户数据来得到用户Y当前所使用的SIP Proxy的地址,数据查询的过程可以分为以下步骤:
[0078] 步骤601:SIP Proxy1向其所连接的节点a发出数据查询请求,请求查询用户Y的用户数据,请求中包含用户Y的URI信息,如:Bob@beijing.cn
[0079] 步骤602:节点a根据查询请求中用户Y的URI信息计算得到用户Y的用户数据的资源全局标识符;
[0080] 此资源全局标识符可通过以下方式获得:节点a根据用户Y的URI:Bob@beijing.cn,,通过提取此URI的域名部分“beijing.cn”,并查找自己的域名ID映射表得到此用户的域ID为001,对用户名“Bob”进行哈希运算得到资源ID为010001010,(该应用实例中,资源ID位数较短,是为了说明方便,实际中的域ID和资源ID的位数可以很多,如资源ID为128位,域ID为9位,可以足够保证HASH后的ID不重复),域ID和资源ID合并得到此资源的资源全局标识符(此处为001010001010);
[0081] 由于需要的用户的域ID属于本域但并不是由节点a负责,节点a查询自己的域内路由表,得到和存放所求的用户资源ID最接近的资源ID(010001011)的节点ID的对应的节点c的IP地址,并向节点c发出数据查询请求,此请求中包含需查找数据的资源全局标识符;
[0082] 将资源信息存放在与资源ID最接近的节点ID对应的节点上,只是本应用实例一种具体存放规则。当然也可以存放在对其ID取反所得的节点ID对应的节点上,这是由域内的DHT算法决定的,资源的存放是和资源的查找都是由DHT算法决定的
[0083] 步骤603:节点c收到查询请求,根据请求中包含的资源全局标识符得知此资源是由自己负责的,并查找自己的资源信息表,并返回用户Y的用户数据给节点a;
[0084] 步骤604:节点a把用户Y的用户数据发送给SIP Proxy 1,SIP Proxy1利用得到的用户Y的SIP Proxy 2的地址信息就可以和用户Y建立连接了;
[0085] 利用SIP协议建立连接的过程不属于本专利范围,具体过程可参看SIP协议相关内容,图中只是简单给出了消息示意图。
[0086] 应用实例2:域外用户数据查询
[0087] 下面介绍用户X要和用户Z建立连接的情形,其中用户Z位于域B中,同上SIP Proxy 1需要通过查询用户Z的用户数据得到用户Z注册的SIPProxy的地址信息,如图8所示,数据查询步骤如下:
[0088] 步骤701:SIP Proxy1向其所连接的节点a发出数据查询请求,请求查询用户Z的用户数据,请求中包含用户Z的URI信息,如:Alice@Shanghai.cn
[0089] 步骤702:节点a根据请求中的用户Z的URI信息得到所请求数据的资源全局标识符,资源全局标识符的产生方法同上,在此处得到的结果为011010100010,资源全局标识符中的域ID为011,用户资源ID为010100010,由于需要的用户的域ID不属于本域,节点a查询自己的域外路由表,得到域ID为011的节点h的IP地址,并向节点h发出数据查询请求,请求中包含需要查询的数据的资源全局标识符
[0090] 步骤703:节点h收到查询请求,得知所需资源位于本域但并不是由自己负责,于是它查找自己的域内路由表,得到和所求的用户资源ID最接近的节点ID(此处为010100010)的节点g的IP地址,并向节点g发出数据查询请求
[0091] 步骤704:节点g收到查询请求,并查找自己的资源信息表,并返回用户Z的用户数据给节点h;
[0092] 步骤705:节点h把用户Z的用户数据发送给节点a;
[0093] 步骤706:节点a把用户Z的用户数据发送给SIP Proxy 1,SIP Proxy 1得到所需的数据后就可以和用户Z建立连接了
[0094] 当查询请求中包含初始发出查询的节点(此处为节点a)的地址信息时,步骤704和705可以进行简化为步骤704’;
[0095] 步骤704’:节点g收到查询请求,并查找自己的资源信息表,直接返回用户Z的用户数据给节点a。
[0096] 采用本发明的上述方法,可以把资源的查找和存储很好的限制在域内,从而可以减少资源查找的跳数和时延,减少无序交换及资源查找的随机性,减少不必要的地域间查找和地域间数据传输,从而有效节省了网络的带宽,整体上提高了网络的性能。
[0097] 采用以上方法实现的对等网络,包括若干个节点,如图9所示,每个节点包括依次连接的接收模块、标识确定模块及处理模块,以及与处理模块连接的存储模块,其中,[0098] 所述收发模块,用于接收外部业务处理点发送的资源信息操作请求,所述操作请求中包括要操作的资源信息的地域位置信息及特征信息;所述操作请求是插入或查询请求。
[0099] 所述标识确定模块,用于根据所述操作请求中的地域位置信息确定所述资源信息的域标识,还用于根据所述资源信息的特征信息确定所述资源信息的资源标识;
[0100] 所述处理模块,用于判定所述要操作的资源信息的域标识与所述节点的域标识是否相同,若不同,则向外域节点转发操作请求,其中携带由所述资源信息的域标识和资源标识组成的全局标识符;否则用于进行域内处理。
[0101] 所述处理模块还用于接收对等网络其他节点发送的操作请求,其中携带要操作资源信息的全局标识符,所述域内处理是根据所述资源信息的全局标识符中的资源标识进行的。
[0102] 所述处理模块是这样进行域内处理的:根据所述资源信息的资源标识、所述域内路由表及域内资源信息存放规则确定所述资源信息对应的域内节点的,若所述域内节点是当前节点,则根据操作请求进行操作;若所述域内节点是域内其他节点,则向域内其他节点转发操作请求,其中包括所述资源信息的全局标识符。
[0103] 所述域内路由表保存在所述节点,包括与所述节点存在连接关系的域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的。
[0104] 所述存储模块,用于保存资源信息,所述节点保存的资源信息具有与所述节点相同的域标识;还用于存储域外路由表及域内路由表,其中域外路由表包括与所述节点存在连接关系的外域节点的路由信息及对应的节点标识;所述域内路由表包括域内其他节点的路由信息及对应的节点标识,所述节点标识是根据所述节点的特征信息确定的;
[0105] 所述节点的特征信息指所述节点的IP地址、网卡号或机器序号,所述节点标识是利用哈希算法得到的;所述资源信息的地域位置信息是所述资源信息提供者或对应资源本身所属的地域位置信息;所述资源信息的特征信息指资源名称或内容,所述资源标识是利用哈希算法得到的;所述域内资源存放规则是由该域内采用的分布式散列表DHT算法确定的。
[0106] 以上由HSS服务器作为节点只是一个特例,本发明不对节点的类型进行限制,也可以是其他服务器,也可以是用户个人主机。本发明对资源信息的种类也不进行限制,其他类型数据的相关操作和此实施例原理相同。
[0107] 域内的路由维护由该域对应的DHT算法进行,各个域所采用DHT算法可以不同。当域内或域外节点加入或退出时,根据本域所采用的DHT算法更新域内路由表;通过向和该节点相连接的域外节点发起路由更新请求来更新自己的域外路由表,当该域外节点不可达时直接从本域其他节点复制相应的域外路由表;同时还需要资源信息存放规则更新资源信息表。
[0108] 本发明中资源信息存储是完全按照DHT思想进行的,存储数据时按照资源的全局标识符,资源内容或资源索引存入相应的节点,其中资源全局标识符中的引入了资源的域ID,从而考虑了资源信息的地域性,减少资源信息存放的盲目性;资源全局标识符中的资源ID是通过哈希算法得到的,这样可以保证资源存储的随机性和确定性,也方便对资源进行定位。采用这种存储方式每个节点只需要存储一部分资源信息的内容或是其索引信息即可,节省了存储的空间和查询的时间。
[0109] 采用资源信息的全局标识符进行插入和查询,可以更加方便快速的定位该资源信息所属域,然后直接定位到资源所在域进行查找,使查找更加快捷,可以减少资源插入或查询操作所需的跳数,把资源的查询尽量限制在域内,由于域内查询时延相比域间查询要小许多,故从上述两方面可以减少查询时延,提高网络的整体性能。同时在进行资源查找时可以减少不同地域间的查询数量,有效节省网络带宽。