P2P对等网络路由模型及关键技术分析4
图片看不清楚?请点击这里查看原图(大图)。
从上述分析知,这4种结构各具优缺点,有的还存在着本身难以克服的缺陷,在目前P2P技术还未到成熟的阶段,这4种结构依然会共存,甚至出现相互借鉴结合的趋势。
3 P2P网络关键技术分析
3.1 资源定位
资源定位是节点通过一定方式找到资源在网络中的存放位置,P2P方式的资源定位主要有以下3种算法。
(1)集中索引算法,代表系统为Napster在Napster系统中,用户都与一个中央服务器相连接,中央服务器上保存了共享文件的索引,由中央服务器对收到的用户请求进行匹配查找,直到找到保存了所需文件的目的用户。然后,由发起请求的用户与目的用户直接进行文件交换。这种算法的不足在于依赖一个集中式的结构,将会影响系统的可扩展性。
(2)洪泛消息算法,代表系统为Gnutella 每一个用户消息都将被广播给与该用户直接相连的若干其他用户,这些用户收到消息后,也同样地将消息广播给各自连接的用户,以此类推,直到请求被应答,消息的TTL值减少为0,或超过了最大的广播次数(通常为5~9)。这种算法的不足在于占用的网络带宽较大,因此也会影响可扩展性。
(3)文件路由算法,代表系统为Freenet算法的特点是采用基于哈希函数的映射。系统中的每一个用户都有一个随机的ID序列号,系统中的每一个文件也有一个ID序列号,该序列号是根据文件的内容和它的名字,经过哈希函数映射得来的。文件发布时,每一个用户都把文件转发到拥有与文件的ID最相近ID值的用户,直到最接近文件ID的用户就是该用户本身。转发过程中每经过的一个用户都将保持该文件的副本。索取文件时,每个用户都将请求消息转发给一个拥有与所需文件ID最相近的ID用户,直到文件或文件的一个拷贝被发现为止。Tapestry,Pastry,Chord,CAN都是采用这种方法的P2P系统。这种算法的优势在于可扩展性较好,不足在于可能导致整个网络分裂成若干彼此不相连的子网络,形成所谓的孤岛,其查询也要比洪泛消息算法麻烦些。