位置:51电子网 » 技术资料 » 新品发布

对等网络中主流分布式哈希算法比较分析

发布时间:2007/9/7 0:00:00 访问次数:242

本文首先从P2P的定义出发,介绍了结构化P2P与非结构化P2P的区别以及结构化P2P的核心技术DHT。而后,本文深入介绍了几种主流的DHT算法与协议并对每种协议进行了讨论。文章的最后展望了DHT在未来的发展趋势。
对等网络(Peer-to-Peer,简称P2P)是目前非常热门的应用,自1999年以来,P2P的研究一直是国外知名学府(如美国麻省理工学院,加州大学伯克利分校和莱斯大学等)以及知名企业的研发机构(如微软,诺基亚的研究院)关注的重点。它甚至被美国《财富》杂志称为改变因特网发展的四大新技术之一,被认为是代表无线宽带互联网未来的关键技术。
作为一项新兴的技术,目前学术界对P2P在技术层面上的定义尚未统一。Keith W. Ross (Polytechnic University)和Dan Rubenstein(Columbia University)在[9]中提到了对P2P系统的3个基本定义:
相比中央服务器而言有明显的自治性(Autonomy)。
利用网络边缘的资源,如存储/计算能力和信息资源。
网络边缘的资源处在动态的变化中(新的资源加入,已有的资源消失)。
自治性的要求使得P2P系统不再需要特定的中央管理机制,所有节点之间拥有对等的关系。这一方面为系统带来了自组织、容错性好、可扩展性强等优点;另一方面也提出了新的问题:如何在没有集中管理机制的情况下实现系统的自组织和自管理?
定义2,3中分布性和动态性的特点使得上述问题的实现具有更大的难度。在分布式系统中,过多过快的信息交互可能消耗大量的网络资源;而为了实时反映系统的变化,又要求节点及时获得更新信息,这就需要在节点之间进行通信。
为了解决这一对矛盾,已经有许多P2P的框架和协议被提出来并得到了很好的应用。
结构化与非结构化P2P
依照节点信息存储与搜索方式的不同,诸多P2P协议可以分为2大类:结构化(Structured)的与非结构化(Unstructured)的系统。
非结构化P2P系统
在非结构化的系统中,每个节点存储自身的信息或信息的索引(如指针和IP地址)。当用户需要在P2P系统中获取信息时,他们预先并不知道这些信息(如某个文件)会在那个节点上存储。因此,在非结构化P2P系统中,信息搜索的算法难免带有一定的盲目性,例如最简单的泛洪式查找(类似于广播)和扩展环查找(从最近的n个节点开始,层层转发直到找到目标或超出了跳数的上限为止)。 一些典型的应用采用了一些优化的办法。如在Gnutella中,采用了等级制的组成结构:节点被分成超级节点(Super Node)和普通节点。普通节点必须依附于超级节点,每个超级节点作为一个独立的域管理者,负责处理域内的查询操作。在查找的过程中,查询首先在域内进行,失败后才会扩展到超级节点之间。
非结构化系统的优点在于实现结构简单:无须中央服务器,节点之间完全平等,网络的层次是单一的,而且节点之间无需维护拓扑信息。
结构化P2P系统
在结构化P2P系统中,每个节点只存储特定的信息或特定信息的索引。当用户需要在P2P系统中获取信息时,他们必须知道这些信息(或索引)可能存在于那些节点中。由于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此提高了信息搜索的效率。
但是,结构化P2P也引入了新的问题:
首先,既然信息是分布存储的,那么如何将信息分布存储在重叠网中的节点上?
其次,由于节点动态的加入和离开重叠网,如何将拓扑的变更信息通知其它节点?
DHT的引入基本解决了上述问题,因此自从DHT协议出现以后,结构化P2P的应用得到了快速的发展。目前已经有很多较为成熟的DHT协议被提出并且得到了应用。其中比较有代表性的有:缓冲阵列路由协议(CARP);一致性哈希;Chord;内容寻址网络;Pastry。
DHT简介
DHT使用分布式哈希算法来解决结构化的分布式存储问题。分布式哈希算法的核心思想是通过将存储对象的特征(关键字)经过哈希运算,得到键值(Hash Key),对象的分布存储依据键值来进行。具体来讲,大致有以下步骤:
对存储对象的关键字进行哈希运算,得到键值。这样就将所有的对象映射到了一个具体的数值范围中。
重叠网中的每个节点负责数值范围中的特定段落。例如,节点A负责存储键值从8000到8999的对象;而节点B负责7000~7999的对象。这样就将对象集合分布地存储在所有的节点中。
节点可以直接存储对象本身,如文件中的一个片段;也可以存储对象的索引,如该对象所在节点的IP地址。
结构化的分布式存储问题解决后,剩下的问题就是用户如何才能找到存储着目标信息的节点。在有着大量节点(如100万个)的P2P系统中,任何节点都不可能拥有全部的节点?键值?内容的对应关系;因此用户获得了键值之后,如何找到该键值对应的节点就被称为DHT的路由问题。DHT协议必须定义优化的查找(路由)算法来完成这一搜寻的工作。不同的DHT协议之间区别很大程度上就在于定义了不同的路由算法。
DHT的应用非常简洁----API简单到只有一项输入和一项输出:
应用层将数据对象(文件、数据块或索引)

本文首先从P2P的定义出发,介绍了结构化P2P与非结构化P2P的区别以及结构化P2P的核心技术DHT。而后,本文深入介绍了几种主流的DHT算法与协议并对每种协议进行了讨论。文章的最后展望了DHT在未来的发展趋势。
对等网络(Peer-to-Peer,简称P2P)是目前非常热门的应用,自1999年以来,P2P的研究一直是国外知名学府(如美国麻省理工学院,加州大学伯克利分校和莱斯大学等)以及知名企业的研发机构(如微软,诺基亚的研究院)关注的重点。它甚至被美国《财富》杂志称为改变因特网发展的四大新技术之一,被认为是代表无线宽带互联网未来的关键技术。
作为一项新兴的技术,目前学术界对P2P在技术层面上的定义尚未统一。Keith W. Ross (Polytechnic University)和Dan Rubenstein(Columbia University)在[9]中提到了对P2P系统的3个基本定义:
相比中央服务器而言有明显的自治性(Autonomy)。
利用网络边缘的资源,如存储/计算能力和信息资源。
网络边缘的资源处在动态的变化中(新的资源加入,已有的资源消失)。
自治性的要求使得P2P系统不再需要特定的中央管理机制,所有节点之间拥有对等的关系。这一方面为系统带来了自组织、容错性好、可扩展性强等优点;另一方面也提出了新的问题:如何在没有集中管理机制的情况下实现系统的自组织和自管理?
定义2,3中分布性和动态性的特点使得上述问题的实现具有更大的难度。在分布式系统中,过多过快的信息交互可能消耗大量的网络资源;而为了实时反映系统的变化,又要求节点及时获得更新信息,这就需要在节点之间进行通信。
为了解决这一对矛盾,已经有许多P2P的框架和协议被提出来并得到了很好的应用。
结构化与非结构化P2P
依照节点信息存储与搜索方式的不同,诸多P2P协议可以分为2大类:结构化(Structured)的与非结构化(Unstructured)的系统。
非结构化P2P系统
在非结构化的系统中,每个节点存储自身的信息或信息的索引(如指针和IP地址)。当用户需要在P2P系统中获取信息时,他们预先并不知道这些信息(如某个文件)会在那个节点上存储。因此,在非结构化P2P系统中,信息搜索的算法难免带有一定的盲目性,例如最简单的泛洪式查找(类似于广播)和扩展环查找(从最近的n个节点开始,层层转发直到找到目标或超出了跳数的上限为止)。 一些典型的应用采用了一些优化的办法。如在Gnutella中,采用了等级制的组成结构:节点被分成超级节点(Super Node)和普通节点。普通节点必须依附于超级节点,每个超级节点作为一个独立的域管理者,负责处理域内的查询操作。在查找的过程中,查询首先在域内进行,失败后才会扩展到超级节点之间。
非结构化系统的优点在于实现结构简单:无须中央服务器,节点之间完全平等,网络的层次是单一的,而且节点之间无需维护拓扑信息。
结构化P2P系统
在结构化P2P系统中,每个节点只存储特定的信息或特定信息的索引。当用户需要在P2P系统中获取信息时,他们必须知道这些信息(或索引)可能存在于那些节点中。由于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此提高了信息搜索的效率。
但是,结构化P2P也引入了新的问题:
首先,既然信息是分布存储的,那么如何将信息分布存储在重叠网中的节点上?
其次,由于节点动态的加入和离开重叠网,如何将拓扑的变更信息通知其它节点?
DHT的引入基本解决了上述问题,因此自从DHT协议出现以后,结构化P2P的应用得到了快速的发展。目前已经有很多较为成熟的DHT协议被提出并且得到了应用。其中比较有代表性的有:缓冲阵列路由协议(CARP);一致性哈希;Chord;内容寻址网络;Pastry。
DHT简介
DHT使用分布式哈希算法来解决结构化的分布式存储问题。分布式哈希算法的核心思想是通过将存储对象的特征(关键字)经过哈希运算,得到键值(Hash Key),对象的分布存储依据键值来进行。具体来讲,大致有以下步骤:
对存储对象的关键字进行哈希运算,得到键值。这样就将所有的对象映射到了一个具体的数值范围中。
重叠网中的每个节点负责数值范围中的特定段落。例如,节点A负责存储键值从8000到8999的对象;而节点B负责7000~7999的对象。这样就将对象集合分布地存储在所有的节点中。
节点可以直接存储对象本身,如文件中的一个片段;也可以存储对象的索引,如该对象所在节点的IP地址。
结构化的分布式存储问题解决后,剩下的问题就是用户如何才能找到存储着目标信息的节点。在有着大量节点(如100万个)的P2P系统中,任何节点都不可能拥有全部的节点?键值?内容的对应关系;因此用户获得了键值之后,如何找到该键值对应的节点就被称为DHT的路由问题。DHT协议必须定义优化的查找(路由)算法来完成这一搜寻的工作。不同的DHT协议之间区别很大程度上就在于定义了不同的路由算法。
DHT的应用非常简洁----API简单到只有一项输入和一项输出:
应用层将数据对象(文件、数据块或索引)

相关IC型号

热门点击

 

推荐技术资料

自制智能型ICL7135
    表头使ff11CL7135作为ADC,ICL7135是... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!