一种快速定位对等网络目标节点标识的方法转让专利

申请号 : CN200910062729.0

文献号 : CN101582845B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈宏伟王春枝杨楠余兆魏斯玮

申请人 : 湖北工业大学

摘要 :

本发明公开了一种快速定位对等网络目标节点标识的方法,涉及计算机网络、分布式计算机和算法设计与分析的交叉技术应用领域。该方法在拓扑形成时充分利用网络访问的区域性和物理网络中节点的邻近特性降低访问延迟和路由长度。从而能够尽可能解决上层的逻辑覆盖图与底层物理拓扑图的不匹配的问题。此外,把哈希表中的对等点分成普通节点和记录节点,记录节点负责记录普通节点的查询路径,供查询相同关键字的节点参考,减少了资源定位时间,从而使得系统响应时间相应地减少,网络速度加快,查询延时降低,信息查询效率得到了进一步的提高。

权利要求 :

1.一种快速定位对等网络目标节点标识的方法,该方法包含下列步骤:

a、对等节点通过自身的IP地址的160比特安全哈希算法散列得到唯一的ID,通过ID加入到分布式哈希空间;

b、在对等节点加入对等网络时,探测在区域内TTL-k的邻居中是否有记录节点列表存在,如果存在,则将记录节点放入K桶中,并加以标注,所加入的对等节点成为普通节点;如果不存在,则所加入的对等节点自身成为一个记录节点,并建立长度为100至

1000的列表,每个列表保存TTL-k的邻居中其它节点成功查询的关键字及查询该关键字的路径;记录节点在退出对等网络时,把记录节点列表交给距自身TTL-k邻居中与自己网络延时最小的对等节点负责维护;

记录节点列表信息的更新方法:记录节点接收到其它节点的关键字查询结果时,如果有空的列表,当列表中保存的信息没有被查询的关键字,将该关键字及成功查询该关键字的路径添加到空列表中,当被查询的关键字已保存在某个列表中,则将该列表移至列表队尾;

如果没有空的列表,当被查询的关键字已在列表中,把该关键字所在的列表移至队尾;当被查询的关键字不在列表中,PING最早查询队首关键字的节点,有响应时,列表不变;没有响应时,将列表队首信息更换成所查询的关键字及查询该关键字的路径,并把该列表移至队尾;

c、每个节点在加入对等网络时,均需建立和维护160个列表,一个列表表示一个K桶,每个K桶设定存放15-25个记录节点,每个节点设有节点ID、IP地址、UDP端口、往返时间四个信息,每个记录节点的第i个列表存放其它与自身对等节点ID的异或值为i i+1

2-2 的记录节点,1≤i≤160,记录节点建立了160个K桶后,将在TTL-k的邻居中查找到的其它记录节点加入到自身的K桶;

当查询发起者向记录节点发出待查询信息时,如果查询发起者的对等节点与该记录节点的异或值所对应的K桶未满所设定的个数,且所访问的记录节点不在K桶时,把该节点添加到K桶;并将该K桶所有记录节点按照PING时间的长短依次重新排序,时间最短的排在队首;

如果查询发起者的对等节点与该记录节点的异或值所对应的K桶已达到所设定的个数,则当所访问记录节点的PING时间大于队尾对等节点的PING时间时,K桶不变,当所访问记录节点的PING时间小于队尾记录节点的PING时间时,则将队尾记录节点替换为所访问的对等节点,将该K桶所有记录节点按照PING时间的长短依次重新排序,时间最短的排在队首;

d、其中,信息查询的方法包括以下步骤:

d1、当对等节点要查询信息时,首先向自身TTL-k邻居中的记录节点发出待查询信息,如果该记录节点存在所查询信息,则返回查询结果,查询结束;

d2、如果待查询的信息不存在,由查询发起者从自身的K桶中筛选出3-10个未被查询且与目标ID异或值相对较小的对等节点,如果这些对等节点中有待查询信息,查询结束;

d3、否则向这些对等节点发送异步查询请求,被查询对等节点收到请求后,从自身的K桶中筛选出与目标ID异或值相对较小的对等节点,并将这些对等节点的信息返回给查询发起者;

d4、发起者在收到返回信息后,按照步骤c的规定,对收到的对等节点信息进行舍取和重新排列,再次从自身K桶中筛选出3-10个没有请求过,且与目标ID异或值相对较小的对等节点发出查询请求,如果这些对等节点中有待查询信息,查询结束,并执行步骤d5;否则返回步骤d2;

d5、在查询过程中,将没有响应的对等节点从K桶中删除;

d6、查询成功后向自身TTL-k邻居中的记录节点发送本次查找的关键字及查询路径的信息;

d7、记录节点退出对等网络时把自己所维护的记录列表交给距自身TTL-k邻居中与自己网络延时最小的对等节点,普通对等节点则直接退出。

说明书 :

一种快速定位对等网络目标节点标识的方法

技术领域

[0001] 本发明涉及计算机网络的应用,尤其涉及结构化对等网络中采用分布式哈希表的资源定位,属于计算机网络、分布式计算机和算法设计与分析的交叉技术应用领域。

背景技术

[0002] 近几年来,对等网络迅速发展,EMule、BT等对等计算软件的使用也成为国内广大网民的热门话题。 在对等计算系统中,每个节点既为其他参与的节点提供服务也从其他参与的节点处获得服务,这正是由于对等计算是一个分布式的网络系统,系统中的节点相互连接、协作,每个节点既是服务器也是客户端,它们在网络中的地位都是对等的。 这种分布式网络结构充分利用网络上各节点的资源,有效解决了传统服务器/客户端模式网络的服务瓶颈问题。
[0003] 对等计算技术弱化了集中服务器的功能,重视网络中所有个体的作用,强调的是个体之间、系统之间、计算机之间的直接通信和联系,每一个参与者既是客户又是服务方,这使人们在互联网上的共享行为被提升到了一个更广泛的层次,使人们以更主动的方式参与到网络中去。 随着网络用户以及网络内容的增加和对服务器要求过高,使传统服务器/客户端模式网络越来越难以提供满意的服务性能。 对等计算技术的分散特性,不仅为个人用户提供了前所未有的自由和便利.同时也试图有效地整合互联网的潜在资源,将基于网页的互联网转变成动态存取.自由交互的信息网络。 对等计算技术引导网络应用的核心从中央服务器向网络边缘的终端设备扩散.使互联网“去中心化”的趋势越来越明显,从而打破了大门户网站控制信息流动的局面,使普通用户慢慢退化的对网络的控制权和对内容的创造权得以恢复。 对等计算技术的应用主要体现在这四个方面:对等计算、协同工作、搜索引擎与文件交换。 然而,由于对等网络中的每个节点都可随时加入或退出网络,而网络资源是分布在各个节点上的,因此,在这种动态网络的波动中,如何高效地查询定位到所需资源是对等计算系统研究的一个核心问题。
[0004] 目前,拓扑结构、分布搜索算法及安全技术是影响对等计算网络性能的3个关键技术。 分布搜索算法即如何找到存储有特定数据的节点的方法,目前可归为三大类:基于集中目录模型的方法、泛洪方法和基于路由方法。 基于资源路由方法是当前比较先进的搜索算法,其中分布式哈希表最为流行。 分布式哈希表基本思想是利用哈希函数将分布存放在各对等节点上的网络资源映射为某一范围内的关键值,然后通过关键值来查询检索相应的资源。
[0005] 分布式哈希表的基本原理是对等计算网络中的每个节点和资源都通过散列函数作变换产生一个唯一的ID标识自己,每个节点负责管理一部分ID空间,而资源根据自己的ID映射到相应的节点,每个节点都维护一个路由表,查询定位资源时通过路由表进行选择性转发,经过一定次数的跳转就能查询到所需资源,所以非常方便。基于DHT的具体实现有多个,如Chord、Tapestry、Kademlia、CAN等,其中Kademlia协议被主流对等计算下载软件如EMule、Bitcomet、BitSpirit等采用。
[0006] Kademlia属于一种典型的结构化对等计算覆盖网络(StructuredP2P Overlay Network),以分布式的应用层全网方式来进行信息的存储和检索是其尝试解决的主要问题。 在Kademlia网络中,所有信息均以<关键字,信息值>的哈希表条目形式加以存储,这些条目被分散地存储在各个节点上,从而以全网方式构成一张巨大的分布式哈希表。 Kademlia技术的最大特点之一就是能够提供快速的节点查找机制,并且还可以通过参数进行查找速度的调节。
[0007] 但由于Kademlia网络节点经过散列之后,物理位置信息被破坏,来自同一个子网的多个节点的节点号可能逻辑距离很远,路由过程可能需要跨越多个广域网节点,从而导致一个信息的查询占用过多的网络资源,使得应用系统响应时间长,网络速度减慢。 另外,在网络搜索中,有50%以上的情况都在搜索热门资源,而现有的查询一个信息,无论是否热门资源,都采用同一种方法搜索,存在重复使用网络资源,因而搜索时间长,且使网络速度减慢。
[0008] TTL(Time To Live)表示生存时间,在网络中,TTL-k是IP协议包中的一个值,它告诉网络路由器包在网络中的路程是否太长而应被丢弃。 是确定一个路程距离,超过此距离就把包丢弃。 由于每个路由器都要把TTL值减一,TTL表示包在被丢弃前最多能经过的路由器个数。 当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

发明内容

[0009] 本发明的目的是:提供一种快速定位对等网络目标节点标识的方法,该方法在对等节点中加入记录节点,且在物理层上跳数小于设定TTL-k,因此,在查询过程中,上层的逻辑覆盖图与底层的物理拓扑图较匹配,系统响应时间相应地减少,从而使得网络速度加快,查询延时会大大降低,信息查询效率得到了进一步的提高。
[0010] 为了达到上述目的,本发明采用如下技术方案:
[0011] 一种快速定位对等网络目标节点标识的方法,该方法包含下列步骤:
[0012] a、对等节点通过自身的IP地址的160比特安全哈希算法散列得到唯一的ID,通过ID加入到分布式哈希空间;
[0013] b、在对等节点加入对等网络时,探测在区域内TTL-k的邻居中是否有记录节点列表存在,如果存在,则将该记录节点放入K桶中,并加以标注,所加入的对等节点成为普通节点;如果不存在,则所加入的对等节点自身成为一个记录节点,并建立长度为100至1000的列表,每个列表保存TTL-k的邻居中其它节点成功查询的关键字及查询该关键字的路径;记录节点在退出对等网络时,把记录节点列表交给距自身TTL-k邻居中与自己网络延时最小的对等节点负责维护;
[0014] 记录节点列表信息的更新方法:记录节点接收到其它节点的关键字查询结果时,如果有空的列表,当列表中保存的信息没有被查询的关键字,将该关键字及成功查询该关键字的路径添加到空列表中,当被查询的关键字已保存在某个列表中,则将该列表移至列表队尾;
[0015] 如果没有空的列表,当被查询的关键字已在列表中,把该关键字所在的列表移至队尾;当被查询的关键字不在列表中,PING最早查询队首关键字的节点,有响应时,列表不变;没有响应时,将列表队首信息更换成所查询的关键字及查询该关键字的路径,并把该列表移至队尾;
[0016] c、每个节点在加入对等网络时,均需建立和维护160个列表,一个列表表示一个K桶,每个K桶设定存放15-25个对等节点,每个节点设有节点ID、IP地址、UDP端口、往返时间四个信息,每个对等节点的第i个列表存放其它与自身对等节点ID的异或i i+1值为2-2 的对等节点,1≤i≤160,对等节点建立了160个K桶后,将在TTL-k的邻居中查找到的其它对等节点加入到自身的K桶;
[0017] 当查询发起者向记录节点发出待查询信息时,如果查询发起者的对等节点与该记录节点的异或值所对应的K桶未满所设定的个数,且所访问的记录节点不在K桶时,把该节点添加到K桶;并将该K桶所有记录节点按照PING时间的长短依次重新排序,时间最短的排在队首;
[0018] 如果查询发起者的对等节点与该记录节点的异或值所对应的K桶已达到所设定的个数,则当所访问记录节点的PING时间大于队尾对等节点的PING时间时,K桶不变,当所访问记录节点的PING时间小于队尾记录节点的PING时间时,则将队尾记录节点替换为所访问的对等节点,将该K桶所有记录节点按照PING时间的长短依次重新排序,时间最短的排在队首;
[0019] d、其中,信息查询的方法包括以下步骤:
[0020] d1、当对等节点要查询信息时,首先向自身TTL-k邻居中的记录节点发出待查询信息,如果该记录节点存在所查询信息,则返回查询结果,查询结束;
[0021] d2、如果待查询的信息不存在,由查询发起者从自身的K桶中筛选出3-10个未被查询且与目标ID异或值相对较小的对等节点,如果这些对等节点中有待查询信息,查询结束;
[0022] d3、否则向这些对等节点发送异步查询请求,被查询对等节点收到请求后,从自身的K桶中筛选出与目标ID异或值相对较小的对等节点,并将这些对等节点的信息返回给查询发起者;
[0023] d4、发起者在收到返回信息后,按照步骤c的规定,对收到的对等节点信息进行舍取和重新排列,再次从自身K桶中筛选出3-10个没有请求过,且与目标ID异或值相对较小的对等节点发出查询请求,如果这些对等节点中有待查询信息,查询结束,并执行步骤d5;否则返回步骤d2;
[0024] d5、在查询过程中,将没有响应的对等节点从K桶中删除;
[0025] d6、查询成功后向自身TTL-k邻居中的记录节点发送本次查找的关键字及查询路径的信息;
[0026] d7、记录节点退出对等网络时把自己所维护的记录列表交给距自身TTL-k邻居中与自己网络延时最小的对等节点,普通对等节点则直接退出。
[0027] 与现有技术相比,本发明的优点是:由于现有结构化对等网络中,网络节点经过散列后,物理位置信息被破坏,来自同一个子网的多个节点的节点号逻辑距离可能很远,路由过程可能需要跨越多个广域网节点,从而导致一个信息的查询占用过多的网络资源,使得应用系统响应时间长,网络速度减慢。 由于本发明K桶里的对等节点的距离,在物理层上跳数都小于TTL-k,因此查询过程中,上层的逻辑覆盖图与底层的物理拓扑图较匹配,查询时所占用的网络资源减少,应用系统响应时间相应地减少,加上K桶里所保存的节点与查询者的往返延时都比较小,从而使得网络速度加快,查询延时会大大降低。
[0028] 另外在网络搜索中,有50%以上的情况都在搜索热门资源,本发明加入记录节点后,相同的资源采用相同的路径查找,减少了重复,使得网络资源消耗降低,信息查询效率得到了进一步的提高。

具体实施方式

[0029] 下面对本发明作进一步的说明。
[0030] 一种快速定位对等网络目标节点标识的方法,该方法包括以下步骤:
[0031] a、对等节点通过自身的IP地址的160比特安全哈希算法散列得到唯一的ID,通过ID加入到分布式哈希空间,在对等网络中,关键字同样被哈希算法散列成160比特的值,这个值和对等节点的ID值形式完全相同,因此在分布式哈希对等网络中,相应的关键字被ID值与关键字的160比特的哈希值相同的对等节点维护,所以关键字的查找可以简单的变成对等节点ID的查找;
[0032] b、在对等节点加入对等网络时,探测在区域内TTL-k的邻居中是否有记录节点列表存在,如果存在,则将该记录节点放入K桶中,并加以标注,所加入的对等节点成为普通节点;如果不存在,则所加入的对等节点自身成为一个记录节点,并建立长度为100至1000的列表,每个列表保存TTL-k的邻居中其它节点成功查询的关键字及查询该关键字的路径;记录节点在退出对等网络时,把记录节点列表交给距自身TTL-k邻居中与自己网络延时最小的对等节点负责维护;
[0033] 记录节点列表信息的更新方法:记录节点接收到其它节点的关键字查询结果时,如果有空的列表,当列表中保存的信息没有被查询的关键字,将该关键字及成功查询该关键字的路径添加到空列表中,当被查询的关键字已保存在某个列表中,则将该列表移至列表队尾;
[0034] 如果没有空的列表,当被查询的关键字已在列表中,把该关键字所在的列表移至队尾;当被查询的关键字不在列表中,PING最早查询队首关键字的节点,有响应时,列表不变;没有响应时,将列表队首信息更换成所查询的关键字及查询该关键字的路径,并把该列表移至队尾;
[0035] c、每个节点在加入对等网络时,均需建立和维护160个列表,一个列表表示一个K桶,每个K桶设定存放15-25个对等节点,每个节点设有节点ID、IP地址、UDP端口、往返时间四个信息,每个对等节点的第i个列表存放其它与自身对等节点ID的异或i i+1值为2-2 的对等节点,1≤i≤160,对等节点建立了160个K桶后,将在TTL-k的邻居中查找到的其它对等节点加入到自身的K桶;
[0036] 当查询发起者向记录节点发出待查询信息时,如果查询发起者的对等节点与该记录节点的异或值所对应的K桶未满所设定的个数,且所访问的记录节点不在K桶时,把该节点添加到K桶;并将该K桶所有记录节点按照PING时间的长短依次重新排序,时间最短的排在队首;
[0037] 如果查询发起者的对等节点与该记录节点的异或值所对应的K桶已达到所设定