background image

BFS 查询方法造成

冗余网络通信开销的原
因主要在于邻居节点范围宽度的选择和

TTL 值深度的设置[9]。针对这两个问题出现了几种

BFS 方法的改进。Iterative Deepening[10]是通过最初设置一个较小的 TTL 值进行宽度优先

搜索,然后等待搜索是否成功。如果成功,则停止搜索;否则增加

TTL 值再进行广度优先

搜索。重复此过程直到文件找到或者

TTL 到达设置最大值。在 Directed BFS[10]方法中,查

询源节点不是向所有的邻居节点发送查询消息,而是选择邻居节点的一个子集以减少查询
消息量。

RandomWalks[11]中查询源节点生成 k 个查询消息,随机选择 k 个邻居节点进行消

息的转发,

k 根据网络通信消耗和搜索成功率的要求选定。

以上对

BFS 方法的改进仅从算法本身入手,往往是以牺牲查询响应时间、搜索成功率

等性能为代价来获取较少的网络流量开销。网络拓扑的优化可建立在原有

P2P 系统路由算法

的基础上,既保持了原有路由算法的优点,又使网络从拓扑结构上更利于对资源的查询,
从而进一步提高资源查询的整体性能。

1.2 网络拓扑优化的特点

从对

P2P 系统的拓扑结构分析可知,造成产生冗余通信的原因主要有两类:a)逻辑拓

扑网络与物理网络之间的不匹配,使相同的物理连接上可能会多次传递同样的查询消息;
b)节点缺乏对网络拓扑结构的掌握,很多路径的查询消息是无效的,没有应答消息返回。

针对以上两个方面的原因,对

P2P 网络拓扑的优化主要有两种:一种是通过优化逻辑

拓扑连接与物理连接之间的不匹配,使查询消息在转发过程中,减少在同一物理路径上传
递的次数,如

LTM[12],将物理上邻近的节点选做邻居节点,既保持了搜索范围,又减少

了查询的响应时间;另外一种是不考虑底层物理网络,而是优化节点间的逻辑连接,以提
高查询的发现效率,减少网络的通信开销。例如将提供相似资源或具有相似兴趣的节点进行
聚类

[13,14],使节点在进行资源查询时,查询消息发送给更可能具有目标文件的节点,从

而提高搜索性能。

文献

[15]基于数据访问频率提出节点度优化模型,但它对网络模型作出很多假设,如

节点资源确定,并服从

Uniform 分布,节点存储资源的访问频率已知等。但往往节点内容并

不确定,时常发生变化,且网络资源及资源的访问频率服从

Zipf 分布[7]。本文不对网络模

型作过多假设,通过分析产生冗余通信的原因,定义了网络及节点的有效通信率,通过优
化节点连接度来实现网络拓扑的优化。

2 覆盖网络的拓扑结构优化

非结构化的

P2P 系统是建立在物理网络之上的逻辑网络,节点通过维护与邻居节点间

的连接关系,实现与网络间其他节点的通信。当一个节点想获取某个资源时,生成对该资源
的查询消息并发送给它的邻居节点。当邻居节点收到查询消息时,首先进行本地检索,如果
本地拥有与查询消息相匹配的资源,返回应答消息给查询源节点;如果本地没有与查询相
匹配的资源时,然后将查询消息转发至它的邻居节点。各邻居节点对查询消息主要有两类结
果,即返回应答消息和转发查询消息。邻居节点对查询消息的转发等同于新产生一个查询消
息,转发消息次数越多产生的查询消息就越多。一个节点返回的应答消息越多,转发的查询

找通信资料上一览通信文库!

http://wk.yl1001.com/tx/