论文部分内容阅读
P2P是英文peer-to-peer的缩写,即对等网络或对等计算。在对等网络系统中每个节点的地位都是相同的,无服务器与客户机之分。随着Napster等P2P系统的出现,人们开始关注P2P技术。美国在线的Nullsoft子公司员工Justin Frankel开发了P2P的自由软件——Gnutella,因其非结构化、庞大用户群和简单性等特点受到业界的广泛关注而形成一种协议。随着Gnutella网络的蓬勃发展,由于P2P网络系统的无中心、自组织以及高可扩展等优越特性,越来越多的网络系统使用Gnutella协议来共享各种各样丰富的资源。然而,大多数节点都不愿共享自己的资源却使用别人提供的资源,这种搭便车问题一直困扰着Cnutella网络。随着P2P网络的不断扩展,这些危害也越来越大。为了解决上述问题,本文对P2P的基础知识和Cnutella协议的工作原理进行了详细研究,并对不同激励机制模型进行了总结。在此基础上,本文构建了一个基于服务质量的激励机制模型。该激励机制模型主要分为两部分内容:第一部分解决评价各个节点提供资源的贡献值的计算和存储的问题。对于如何评价节点的贡献值,本文主要考虑两个因素,其一是节点所上传的文件大小,其二是节点转发的查询、响应消息的数量。第二部分解决节点如何提供差异服务的问题。本文提出一种带宽分配方法Ⅰ-progressive filling来为各个竞争节点分配带宽,该方法为贡献值大的节点提供更好的服务并最大程度地利用有限带宽,此外,该方法还照顾到节点的满意程度,保证了带宽分配的公平性。本文通过NS模拟结果显示,Ⅰ-progressive filling方法具有很好的激励性质,在最大下载带宽相同的情况下,贡献值大的节点分得的带宽较大,贡献值小的节点分得的带宽较小;此外,该方法最大程度地利用有限的带宽,不浪费带宽资源。这样,P2P网络系统有差异地对不同贡献值的节点服务,每个节点要想从整个P2P网络系统中得到更多的收益就必须向其他节点提供更多的资源,转发更多的查询、响应消息。从而激发每个节点对整个P2P网络做贡献,大大提高了整个系统的效率。