对等网络中节点搭便车行为抑制方法

文档序号:7968037阅读:210来源:国知局
专利名称:对等网络中节点搭便车行为抑制方法
技术领域
本发明属于计算机网络技术,具体涉及一种对等(Peer-to-Peer,P2P)网络中节点搭便车(Free riding)行为抑制方法。
背景技术
对等网络技术在提出之初期望各个节点竭尽全力为对等网络中的其它节点服务,对节点的自私行为约束机制较少。然而2000年以来,在全世界范围内对多个大型对等网络流量测量结果表明,多数节点存在严重的自私行为。其自私行为主要表现如下第一、节点不共享文件或仅仅共享数量极少的文件;第二、节点只共享那些几乎没有其它用户感兴趣的文件;第三、节点不为对等网络提供路由中转服务或者对其它用户发出的服务请求不予响应,以上行为被称为搭便车(Free Riding)。
普遍存在的搭便车现象导致对等网络中节点服务负载出现了严重的不平衡,90%以上的节点仅仅是享受服务,而不足10%的节点在为整个对等网络提供服务。因此,极少数节点维持的对等网络应用连接数极高,工作负载极大。已有的对等网络经济理论研究和对等网络实际测量结果均表明搭便车行为易导致对等网络抗协同攻击能力低和生命周期短,特别是少数高负载节点退出将导致对等网络大面积服务终止,从而网络的可靠性和可用性降低。
目前抑制节点搭便车行为的主要技术是基于激励机制的方法和基于博弈论的方法。
激励机制的方法其基本思路是所有节点在对等网络中能享受的服务质量与其所作贡献大小成比率关系。通常节点加入到对等网络后,立即强制性地成为提供下载服务的“种子节点”。种子节点提供的下载服务越多,那么它自身能享受的服务越好。激励机制的方法目前已有较多应用,如BitTorrent中即采用了该方法。然而相当数量的对等网络节点(据报道Gnutella网络中超过30%)处于防火墙或NAT(Network Access Translation)后,物理网络条件的局限导致这些节点难以为其它节点提供下载和路由转发服务。根据基于激励机制的方法,这些节点能享受的服务质量都很低。较低的服务质量将导致用户对该对等网络应用兴趣降低,用户数量下降,不利于对等网络的商业运营。另外,基于激励机制的方法在防止节点恶意欺骗行为方面存在较大困难。
基于博弈论的方法,采用求解Nash均衡的方法分析节点如何采取有利于自身利益的最优行为策略集。该方法计算复杂性高且一般需要收集实时的对等网络全局状态信息,而大型对等网络很难提供全局状态信息,因此该方法工程实现困难,至今还未见其在实际大型对等网络应用的报道。

发明内容
本发明的目的在于提供一种对等网络中节点搭便车行为抑制方法。该方法可以尽力向对等网络各个节点提供较高服务质量、保证整个对等网络的稳定性,减少部分节点的搭便车行为。
本发明提供的对等网络中节点搭便车行为抑制方法,其步骤包括(1)获取节点的服务状态过载阈值,服务状态包括对等网络服务状态、计算资源服务状态和网络通信资源服务状态;(2)各节点定期监测所在主机的服务状态信息,设采样周期p;(3)判断节点是否处于过载状态,如果节点过载,进入步骤(4);否则进入步骤(7);(4)选择邻近搭便车节点作为共享资源转移的目标节点集;(5)过载节点将访问频率高的共享资源转换到目标节点集;(6)通知对等网络应用软件更新路由,进入步骤(8);(7)休眠一个采样周期p;(8)重复步骤(2)-(7),直至节点退出对等网络。
本发明逐步地将服务负载和共享资源从高负载节点转移到邻近搭便车节点,迫使部分搭便车节点为对等网络作贡献,因此可以抑制对等网络中节点的搭便车行为,有效提高对等网络的健壮性、抗协同攻击能力和生命周期。另外本发明还具有以下三个特征。
第一、本发明提出的抑制方法对于对等网络节点用户而言,具有高度的透明性。这种透明性表现为首先、用户不需要在使用软件之初就必须指定节点应为对等网络作多少贡献,不需要被迫接收享受的服务质量与所作贡献大小相关联的策略,不需要人为选择节点的行为策略;其次、共享资源转移过程不需要用户人工干预。这种透明性既符合多数节点用户的自私心理,又便于用户使用对等网络软件,因此能吸引更多的用户,从而为对等网络运营商带来更多经济效益。而采用基于激励机制的方法,节点用户一般在加入对等网络之初,就必须指定节点应为对等网络提供的服务质量和数量,因此既增加软件使用复杂度,又降低自私主义者的参与兴趣。
第二、本发明为防火墙和NAT服务器后的所有节点提供了较高质量的服务,有利于维护整个对等网络用户的服务质量。基于激励机制的搭便车行为抑制技术,它根据节点享受的服务质量与所作贡献成比率的原则,对防火墙和NAT服务器后的节点仅提供低质量的服务甚至拒绝提供服务。本发明客观考虑部分节点在物理连接方式(如采用ADSL方式连接,网络下行速度远大于网络上行传输速度)和物理网络拓扑结构(如没有全球唯一的IP地址)方面存在局限,认为它们并不是搭便车者,而是物理网络条件局限使得它们很难为对等网络作贡献。本发明在抑制节点搭便车行为时,对该类节点不采取严厉的惩罚措施,只要整个对等网络服务质量能得到保证,本发明就尽力为这些节点提供服务。该类节点数量占Gnutella对等网络节点数量的30%以上,其它系统亦类似,因此本发明提高了对等网络的服务质量。
第三、以往搭便车行为抑制技术一般是针对特定对等网络应用进行开发,而本方法提供了一种通用的抑制方法,可以在不同场景中应用。特别是本方法的具体实现被封装为软件中间件,其它对等网络应用软件开发者无需了解本发明的详细技术细节,就能快速实现对等网络节点搭便车行为抑制,具有工程可应用性强的特点。


图1是本发明节点搭便车行为抑制方法流程图。
图2是节点主机服务状态监测指标表。
图3为共享资源转移实例图。
具体实施例方式
下面结合附图和具体实施方式
对本发明做进一步说明。
本发明的技术思路是寻求一种分布式、工程可实践性强的搭便车行为抑制技术。该技术能针对部分节点所处的物理网络环境,允许对等网络尽力为防火墙和NAT后的节点服务;能定期监测节点机器的服务状态;当极少数节点监测到自身处于过载状态之后,立即将过载节点上的共享资源(如文件)和服务负载(如查询请求响应)透明地转移到邻近互连的搭便车节点;因此搭便车节点中的共享资源数量增加、响应的服务请求数增多,抑制了节点的搭便车行为。
如图1所示,本发明方法包括以下几个步骤(1)获取节点的服务状态过载阈值。
监测节点所在机器的服务状态是本发明得以实现的根本,图2中列出了本发明最关注的节点服务状态监测指标。本发明把收集到的服务状态信息与已规定的阈值进行比较,判断节点是否处于过载状态。为了方便用户使用,实现本发明必须既允许用户设置阈值,又给出缺省阈值,所有阈值都保存在一个文本配置文件中。当搭便车抑制程序开始运行时,程序首先读取该配置文件。
图2中所描述的节点服务状态监测指标,其阈值取值类型分为两大类。一类是百分比类型数值,包括CPU计算资源利用率和网络带宽资源利用率。本发明中对百分比类型数值的缺省阈值是80%。尽管本技术允许用户自定义阈值,但为了防止节点的自私行为,用户自定义的服务状态阈值不能低于30%。当用户自定义阈值低于30%时,系统自动将其变为30%,从而可以避免自私节点逃避为系统服务。
另一类阈值是整数值,如节点共享资源数量、节点共享资源文件大小(MB)、对等网络服务连接数、对等网络接收服务请求数、对等网络响应服务请求数、对等网络转发数据报数、TCP主动连接数、TCP被动连接数。由于支持的最大连接数与具体的服务类型紧密相关,本发明仅定义一个较大的缺省数值。
阈值设置只需要做一次,然后将阈值配置信息长期保存在阈值配置文件中。当节点设置的阈值无改变时,本方案在每次执行过程中都先主动读取已有的阈值设置信息,而无须每次都重新设置阈值。
(2)各节点定期监测节点所在主机的服务状态信息。
本步骤需要监测的服务状态信息涉及应用软件、硬件资源和网络通信资源三个方面。图2中节点共享资源数量、节点共享资源文件大小、对等网络服务连接数、对等网络接收服务请求数、对等网络响应服务请求数、对等网络转发数据报数属于对等网络服务状态信息;CPU计算资源属于主机硬件资源;TCP主动连接数、TCP被动连接数和网络带宽利用率属于网络通信资源信息。所有的操作系统都提供了应用程序接口(API)去监测主机硬件资源的利用率状态信息,然而它们很难或不能直接提供网络通信资源和对等网络应用软件状态的监测信息。简单网络管理协议(SNMP)可以提供软硬件资源和网络带宽服务状态信息,但也不能直接提供应用软件状态信息。在实现步骤(2)时,应采用调用API和使用简单网络管理协议相结合的主机状态监测方法。
利用简单网络管理协议,可以监测机器的CPU计算资源利用率和通信带宽利用率。在实现过程中,可以利用一些大众化的SNMP软件包,如Adventnet,在程序中读取SNMP Agent中的MIB信息。考虑到网络管理协议的标准性和通用性,关于主机服务状态信息,本发明建议程序必须遵守RFC1514协议;关于网络通信服务状态,本发明建议程序必须遵守RFC1213协议。
实现本发明的软件中间件建议使用Java或C++。使用Java实现的中间件软件跨平台性好,且有比较丰富的SNMP软件包功能支持,但在调用Windows和Linux操作系统API时,需要使用JNI技术。使用C++,则可以直接调用操作系统提供的API来监测节点机器的状态信息,但其跨平台性较弱。考虑到当前的对等网络应用系统开发以Java和C++居多,因此建议两种语言实现的软件包都提供。
另外,对等网络节点在软件配置方面存在差异,特别是操作系统方面的差异对调用操作系统提供的API有较大影响。实现本发明过程中,要特别重点考虑两类应用最广泛的操作系统Windows和Linux。通常Linux操作系统是自动开启SNMP Agent服务,而Windows不开启。因此针对Windows操作系统,本发明要特别注意主动开启系统的SNMP服务,否则无法采集到SNMP Agent中的MIB信息。
关于对等网络服务的状态信息,本发明需要获得对等网络服务开发者的支持。可以通过两种方法来实现该项功能,一种是对等网络应用程序定期把数据写在某个配置文件中,然后状态监测中间件软件定期执行读操作,另一种实现方法是直接通过消息机制通知监测中间件软件。
本发明采用主动轮询监测方式。采样周期记为p,采样时间周期可由用户指定。
(3)判断节点是否处于过载状态。
根据监测节点资源所读取服务状态信息,判定节点是否处于过载状态。在此步骤需要注意的是由于表2中列出了多个监测指标,可能出现一些指标超过阈值,而另外一些指标没有超过指定阈值的现象。对此,本技术规定只要图2中给定的监测指标有任意三项超过预定阈值,即认定该节点处于过载状态。
(4)当节点发现自身过载,则选择邻近搭便车节点作为共享资源转移的目标节点集。
可以采用多种方式选择邻近搭便车节点作为共享资源转移的目标节点集。下面列举一种方式予以说明选择过程(4.1)节点发现自身过载,则立即向所连接的全体邻近节点发送负载状态信息查询请求。对等网络中各邻近节点收到负载状态信息查询请求后,立即把最新的状态信息反馈给查询发起者。
(4.2)为了避免将共享资源从一个过载节点转移到邻近高负载节点,本发明不把所有邻近节点都作为备选资源转移目标节点。过载节点把邻近节点中服务负载低于规定阈值h的那些节点的标识号(PeerID)存放在一个数组NeighborPeers中(不妨设数组NeighborPeers包含t个节点)。阈值h可由用户自行设定。
(4.3)本发明采用随机选择方式来确定资源转移目标节点集,其方法是首先随机生成转移目标节点集节点数量m,其中1≤m≤t;然后生成m个不同的随机数xi(0≤xi≤t-1);最后将NeighborPeers[xi]所对应的PeerId作为共享资源转移目标节点,这m个随机选择的共享资源转移目标节点就构成了最终的共享资源转移目标节点集。
(5)过载节点将访问频率高的共享资源转换到目标节点集。
通过文件传输协议(FTP)或超文本传输协议(HTTP)在搭便车节点集和过载节点之间实现文件传输。
选择文件复制到指定资源转移目标节点有多种不同的策略。本发明建议采用一种比较简单的方法。其基本过程是首先将过载节点中的共享文件资源按照访问频率从高到低进行排序;接着将资源转移目标节点按照服务负载大小排序;然后将访问频率最高的文件转移到服务负载最小的节点,其余资源的复制方式依次类推。实现该过程应尽量避免过于复杂的数据结构,利用数组为佳,另外还应该特别注意数组排序算法的选择。鉴于共享文件的数量可能很大,选择时间复杂性较低的排序算法是实现该步骤的关键。
(6)通知对等网络应用软件更新路由,进入步骤(8)。
步骤(5)完成后,过载节点须主动更新对等网络的路由,将新的查询请求转发到资源转移后的目标节点。值得指出的是,不同的对等网络路由协议有较大差异。本发明不为各类对等网络应用提供具体的路由算法,同时也不要求其它对等网络遵守本发明的路由更新协议和算法。
本发明自定义的一种更新路由协议,它通知对等网络应用软件去更新路由,但具体的更新过程由对等网络应用软件完成。该路由更新协议仅定义两个原语第一是更新拓扑(操作参数包括共享资源名、节点名),第二是更新拓扑操作结果(成功或失败)。
(7)休眠一个采样周期。
休眠是指线程仅执行sleep操作,不执行其它操作。采样周期即为步骤(2)指定的采样周期p,本发明提供的缺省采样周期为一分钟。
(8)重复步骤(2)-(7),直至节点退出对等网络。
应当理解的是,对本发明技术所在领域的普通技术人员来说,可以根据本发明的技术方案及其构思进行相应的等同改变或替换,而所有这些改变或替换,都应属于本发明所附权利要求的保护范围。
实例图3中所示的网络拓扑结构图代表对等网络整体拓扑结构的一个子图。图中圆环1-9代表对等网中的节点,实线c301-c308是对等网络节点之间的逻辑连接。
(1)图中各节点{1,2,…9}在加入到等对网络时,先获取自身的服务状态过载阈值。
(2)各节点定期监测自身服务状态,采样周期设为一分钟。
(3)节点1发现其自身过载;(4.1)节点1向其所有邻近节点{2,3,6,8,9}发出状态查询请求b311-b315。节点{2,3,6,8,9}收到请求后,立即向节点1反馈自身状态信息。
(4.2)节点1收到邻近节点发出的反馈信息。此处不妨设阈值 n为过载节点自身的对等网络连接数。此时n=5,计算可得共享资源转移目标节点的最大连接数为3。考察节点{2,3,6,8,9}的对等网络连接数,发现节点6维持的连接数为4,大于最大连接数3,因此节点6不再作为备选目标节点。因此,现在的备选邻近节点是{2,3,8,9},t=4。
(4.3)随机选择算法此时最大可以选择4个节点作为资源转移目标节点。节点1随机生成m=2,最终生成资源转移目标节点集是{2,9}。
(5)节点2、9的对等网络连接数均为1,但假设节点2的服务负载较低,此时选择将节点1中访问频率最高的资源文件(不妨设为file1)转移到节点2,将节点1中访问频率第二高的资源文件(不妨设为file2)到节点9;节点1、2之间开始利用FTP协议传输文件,直至文件传输结束,节点1、9之间利用FTP协议传输文件,直至文件传输结束;
(6)节点1通知对等网络应用软件,以后对访问file1的资源查询与访问请求不再直接作反馈,而是将其查询请求转发到节点2;以后对访问file2的资源查询与访问请求不再作反馈,而是将其查询请求直接转发到节点9。节点1通知对等网络应用软件更新路由。
(8)节点1跳转到步骤2。
权利要求
1.一种对等网络中节点搭便车行为抑制方法,包括如下步骤(1)获取节点的服务状态过载阈值,服务状态包括对等网络服务状态、计算资源服务状态和网络通信资源服务状态;(2)各节点定期监测所在主机的服务状态信息,设采样周期p;(3)判断节点是否处于过载状态,如果节点过载,进入步骤(4);否则进入步骤(7);(4)选择邻近搭便车节点作为共享资源转移的目标节点集;(5)过载节点将访问频率高的共享资源转换到目标节点集;(6)通知对等网络应用软件更新路由,进入步骤(8);(7)休眠一个采样周期p;(8)重复步骤(2)-(7),直至节点退出对等网络。
2.根据权利要求1所述的方法,其特征在于步骤(4)包括下述过程(4.1)当节点发现自身过载时,向所连接的全体邻近节点发送负载状态信息查询请求,并将最新的状态信息反馈给查询发起者;(4.2)过载节点将邻近节点中服务负载低于规定阈值h的那些节点构成资源转移目标节点侯选集,设该侯选集包含的节点数量为t;(4.3)先随机生成共享资源转移目标节点集包含的节点数量m,其中1≤m≤t;再生成m个不同的随机数xi,其中0≤xi≤t-1;最后将共享资源转移目标节点侯选集中第xi个元素所保存的节点标识号作为共享资源转移目标节点,这随机选择出来的m个共享资源转移目标节点构成最终的共享资源转移目标节点集。
全文摘要
本发明公开了一种对等网络中节点搭便车行为抑制方法。该方法让各节点定期监测节点所在主机的服务状态;一旦发现本节点处于过载状态,立即选择邻近搭便车节点作为共享资源转移的目标节点集;过载节点将访问频率高的共享资源转换到目标节点集;然后动态更新对等网络的拓扑结构。本发明不仅有效地抑制了部分节点的搭便车行为,而且对于对等网络节点用户而言,具有高度的透明性。它能为防火墙和NAT服务器后的所有节点尽力提供高质量的服务,努力维护整个对等网络的服务质量,可以在不同场景中应用。
文档编号H04L29/06GK1972289SQ200610125228
公开日2007年5月30日 申请日期2006年12月1日 优先权日2006年12月1日
发明者金海 , 余一娇, 袁平鹏, 宁小敏, 武浩 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1