CN102833169A - 一种常数复杂度的对等网络目的资源定位方法 - Google Patents
一种常数复杂度的对等网络目的资源定位方法 Download PDFInfo
- Publication number
- CN102833169A CN102833169A CN2012103229367A CN201210322936A CN102833169A CN 102833169 A CN102833169 A CN 102833169A CN 2012103229367 A CN2012103229367 A CN 2012103229367A CN 201210322936 A CN201210322936 A CN 201210322936A CN 102833169 A CN102833169 A CN 102833169A
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- network
- peer
- routing table
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000008569 process Effects 0.000 claims abstract description 22
- 230000006854 communication Effects 0.000 claims abstract description 8
- 238000003860 storage Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 5
- 230000004807 localization Effects 0.000 claims description 5
- 238000004519 manufacturing process Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 12
- 238000009826 distribution Methods 0.000 abstract description 2
- 125000004122 cyclic group Chemical group 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 11
- 238000011084 recovery Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000014594 pastries Nutrition 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种常数复杂度的对等网络目的资源定位方法,包括分配标识符、通信过程、路由表、资源发布、资源定位、路由信息维护等内容。通过将网络中节点进行哈希编码,形成一个循环的路由表,通过对路由表中的节点分发网络的更新消息,做到维护全体节点的全局路由表,从而实现在在高度动态变化的互联网中通过常数复杂度的路由过程就可以快速定位到网络中分布式目标资源,大部分情况下每次定位目标资源都只需要一次查询,同时只需要很少网络开销来定位资源和维护整个对等网络。
Description
技术领域
本发明涉及到互联网中分布式资源的搜索与定位技术,主要涉及到一种在对等网络中通过网络节点之间常数跳的网络路由快速查找所需网络资源的定位方法。
背景技术
随着计算机网络技术和互联网的高速发展,世界各地的人们都可以通过互联网分享所需的资源,互联网络缩短了人与人之间的距离。然而,随着互联网应用的不断深入,日常生活中各种资源信息与互联网的关系日益密切,人们对资源共享和资源交换的需求也越来越广泛,为了满足人们日益增长的资源共享与交流的需求,快速而又有效地定位目标资源已成为人们迫切需要解决的问题。对等网络技术的产生和发展,在解决这一问题上起到了积极的作用。对等网络技术是上个世纪末发展起来的一种计算机网络技术,它强调所有网络节点(如计算机、数字终端等,简称“节点”)都是对等的实体,每个网络节点既可以是资源与服务的提供者,又可以是资源与服务的接受者。对等网络技术与传统网络技术(如客户端/服务器)不同,对等网络技术拥有充分利用边缘、闲杂、零碎的网络、存储和计算资源的能力,具有高度的扩展性与容错性,它可以有效避免服务过载、资源瓶颈等问题,在学术界、工业界、用户中都受到广泛关注和普遍欢迎。
现行的对等网络技术,大多数采用分布式哈希表,采用这种技术的对等网络没有设置主控服务器,所有的网络路由都由节点完成,其中每个节点只需要负责网络中所知道的路由选择、部分信息存储与查询,通过网络中所有节点的共同努力来完成整个网络所需的路由选择和信息存储与查询。分布式哈希表技术具有如下主要特点:
分布性:网络中节点间没有集中式和中央式的控制机制。
扩展性:网络可以拥有从几十个节点到千万个节点不等规模,网络具有较好的可扩展性。
容错性:网络在节点不断加入、离开、故障的动态变化情况下,仍然能保证网络可靠有效地工作。
现在大多数对等网络协议都是采用分布式哈希表,例如Chord、Pastry、CAN、Kademlia等,其中最流行的是Kademlia协议,采用它的对等网络应用系统主要有:eMule、BitTorrent、BitComet、BitSpirit、迅雷、快车等。虽然现在大多数对等网络协议在高动态变化的网络中拥有一定的分布性、扩展性、容错性,但是它们在定位资源的时候的查询次数与网络中节点数量成正比,即:节点越多,查询次数也就越多;节点越少,查询次数也就越少。在一个大规模的网络中,这些协议需要多次查询才能找到目标资源,在目标资源查询过程中耗费大量的网络带宽资源,容易产生大量网络流量,造成网络局部拥塞现象的出现。
发明内容
本发明的目的是为了克服上述现有技术的不足,提供一种常数跳对等网络目标资源定位方法,应用于大规模的网络中,能减少网络目标资源定位时的查询的次数,实现在在高度动态变化的互联网中通过常数复杂度的路由过程就可以快速定位到网络中分布式目标资源,在大部分情况下只需要一次查询就能完成目标资源的定位,同时只需要很少网络开销来定位资源和维护整个对等网络。
为实现上述目的,本发明采用的技术方案如下:
一种常数复杂度的对等网络目的资源定位方法,其特征是,在对等网络中,节点N1进行资源定位的步骤包括:
1)节点N1在自己路由表中搜索距离所求资源最近的节点N2,然后节点N1向节点N2发送资源查询的请求;
2)如果节点N2在线并且节点N2存储有所求资源信息,则由节点N2发送所求资源信息给N1,完成资源定位,否则执行步骤3),资源信息至少由资源标识符ID和资源索引value组成,资源标识符ID为对等网络上资源的标识符,需要保证每个资源的资源标识符ID都是唯一的;资源索引value 是记录拥有资源的节点信息的文件,节点信息指节点和资源的标识符ID、网络IP地址、网络通讯使用的端口等信息;
3)如果节点N2在线,则由节点N2发送一个或多个最接近所求资源的节点信息给节点N1,让节点N1更新自己的路由表;
4)如果节点N1接收不到节点N2的返回信息,节点N1将从自己的路由表中搜索没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
5)如果节点N2返回的信息中没有所求资源信息,而只有节点信息,则节点N1从这些节点信息和路由表中选出没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
6)节点N1将重复这个过程,直到定位到资源或者查询过K个节点都没有定位成功,则不再继续向其他节点发送查询资源的请求,其中,K为规定的常数,即查询路由的跳数,其取值范围为2至20;
所述对等网络包括五种通信过程:探询、存储、获取资源、刷新、获取路由表,所述探询是指探测一个节点是否在线,所述存储是指通知节点存储资源信息,所述获取资源是从节点获取资源信息,所述刷新是指向节点发布路由的变化消息,所述获取路由表是某个节点从其它节点获取网络节点信息。
所述对等网络的每个节点都维护一张全局的路由表,所述路由表由所有在线节点的节点信息组成。
所述对等网络中,节点N1发布共享资源的步骤包括:
1)节点N1确定所述资源的标识符ID,并生成资源信息;
2)节点N1查找自己的路由表,找到距离所述资源最近的规定数量的节点的ID;
3)节点N1向所述规定数量的节点发送存储消息,让这些节点存储资源信息;
4)如果某个节点没有返回响应信息,则进行步骤5),否则,进行步骤6);
5)向没有发送过存储信息的节点中的最接近所述资源的节点发送存储信息,让该节点存储资源信息;
6)如果所述规定数量的节点全部进行存储操作并得到回复,则完成资源发布,否则进行步骤5);
上述的一种常数复杂度的对等网络目的资源定位方法,还包括以下三种情况时维护路由信息的步骤:
(1)节点加入所述对等网络时:
A.欲加入节点将已知节点信息加入自己的路由表,然后向已知节点请求自己附近的节点信息;
B.在得到附近的节点信息后,欲加入节点设置刷新域为整个网络,对距离自己最近的节点进行刷新操作,向其发送获取路由表请求,获取全局路由表;
C.节点收到全局刷新请求后,以自己为开始节点,进行全网路由信息的更新,并且回复欲加入节点全局路由表;
D.欲加入节点收到全局路由表后就完成将收到的全局路由表整合为自己路由表,如果没有收到回复,则欲加入节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复;
(2)节点退出所述对等网络时:
A.欲退出节点从自己路由表中找出离自己最近的节点;
B.欲退出节点设置刷新域为整个网络,对所述最近的节点进行刷新操作;
C.如果所述最近的节点回复消息,则欲退出节点离开网络;如果所述最近的节点没有回复消息,则欲退出节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复,然后下线;
D.如果有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新;
(3)节点意外离线时:
A.发现意外离线节点后,发现节点从自己路由表中找出离意外离线节点最近的节点。
B.发现节点设置刷新域为整个网络,对所述最近的节点进行刷新操作。
C.如果所述最近的节点回复消息,则网络中其他节点的路由更新由所述最近的节点负责;如果所述最近的节点没有回复消息,则发现节点向没有进行刷新操作的离意外离线节点最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息。
D.如有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新。
所述全网路由信息的更新,步骤包括:
1)由所述的开始节点分别按其路由表的正向和逆向两个方向上对所述对等网络各节点上的路由信息进行刷新操作,两个方向的刷新范围各为所述对等网络全部节点的一半;
2)所述开始节点从所述两个方向的刷新范围中分别选出一个可用的中间节点,并向所述中间节点发送刷新请求,然后分别将所述两个方向的刷新范围中从中间节点到结尾节点的各个节点的刷新交由各自的中间节点负责;
3)所述开始节点分别在所述的两个方向重复步骤2),直到所述两个方向上都完成了并发次数α次的刷新操作或者剩下的刷新范围内的节点少于刷新数量n, 其中,并发次数α是某个方向刷新中最大的网络并发数,取值范围为2至10;刷新数量n是调整刷新方式的阈值,取值范围为2至8;如果其中一个方向上完成了并发次数α次的刷新操作,则所述开始节点对其该方向上最近节点进行刷新操作,并将该方向剩下的刷新范围的刷新操作指派给所述最近节点;如果剩下的刷新范围中的节点少于刷新数量n,则所述开始节点对其最近节点进行刷新操作,所述的最近节点再对该方向上下一个节点进行刷新操作,直到最后一个节点。
所述的对等网络中,所有的节点和资源都通过哈希算法得到一个唯一的ID。
本发明的优点是:
1.常数复杂度的查询就可以快速成功的定位到目标资源;
2.在大部分情况下只需要一次查询就可以快速成功的定位到目标资源;
3.维护整个对称网络正常运行只需要极小网络开销;
4.网络中每个节点的负载平衡,每个节点都承担了维护网络的责任,整个任务分担是均衡平均,不存在网络开销特别大的节点。
具体实施方式
下面结合具体实施方式对本发明做进一步的描述。
本发明方法包括分配标识符、通信过程、路由表、资源发布、资源定位、路由信息维护等内容。通过将网络中节点进行哈希编码,形成一个环形的路由表,通过对路由表中的节点分发网络的更新消息,做到维护全体节点的全局路由表,从而实现在在高度动态变化的互联网中通过常数复杂度的路由过程就可以快速定位到网络中分布式目标资源,大部分情况下每次定位目标资源都只需要一次查询,同时只需要很少网络开销来定位资源和维护整个对等网络。
下面结合具体实施方式对本发明做进一步的描述。
本发明提供的一种常数复杂度的对等网络目的资源定位方法,在对等网络中,节点N1进行资源定位的步骤有:
1)节点N1在自己路由表中搜索距离所求资源最近的节点N2,然后节点N1向节点N2发送资源查询的请求;
2)如果节点N2在线并且节点N2存储有所求资源信息,则由节点N2发送所求资源信息给N1,完成资源定位,否则执行步骤3);
3)如果节点N2在线,则由节点N2发送一个或多个最接近所求资源的节点信息给节点N1,让节点N1更新自己的路由表;
4)如果节点N1接收不到节点N2的返回信息,节点N1将从自己的路由表中搜索没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
5)如果节点N2返回的信息中没有所求资源信息,而只有节点信息,则节点N1从这些节点信息和路由表中选出没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
6)节点N1将重复这个过程,直到定位到资源或者查询过K个节点都没有定位成功,则不再继续向其他节点发送查询资源的请求,其中,K为规定的常数,即查询路由的跳数,其取值范围为2至20;
其中,N1、N2、N3为对等网络中的节点;资源信息至少由资源标识符ID和资源索引value组成,资源标识符ID为对等网络上资源的标识符,需要保证每个资源的资源标识符ID都是唯一的;资源索引value 是记录拥有资源的节点信息的文件,节点信息指节点和资源的标识符ID、网络IP地址、网络通讯使用的端口等信息;
在对等网络中,各个节点之间需要进行通信,在上述对等网络采用的通信方式包括五种过程:探询、存储、获取资源、刷新、获取路由表。
探询用来探测一个节点是否在线。假设有网络中存在节点N69和节点N104,不存在节点N17。当N69向N104发送一个探询消息时,N104回对N69进行回复,N69收到回复消息后即知道N104在线。当N69向N17发送一个探询消息时,因为N17不在网络中,所以N69没有接收到N17的回复消息,这时N69不能确认N17在线。
存储用于通知节点存储资源信息。假设有网络中只存在节点N69和节点N104,节点N105已下线。节点N69的路由表中有节点N104和节点N105的信息,并且假设K为1。当节点N69发布资源R105时,首先从自己的路由表中寻找到最接近资源R105的节点N105,然后节点N69向节点N105发送存储消息,因为资源R105不在线,所以节点N69没有接受到节点N105的回复消息,然后节点N69从自己的路由表中找出距离资源R105最近而又没有进行过存储操作的节点N104,并对节点N104进行存储操作,节点N104接收到存储消息后发送一个回复消息给节点N69,这时节点N69完成资源发布。其中节点N69对节点N104和节点N105的操作就是存储操作。
获取资源用于一个节点向其他节点获取资源信息。假设有网络中只存在节点N69和节点N104,节点N105已下线。节点N69的路由表中有节点N104和节点N105的信息,节点N104储存了资源R105的资源信息。当节点N69获取需要资源R105时,首先从自己的路由表中寻找到最接近资源R105的节点N105,然后节点N69向节点N105发送获取资源消息,因为资源R105不在线,所以节点N69没有接受到节点N105的回复消息,然后节点N69从自己的路由表中找出距离资源R105最近而又没有进行过获取资源操作的节点N104,并对节点N104进行获取资源操作,节点N104接收到获取资源消息后发送一个回复消息给节点N69,这个回复消息内包含了资源R105的资源信息,节点N69成功获取资源。其中节点N69对节点N104和节点N105的操作就是获取资源操作。
刷新用于一个节点向其它节点发布路由的变化消息。假设网络中存在节点N17、节点N18、节点N19、节点N20以及一个或多个其它节点,并发次数α为2,刷新数量n为2。其中,并发次数α是某个方向刷新中最大的网络并发数,刷新数量n是调整刷新方式的阈值。当N17需要在节点N17至节点N20间更新路由信息,首先向节点N18至节点N20范围内的中间节点N19发送一个刷新信息,通知N19,并让将节点N19至节点N20的范围内,包括节点N19和节点N20以及一个或多个其它各个节点更新路由信息的操作交由节点N19负责。当N17收到N19的消息后,则完成一次刷新操作。
获取路由表用于一个节点向其它节点获取全部或者部分网络节点信息。假设节点N17刚刚上线,只知道网络中另外两个节点N33和N88,标识符的取值范围是0~127。则节点N17可以向节点N33发出获取路由表消息,让节点N33发送ID范围0~63的节点信息给自己;向节点N88发送获取路由表消息,让其返回ID范围64~127的节点信息。
本发明方法的对等网络中,为了可以只通过一次查询就能找到所需要的资源,每个节点都维护一张全局的路由表,该路由表由所有已知在线节点的节点信息组成。将所有可能的ID值从小到大排列,然后最小值和最大值连接形成一个环,这就是路由表。每个节点都可以快速查询自己的路由表,拥有获得是否拥有特定标识符ID的节点信息或者离特定标识符ID节点最近或者最远的一组节点的能力。两个标识符为分别为ID1 与 ID2 的节点,其距离计算的方法是:
其中,S为两个节点的距离,l为标识符空间的最大值。
这种计算方式保证了从标识符为ID1的节点到标识符为ID2的节点的距离与从标识符为ID2的节点到标识符为ID1的节点的距离相同,也就是节点间距离计算是没有方向的。例如:在一个标识符空间为20到27的网络中,要计算网络中ID为15和88的两个节点的距离S,则计算方式和结果为:
[0029] 当某个节点有资源在网络中共享时,为了让其他节点可以快速定位到该资源,需要在对等网络中发布资源。发布资源就是把资源的索引文件均匀的分散到对等网络中。在本发明方法的上述对等网络中,节点N1发布共享资源的步骤包括:
1)欲发布资源的节点N1对资源进行计算,得到资源的标识符ID,并生成资源信息。
2)节点 N1查找自己的路由表,找到距离资源最近的规定数量K个节点的ID。
3)节点 N1向该规定数量K个节点发送存储消息,让这些节点存储资源信息 。
4)如果有节点没有返回响应信息,则进行步骤5),否则,进行步骤6)。
5)继续向没有发送过存储信息的节点中的最接近该资源的节点发送存储信息,让该节点存储资源信息。
6)如果已对规定数量K个节点进行存储操作并得到回复,则完成资源发布,否则进行步骤5)。
下面用例子对资源发布的步骤作进一步的描述。假设网络中节点N1发布资源R69,这时网络中仅存在节点N1、N33、N64、N69、N108,N1路由表中有节点N33、N64、N69、N71、N108的信息。网络的标识符空间为20到27,规定数量K为2。节点N1发布资源R69的过程为:
1)节点 N1生成资源R69的资源信息;
2)节点N1查找自己路由表,找到距离资源最近的两个节点N69和N71;
3)节点 N1向两个节点N69和N71发送存储消息;
4)节点N69接收到存储信息,存储资源R69的资源信息,并发送回复消息;
5)节点N1只收到节点N69的回复而没有收到节点N71的回复消息;
6)节点N1在自己的路由表中寻找没有发送过存储消息的节点中距离资源R69最近的节点;
7)节点N1按步骤6)找到节点N64,并向节点N64发送存储信息;
8)节点N64接收到存储信息,存储资源R69的资源信息,并发送回复消息;
9)节点N1收到节点N64的回复消息,完成资源发布。
本发明方法中,为了保证一次查询就可以成功定位资源,还采取维护路由信息的方法,针对节点加入网络、节点退出网络、节点意外离线三种情况进行路由信息的维护。
一个节点欲加入本发明方法的上述对等网络时,必须至少知道一个已经在该对等网络中的节点,节点加入网络时路由信息的维护过程如下:
A.欲加入节点将已知节点信息加入自己的路由表,然后向已知节点请求自己附近的节点信息;
B.在得到附近的节点信息后,欲加入节点设置刷新域为整个网络,对距离自己最近的节点进行刷新操作,向其发送获取路由表请求,获取全局路由表;
C.距离欲加入节点最近的节点收到全局刷新请求后,以自己为开始节点,进行全网路由信息的更新,并且回复欲加入节点全局路由表;
D.欲加入节点收到全局路由表后就完成将收到的全局路由表整合为自己路由表,如果没有收到回复,则欲加入节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复。
对节点加入网络时路由信息的维护的步骤作进一步的描述。假设网络中有节点N17、N23、N65、N96和N107,节点N18准备加入网络,节点N18只知道节点N23,网络中所有节点都有全局路由信息。节点N18加入网络时的路由信息的维护过程如下:
A.节点N18向节点N23发送获取路由表信息,并告知节点N23自己加入网络。
B.节点N23接收到消息后,查找自己路由表,没有发现节点N18,则判断节点N18确实为新上线的节点。
C.节点N23将自己的路由表中N18附近的节点信息发给发送给节点N18。
D.节点N18用收到的路由表信息扩展自己的路由表,然后在自己的路由表中查找距离自己最近的节点。
E.假设节点N18查找到的距离自己最近的节点为节点N17,节点N18对节点N17进行刷新操作,刷新范围为整个网络。
F.节点N17在收到节点N18的请求后,向其发送全局路由表,由节点N17作为开始节点进行全网路由的更新。
节点退出网络是指节点主动离开网络,并且在离开前向网络发出刷新操作,在全网更新路由信息的情况,此时路由信息的维护过程如下:
A.欲退出节点从自己路由表中找出离自己最近的节点;
B.欲退出节点设置刷新域为整个网络,对所述最近的节点进行刷新操作;
C.如果所述最近的节点回复消息,则欲退出节点离开网络;如果所述最近的节点没有回复消息,则欲退出节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复,然后下线;
D.如果有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新;
对节点退出网络时路由信息的维护的步骤作进一步的描述。假设网络中有节点N17、N18、N23、N65、N96和N107,节点N18准备退出网络,网络中所有节点都有全局路由信息。节点N18退出网络时的路由信息的维护过程如下:
A.节点N18找到离自己最近的节点N17,对节点N17进行刷新操作,让其在全网进行路由刷新操作,告知自己离开网络的消息。
B.节点N17接收到消息后,回复节点N18。
C.如果节点N18接受到节点N17回复信息,则离开网络。否则对N23进行与对N17一样的操作。
D.节点N17查找自己路由表中节点N18的节点信息,查找到后即删除节点N18的节点信息,并由节点N17作为开始节点进行全网路由的更新。
除了节点自发的加入和退出网络外,还存在节点意外离线这种情况,对于离线时没有对网络进行节点退出时全网路由更新的节点离线,都视为节点意外离线。意外离线的节点的路由信息维护由距离该意外离线节点最近的节点负责,此时的路由信息的维护过程为:
A.发现意外离线节点后,发现节点从自己路由表中找出离意外离线节点最近的节点。
B.发现节点设置刷新域为整个网络,对所述最近的节点进行刷新操作。
C.如果所述最近的节点回复消息,则网络中其他节点的路由更新由所述最近的节点负责;如果所述最近的节点没有回复消息,则发现节点向没有进行刷新操作的离意外离线节点最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息。
D.如有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新。
对节点意外离线时路由信息的维护的步骤作进一步的描述。假设网络中有节点N17、N18、N23、N65、N96和N107,节点N18因某种原因没有退出网络就掉线了,网络中所有节点都有全局路由信息。节点N18意外离线时的路由信息的维护过程如下:
A.发现有节点意外离线的发现节点N107向节点N18发送信息。
B.如果节点N107没有收到节点N18的回复信息,并且如果连续两次都没有收到返回消息,则判断节点N18意外离线。
C.节点107在自己路由表中寻找距离节点N18最近的节点,假设寻找到的最近的节点为节点N17。
D.节点N107向节点N17发送刷新请求,刷新范围为整个网络,刷新内容为节点N18离线。
E.节点N17收到消息后对节点N107进行回复,并且向节点N18发送探询信息。
F.节点N17没有收节点N18的回复信息,判断N18确实离线,执行步骤G,否则,如果节点N18回到了网络中又回复了节点N17的消息,节点N17收到节点N18的回复消息,此时节点N17判断节点N18没有离线,节点N17不进行全网路由的更新。
G.节点N17作为开始节点,进行全网路由信息的更新。
上述三种情况下,全网路由信息的更新步骤包括:
1)由所述的开始节点分别按其路由表的正向和逆向两个方向上对所述对等网络各节点上的路由信息进行刷新操作,两个方向的刷新范围各为所述对等网络全部节点的一半;
2)所述开始节点从所述两个方向的刷新范围中分别选出一个可用的中间节点,并向所述中间节点发送刷新请求,然后分别将所述两个方向的刷新范围中从中间节点到结尾节点的各个节点的刷新交由各自的中间节点负责;
3)所述开始节点分别在所述的两个方向重复步骤2),直到所述两个方向上都完成了并发次数α次的刷新操作或者剩下的刷新范围内的节点少于刷新数量n;如果其中一个方向上完成了并发次数α次的刷新操作,则所述开始节点对其该方向上最近节点进行刷新操作,并将该方向剩下的刷新范围的刷新操作指派给所述最近节点;如果剩下的刷新范围中的节点少于刷新数量n,则所述开始节点对其最近节点进行刷新操作,所述的最近节点再对该方向上下一个节点进行刷新操作,直到最后一个节点。
对上述三种情况下全网路由信息的更新步骤作进一步的描述。假设网络标识符的范围为1至16,ID分别为1、3、4、5、6、7、8、9、10、11、12、13、14、15的节点N1、N3、N4、N5、N6、N7、N8、N9、N10、N11、N12、N13、N14、N15在线,ID为16的节点N16离线,N1作为开始节点负责全网更新工作,规定并发次数α为3,刷新数量n为2,此时,全网路由更新的过程如下:
1)节点N1将路由更新范围划分为两个区域,一个范围的节点ID从3到9,另外一个范围的节点ID从15到9。
2)节点N1向两个更新区域的中间节点N13和N5发送刷新消息,并将ID为12至9范围内的节点更新工作交由节点N13负责,ID范围为6至9内的节点更新工作交由节点N5负责。
3)节点N13和N5收到消息后,回复节点N1并将节点N16从路由表中移除,节点N13将节点N10和N9的路由信息更新工作交由节点N11负责,节点N5将节点N8和N9的路由信息更新工作交由节点N7负责。
4)节点N1收到节点N13和N5回复后,对上述两个更新区域内剩下的节点进行更新。因为每个更新范围内剩下的节点数都少于刷新数量n,所以N1对N3和N15进行更新操作,让N3负责N3至N4范围内的更新,让N15负责N15至N14的更新。
5)节点N7收到刷新消息后,将节点N16从路由表中移除,回复节点N5,并向节点N8发送刷新消息;节点N11收到刷新消息后,将节点N16从路由表中移除,回复节点N13,并向节点N10发送刷新消息;
6)节点N3收到消息后,将节点N16从路由表中移除,并对节点N4进行刷新操作;节点N15收到消息后,将节点N16从路由表中移除,并对节点N14进行刷新操作。
7)节点N8收到消息后,将节点N16从路由表中移除,并对节点N9进行刷新操作;节点N10收到消息后,将节点N16从路由表中移除,并对节点N9进行刷新操作。
8)节点N14收到消息后,将节点N16从路由表中移除,并对节点N1进行更新成功确认操作;节点N14收到消息后,将节点N16从路由表中移除,并对节点N1进行更新成功确认操作。
9)节点N9收到消息后,将节点N16从路由表中移除,并对节点N7和N11发送更新成功确认通知。至此,完成节点N16离线时的全网路由信息的更新操作。
以上仅为通过优选实施例对本发明的主要原则和精神进行的陈述,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种常数复杂度的对等网络目的资源定位方法,其特征是,在对等网络中,节点N1进行资源定位的步骤包括:
1)节点N1在自己路由表中搜索距离所求资源最近的节点N2,然后节点N1向节点N2发送资源查询的请求;
2)如果节点N2在线并且节点N2存储有所求资源信息,则由节点N2发送所求资源信息给N1,完成资源定位,否则执行步骤3);
3)如果节点N2在线,则由节点N2发送一个或多个最接近所求资源的节点信息给节点N1,让节点N1更新自己的路由表;
4)如果节点N1接收不到节点N2的返回信息,节点N1将从自己的路由表中搜索没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
5)如果节点N2返回的信息中没有所求资源信息,而只有节点信息,则节点N1从这些节点信息和路由表中选出没有搜索过的距离所求资源最近的节点N3,并向节点N3发送资源查询的请求;
6)节点N1将重复这个过程,直到定位到资源或者查询过K个节点都没有定位成功,则不再继续向其他节点发送查询资源的请求,其中,K为规定的常数,即查询路由的跳数,其取值范围为2至20;
其中,N1、N2、N3为对等网络中的节点;资源信息至少由资源标识符ID和资源索引value组成,资源标识符ID为对等网络上资源的标识符,需要保证每个资源的资源标识符ID都是唯一的;资源索引value 是记录拥有资源的节点信息的文件,节点信息指节点和资源的标识符ID、网络IP地址、网络通讯使用的端口等信息。
2.根据权利要求1所述的一种常数复杂度的对等网络目的资源定位方法,其特征是,所述对等网络包括五种通信过程:探询、存储、获取资源、刷新、获取路由表,所述探询是指探测一个节点是否在线,所述存储是指通知节点存储资源信息,所述获取资源是从节点获取资源信息,所述刷新是指向节点发布路由的变化消息,所述获取路由表是某个节点从其它节点获取网络节点信息。
3.根据权利要求2所述的一种常数复杂度的对等网络目的资源定位方法,其特征是还包括以下三种情况时维护路由信息的步骤:
(1)节点加入所述对等网络时:
A.欲加入节点将已知节点信息加入自己的路由表,然后向已知节点请求自己附近的节点信息;
B.在得到附近的节点信息后,欲加入节点设置刷新域为整个网络,对距离自己最近的节点进行刷新操作,向其发送获取路由表请求,获取全局路由表;
C.节点收到全局刷新请求后,以自己为开始节点,进行全网路由信息的更新,并且回复欲加入节点全局路由表;
D.欲加入节点收到全局路由表后就完成将收到的全局路由表整合为自己路由表,如果没有收到回复,则欲加入节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复;
(2)节点退出所述对等网络时:
A.欲退出节点从自己路由表中找出离自己最近的节点;
B.欲退出节点设置刷新域为整个网络,对所述最近的节点进行刷新操作;
C.如果所述最近的节点回复消息,则欲退出节点离开网络;如果所述最近的节点没有回复消息,则欲退出节点对没有进行刷新操作的离自己最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息或者联系过规定数量的节点都没有回复,然后下线;
D.如果有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新;
(3)节点意外离线时:
A.发现意外离线节点后,发现节点从自己路由表中找出离意外离线节点最近的节点;
B.发现节点设置刷新域为整个网络,对所述最近的节点进行刷新操作;
C.如果所述最近的节点回复消息,则网络中其他节点的路由更新由所述最近的节点负责;如果所述最近的节点没有回复消息,则发现节点向没有进行刷新操作的离意外离线节点最近的下一个节点进行刷新操作,重复这个过程,直到有节点回复消息;
D.如有节点回复消息,则由回复消息的节点作为开始节点,进行全网路由信息的更新;
所述全网路由信息的更新,步骤包括:
1)由所述的开始节点分别按其路由表的正向和逆向两个方向上对所述对等网络各节点上的路由信息进行刷新操作,两个方向的刷新范围各为所述对等网络全部节点的一半;
2)所述开始节点从所述两个方向的刷新范围中分别选出一个可用的中间节点,并向所述中间节点发送刷新请求,然后分别将所述两个方向的刷新范围中从中间节点到结尾节点的各个节点的刷新交由各自的中间节点负责;
3)所述开始节点分别在所述的两个方向重复步骤2),直到所述两个方向上都完成了并发次数α次的刷新操作或者剩下的刷新范围内的节点少于刷新数量n, 其中,并发次数α是某个方向刷新中最大的网络并发数,取值范围为2至10;刷新数量n是调整刷新方式的阈值,取值范围为2至8;如果其中一个方向上完成了并发次数α次的刷新操作,则所述开始节点对其该方向上最近节点进行刷新操作,并将该方向剩下的刷新范围的刷新操作指派给所述最近节点;如果剩下的刷新范围中的节点少于刷新数量n,则所述开始节点对其最近节点进行刷新操作,所述的最近节点再对该方向上下一个节点进行刷新操作,直到最后一个节点。
4.根据权利要求1-3之一所述的一种常数复杂度的对等网络目的资源定位方法,其特征是所述的对等网络中,所有的节点和资源都通过哈希算法得到一个唯一的ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210322936.7A CN102833169B (zh) | 2012-09-04 | 2012-09-04 | 一种常数复杂度的对等网络目的资源定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210322936.7A CN102833169B (zh) | 2012-09-04 | 2012-09-04 | 一种常数复杂度的对等网络目的资源定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102833169A true CN102833169A (zh) | 2012-12-19 |
CN102833169B CN102833169B (zh) | 2015-03-04 |
Family
ID=47336142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210322936.7A Expired - Fee Related CN102833169B (zh) | 2012-09-04 | 2012-09-04 | 一种常数复杂度的对等网络目的资源定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102833169B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753873A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团公司 | 一种提供内容服务的方法、装置和系统 |
CN105743980A (zh) * | 2016-02-03 | 2016-07-06 | 上海理工大学 | 一种自组织的云资源共享分布式对等网络模型构造方法 |
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN109600683A (zh) * | 2018-12-05 | 2019-04-09 | 深圳市网心科技有限公司 | 一种视频点播方法、装置及其相关设备 |
CN110278152A (zh) * | 2018-08-31 | 2019-09-24 | 新华三信息安全技术有限公司 | 一种建立快速转发表的方法及装置 |
CN110489279A (zh) * | 2019-08-27 | 2019-11-22 | 深圳市网心科技有限公司 | 一种文件副本维护方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515892A (zh) * | 2009-04-10 | 2009-08-26 | 华为技术有限公司 | 一种对等网络中实现多资源处理的方法、设备及系统 |
CN101742702A (zh) * | 2009-12-31 | 2010-06-16 | 中兴通讯股份有限公司 | 移动互联网业务共享系统及方法 |
-
2012
- 2012-09-04 CN CN201210322936.7A patent/CN102833169B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515892A (zh) * | 2009-04-10 | 2009-08-26 | 华为技术有限公司 | 一种对等网络中实现多资源处理的方法、设备及系统 |
CN101742702A (zh) * | 2009-12-31 | 2010-06-16 | 中兴通讯股份有限公司 | 移动互联网业务共享系统及方法 |
Non-Patent Citations (1)
Title |
---|
喻梅: "基于P2P系统的分布式查询算法的研究", 《中国博士学位论文全文数据库 信息科技辑》, no. 07, 15 July 2009 (2009-07-15) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753873A (zh) * | 2013-12-30 | 2015-07-01 | 中国移动通信集团公司 | 一种提供内容服务的方法、装置和系统 |
CN105743980A (zh) * | 2016-02-03 | 2016-07-06 | 上海理工大学 | 一种自组织的云资源共享分布式对等网络模型构造方法 |
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN108924223B (zh) * | 2018-06-29 | 2020-11-06 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN110278152A (zh) * | 2018-08-31 | 2019-09-24 | 新华三信息安全技术有限公司 | 一种建立快速转发表的方法及装置 |
CN110278152B (zh) * | 2018-08-31 | 2020-05-29 | 新华三信息安全技术有限公司 | 一种建立快速转发表的方法及装置 |
US11646976B2 (en) | 2018-08-31 | 2023-05-09 | New H3C Security Technologies Co., Ltd. | Establishment of fast forwarding table |
CN109600683A (zh) * | 2018-12-05 | 2019-04-09 | 深圳市网心科技有限公司 | 一种视频点播方法、装置及其相关设备 |
CN110489279A (zh) * | 2019-08-27 | 2019-11-22 | 深圳市网心科技有限公司 | 一种文件副本维护方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102833169B (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102833169B (zh) | 一种常数复杂度的对等网络目的资源定位方法 | |
CN101133622B (zh) | 划分节点的工作负荷 | |
CN100365997C (zh) | 用于在对等网络中采用分布式哈希表的资源定位方法 | |
CN1331331C (zh) | 自组织网络的实现方法 | |
US20100332579A1 (en) | Proximity guided data discovery | |
US8898266B2 (en) | Apparatus and method for setting role based on capability of terminal | |
CN103188345A (zh) | 分布式动态负载管理系统和方法 | |
CN102035861A (zh) | 一种单跳分布式哈希表叠加网络的负载均衡方法和系统 | |
CN101116313B (zh) | 为覆盖网络中的节点确定最高工作负荷 | |
CN110990448B (zh) | 一种支持容错的分布式查询方法及装置 | |
CN104734962B (zh) | 一种非结构化p2p网络的资源搜索方法 | |
CN102055655A (zh) | 一种结构化对等网络中消息的广播系统及方法 | |
CN102325093B (zh) | 一种结构化p2p网络中的路由系统构建方法 | |
CN100473007C (zh) | 内容交换网络 | |
Duan et al. | A novel load balancing scheme for mobile edge computing | |
CN101465875A (zh) | 一种基于网络定位的负载均衡算法 | |
CN106210090A (zh) | 基于p2p网络的双层环状路由结构的网络服务搜索方法 | |
CN103414788B (zh) | 一种基于层次对等网络的配电网数据处理系统及方法 | |
CN101488137A (zh) | 基于热点缓存的搜索方法 | |
CN101917475A (zh) | 一种基于p2p模式的psrd普适服务资源发现方法 | |
CN102035663B (zh) | 一种多域域间路由维护方法和系统 | |
CN101616182B (zh) | 一种构建具有语义的p2p网络的方法 | |
CN103037017A (zh) | 一种p2p数据被动分发方法及节点客户端 | |
Cherbal et al. | Peer-to-Peer lookup process based on data popularity | |
Chen et al. | An improvement to the Chord-based P2P routing algorithm |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220301 Address after: 519085 unit d145, 2f, convention and Exhibition Center, No. 1, Software Park Road, Tangjiawan Town, high tech Zone, Zhuhai, Guangdong Patentee after: Zhuhai yikong Technology Co.,Ltd. Address before: 541004 1 Jinji Road, Qixing District, Guilin, the Guangxi Zhuang Autonomous Region Patentee before: GUILIN University OF ELECTRONIC TECHNOLOGY |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150304 |
|
CF01 | Termination of patent right due to non-payment of annual fee |