基于Delivered-Drop机制的Epidemic路由算法
技术领域
本发明涉及机会网络路由算法,作用是使机会网络中节点高效转发数据包,同时尽可能少地消耗节点能量。
背景技术
机会网络是一种不需要在源节点和目的节点之间存在完整路径,利用节点移动带来的相遇机会实现网络通信的、时延和分裂可容忍的自组织网络。机会网络不同于传统的多跳无线网络,它的节点不是被统一部署的,网络规模和节点初始位置未进行预先设置,源节点和目的节点之间的路径事先不能确定是否存在。机会网络以“存储-携带-转发”模式逐跳传输信息实现节点间通信,其体系结构与多跳无线网络不同,它在应用层与传输层之间插入一个被称为束层的新的协议层。
由于机会网络能够处理网络分裂、时延等传统无线网络技术难以解决的问题,能满足恶劣条件下的网络通信需要,其主要应用于缺乏通信基础设施、网络环境恶劣以及应对紧急突发事件的场合。
1.对照路由算法
为和本发明路由算法对照,选取了2种典型路由算法作为参照算法。Epidemic算法是基于泛洪策略路由算法的典型代表,很多基于泛洪策略的路由算法都可视为是由该算法衍生而来。SprayandWait算法是按照一定策略进行泛洪,是基于有限度的泛洪策略,该算法的主要性能指标在多数场景下都具有显著的优势。
(1)Epidemic算法
Epidemic算法的基本思想是当2节点相遇时交换对方没有的数据包,经过足够的交换后,理论上每个非孤立的节点将收到所有的数据包,从而实现数据包的传输。
在Epidemic算法中,每个数据包有一个全局唯一的标识,每个节点中保存一个概要向量用来记录节点中携带的数据包。当2节点相遇时,双方首先交换概要向量,获知对方携带数据包情况后,双方仅传送对方没有的数据包。
Epidemic算法本质上是一种泛洪算法,从理论上讲该算法能最大化数据包传输的成功率,最小化传输延迟,但也会使网络中存在大量的数据包副本,消耗大量的网络资源。
Epidemic算法有3个目标,分别是最大的传输成功率、最小的传输延迟和最小的网络资源消耗。实现上述目标需要特定的场景,在多数场景下,由于过度泛洪导致路由算法的性能显著下降。
(2)SprayAndWait算法
SprayandWait算法分为2个阶段。首先是Spray阶段,源节点中的部分数据包被扩散到邻居节点;然后进入到Wait阶段,若Spray阶段没有发现目标节点,包含数据包的节点以DirectDelivery方式将数据包传送到目标节点,即只有在遇到目标节点时,发送数据包。该算法传输量显著地少于Epidemic算法,传输成功率高,传输延迟较小,算法适用性强。
2.度量值
评价机会网络路由算法性能指标的度量值主要有:
(1)传输成功率
传输成功率(DeliveryRatio)是在一定的时间内成功到达目标节点数据包总数和源节点发出的需传输数据包总数之比,该指标刻画了路由算法正确转发数据包到目标节点的能力,是最重要的指标。
(2)传输延迟
传输延迟(DeliveryDelay)是数据包从源节点到达目标节点所需的时间,通常采用平均传输延迟来评价。传输延迟小意味路由算法传输能力强、传输效率高,也意味着在传输过程中将会占用较少的网络资源。
(3)路由开销
路由开销(Overhead)是指在一定时间内节点转发数据包的总数,通常用所有成功到达目标节点的数据包数与所有节点转发的数据包总数之比来评价。路由开销高,意味着节点大量地转发数据包,会使网络中充斥大量的数据包副本,增加数据包发生碰撞的概率,也会大量地消耗节点能量。
3.Epidemic算法性能分析
以表1场景为基础,分别对数据包总数为50和每节点生成10个数据包2种情况进行仿真,得到图1、图2所示结果。
图1、图2中以SprayAndWait作为对照算法,该算法在多数场景下可获得接近最优的传输成功率和路由开销,且无论网络的规模大小都能保持较好的性能,有很好的可扩展性。
由图1、图2可得到如下结论:
(1)在一些特定的场景下Epidemic算法的非常高的传输成功率和非常低的传输延迟,在这两个指标上大大好于对照算法;
(2)在数据包数量一定时,网络中节点数量增加会改善路由算法的性能;
(3)在某些场景下,存在一些和网络应用环境紧密相关的因素会导致Epidemic算法的性能显著下降。
图3以表1场景为基础,描述了节点总数一定的情况下,数据包数量和传输成功率之间的关系。由图3可知数据包增加时,传输成功率随之下降。本发明将产生这种现象的原因称之为挤出效应,即当网络中需要传输数据包总数超过节点可存储的数据包总量时,会发生节点缓存饱和现象,此时节点接收到新数据包时,不得不按照一定规则丢弃旧数据包,这种效应的存在导致Epidemic算法性能显著下降。
发明内容
本发明涉及一种新的机会网络路由算法,该算法在Epidemic路由算法基础上引入了Delivered-Drop机制,可以减少已传输成功的数据包在网络中的存在及继续转发。该算法可减少无效数据包的转发量,获得较高的传输成功率和较低的网络资源消耗。
Epidemic算法中挤出效应的存在是导致算法性能下降的直接原因之一。按照Epidemic算法,已传输成功的数据包依然在网络中存在并被继续传输,这类数据包的存在加重了挤出效应,同时也大量消耗了网络中带宽和节点能量资源。
本发明通过减少已传输成功数据包在网络中的存在、阻止其继续传播的方式改进了Epidemic算法。具体方案是在Epidemic算法原有机制基础上增加下面(1)-(4)机制,本发明将其称之为Delivered-Drop机制。
(1)每个节点维护一个已传输成功数据包列表L。如第i个节点维护一个已传输成功数据包列表Li;
(2)当节点i和任意节点j相遇时,节点i首先获取新的列表L′i,L′i=Li∪Lj;节点j获取新的列表L′j,L′j=Li∪Lj;
(3)节点i和节点j仅交换对方缓存中没有且不存在于列表L′i中的数据包;
(4)节点i维护的列表Li更新为L′i后,检查节点缓存中的数据包,删除列表L′i中已存在的数据包。
Delivered-Drop机制可以使已传输的成功的数据包不再被存储、发送和接收,可以在一定程度上抑制已传输成功的数据包在网络中的继续存在,减少网络中正在传输的数据包的个数,节约网络资源,提高传输成功率。
附图说明
图1传输成功率比较
图2传输延迟比较
图3数据包数量对传输成功率影响
图4不同场景下改进算法的传输成功率
图5不同场景下改进算法的传输延迟
图6不同场景下改进算法的路由开销
具体实施方式
以下对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
使用ONE(theOpportunisticNetworkingEnvironment)仿真平台实施本发明涉及的路由算法。本发明模拟了携有智能蓝牙设备的行人步行于真实的城市场景中,并以此来实施、分析路由算法的性能。具体场景设置如表1所示。
表1仿真场景设置
以表1场景为基础,每节点生成5个数据包,以等时间间隔的方式生成,以10个节点为例,网络中共有50个数据包,仿真时间为12小时,即每864秒生成一个数据包,数据包大小为1.2M,生存时间为10小时,结果如图4至图6所示。
本实施例中,节点数量和数据包同步增加,节点数量增加会提高传输成功率,而数据包数量超过阀值后会导致挤出效应的发生,图4至图6是两种作用叠加的结果。
由图4可见,当节点数量较少时,以10个节点为例,由于是每864秒生成一个数据包,且数据包扩散到其他节点还需要一定时间,在仿真的前期不会发生挤出效应,此时改进后算法的优势并不明显。
当节点和数据包数量较多时,如320个节点时,此时会发生显著的挤出效应,改进后算法中Delivered-Drop机制的作用显著,改进的Epidemic算法较Epidemic算法,传输成功率有显著提高,达48%。
由前面关于Delivered-Drop机制叙述可知,其对传输延迟影响不大,图5所示仿真结果支持该结论。
由图6可知改进的Epidemic算法在节点较多时,对算法的路由开销有一定影响,如在320节点时,路由开销下降了33%。
图4至图6仿真结果表明在某些场景下,Delivered-Drop机制可以一定程度地抑制挤出效应,改善Epidemic算法性能,拓宽了算法的适用性。
由图4至图6可知,改进前后算法具有非常相似的曲线形态,表明Delivered-Drop机制并不会改变Epidemic算法的核心机制。