一种低开销高交易成功率的机会网络路由方法与流程

文档序号:12968051阅读:1322来源:国知局
一种低开销高交易成功率的机会网络路由方法与流程

本发明属于机会网络(opportunisticnetworks)技术领域,尤其涉及在含有自私节点的机会网络中采用了经济学的博弈论方法激励自私节点参与网络数据转发的场合。



背景技术:

机会网络是一种时延和分裂可容忍的无线自组织网络,其典型特点是不要求在源节点和目的节点之间存在完整的链路,利用节点的移动性带来的相遇机会实现通信。由于在许多应用领域难以建立全连通的网络,导致传统的无线自组织网络协议不能正常使用,而机会网络的这个特点,使得它能够较好的满足这些需求。近年来,机会网络已成为无线自组织网络重要的研究方向之一,得到了较为广泛的应用,例如,芬兰推出的snc(saminomadicconnectivity)网络连通项目,有效解决了偏远地区上网不方便的问题;在野生动植物监测方面,普林斯顿大学基于机会网络提出的野生动物追踪项目zebranet,通过在斑马上放置传感器,利用斑马的生活习性来进行数据采集,类似应用还有利用鲸鱼进行海洋数据收集的swim(sharedwirelessinfostationmode)项目等。

机会网络是一种无线自组织网络,网络中每个节点的资源都是有限的,比如电池、内存、cpu和网络带宽等等。出于对自身资源的保护,网络中的节点会出现拒绝消耗自身资源替其它节点转发数据的自私行为,这种自私行为将会阻碍网络中数据包的转发。已经有大量的文献通过理论和实验证明了自私节点的存在将严重影响机会网络的性能。

针对节点的自私行为,研究者们提出了多种解决方案,其中一种可行的方案是将经济学中的博弈策略引入机会网络,将网络中的节点模拟成博弈中的博弈者。按照博弈策略,在博弈过程中节点往往会选择最大化自身利益的策略,通过设计惩罚和激励机制,使节点因自私而带来的短期收益低于合作转发的长远收益,迫使自私节点采取协作策略,使得节点的最优收益策略与网络最优性能具有一致性,从而避免宝贵的通信资源因为节点的自私行为而浪费。

较早对网络中的自私节点问题进行处理的是marti等人提出的机制——watchdog&pathrater(参见文献[1]:sergiomarti,tjgiuli,kivenlai,marybaker.mitigatingroutingmisbehaviorinmobileadhocnetworks[c].the6thannualinternationalconferenceonmobilecomputingandnetworking(mobicom2000),2000:255-265)。该机制采用监听的方式对网络中其它节点行为进行检测,当前节点把数据包发送给下一跳节点后,侦听下一跳节点是否转发了该数据包。若在规定的时间内下一跳节点无更改地转发了此数据包,则说明下一跳进行了合作;反之说明下一跳出现了不合作行为。watchdog用于检测自私行为的节点,pathrater则负责在进行下一跳节点选择时避开这些节点。watchdog在节点位置固定的网络中有比较明显的效果,但在机会网络中,由于节点的随机移动及网络中链路状态的不确定性,节点行为往往难以通过监听方式检测到,当前节点往往无法正确判断下一跳节点是否转发了数据包。

在后续研究中,唐作用等人在现有技术的基础上,提出了一种基于信誉值维护的自私节点检测机制——2-ack(参见文献[2]:唐作用,袁艺嘉,董永强,吴国新.基于信誉值维护的机会网络自私节点检测机制[j].通信学报,2012,33(z2):217-221)。该机制通过两跳ack应答数据包来判定节点是否存在自私行为,利用监测信息计算节点的信誉值,并将综合信誉值作为判断节点是否自私的依据。网络中的每个节点维持并计算对其他节点的综合信誉值列表,并设定一个信誉值阈值,信誉值高于此阈值的节点被认定为非自私节点,而信誉值低于次阈值的节点被认定为自私节点,综合信誉值的受直接信誉值和间接信誉值的影响。当前节点的下一跳节点在与上一跳节点相遇后,向上一跳节点提供证明当前节点将数据包进行了转发的ack信息。根据该ack信息,上一跳节点增加当前节点的信誉值。该方法减少了对下一跳节点的侦听行为,但当前节点的下一跳节点与上一跳节点的相遇概率会严重影响上一跳节点对当前节点自私性的判断。

shuzhenxu等提出了一种将博弈论引入存在自私节点的机会网络中以刺激自私节点积极参与网络协作的方法---crgtd(credit-basedrepeatedgamemodelappliedintransferdecision,参见文献[3]:shuzhenxu,mingchuli,yuanfangchen,leishu,xingu.acooperationschemebasedonreputationforopportunisticnetworks[c].2013internationalconferenceoncomputing,management,andtelecommunications(commantel2013),2013:289-294)。该方法是一种基于信用和重复博弈的解决方案,通常与感染路由机制结合在一起运行,在节点相遇时进行控制信息和数据包的交换。crgtd方案引入了信用合作机制,将单次阶段博弈改进为网络运行时间内的重复博弈过程,并通过设置惩罚措施和惩罚周期,对有自私行为的节点进行惩罚,拒绝转发来自或发往这类节点的数据包。这样,理性的自私节点为获得更大的利益不得不减少自私行为,从而有利于网络中数据包传送的成功率提高。crgtd方案通过设定节点选择交易策略的规则,如果节点按规则选择交易策略,则认为它是非自私节点,否则便判定其存在自私行为,并将因此受到惩罚,受惩罚的节点能够通过惩罚周期中的合作行为使自身从被惩罚状态解除。crgtd机制可以有效减少节点的自私行为,但由于单次自私行为导致博弈的失败不足以判断节点为自私节点,因此它在自私节点的判定上收敛偏慢。

为了减少网络中的数据包副本数量,fanwu等提出了一种基于概率路由的博弈方法——gscp(agame-theoreticapproachtostimulatecooperationforprobabilisticroutinginopportunisticnetworks,参见文献[4]:fanwu,tingtingchen,shengzhong,chunmingqiao,guihaichen.agame-theoreticapproachtostimulatecooperationforprobabilisticroutinginopportunisticnetworks[j].ieeetransactionsonwirelesscommunications,2013,12(4):1573-1583)。在gscp中,当两个携带数据包的节点相遇时,要交换彼此的sv(summaryvector,其主要内容是当前节点所携带的数据包的摘要列表,数据包摘要通常包含数据包的源节点、目的节点、序号、长度等信息)和相遇概率(deliverypredictability,dp)列表(由预测的当前节点与其它节点的相遇概率组成的表,也可称为dp列表);收到对方节点发来的sv和dp列表后(装在一个sv-dp消息中),当前节点能够通过计算确定自己需要向对方购买的数据包,而且能够计算出报给对方节点的价格,该报价x由下式计算:

其中,t(m)和p(m)分别为数据包m的传输和接收开销(与数据包的长度有关,可设为一个全网统一的、较小的常系数×数据包长度),vi(m)为数据包m对于博弈参与节点i的价值量,由下式定义:

vi(m)=ω·pi,d(2)

式中ω为数据包m的源节点为成功转发m到目的节点支付的费用(全网节点用同样的ω值),pi,d为节点i与数据包m的目的节点d的相遇概率。欲购买数据包m的节点(即买方节点)用下式计算自己通过博弈达成交易后的收益ub:

ub=vb(m)-p(m)-x-cb(γ)(3)

式中x是报价,cb(γ)是每一轮议价博弈中买方节点的开销。买方节点判断,如果ub<0,则不向对方节点购买数据包m;如果ub>0,则要向对方节点购买数据包m,随后会向对方节点(即卖方节点)发送求购信息。如果一个节点收到相遇节点发来求购消息m的信息,此时它即为卖方节点,它用下式计算自己通过博弈达成交易后的收益us:

us=x-vs(m)-t(m)-cs(γ)(4)

式中x是报价,cs(γ)是每一轮议价博弈中卖方的开销。卖方节点判断,如果us<0,则不向对方节点出售数据包m;如果us>0,则向对方节点出售数据包m,随后会向对方节点(即买方节点)发送数据包m。对于节点间达成的每次买卖数据包的交易,网络中的交易费用结算机构——交易结算中心ccc要收取卖方节点一笔交易费用x(m,x),其大小跟卖方节点的交易价格有关,计算式如下:

其中,γ≤(vb(m)-vs(m)-t(m)-p(m))/2-σ是一个很小的基本交易费用,交易费用因子σ是一个需预设的参数,0≤σ≤(vb(m)-vs(m)-t(m)-p(m))/2;交易费用参数k=2-2γ/(vb(m)-vs(m)-t(m)-p(m)),是在卖方节点交易价格高于最优价格时的交易费用系数。

gscp方法将概率路由中节点之间的控制消息和数据包交换过程视为议价博弈,其典型的消息交互和数据包传送过程如说明书附图1所示;博弈达成合作转发后数据包沿着转发概率越来越大的路线传输,这有助于提高数据包传送的成功率;但它定义的节点两两博弈在是建立在买卖双方的转发概率差值高于一定阈值的条件下,这有可能使买卖双方转发概率差值较小时无法达成合作转发的博弈策略,从而有可能浪费数据包转发的机会。

另外,我们针对以gscp为代表的现有相关路由方法中存在的数据包单向传递影响转发概率提高、依赖虚拟货币进行交易削弱节点购买力以及数据包交易过程有冗余交互的问题,在gscp基础上设计了一种高效的博弈方法——hlpr-mg(high-throughputandlow-overheadprobabilityroutingbasedonmulti-playerbargaininggame)(参见文献:任智,索建伟,刘文朋,雷宏江,陈前斌.基于多方议价博弈的机会网络高吞吐量低开销概率路由算法[j].通信学报,2017,36(6):41-48)。该机制将节点两两博弈扩展为多方博弈以加快数据包转发概率的提升,同时引入“以物易物”方式增强节点购买力,并且改进现有交互机制以减少博弈次数,从而达到提高网络吞吐量的和减小控制开销的效果。

综上所述,人们对含自私节点的机会网络路由方法、尤其是引入经济学中的博弈论方法已进行了一段时间的深入研究,在刺激自私节点积极参与数据包转发方面取得一些进展,但我们通过深入研究发现,现有基于博弈论的机会网络路由方法存在以下问题:

1.在现有的基于博弈的概率路由方法(如gscp)中,单次博弈的收益会影响博弈双方达成交易的可能性,在单次博弈中只有当双方的收益都不小于0时双方才会达成交易并采取合作转发策略;这样的处理方式而没有考虑卖方在数据包买入时可能已经获利,这降低了博弈双方达成交易(即交易成功)以及采取合作转发策略的比率。

2.节点在进行数据包转发前,需要先交换sv-dp消息,里面包含汇总矢量sv和相遇概率(deliverypredictability,dp)列表(由预测的当前节点与其它节点的相遇概率组成的表,也可称为dp列表)。当两个节点相遇,dp列表交互完成后,后收到dp列表的节点能得知双方节点到其它节点的相遇概率;此时,若该节点到sv中某些数据包的目的节点的相遇概率高于相遇节点,则相遇节点就不可能求购这些数据包(因为求购后收益会小于0),因此也就没必要将这些数据包的摘要发给相遇节点,然而现有机制的sv-dp消息交互过程仍然会将该类数据包的摘要加入sv并发给相遇节点,这样便产生了数据包摘要的冗余,带来不必要的控制开销。

3.数据包交易的过程中存在冗余的控制消息。在现有相关方法中数据包在两节点之间交易时,请求购买数据包的求购消息需要由买方节点单独发给卖方节点。通过研究发现,求购消息的源、目的节点与sv信息的源、目的节点相同,因此可以将sv-dp消息合并在一起进行发送,而单独发送求购消息会使控制消息出现冗余。

4.机会网络中的每一个数据包都设置有“生命期”的正整数型字段,表示数据包可以被转发的次数;当生命期=0时,数据包不能再继续被转发,会被丢弃;然而,在数据包交互过程中,节点无法通过控制消息(包括hello消息及sv消息)得知数据包的生命期字段值,导致节点有可能购买生命期字段值为1的数据包;在这种情形下,节点购买到的数据包的生命期的值会变为0,于是节点不得不丢弃数据包,从而导致不必要的转发开销和操作。

上述问题的存在使得含自私节点的机会网络中博弈双方交易成功率偏低,导致数据包传输的机会偏少,数据包传送的成功率会随之下降而传输时延则会上升,同时,冗余的控制开销增加了网络的负载与能耗。为了解决上述问题,提高含自私节点的机会网络的传输性能,有必要提出新的方法对它们加以解决。本发明将针对这些问题提出切实可行的解决方案。



技术实现要素:

为了解决上文所述的sv-dp消息包含冗余的数据包摘要、部分情况下买方节点发送专门的求购消息带来冗余开销、购买生命期为1的数据包后无法转发、单独计算卖出收益导致交易不易成功四个问题,本发明提出一种低开销高交易成功率的机会网络路由方法;该方法采用了“自适应精简数据包摘要”、“自适应合并sv-dp消息和求购消息”、“博弈时综合考虑买卖收益”三种新机制,通过消除sv消息中的冗余摘要、在sv消息中捎带求购信息和在博弈中综合计算节点买卖操作的收益,减少路由过程中控制信息的传送,提高节点通过博弈达成交易的成功率,增加数据包在网络中得到转发的机会,从而能够提高数据传送成功率和网络吞吐量、降低控制开销和数据端到端时延。

(一)本发明提出的新机制的基本思路和主要操作

以下具体介绍本发明提出的“自适应精简数据包摘要”、“自适应合并sv-dp消息和求购消息”和“博弈时综合考虑买卖收益”三种新机制的基本思路和主要操作。

1.自适应精简数据包摘要

“自适应精简数据包摘要”新机制解决的是如下两个问题:

(1)现有相关机会网络路由方法使用的sv-dp消息包含了sv(其中包含所有数据包的摘要)和dp列表;由于在sv-dp消息交互过程中,后接收到sv-dp消息的节点能得知双方节点到其它节点的相遇概率,此时若该节点到sv中某些数据包的目的地址的相遇概率高于相遇节点,则相遇节点不可能请求购买这些数据包(因为购买后收益会小于0),然而现有相关路由方法仍然会将该类数据包的摘要加入sv,这种操作会带来不必要的控制开销。

(2)网络中的每一个数据包都设置有生命期字段,记录该数据包能被传送的跳数,每转发一次跳数值减1,当跳数值减为0时,数据包不能再被转发。在sv-dp消息交互过程中,由于节点无法得知数据包的当前跳数值,导致节点有可能对跳数值已经减为1的数据包提出请求,在这种情形下,若当前节点不是数据包的目的节点则会带来不必要的转发开销;因为数据包无法再继续转发,节点收到数据包后只能删除它。

“自适应精简数据包摘要”新机制的基本思路如下:

节点在往sv-dp或dp-sv-buy消息(本发明提出的一种新的控制消息,包含dp列表、sv、请求购买的数据包的摘要,实质上是将原有的sv-dp消息和求购消息进行合并后的消息,消息头部设有一个字段(缺省建议长度为16bits)存放dp-sv-buy消息中数据包摘要的条数,具体结构请参见说明书附图2)中装入数据包的摘要之前,先判断:数据包的生命期字段的值>1?且自己与数据包目的节点的相遇概率<相遇节点与数据包目的节点的相遇概率?只有当“生命期字段值>1”且“当前节点与数据包目的节点的相遇概率<相遇节点与数据包目的节点的相遇概率”时,当前节点才会将该数据包的摘要装入sv-dp或dp-sv-buy消息,从而避免装入无用的数据包摘要,消除了因此而带来的冗余控制信息。

“自适应精简数据包摘要”新机制的基本流程如说明书附图3所示,主要操作如下:

(1)每个节点都独立地做判断:是否收到了其它节点广播的hello消息?如果是,执行下一步;如果不是,则执行第(4)步。

(2)当前节点生成一个sv-dp消息。

(3)当前节点判断:是否有需要装入sv-dp消息的数据包摘要?如果没有,则结束本机制的操作;如果有,则进行判断:该数据包的生命期字段值>1?如果是,则装入该数据包的摘要;如果不是,则不装入,然后循环执行本步骤。

(4)当前节点判断:是否收到了其它节点发来的sv-dp消息?如果是,则执行下一步(此时发来sv-dp消息的节点即为相遇节点);如果不是,则转第(1)步。

(5)当前节点生成一个dp-sv-buy消息(通过数据包“类型”字段的值来与其它数据包区别)。

(6)当前节点判断:是否有需要装入dp-sv-buy消息的数据包摘要?如果没有,则结束本机制的操作;如果有,则进行判断:该数据包的生命期字段值>1?如果是,则执行下一步;如果不是,则循环执行本步骤。

(7)当前节点判断:自己与数据包目的节点的相遇概率<相遇节点与数据包目的节点的相遇概率?如果是,则装入该数据包的摘要,然后转步骤(6);如果否,则不装入,直接转步骤(6)。

2.自适应合并sv-dp消息和求购消息

现有的机会网络相关路由方法中,相遇节点在进行信息交互时,采用的机制是先交换双方的sv和dp列表;节点在收到对方的sv与dp列表后,会对要购买的数据包提出购买请求,发出求购消息。由于求购消息的源、目的节点与sv-dp消息相同,因此在不超过分组最大长度限制的情况下可以合并传输,此种情形下一个节点分别发送sv-dp消息和求购消息会产生控制消息的冗余。

为解决该问题,本发明提出一种“自适应合并sv-dp消息和求购消息”的新机制,它的基本思路是:如果当前节点在发送自己的sv-dp消息之前收到对方的sv-dp消息,则生成一个dp-sv-buy消息并将dp列表、数据包摘要装入该消息;接着,判断dp-sv-buy消息能否装得下一条数据包求购信息(包括数据包源节点、序号和报价):dp-sv-buy消息的头部+dp列表+sv+一条数据包求购信息的长度<控制消息的最大长度限制?如果是,则根据对方sv-dp消息中数据包的目的节点、对方dp列表中与该目的节点的相遇概率及自己的dp列表中与该目的节点的相遇概率,判断是否要购买对方的数据包;若要购买,则计算出欲购的数据包在博弈均衡下的最优价格;接下来,则在dp-sv-buy消息中装入数据包求购信息(在不超过控制消息最大长度限制的情况下能装多少就装多少),从而在整体上减少数据包求购消息的数量。

“自适应合并sv-dp消息和求购消息”的新机制的基本流程如说明书附图4所示,主要操作如下:

(1)一个节点判断:是否收到了另一个节点发来的sv-dp消息?如果是,则执行下一步;如果否,则结束本机制的操作。

(2)当前节点生成一个的dp-sv-buy消息并装入dp列表和sv中的数据包摘要。

(3)当前节点判断:dp-sv-buy消息能否装下一个数据包的求购信息?如果是,则执行下一步;如果否,则结束本机制的操作。

(4)当前节点判断:是否要购买对方节点(发来sv-dp消息的节点)的数据包?如果是,则执行下一步;如果否,则结束本机制的操作。

(5)当前节点将一条求购数据包的信息(包括数据包源节点地址、序号、报价)装入dp-sv-buy消息(放在sv的后面,逐条装入),然后转第(3)步。

3.博弈时综合考虑买卖收益

根据现有的基于议价博弈的机会网络路由方法,在买卖双方进行博弈时,只有当博弈双方的收益(收益与节点和目的节点的相遇概率、收发数据包的损耗、博弈损耗等因素有关)都不小于0时,双方才会达成交易(即交易成功),并由此采取合作转发的策略。卖方收到买方对数据包的报价后会计算自己的收益,如果计算出的收益小于0,它会拒绝接受报价,因而交易无法完成,博弈会失败,数据包不会被转发。博弈失败对数据包的传输有潜在的不利影响。为解决此问题,我们提出了“博弈时综合考虑买卖收益”的新机制,该新机制基本思路如下:

当一个节点通过博弈购买了一个数据包后,它会保存购买时的收益(简称为“买时收益”;在sv中该数据包对应的条目中添加一个“买时收益”字段,用于存储“买时收益”;向其它节点发送数据包摘要时不发送“买时收益”);当其它节点想购买该数据包并发来报价时,当前节点根据报价计算卖出该数据包的收益(简称为“卖时收益”),然后判断:买时收益+卖时收益>0?如果是,则接受买方节点报价,同意交易;否则,拒绝交易(现有相关方法是当卖时收益>0才同意交易)。这样,由于在博弈过程中综合计算了买、卖数据包时的收益,因此在保证当前节点总收益>0的情况下降低了对卖时收益的要求,增加了买卖双方达成交易的机会,能提高交易成功率,增加数据包被转发的机会,从而促进网络吞吐量的增加和数据包平均端到端时延的降低。

“博弈时综合考虑买卖收益”新机制的基本流程如说明书附图5所示,主要操作如下:

(1)每个节点在购买了另一个节点的数据包后,都将购买时的收益存入sv中该数据包对应表项的“买时收益”字段。

(2)节点判断:是否有其它节点求购数据包?如果是,则执行下一步;如果否,则结束本机制的操作。

(3)节点将收到的数据包求购信息里的报价值取出,计算出该数据包的“卖时收益”。

(4)节点计算并判断:买时收益+卖时收益>0?如果是,则接受买方节点报价,同意交易,向买方节点发送数据包;如果否,则拒绝交易,向买方节点回复一个“拒绝交易”消息,然后结束本机制的操作。

(二)本发明提出的低开销高交易成功率的机会网络路由方法的主要操作

本发明提出的低开销高交易成功率机会网络路由方法由在逻辑上具有先后顺序的节点相遇感知、博弈和数据包传递、交易结算三个阶段中节点的操作组成,包含“自适应精简数据包摘要”、“自适应合并sv-dp消息和求购消息”、“博弈时综合考虑买卖收益”三种新机制,它们均工作在博弈和数据包传递阶段,具体如说明书附图6所示。

本发明提出的低开销高交易成功率机会网络路由方法做有如下预设:

(1)网络刚开始运行时,每个节点都拥有相同的虚拟货币值。

(2)每个节点从其它节点获得数据包时,都需要用一定的虚拟货币量去购买,购买时双方节点使用博弈的形式进行议价;买到数据包后节点拥有的虚拟货币值会因按成交价支付虚拟货币给对方而减少。如果节点剩余的虚拟货币值不足以购买一个数据包时,它便不能获得该数据包。

(3)在每次交易数据包的过程中,会产生传输和接收开销,买、卖双方节点分别会产生博弈的开销,这些开销需要从买或卖方节点的虚拟货币值中扣除。

(4)网络中设有一个位置固定(或移动)的特殊节点——交易结算中心(creditclearancecenter,ccc)作为交易费用结算机构,对于节点间达成的每次买卖数据包的交易,ccc要收取卖方节点一笔交易费用。

下面分阶段介绍本发明提出的新路由方法的主要操作。

1.节点相遇感知

节点相遇感知阶段的基本操作流程如说明书附图7所示,主要操作步骤如下:

p1-s1:网络中的节点周期性地广播hello消息,通告自己的存在。

p1-s2:如果一个节点收到其它节点广播的hello消息,它首先提取出消息的源节点地址;接下来,在dp列表中查询与该节点的相遇概率值是否为0(相遇概率值为0表示从未相遇过);如果为0,则将该相遇概率值修改为相遇概率初始值(缺省建议设为0.5);如果不为0,则根据如下公式修改与该节点的相遇概率值:

p(s,b)=p(s,b)old+(1-p(s,b)old)×pinit(6)

式中,p(s,b)和p(s,b)old分别表示节点s、d的最新和以前的相遇概率值;pinit表示相遇概率初始值。最后,当前节点生成一个sv-dp消息,将sv和dp列表等信息装入其中,然后发给对方节点。

p1-s3:如果一个节点收到其它节点发来的sv-dp消息,它首先提取消息的源节点地址;接下来,在dp列表中查询与该节点的相遇概率值是否为0;如果为0,则将该相遇概率值修改为相遇概率初始值(缺省建议设为0.5);如果不为0,则根据公式(6)修改与该节点的相遇概率值。

2.博弈和数据包传递

博弈和数据包传递阶段的基本操作流程如说明书附图8所示,主要操作步骤如下:

p2-s1:每个节点都独立地判断:是否收到了其它节点发来的sv-dp消息?如果是,便修改相应的相遇概率值,然后执行下一步;如果否,则执行步骤p2-s8:。

p2-s2:当前节点采用本发明提出的“自适应合并sv-dp消息和求购消息”新机制,生成一个dp-sv-buy消息;然后,将dp列表装入dp-sv-buy消息。

p2-s3:当前节点将数据包摘要逐个装入dp-sv-buy消息,装的过程中使用本发明提出的“自适应精简数据包摘要”新机制,在将一个数据包的摘要装入dp-sv-buy消息之前,它判断:该数据包的生命期字段值>1?如果是,则执行下一步;如果不是,则循环执行本步骤,直至所有数据包的摘要都处理完,然后转步骤p2-s5:。

p2-s4:当前节点判断:自己与数据包目的节点的相遇概率<相遇节点与数据包目的节点的相遇概率?如果是,则将数据包的摘要装入dp-sv-buy消息,然后转步骤p2-s3:;如果不是,则直接转步骤p2-s3:。

p2-s5:当前节点判断:是否要向对方节点求购消息?如果是,则执行下一步;如果否,则将dp-sv-buy消息发给对方节点,然后转步骤p2-s8:。

p2-s6:当前节点判断:dp-sv-buy消息是否能够装入一条数据包求购信息(包括数据包的源地址、序号、报价(报价根据公式(1)计算))?如果是,便将一条数据包求购信息装入dp-sv-buy消息(缺省建议放于sv的后面),然后转步骤p2-s5:;如果否,则将dp-sv-buy消息发给对方节点(即发来sv-dp消息的节点)。

p2-s7:当前节点将dp-sv-buy消息未能装下的所有数据包求购信息装入一个求购消息,然后将该消息发给对方节点。

p2-s8:当前节点判断:是否收到了其它节点发来的dp-sv-buy消息?如果是,执行下一步;如果否,则转步骤p2-s10:。

p2-s9:当前节点从dp-sv-buy消息取出并存储dp列表、sv和求购信息(dp列表的长度与网络中的节点总数成正比;sv包含的数据包摘要数量在dp-sv-buy消息头部的相应字段有记录,每条数据包摘要和每条求购信息的长度都是定值);接着,从求购信息中取出报价值并据其计算出数据包的卖时收益(卖时收益根据公式(4)计算);然后,采用本发明提出的“博弈时综合考虑买卖收益”新机制,判断:数据包的买时收益+卖时收益>0?如果是,则同意交易,将该数据包发送给对方;如果否,则拒绝交易,不做发送操作。

p2-s10:当前节点判断:是否收到了其它节点发来的求购消息?如果是,执行下一步;如果否,则转步骤p2-s12:。

p2-s11:当前节点从求购消息包含的求购信息中取出报价值并据其计算出数据包的卖时收益;然后,采用本发明提出的“博弈时综合考虑买卖收益”新机制,判断:数据包的买时收益+卖时收益>0?如果是,则同意交易,将该数据包发送给对方;如果否,则拒绝交易,不做发送操作。

p2-s12:当前节点判断:是否收到了其它节点发来的数据包?如果是,将数据包存储,并在sv中建立一条与该数据包对应的数据包摘要(包含数据包的源节点、目的节点、序号、买时收益等字段);接着,生成一个支付消息(包含卖方节点地址、数据包序号、数据包成交价格等内容)并将该支付消息发送给数据包的卖方节点;接下来,从自己的虚拟货币值中减去购买数据包所花费的金额(即数据包的成交价格);然后,根据购买该数据包的成交价格,用公式(3)计算出“买时收益”,存入sv中该数据包摘要的“买时收益”字段;如果没收到其它节点发来的数据包,则执行下一步。

p2-s13:当前节点判断:是否收到了其它节点发来的、对应于一个自己卖出的数据包的支付消息?如果是,则生成一条“数据包卖出记录”信息,记录该数据包的传输和接收开销、该数据包对于买卖双方节点的价值量,然后将该“数据包卖出记录”存入事先建立的“数据包卖出记录表”中;转步骤p2-s1:;如果没收到其它节点发来的支付消息,则直接转步骤p2-s1:。3.交易结算阶段

交易结算阶段的核心操作是交易结算中心节点ccc对每笔已完成交易的卖方节点的账户进行扣费操作,ccc和普通节点(除ccc以外的节点)的基本操作流程分别如说明书附图9和附图10所示,主要操作步骤如下:

p3-s1:ccc周期性广播hello消息,消息中包含其地址。

p3-s2:一个节点如果收到ccc广播的hello消息,则判断:自己有没有未报给ccc的“数据包卖出记录”?如果有,则将所有未报给ccc的“数据包卖出记录”装入一个新生成的“数据包卖出消息”中,然后将该消息发送给ccc;如果没有,则不再执行后续操作。

p3-s3:ccc如果收到一个节点发来的“数据包卖出消息”,则从该消息中取出所有“数据包卖出记录”,接着根据这些记录用公式(5)计算出应该扣除的费用,并将该费用值装入一个新生成的“费用扣除消息”,接下来将该消息发给对方节点;;并把此次扣除的费用加到预先建立的“节点费用扣除表”里对方节点对应的“扣除的总费用”表项值中。

p3-s4:一个节点如果收到ccc发来的“费用扣除消息”,则将该消息携带的需扣除的费用值取出,并在自己的剩余虚拟货币值中扣除该费用值;如果没收到,则不做操作。

(三)本发明的有益效果

本发明的有益效果主要是:减少了控制信息的传送、提高了节点通过博弈达成交易的成功率、增加了数据包在网络中的转发机会,从而能够提高数据包传送成功率和吞吐量、降低控制开销和数据包平均端到端时延。

本发明的有益效果具体来自以下三个方面:

(1)通过采用“自适应精简数据包摘要”新机制,去除了不会被交易和生命期字段值不支持转发的数据包的摘要,从而减少了这些的数据包摘要带来的冗余控制信息的传送。

(2)通过采用“自适应合并sv-dp消息和求购消息”新机制,减少了部分求购消息,这部分求购消息的头部就不用再传输(虽然增加了数据包摘要数量字段,但该字段的缺省长度仅为16bits,明显小于求购消息头部的长度),从而降低了控制开销。

(3)通过采用“博弈时综合考虑买卖收益”新机制,用买时和卖时收益之和代替原来的卖时收益来进行正值判断(即判断是否大于0),使一些原来不能达成交易的博弈也能达成交易,从而提高了交易成功率,使数据包在网络中得到转发的机会增加,数据包传送成功率和吞吐量因而提高,数据包平均端到端时延降低。

附图说明

附图1为gscp方法中典型的消息交互和数据包传送过程。从其中可以看出,sv、dp列表和数据包m的求购信息是放在不同的控制消息中传送的。

附图2为dp-sv-buy消息的结构。dp-sv-buy消息是本发明提出的一种新的控制消息,包含dp列表、sv中的数据包摘要、请求购买的数据包的摘要,实质上是将原有的sv-dp消息和求购消息进行合并后的消息,消息头部设有一个存放sv中数据包摘要条数的字段(缺省建议长度为16bits)。

附图3为“自适应精简数据包摘要”新机制的基本流程。

附图4为“自适应合并sv-dp消息和求购消息”的新机制的基本流程。

附图5为“博弈时综合考虑买卖收益”新机制的基本流程。

附图6为本发明提出的低开销高交易成功率机会网络路由方法的组成示意图,新路由方法由在逻辑上具有先后关系的节点相遇感知、博弈和数据包传递、交易结算三个阶段的操作组成,包含“自适应精简数据包摘要”、“自适应合并sv-dp消息和求购消息”、“博弈时综合考虑买卖收益”三种新机制,这些新机制均工作在博弈和数据包传递阶段。

附图7为本发明提出的低开销高交易成功率机会网络路由方法在节点相遇感知阶段的基本操作流程。

附图8为本发明提出的低开销高交易成功率机会网络路由方法中节点在博弈和数据包传递阶段的基本操作流程。

附图9为本发明提出的低开销高交易成功率机会网络路由方法中ccc在交易结算阶段的基本操作流程。

附图10为本发明提出的低开销高交易成功率机会网络路由方法中普通节点在交易结算阶段的基本操作流程。

具体实施方式

(一)预设

本发明提出的低开销高交易成功率机会网络路由方法做了如下预先设置:

(1)网络刚开始运行时,每个节点都被设置为拥有相同的虚拟货币值——10000。

(2)每个节点从其它节点获得数据包时,都需要用一定的虚拟货币量去购买,购买时双方节点使用博弈的形式进行议价;买到数据包后节点拥有的虚拟货币值会因按成交价支付虚拟货币给对方而减少。如果节点剩余的虚拟货币值不足以购买一个数据包时,它便不能获得该数据包。

(3)在每次交易数据包的过程中,会产生传输和接收开销,买、卖双方节点分别会产生博弈的开销,这些开销需要从买或卖方节点的虚拟货币值中扣除。

(4)网络中设有一个位置固定的特殊节点——交易结算中心ccc作为交易费用结算机构,对于节点间达成的每次买卖数据包的交易,ccc要收取卖方节点一笔交易费用。

(5)节点相遇概率的初始值pinit=0.5,每个数据包的源节点为成功转发数据包到目的节点支付的费用ω=1,分组最大长度lmax=4096bits,数据包m的传输开销t(m)=lmax/40960,数/据包m的接收开销p(m)=lmax/40960,每一轮议价博弈中买方节点的开销cb(γ)=0.1,每一轮议价博弈中卖方节点的开销cs(γ)=0..1,交易费用因子σ=(vb(m)-vs(m)-t(m)-p(m))/2.2,交易费用γ=(vb(m)-vs(m)-t(m)-p(m))/2-σ,交易费用参数k=2-2γ/(vb(m)-vs(m)-t(m)-p(m))。

(二)实施方式

本发明提出的低开销高交易成功率机会网络路由方法由在逻辑上具有先后关系的节点相遇感知、博弈和数据包传递、交易结算三个阶段的操作组成,包含“自适应精简数据包摘要”、“自适应合并sv-dp消息和求购消息”、“博弈时综合考虑买卖收益”三种新机制,它们均工作在博弈和数据包传递阶段。

1.节点相遇感知

节点相遇感知阶段的主要操作如下:

p1-s1:网络中的节点周期性地广播hello消息,通告自己的存在,广播周期thello=3s。

p1-s2:如果一个节点收到其它节点广播的hello消息,它首先提取出消息的源节点地址;接下来,在dp列表中查询与该节点的相遇概率值是否为0(相遇概率值为0表示从未相遇过);如果为0,则将该相遇概率值修改为相遇概率初始值pinit;如果不为0,则根据公式(6)修改与该节点的相遇概率值。最后,当前节点生成一个sv-dp消息,将sv和dp列表等信息装入其中,然后发给对方节点。

p1-s3:如果一个节点收到其它节点发来的sv-dp消息,它首先提取消息的源节点地址;接下来,在dp列表中查询与该节点的相遇概率值是否为0;如果为0,则将该相遇概率值修改为相遇概率初始值pinit;如果不为0,则根据公式(6)修改与该节点的相遇概率值。

2.博弈和数据包传递

博弈和数据包传递阶段的主要操作如下:

p2-s1:每个节点都独立地判断:是否收到了其它节点发来的sv-dp消息?如果是,便修改相应的相遇概率值,然后执行下一步;如果否,则执行步骤p2-s8:。

p2-s2:当前节点采用本发明提出的“自适应合并sv-dp消息和求购消息”新机制,生成一个dp-sv-buy消息;然后,将dp列表装入dp-sv-buy消息。

p2-s3:当前节点将数据包摘要逐个装入dp-sv-buy消息,装的过程中使用本发明提出的“自适应精简数据包摘要”新机制,在将一个数据包的摘要装入dp-sv-buy消息之前,它判断:该数据包的生命期字段值>1?如果是,则执行下一步;如果不是,则循环执行本步骤,直至所有数据包的摘要都处理完,然后转步骤p2-s5:。

p2-s4:当前节点判断:自己与数据包目的节点的相遇概率<相遇节点与数据包目的节点的相遇概率?如果是,则将数据包的摘要装入dp-sv-buy消息,然后转步骤p2-s3:;如果不是,则直接转步骤p2-s3:。

p2-s5:当前节点判断:是否要向对方节点求购消息?如果是,则执行下一步;如果否,则将dp-sv-buy消息发给对方节点,然后转步骤p2-s8:。

p2-s6:当前节点判断:dp-sv-buy消息是否能够装入一条数据包求购信息(包括数据包的源地址、序号、报价(报价根据公式(1)计算))?如果是,便将一条数据包求购信息装入dp-sv-buy消息(放于sv的后面,逐条放置),然后转步骤p2-s5:;如果否,则将dp-sv-buy消息发给对方节点(即发来sv-dp消息的节点)。

p2-s7:当前节点将dp-sv-buy消息未能装下的所有数据包求购信息装入一个求购消息,然后将该消息发给对方节点。

p2-s8:当前节点判断:是否收到了其它节点发来的dp-sv-buy消息?如果是,执行下一步;如果否,则转步骤p2-s10:。

p2-s9:当前节点从dp-sv-buy消息取出并存储dp列表、sv和求购信息(dp列表的长度与网络中的节点总数成正比;sv包含的数据包摘要数量在dp-sv-buy消息头部的相应字段有记录,每条数据包摘要和每条求购信息的长度都是定值);接着,从求购信息中取出报价值并据其计算出数据包的卖时收益(卖时收益根据公式(4)计算);然后,采用本发明提出的“博弈时综合考虑买卖收益”新机制,判断:数据包的买时收益+卖时收益>0?如果是,则同意交易,将该数据包发送给对方;如果否,则拒绝交易,不做发送操作。

p2-s10:当前节点判断:是否收到了其它节点发来的求购消息?如果是,执行下一步;如果否,则转步骤p2-s12:。

p2-s11:当前节点从求购消息包含的求购信息中取出报价值并据其计算出数据包的卖时收益;然后,采用本发明提出的“博弈时综合考虑买卖收益”新机制,判断:数据包的买时收益+卖时收益>0?如果是,则同意交易,将该数据包发送给对方;如果否,则拒绝交易,不做发送操作。

p2-s12:当前节点判断:是否收到了其它节点发来的数据包?如果是,将数据包存储,并在sv中建立一条与该数据包对应的数据包摘要(包含数据包的源节点、目的节点、序号、买时收益等字段);接着,生成一个支付消息(包含卖方节点地址、数据包序号、数据包成交价格等内容)并将该支付消息发送给数据包的卖方节点;接下来,从自己的虚拟货币值中减去购买数据包所花费的金额(即数据包的成交价格);然后,根据购买该数据包的成交价格,用公式(3)计算出“买时收益”,存入sv中该数据包对应表项的“买时收益”字段;如果没收到其它节点发来的数据包,则执行下一步。

p2-s13:当前节点判断:是否收到了其它节点发来的、对应于一个自己卖出的数据包的支付消息?如果是,则生成一条“数据包卖出记录”信息,记录该数据包的传输和接收开销、该数据包对于买卖双方节点的价值量,然后将该“数据包卖出记录”存入事先建立的“数据包卖出记录表”中;转步骤p2-s1:;如果没收到其它节点发来的支付消息,则直接转步骤p2-s1:。3.交易结算阶段

交易结算阶段的主要操作如下:

p3-s1:ccc周期性广播hello消息,消息中包含其地址,广播周期tccc=3s。

p3-s2:一个节点如果收到ccc广播的hello消息,则判断:自己有没有未报给ccc的“数据包卖出记录”?如果有,则将所有未报给ccc的“数据包卖出记录”装入一个新生成的“数据包卖出消息”中,然后将该消息发送给ccc;如果没有,则不再执行后续操作。

p3-s3:ccc如果收到一个节点发来的“数据包卖出消息”,则从该消息中取出所有“数据包卖出记录”,接着根据这些记录用公式(5)计算出应该扣除的费用,并将该费用值装入一个新生成的“费用扣除消息”,接下来将该消息发给对方节点;;并把此次扣除的费用加到预先建立的“节点费用扣除表”里对方节点对应的“扣除的总费用”表项值中。

p3-s4:一个节点如果收到ccc发来的“费用扣除消息”,则将该消息携带的需扣除的费用值取出,并在自己的剩余虚拟货币值中扣除该费用值;如果没收到,则不做操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1