基于分布式哈希表的区域化对等计算数据一致性维护方法

文档序号:7945795阅读:306来源:国知局
专利名称:基于分布式哈希表的区域化对等计算数据一致性维护方法
技术领域
本发明提出了 一种分布式结构化P2P(对等计算技术)网络中数据一致性维护的技术方法, 建立了基于Kademlia (分布式哈希表的一种)路由算法的框架模型,把系统分成小的区域, 采用了分治法的思想,属于分布式计算技术领域。
背景技术
对等计算技术(Peer-to-Peer Computing, P2P)改变原来的C/S计算(Client/Server Computing)或是B/S计算(Brower/Server Computing)这样不对称的计算模式,每个节点 地位对等,可以同时成为服务的使用者和提供者,这为大规模的信息共享、直接通信和协同 工作提供了灵活的、可扩展的计算平台。目前P2P技术主要应用到以下几个领域提供文件 和其它内容共享的P2P网络、基于P2P方式的协同处理与服务共享平台、即时通讯交流和语 音通信软件、视频共享系统等。
P2P网络有如下的几种组织形式中心化拓扑,全分布式非结构化拓扑,全分布式结构化 拓扑,也称作DHT,半分布式拓扑。其中全布式结构化网络克服了中心化拓扑中超级节点性 能对系统运行的制约,同时在网络规模急剧增加时能够保持资源发现的效率,因此是P2P未 来发展的主要趋势之一。
但是在分布式结构化网络中存在着如何确保数据一致性的问题当一个节点共享的资源 发生改变时,由于缺少中心服务器的存在,这个节点如何快速地通知其它节点,包括已经下 载使用该资源的节点,对资源进行及时的更新,使它们能够享受到最新的服务,是一个值得 研究的问题。尤其是在网络规模非常大的情况下,如何高效快速地给其它节点发出通知,就 更显得尤为重要。
Kademlia路由表是分布式哈希表的一种,是典型的结构化P2P覆盖网络,以分布式的应 用层全网方式来进行信息的存储和检索是其尝试解决的主要问题。在Kadetnlia网络中,所有 信息均以〈key, value〉的哈希表条目形式加以存储,这些条目被分散地存储在各个节点上, 从而以全网方式构成一张巨大的分布式哈希表。可以形象地把这张哈希大表看成是一本字典 只要知道了信息索引的key,我们便可以通过Kademlia路由协议来查询其所对应的value信 息,而不管这个value信息究竟是存储在哪一个节点之上。
Kademlia网络中的每一个节点均拥有一个专属ID,该ID的具体形式为一个160bit的整 数,它是由节点自己随机生成的,两个节点拥有同一ID的可能性非常之小,因此可以认为这 几乎是不可能的。在Kademlia网络中,两个节点之间距离并不是依靠物理距离、路由器跳数 来衡量的,而是二者ID值的逐比特二进制和数。在Kademlia网络中,每一个节点都可以根 据这一距离概念来判断其他节点距离自己的"远近",当异或的值大时,节点间距离较远,
3反之,则两个节点相距很近。通过这种方式,Kademlia路由算法可以高效地进行节点和资源 的搜索査找。Kademlia路由算法由于其协议的简单性和健壮性已经成为结构化P2P网络中最 常用的节点和信息査找方式之一。
因此,有必要把Kademlia路由算法与P2P网络中数据一致性的维护结合起来,并对网 络中的节点进行区域化分,运用分治法的思想,使系统能够更加高效快速地通知节点进行资 源更新。

发明内容
技术问题本发明的目的是提供在分布式结构化P2P网络中的一种数据一致性的维护方 法,给出了基于Kademlia路由算法和分块区域的网络体系结构,解决了在大规模P2P网络中, 如何快速高效地把资源更新的消息通知到网络中节点的问题,较之传统的方法而言,该方案 更具有分布性,高效性和易扩展性。
技术方案本发明的方法引入基于分布式哈希表的区域化分技术,强调了分布式环境下 P2P网络组成框架,其目的是解决大规模P2P网络中数据一致性维护的高效性,快速性等要求。
本发明的基于分布式哈希表的区域化对等计算数据一致性维护方法为
第一步,在基于Kademlia (—种分布式哈希表)的P2P (对等计算技术)网络中,选取 一些距离较远,即节点ID异或值较大的节点作为节点域主节点;
第二步,以节点域主节点为参考点,将其周围距离其距离最近的N (N取值使得节点域大 小基本固定,N大致为20至50左右)个节点划分到一个节点域中;
第三步,通过迭代的方式,不断选取主节点,划分节点域,最后将网络中所有的节点都 划分到特定的节点域中;
第四步,当有新节点加入时,如果它较一个域主节点的距离比之前的节点近,而该域中 已经满N个节点,那么之前的节点就可能退出该域,加入到别的域中,总体上保证每个域中 节点数量在N左右;
第五步,当一个域被建立或者更新之后,域内的每个节点都创建并保存一张表 INNER一N0DE—LIST (域内节点表),其中保存了其它域内节点的ID和IP值。通过以上五步, 区域化的P2P网络结构就被建立;
第六步,当网络中有节点要通知共享资源更新时,即需要进行数据一致性维护时,资源 更新的节点通过自身保存的INNER_NODE—LIST,向其所在域的N个节点广播资源更新的消息, 并把本域标记为Mark域;
第七步,所有收到消息的节点,通过查找Kademlia路由表,向除了它自己以外的、其它 N个不同的节点域中的特定节点发送消息;
第八步,所有N个节点域中收到消息的节点,都通过通过自身保存的INNER—NODE一LIST, 向其所在域的N个节点广播资源更新的消息,并把本域标记为Mark;
第九步,在消息的传递中,如果一个域已经标记为Mark,那么该域放弃资源更新的消息, 否则重复执行第七、八步一定的次数,直到所有的域都被标记为Mark为止;
第十步,所有收到消息的节点下载更新资源, 一次数据一致性维护过程结束。 有益效果本发明将区域化分的方法运用到采用Kademlia路由表的分布式结构化P2P 网络中,采用了分治法的思想,各个小的区域完成特定的任务,并且通过在各个域之间传递消息来完成整个网络的数据一致性的维护。技术的关键点在于把整个网络分化成一个个的小 区域。将全网化分成小区域,区域内部将进行自主管理,节点是否该加入或者退出该域,是 否需要建立新的域或者撤消原有的域,都将由域本身来进行决定。域内各节点维护了一张保 存有其它域内节点消息的表,将会使消息在域内的传递更加快速,域内的通信更简单。本发 明所采用的体系结构具有高效性、快速性、灵活易扩展性的特点,将使得整个P2P网络的数 据一致性的维护更加容易和迅速,使网内节点能够及时进行资源更新。下面我们给出具体的 说明。
消息传递的高效性假设整个P2P网络的节点总数为S,每个域中节点数量为N,由于 网络被化分成了各个小的区域,而区域内部采用广播的方式进行通信,不需要査找路由表。 路由表的査找是以域为单位进行的,这就使得在Kadenilia网络中,找到另外一个节点的时间 复杂度从原先的(iogS)变成了 (!ogS/N),降低了时间复杂度,査找路由表的次数降低,消 息的传递效率大大提高。
消息传递的快速性由于消息在区域内的传递通过广播的方式来进行,通信变得非常简 单。那么如果将整个区域看成一个整体的话,那么整个网络的规模将变成(S/N)。同时由于 域内的每一个节点都会向其它相邻的域发送消息,则整个消息的传递将会变得非常迅速。
减轻网络负载采用了区域化分的机制后,较之以往的逐个节点进行通知的方式,路由 表査找的次数和消息传递的次数都会明显减少,进而减少整个网络的负载。
系统灵活,可扩展性好网络中的区域的化分以及区域的个数都不是固定的,而是随着 节点的加入或退出而动态变化的。比如一个距离某区域主节点(Important-Node)更近的节 点加入时,那么它就可以加入到该区域中,如果该域已满的话,另外一个节点就可能退出, 并加入到另外一个较近的区域中。如果某个ID段的节点比较密集的话,还可以在此段建立一 个新的域。
算法性能较好,不易退化由于域的管理是灵活的,这就保证了每个域中节点的数量始 终保持在N左右,不易使算法出现退化。
数据更新较及时采用了本发明所构建的体系结构,数据更新的消息能够高效、快速地
传递给网络中的其余节点,其余节点得知某个资源已经更新之后,通过消息中包含的资源共 享者的IP地址就可以直接找到该节点对所资源进行下载更新,整个过程的速度有较大的提高, 数据更新也就变得更加及时。


图1是系统架构示意图。表示本发明方法系统区域的化分情况,以及其中各个成分所在 的位置。
图2是通信模型示意图。表示本发明方法中区域内以及区域间的通信方式。
具体实施方式
一、体系结构
本发明提出的P2P数据一致性维护的技术方案,其网络的拓扑结构为化分成许多小区域 的网状结构。即把整个大的网络化分成很多的小区域,每个区域独立完成消息的接收、消息在 域内的传播、以及往其它域传递消息的任务。首先,由资源变更的发起节点通知它所在的域内其它各节点,域内的各节点接收到消息后再通知邻近它们的各个域,其它的域再向更远的域传 递消息。通过各个域的工作,最终实现向全网发送消息,进而通知网络中的节点进行资源更新。
图l给出了该方案的系统框架节点域(Area),作为本方案中最重要的概念,它是完成 方案提到的技术方法的基础,节点域是由网内一组节点组合而成的区域,即把网络中的节点按 照特定的方式进行化分,并且组织在一起形成了节点域。域内节点(Inner-Node),即存在于 同一个域内的节点,每个节点都保存着到域内其它节点的地址,通过任何一个节点都可以一步 找到其它的域内节点。域内主节点(Important-Node),它是进行域化分的参考节点,其它节 点的ID与它的ID进行距离上的比较,以决定是否要加入该域。消息发起节点(Initial-Node), 即最先通知网络需要进行一致性维护的节点。当某种资源发生了变动,需要进行一致性维护时, 消息发起节点就会向本域内的节点发出通知,进而再通知其它域的节点进行资源的更新。
其中节点域是按照如下的规则进行化分和组织的首先,整个分布式结构化P2P网络是 建立在Kademlia路由表上的,每个节点拥有一个唯一的160位的标识NodeID。节点之间都 有称为距离的衡量尺度,它不是指物理距离,而是节点NodeID之间的异或值,定义异或值越 小,距离越近,反之距离越远;其次,各个域节点的划分,根据整个网络具有的规模,规定每 个域有N个节点,在整个系统Kademlia路由表建立之初,就选定一些距离相距较远的节点作 为主节点,并且根据主节点的ID值,将其它节点与其进行距离比较,把较近的N个节点加入 该域;再次,通过不断迭代的方式选定主节点、化分自治域,直到把所有的节点都划分到各自 的自治域中为止;然后,当一个域确定下来以后,域内的各个节点都会保留一张独立于 Kademlia路由表之外的表INNER—NODE—LIST (域内节点表),它保存了其它域内节点的ID和 IP值,通过它可以直接找到其它的域内节点;最后, 一个域并非是一直不变的,随着新节点 的加入, 一个域中的节点可能会退出,加入到别的域中,也可能产生新的主节点,新的域,但 总体上要保证,域之间不重叠,域的规模大致在N左右。
在网络规模很大的时候,使用这种化分了区域的网络结构,由于采用了分治法思想,可 以明显使得路由查找的步数降低,并使消息发送的数目减少,从使消息传递的速度加快,效率 提高。
二.通信机制
图2给出了进行了区域化分的P2P网络的通信机制。通信最初是由消息发起节点 (Initial-Node)发起,当某种资源发生了变动时,通过查找自身维护的表INNER_N0DE—LIST, 它将向所在的域进行消息的广播,并且给本域作上一个标记(Mark),表明该域已经收到消 息。在本方案中,消息所包含的内容包括消息发起节点的IP地址,使得接收到该消息的节点 通过提取这个IP地址就可以找到共享资源的节点,进行资源的下载更新。 一个域接收到消息 以后,它所包含的域内节点(Inner-Node)将通过査找自身的Kademlia路由表,向各个邻近 的域发送消息,路由不具可逆性,消息不会按照原来的路径返回,已经收到消息的域,将不 会再次接受消息。域内的通信通过广播的方式进行,域接收到消息的标志是,只要域中的任何 一个节点收到消息,就等于整个域收到消息,因为该节点将会通过广播的方式通知其它域内 节点。
这种方式中,由于每个节点都维护了一张INNER一NODE一LIST的表,将使得所有域内节点 的通信变得非常简单,它们之间的通信不需要查找Kademlia路由表,可以显著减少路由表的 査找次数。同时,域中的每一个节点都会向其它域发起消息的传递,这将使消息传递的速度明显加快。
该方法为
第一步,在基于Kademlia的P2P网络中,选取一些距离较远,即节点ID异或值较大的 节点作为节点域主节点;
第二步,以节点域主节点为参考点,将其周围距离其距离最近的N (N大致为20至50 左右)个节点划分到一个节点域中;
第三步,通过迭代的方式,不断选取主节点,划分节点域,最后将网络中所有的节点都 划分到特定的节点域中;
第四步,当有新节点加入时,如果它较一个域主节点的距离比之前的节点近,而该域中 已经满N个节点,那么之前的节点就可能退出该域,加入到别的域中,总体上保证每个域中 节点数量在N左右;
第五步,当一个域被建立或者更新之后,域内的每个节点都创建并保存一张表域内节 点表INNER—NODE—LIST,其中保存了其它域内节点的ID和IP值。通过以上五步,区域化的 P2P网络结构就被建立;
第六步,当网络中有节点要通知共享资源更新时,即需要进行数据一致性维护时,资源 更新的节点通过自身保存的域内节点表INNER一NODE一LIST,向其所在域的N个节点广播资源更 新的消息,并把本域标记为Mark域;
第七步,所有收到消息的节点,通过査找Kaderalia路由表,向除了它自己以外的、其它 N个不同的节点域中的特定节点发送消息;
第八步,所有N个节点域中收到消息的节点,都通过通过自身保存的域内节点表 INNER—N0DE_LIST,向其所在域的N个节点广播资源更新的消息,并把本域标记为Mark;
第九步,在消息的传递中,如果一个域已经标记为Mark,那么该域放弃资源更新的消息, 否则重复执行第七、八步一定的次数,直到所有的域都被标记为Mark为止;
第十步,所有收到消息的节点下载更新资源, 一次数据一致性维护过程结束。
当区域化的P2P网络结构被建立之后,需要进行数据更新时,网络中的通信机制会执行 整个方法中的第六步到第十步
第六步,当网络中有节点要通知共享资源更新时,即需要进行数据一致性维护时,资源 更新的节点通过自身保存的域内节点表INNER—NODE—LIST,向其所在域的N个节点广播资源更 新的消息,并把本域标记为Mark域;
第七步,所有收到消息的节点,通过查找Kademlia路由表,向除了它自己以外的、其它 N个不同的节点域中的特定节点发送消息;
第八步,所有N个节点域中收到消息的节点,都通过通过自身保存的域内节点表 INNER_NODE_LIST,向其所在域的N个节点广播资源更新的消息,并把本域标记为Mark;
第九步,在消息的传递中,如果一个域已经标记为Mark,那么该域放弃资源更新的消息, 否则重复执行第七、八步一定的次数,直到所有的域都被标记为Mark为止;
第十步,所有收到消息的节点下载更新资源, 一次数据一致性维护过程结束。
权利要求
1. 一种基于分布式哈希表的区域化对等计算数据一致性维护方法,其特征在于该方法为第一步,在基于Kademlia的P2P网络中,选取一些距离较远,即节点ID异或值较大的节点作为节点域主节点;第二步,以节点域主节点为参考点,将其周围距离其距离最近的N(N大致为20至50左右)个节点划分到一个节点域中;第三步,通过迭代的方式,不断选取主节点,划分节点域,最后将网络中所有的节点都划分到特定的节点域中;第四步,当有新节点加入时,如果它较一个域主节点的距离比之前的节点近,而该域中已经满N个节点,那么之前的节点就可能退出该域,加入到别的域中,总体上保证每个域中节点数量在N左右;第五步,当一个域被建立或者更新之后,域内的每个节点都创建并保存一张表域内节点表INNER_NODE_LIST,其中保存了其它域内节点的ID和IP值。通过以上五步,区域化的P2P网络结构就被建立;第六步,当网络中有节点要通知共享资源更新时,即需要进行数据一致性维护时,资源更新的节点通过自身保存的域内节点表INNER_NODE_LIST,向其所在域的N个节点广播资源更新的消息,并把本域标记为Mark域;第七步,所有收到消息的节点,通过查找Kademlia路由表,向除了它自己以外的、其它N个不同的节点域中的特定节点发送消息;第八步,所有N个节点域中收到消息的节点,都通过通过自身保存的域内节点表INNER_NODE_LIST,向其所在域的N个节点广播资源更新的消息,并把本域标记为Mark;第九步,在消息的传递中,如果一个域已经标记为Mark,那么该域放弃资源更新的消息,否则重复执行第七、八步一定的次数,直到所有的域都被标记为Mark为止;第十步,所有收到消息的节点下载更新资源,一次数据一致性维护过程结束。
全文摘要
基于分布式哈希表的区域化对等计算数据一致性维护方法提出了一种分布式结构化P2P(对等计算技术)网络中数据一致性维护的技术方法,建立了基于Kademlia(分布式哈希表的一种)路由算法的框架模型,把系统分成小的区域,采用了分治法的思想。给出了基于Kademlia路由算法和分块区域的网络体系结构,解决了在大规模P2P网络中,如何快速高效地把资源更新的消息通知到网络中节点的问题,较之传统的方法而言,该方案更具有分布性,高效性和易扩展性。
文档编号H04L29/08GK101483670SQ20091002465
公开日2009年7月15日 申请日期2009年2月25日 优先权日2009年2月25日
发明者敏 吴, 徐小龙, 支萌萌, 李致远, 王汝传, 韩志杰 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1