Gnutella技术缺陷:
1 由于采用flooding路由,系统开销很大
2 受ttl的限制,消息只能到达一定的范围,不能覆盖整个网络,因此即使文件存在,也不一定能查询到。
【来自book: 对等网络:结构、应用于设计】
虽然Gnutella网络没有严格的拓扑结构,只是一个看起来随机产生的图,然而要看到的是,Gnutella网络的背后是人类社会,过去有研究指出,人类社会自发地形成一个幂律(Power-law)分布网络,再power-law网络里,拥有连接数L的结点占网络总数节点的份额,正比于L^(-a),a是一个取决于网络本身的常数因子,因而大多数结点连接数很少,少数结点拥有非常高的连接数。虽然Gnutella不是一个纯粹的power-law网络,但它具有Gnutella结构的优点和缺点。Gnutella大致符合a=2.3时power-law分布,而研究者指出因子a<3的power-law面随随机结点失效的容错性还是比较高的。
同时,Gnutella的结点又带有常数性质的分布,大多数结点连接数都高于某个常数值,这使得它对恶意攻击的容错性也比较高。
就Gnutella网络而言,最不希望看到的就是因为某结点的实效而导致它被分割成互不相交的子网,这是容错性的极端要求。
拓扑一致性问题是几乎所有p2p网络的共同问题,Gnutella的覆盖网络结构简单、松散,并且也没有采用什么机制来缩小覆盖网与物理网之间的差异,因此Gnutella网络的拓扑一致性较低,这对它的工作效率也产生了不小的影响。
无结构化p2p网络的特点:
1 拓扑结构:
a 小世界模型:
1998年,watts和strogatz再nature中提出的小世界模型。任意两个网络结点的距离一般很短。
b 幂律模型:
因为无结构化中新增结点的加入需要有超级节点或者edonkey中的服务器或者gnutella中自然急剧的高带宽的少量高级用户,所以这部分结点往往连接度比较高,成为网络的中转枢纽。
1999,barabasi和albert再science中发表实际的复杂网络具有幂律特点,同时,99年,michalis faloutsos等人在sigcomm发表文章指出互联网Internet符合幂律模型。(面对随机结点失效的高容错性)
路由和定位方法:
1 flooding洪泛法是无结构p2p网络最朴素、直接的路由方法,也是现存大多数无结构P2p网络采用的方法。每个受到查询消息的结点将消息发送给它的所有邻居结点(或者是邻居结点的一部分),(?邻居结点怎么确定)当然消息的上一跳结点除外;当消息达到目的地或者ttl到期时终止。 此方式的网络开销是随着TTL的增加而指数增加的。(路由覆盖范围是一个以TTL为半径的圆)。
所以TTL不能很大,这也导致了有些文件即使存在,也无法查询到。这是非结构P2p网络的本质缺陷。
2 扩展环 expanding ring
TTL不固定,从小的开始,逐渐增加,直到查到(或者上限)。
3 随机走 random walks
也是分布式网络中常用的路由技术:结点查询消息时只随机选择一个邻居结点发送该消息,直到数据被找到或者条数限制TTL用尽。(布朗运动),优势:网络开销随TTL线性增大,可以将TTL设的很大。
4 超结点路由
Gnutella 0.6,eDonkey和FastTrack(KaZaA)使用超结点路由(supernode routing).网络中的主体(普通结点)将所连接的超结点当做自己的“服务器”,查询直接发给超结点代为完成,而网络的核心--超结点网络,自组织成为一个超结点网络。由于超结点的数目相对较少,所有超结点网络内部可以采用flooding。 (这也是上次和liu sir讨论的问题,普通节点和超级结点带有集中式的意思)
容错性和自适应:(非结构化的优点,结构化的缺点)
1 幂律分布带来的优点,不容易被分割成多个子网。
2 自适应:就是检测自己的邻居是否还在线。只需要发送简单的PING消息就可以维持结点状态的最新。(结构化P2p网络的自适应是比较困难和复杂的)
可扩展性:
1 洪泛法,难扩展
2 改进的超结点法,较容易扩展
安全性与匿名性
较高,(通常说来,网络结构越严格,暴露给攻击者的信息就越多,网络的安全性与匿名性就越差,结构化P2p的缺点,恰是非结构化P2p的优点)
总体而言,
缺陷:
1 路由效率不高,无法与结构化p2p比
2 可扩展性不高
3 数据无法精确定位
优势:
1 拓扑简单,开发实现难度小
2 高容错性和良好的自适应性
3 高安全性和匿名性