网络寻路阶段的合作激励机制探讨.docx
- 文档编号:6334754
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:13
- 大小:119.30KB
网络寻路阶段的合作激励机制探讨.docx
《网络寻路阶段的合作激励机制探讨.docx》由会员分享,可在线阅读,更多相关《网络寻路阶段的合作激励机制探讨.docx(13页珍藏版)》请在冰豆网上搜索。
网络寻路阶段的合作激励机制探讨
Adhoc网络寻路阶段的合作激励机制研究
黄蕾,刘立祥
(中国科学院软件研究所综合信息系统技术国家级重点实验室,北京,100080)
摘要:
如何激励属于不同利益最大化实体的自私节点合作是当前Adhoc网络研究中的一个热点问题。
现有的自私节点检测和激励机制主要针对数据传输阶段,不能适应寻路阶段的特点。
本文基于邻居节点中继和生成的路由请求包之间的统计关系,提出了一种适用于按需路由协议寻路阶段的自私行为检测和惩罚机制,并利用博弈论工具将其建模为噪声环境下的重复囚徒困境博弈,对算法激励合作的有效性进行分析。
理论分析和仿真结果显示,本算法能够有效地惩罚寻路中的自私行为,促进节点合作。
关键词:
Adhoc网络,路由,自私检测,合作激励,博弈论
Studyoncooperationstimulationmechanisminroutediscoveryofadhocnetworks
HuangLei,LiuLixiang
(NationalKeyLaboratoryofIntegratedInformationSystemTechnology,
InstituteofSoftware,ChineseAcademyofSciences,Beijing,100080)
Abstract:
Howtostimulateselfishnodeswhichbelongtodifferentutility-maximizingentitiestocooperateisahottopicinadhocnetworkresearchcommunity.Currentmechanismsproposedsofarfocusmainlyondetectingselfishbehaviorandstimulatingcooperationindataforwardingstage.Theyarenotapplicableinroutediscoverystage.Basedonstatisticsrelationshipofrouterequestpacketsrelayedandgeneratedbyaneighbornode,thispaperproposedanalgorithmtodetectandpunishtheselfishnessinroutediscoverystageforon-demandroutingprotocols.Thealgorithmwasmodeledwiththetoolofgametheoryastherepeatedprisonerdilemmainnoisyenvironment,anditseffectivenesstostimulatecooperationwasanalyzedwiththemodel.Theoreticanalysisandsimulationresultsshowedthatourschemecouldpunishtheselfishnessinroutediscoveryeffectivelyandthusstimulatenodestocooperate.
Keyword:
Adhocnetwork,routing,selfishnessdetection,cooperationstimulation,gametheory
1引言
Adhoc网络由一组移动或固定的无线节点组成,信息交流等网络关键任务的实现需要各节点之间的相互协作,这种合作性也是现有诸多路由协议设计的一个基本假设前提。
但是当节点属于不同实体时,其合作性缺乏内在的保证,理性节点更倾向于采取能够使得自身利益最大化的行动,而不是完全遵从协议。
由于无线传输需要耗费大量的能量,因此理性的自私节点会尽量避免为其他节点中继数据,从而导致网络性能下降,合作用户利益受损。
Adhoc网络中自私节点的激励机制是当前的一个研究热点,提出的解决方案可分为三种类型[1]:
基于信用的方法(credit-basedmethod),基于声誉的方法(reputation-basedmethod),和博弈论方法(gametheorymethod)。
基于信用的方法一般建立在虚拟货币机制的基础上,通过精心设计的支付方式,使得节点只有在合作的时候才能使自己的利益最大化[2-4]。
这种方法的缺陷在于作为其基础的虚拟货币管理系统,或者需要抗篡改硬件的支持[2],或者需要集中的支付服务[4],尚未有令人满意的解决方案;基于声誉的方法记录节点的过往行为,综合直接观察结果和第三方信息形成对节点合作性的判断,对不合作的自私节点以拒绝服务的方式进行惩罚,从而达到促进合作的目的[5-8]。
目前声誉系统采用基于Watchdog[8]的隐式响应或基于ACK的显式响应作为监测的主要方式,[1][9-10]等文献指出现有监测机制的不准确性是声誉系统应用的主要障碍;博弈激励机制大多建立在“针锋相对(TFT)”策略及其变种的基础上,目前提出的方案多是各节点根据自己数据传输的成功率来调整为网络中其它节点中继分组的概率[11-一三]。
这类文献重在纳什均衡的证明,使用了较强的假设条件,距离实际应用尚有一段距离。
上述文献提出的激励机制大多是针对数据传输阶段节点的自私行为而设计的,一个基本假设是节点在路由发现阶段采取合作策略,而只在数据传输阶段自私丢包[5][8][11][一三],显然这个假设不尽合理。
对于Adhoc网络中通常采用的按需路由来说,节点在寻路阶段的自私行为可以使它免于后续的数据中继任务,“合法”的节省更多的能量,因此节点倾向于在寻路阶段采用自私策略,我们必须考虑相应的检测和合作激励机制。
寻路阶段的自私行为可以分为两大类型:
●主动篡改路由控制包。
当自私节点接收到RREQ(路由请求)、RREP(路由响应)等控制包时,它改变其中一些关键域如AODV中的跳数、DSR中的中间节点列表,从而使自己避免出现在源和目的均为其他节点的路径上,逃避中继任务。
这类自私行为的应对方式已经被广泛研究[7][14]。
●被动丢弃。
自私节点丢弃所接收到路由控制包,避免成为中继节点。
两种类型的路由控制包中,RREP的性质与数据包类似,可采用Watchdog机制检测自私丢弃行为。
但是RREQ包为广播包,而且它的传输是有条件的,存在大量合法丢包,因此Watchdog机制不能有效检测被动丢弃RREQ包的自私行为。
目前尚未有应对这类自私行为的有效方式。
本文主要研究RREQ丢弃的检测、惩罚和激励机制,因此后续章节所提及的自私行为将主要指RREQ的被动丢弃。
虽然RREQ的有条件传输和邻居集的不确定性使得基于单个包检测的Watchdog机制失效,但是,由于每一个RREQ都会被接收到的节点再次广播直到该节点拥有到目的节点的路径或者TTL超时,因此从统计角度来看,合作节点中继的RREQ与返回的RREP之和应该远大于自身所生成的RREQ数。
这一点可作为检测被动丢弃的基础。
本文提出一种被动丢弃行为的检测和激励机制,基本思想是节点监测过去一段时间内的邻居中继和生成的RREQ数量,如果两者比率超过一定门限,则认为邻居是合作节点,否则认为邻居是自私节点。
节点以一定的概率丢弃来自自私节点的包,作为对自私行为的惩罚,从而激励合作。
由于Adhoc网络中节点移动模型、业务模型、通信模型等均不相同,包括Watchdog在内的各种检测算法都不可避免的存在一定的误判率,我们的算法也不能例外。
我们建立简化的博弈模型对算法进行分析,研究误判率对合作激励的有效范围的影响。
分析结果表明,即使存在一定的误判率,本文算法也能够激励节点达成合作。
最后我们通过仿真对算法进行验证,仿真结果表明本文算法能够对自私节点进行有效的惩罚,从而激励合作。
2节点寻路阶段自私行为的检测和惩罚算法
2.1基本思想
本算法的出发点来自于这样一个观察:
由于RREQ的广播本质,对于业务量较均匀的网络来说,从统计上来看,合作节点自身所生成RREQ数应小于其中继的RREQ数和响应的RREP数之和。
在Adhoc按需路由中,节点接收到RREQ后是否继续广播与RREQ的内容以及本地路由表有关。
例如,如果节点曾经接收过该RREQ,那么这个包将被丢弃;如果节点具有到目的地的路径,这个包也不再前传,而是生成RREP返回源节点。
因此,一个节点自私与否无法逐包来判断。
但是,对按需路由协议来说,当节点有数据要发送且没有可用路由的时候,必须首先通过RREQ/RREP来建立数据传输路径。
这里的RREQ既可以是节点自己生成的,也可以是中继其他节点的。
由于Adhoc按需路由协议中的寻路都是通过广播实现的,因此节点中继的RREQ数与响应的RREP数之和应大于它自身生成的RREQ数。
后续章节中我们将只考虑相应的RREQ数量,这是因为除了节点数极少的网络外,RREQ的数量将远大于RREP。
我们通过仿真来验证这个观察。
仿真建立在NS2的平台上。
在1000m*1000m的区域内分别随机抛洒30和10个节点,节点位置服从均匀分布。
每个节点从剩余节点中随机选择其目的地,每一源-目的对建立一个CBR流,包长度为512字节,两包之间间隔为1s。
采用RandomWayPoint的随机移动模型。
这种模型中,节点随机移动到某一位置后停顿一段时间再开始新的移动。
设节点的移动速度在1m/s到10m/s之间均匀分布,停顿时间在10s和50s之间均匀分布。
传输模型为TwoRayGround,节点通信半径约为250m。
采用DSR作为路由协议。
仿真持续1000秒。
在每个节点的路由agent中设置一张表,记录过去200秒内收到的邻居自己生成的RREQ(REQs)和中继的RREQ(REQr)的数量以及两者的比值ξ=REQr/REQs。
为了排除初始阶段不稳定性的影响,我们的统计范围为REQs>1的那些记录。
30和10节点场景下ξ的分布如图1所示。
可以看出,两个场景中ξ<1的记录所占百分比都非常小,10节点场景中约为6%,30节点场景中约为1%。
随着节点数的增加,峰值所对应的ξ值也随之增大。
图130节点和10节点场景中ξ的分布情况
上述仿真结果证明了我们的观察在均匀业务下是成立的。
但是在业务极其不均匀的情况下我们的观察也可能不成立。
例如某一高速移动的节点有大量的数据要发送,在此期间其他所有节点不需要寻路,这时,该节点的ξ将小于1。
可以看出这种情况的发生概率是比较小的。
小概率的误判对合作激励机制的影响我们将在第3节讨论。
2.2自私检测和惩罚算法
用NB来表示邻居节点,用NB.REQr表示该节点中继的RREQ数,NB.REQs表示该节点生成的RREQ数。
为了减少误判,同时提高算法的灵敏度,我们设置两类门限:
Thi和Tha、Ths。
Thi是初始门限。
考虑一个刚刚加入网络的邻居,节点对它的观察是NB.REQs=NB.REQr=0,不能判定该邻居是否自私,这时它的寻路包应该得到中继。
只有在有明确的证据表明该邻居为自私时,才对其进行惩罚。
因此当NB.REQs≤Thi时,我们认为该邻居处于初始化阶段,不对它进行惩罚。
Tha和Ths代表了节点性质的判断门限。
当ξ值小于Tha时,认为节点是自私的,按照概率Thp丢弃来自该节点的路由包作为惩罚。
当ξ值小于Ths时,认为节点是极度自私的,以更严厉的丢弃数据包的方式对节点进行惩罚。
这两个门限值的选择与网络拓扑、业务模型等密切相关,其关系留待下一步工作讨论。
检测和惩罚算法如下表所示:
OnRecvRequest(PacketRREQ)
OnRecvData(PacketDATA)
/*ReverseRouteHandling*/
......
/*Observation*/
now=Scheduler:
:
instance().clock();
Nb=Lasthop-of(RREQ);
RSrc=Route-SOURCE-of(RREQ);
if(Nb==RSrc)
Nb.REQ_s_add(now);
else
Nb.REQ_r_add(now);
/*PunishmentforSelfishNode*/
if(RSrc.REQ_s>Th_i)
ratio=RSrc.REQ_r/RSrc.REQ_s
if(ratio : uniform(0,1) drop(RREQ); return; /*HandlingandRelayingofRREQ*/ ...... /*PunishmentforSelfishNode*/ DSrc=Route-SOURCE-of(DATA); if(DSrc.REQ_s>Th_i) ratio=DSrc.REQ_r/DSrc.REQ_s if(ratio : uniform(0,1) drop(DATA); return; /*HandlingandRelayingofDATA*/ …… 当节点收到RREQ时,判断其路由源节点和上一跳节点。 如果两者相同,认为该包是邻居节点生成的,若两者不同,则认为是邻居节点中继的。 更改相应的REQr和REQs值。 需要注意的是这两个值均是过去一段时间内的统计值,时间段外的情况不在考虑范围内,时间段的推移在add函数中实现。 如果RREQ包是邻居生成的,计算ξ,如果ξ>Tha,该包得到正常处理,如果ξ 当节点收到数据包DATA的时候,判断其源节点的ξ,如果ξ 为了避免被检测出来,自私节点可能采取两种规避措施: 1,更改寻路包的源地址选项,使得该RREQ看起来是由该邻居节点中继的,从而欺骗检测机制。 2,变更自己的身份,如采用sybil攻击[一五]。 这时,由于邻居身份是虚假的,检测机制不能有效发挥作用。 第一个问题在可采用[7]中应对主动篡改攻击的方式来解决。 在公钥管理系统的支持下,当节点发送RREQ时,必须利用自己的私钥对其进行签名。 邻居以及中间节点可以对RREQ包的发起方身份进行验证。 如果验证失败的话,丢弃该包。 这样自私节点不能改动寻路包的源地址项,从而解决了第一个问题。 Sybil攻击是基于声誉的系统共同面对的一个问题。 [一五]对此进行了深入的研究,并提出了多种解决方案,如无线资源检测,密钥验证等等。 这些方法的思路可用来解决第二个问题。 例如,可采用基于密钥预分配[一五]或者基于公钥的身份认证体系[16]来保证节点身份的真实性。 这些方法在文献中都已经进行了深入的研究,本文不再进行详细讨论。 3算法分析 算法的表现与Thi、Tha、Ths和Thp四个参数密切相关,其中Thi、Tha、Ths确定了检测的误判率,Thp决定了算法的惩罚力度。 这里所说的误判率不仅是指把合作节点误判为自私节点的概率,也包括把自私节点误判为合作节点的概率,即通常意义上的敏感度。 由于网络情况千变万化,不论Thi、Tha、Ths取什么值,静态设定或者动态变化,都可能存在误判。 本节利用博弈论的工具对算法在一定误判率情况下合作激励的有效性进行分析。 3.1系统建模 我们用随机配对重复博弈来对网络的寻路过程进行抽象。 所谓随机配对博弈,即随机选择相互作用的两个节点,它们均需要对方作为中继才能到达各自的目的地。 为了分析的方便,我们把时间轴划分为离散的时槽。 假设一个时槽内网络拓扑保持不变,时槽之间拓扑随机变化。 每时槽内两节点均进行一次寻路和数据传输过程。 节点可以选择自私丢包或者合作中继的策略。 如果对方选择中继,则源节点可获得α单位的收益。 两节点数据传输的开销均为β单位。 一般来说,α应远大于β。 每时槽内两个节点的交互可建模为一次阶段博弈。 用Ai={合作(C),自私(D)}来表示i节点的可选行动。 a来表示博弈的两个节点的行动组合,其中ai是i节点的行动,a-i是除i节点外其他节点的行动。 ui来表示节点i在阶段博弈中获得的支付,则阶段博弈的支付矩阵为: 表1: 阶段博弈的支付矩阵 合作(C) 自私(D) 合作(C) (α-2β,α-2β) (-2β,α-β) 自私(D) (α-β,-2β) (-β,-β) 可以看出阶段博弈的局势是一个典型的囚徒困境,其纳什均衡是(自私,自私),也就是说静态策略是无法促成合作的。 把本文的算法建模为下述动态策略: 其中 为对手行为的误判率, 为检测到的对手的行为,a为对手真正的行为。 尽管在实际应用中,这两个概率是不同的,并且随时间变化,但为了分析的方便,我们假设两者相同且不随时间变化,均为ε,粗略的反应了本文算法中Thi、Tha、Ths的影响。 f函数对应着节点根据过往信息决定当前行为的方式: 如果检测出对方自私的话,本节点以概率p丢弃对方的包,p反应了本文算法中Thp的影响。 行为策略的整体收益通过贴现平均准则来计算: 其中贴现因子0≤δ<1代表了对节点耐心和远见的一种度量,或者是博弈在下一回合仍然继续的概率。 它在Adhoc网络中的意义有不同的解释,[12]把1/(1-δ)解释为会话持续时间,[17]把δ解释为两节点再次相遇的概率。 除了上述两个因素外,本文用δ来反应节点能量限制的影响。 这是因为,当能量即将耗尽的时候,节点不再关心未来的收益,δ趋近于0;而能量充足且需要使用网络的时间较长时,节点比较关注未来收益,δ趋近于1。 能够促成合作的δ值的下界用δ*来表示。 δ*代表了一个行为策略促成合作的有效范围。 δ*越大,有效范围越小。 δ*越小,则有效范围越大。 动态行为策略σ是一个均衡的充要条件是对每个局中人i和每个行为策略 ,使用σ所获得的贴现收益要大于等于使用 所获得的贴现收益[一八]: (1) 其中 表示若每个局中人i在每个回合都使用行为策略σi并存在ε的误判率时,t时槽局中人所采用的行动组合为a的概率。 3.2合作性分析 我们假设节点当前的行为只与上一时槽的观测值相关, ,这时整个过程可建模为一个具有四个状态(C,C),(C,D),(D,C),(D,D)的马尔可夫链,节点当前阶段行动与上一阶段对手行动的条件概率为: 用P来表示马尔可夫链的转移矩阵,用B来表示阶段博弈的支付向量,U(t)来表示从t时槽起的贴现支付: 那么可通过下式计算出各状态的贴现收益: (2) 由于无限重复博弈中从各时槽开始的博弈结构是一样的,因此我们可以省略掉时间上标t,从而得到各状态的贴现收益为: 由于存在着误判率,因此系统不可能总保持在(C,C)的状态,这种情况下合作的含义就是节点遵循行为策略时的收益应大于其偏离该策略的收益,如式 (1)。 具体来说,就是在策略要求节点合作时,节点采用合作行动的收益应大于采取自私行动的收益,即: Ui(C,*)>Ui(D,*)(3) *为C或者D。 我们对α,β,ε,p等参数取不同的值,以观察策略促成合作的有效范围。 δ*与各参数之间的关系如图2所示。 图2合作范围与ε,p的关系 从图2中我们可以观察不同参数对合作范围的影响: ●δ*随着α,β的比率的增大而降低,其原因是数据成功传输所获得的收益越大,节点就越倾向于合作。 ●δ*随着p的增加而降低,其原因可解释为惩罚越严厉,节点偏离既有策略所获得的收益越小,节点越倾向于合作 ●δ*随着ε的增加而增加,当ε=0.5时,不论其他参数为何值,节点均不能达成相互合作。 其原因是,误判率越大,节点所获得的对手的信息越少,就越倾向于采用安全的自私策略以保证自身利益的最大化。 可以看出,当ε较小,p较大时,不等式(3)对于大部分δ值均成立,系统达到合作的均衡状态。 这说明本算法可有效实现合作激励的功能。 4仿真验证 我们仍采用2节中的30节点仿真场景对算法进行仿真验证。 算法参数选择为Thi=1,Tha=4,Ths=1和Thp=1。 节点的初始能量为5,发送和接收能量配置分别为0.1和0.025,仿真时间设为2000秒。 首先我们考察不同自私节点数时算法的表现。 设置三种场景,基线场景: 所有节点均合作;场景1: 自私节点丢弃RREQ包,但是没有启用本文算法;场景2: 自私节点丢弃RREQ,但是合作节点启用了本文算法。 各场景分别设3、6、9、12、一五个节点为自私节点。 对比自私节点和合作节点在不同场景下的吞吐量,如下图所示: 图3不同场景下吞吐量与自私节点数目关系 首先观察自私节点吞吐量的变化规律。 对比基线场景和场景1的吞吐量变化,可以看出,节点自私丢弃RREQ,逃避中继任务,节省了能量,从而使得自己的吞吐量上升。 场景2本文算法启用之后,对自私节点进行有效检测和惩罚,使得自私节点吞吐量大幅度下降,低于其合作状态,因此理性的自私节点将倾向采用合作策略,从而实现对自私节点的激励。 合作节点的吞吐量变化规律与此相反。 自私节点丢弃RREQ包使得合作节点需要花费更多的能量中继包,导致自己的吞吐量下降。 算法启用后,合作节点不再中继自私节点的包,从而可以节省能量用于中继合法包。 自私节点数目越多,节省的能量越多,吞吐量提高的幅度就越明显。 下面我们考虑本文算法对选择性丢包的应对能力。 设自私节点数目为6,即20%的节点自私丢包,丢包概率分别为50%、60%直到100%。 两种类型的节点在不同场景下的平均吞吐量如表2所示: 表2: 不同场景下不同类型节点的平均吞吐量 自私节点 丢包概率 场景1: 不采用本文算法 场景2: 采用本文算法 合作节点 平均吞吐量(包) 自私节点 平均吞吐量(包) 合作节点 平均吞吐量(包) 自私节点 平均吞吐量(包) 100% 342.625 388.833 383.708 257.5 90% 350.917 330.833 374.125 294.667 80% 344.5 321.833 362.167 3一八 70% 343.75 314.667 362.333 333.167 60% 348.167 325 360.042 339.5 50% 344.375 3一五.333 363.25 348.5 0(合作状态) 354.708 316.667 360 348.833 从上表可以看出,在合作状态,本文算法并不会给网络性能带来负面影响。 在场景1本文算法没有启用的时候,自私节点只有在丢包率较高(>80%)时,吞吐量才能得到显著的增加。 场景2中合作节点启用本文算法之后,丢包率越大,遭受的惩罚力度越大,自私节点的吞吐量越小。 当丢包率大于80%时,其吞吐量远小于合作状态的348.833,因此本文算法激活后,理性节点将选择合作而不是自私丢包,从而实现对自私节点的激励。 5相关工作 [8]是Adhoc网络自私行为检测和激励领域的开创性文献。 [8]关注的是数据传输阶段的自私丢包问题,并提出了后续文献中广泛应用的Watchdog检测方案。 Watchdog建立在DSR的基础上,并设定节点工作在混杂侦听模式下。 节点发包之后,侦听下一跳节点的通信。 如果在设定时间内,没有听到该包被继续传送到路径上的下一节点,那么认为下一跳节点自私丢包。 当节点检测到其下一跳自私丢包的比率超过一定门限时,它将通知源节点。 源节点中的Pathrate
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 阶段 合作 激励机制 探讨