论文摘要
在非结构化P2P网络中,节点由于受到内部能力差异、搭便车行为和高扰动(High Churn)特性的影响,负载度呈现出严重的失衡,对网络的健壮性和可用性形成了严重的影响,同时也造成了网络资源的巨大浪费。因此,如何遏制网络节点负载度失衡是一个迫切需要解决的问题。本文在当前国内外研究的基础上,首先将造成网络节点负载度失衡的因素定性为两类:节点内部因素(即节点内部能力差异)与节点外部因素(即搭便车行为与High Churn),然后提出相应的解决机制,依次为:针对网络节点间的能力差异,本文提出了一种基于虚节点的均衡控制算法,算法中允许节点通过“划分”和“整合”操作,让重载节点的剩余负载能向相邻节点转移。通过大量的模拟实验显示,基于虚节点的均衡算法使得网络中节点负载更加’紧凑,网络负载方差得到较大幅度的下降,重载节点数也保持相对平稳;网络High Churn特性会引起网络分割问题,经过大量的路由查询与转发操作后,网络分割点承载着巨大的负载压力,最终演变成网络“热”点(或集散节点),进而使得网络中的普通节点与“热”点存在巨大的负载差异。基于此,考虑到非结构化P2P网络的路由特性,本文提出了如何检测与避免集散节点的相关机制。最后通过模拟实验显示,在相同的TTL下,P2P网络经过一次避免算法后,网络中的集散节点数得到了大幅度地减少;最后,针对综合因素(同时包含内外因素)下的节点负载失衡问题,本文提出了一种基于节点负载度与逻辑链路迁移的控制算法,首先在每个节点所拥有的文件中,为流行度较高的文件建立二叉树备份节点表,然后根据备份节点表选择负载转移节点。最后的仿真模拟显示,在无churn以及不同churn rate的情况下,该算法在均衡节点负载方面都具有明显优势。