APP下载

DTN中基于消息综合属性的缓存管理策略

2022-07-06崔建群余东海常亚楠孙佳悦

小型微型计算机系统 2022年7期
关键词:副本投递时延

崔建群,余东海,常亚楠,孙佳悦,邬 尧

(华中师范大学 计算机学院,武汉 430079)

1 引 言

延迟容忍网络[1](Delay Tolerant Network,DTN)是指能在长时延、连接频繁断开等受限网络条件下进行通信的一种新型网络体系.DTN网络中节点密度稀疏且传输范围有限,节点之间很难进行通信[2],因此DTN利用节点的移动,当节点进入彼此的通信范围时,通过节点建立连接实现通信.然而,节点的移动性同样会导致连接中断情况的发生,使得DTN网络具有间歇性连接的特点[3].

网络间歇性连接和节点的移动性等因素使得相邻节点在很长时间内无法进行通信,节点需要长时间携带消息等待下一次通信机会,因此DTN通过在传输层和应用层之间添加一个捆绑层,采取“存储-携带-转发”[4]路由机制进行数据传输:当节点接收一个消息,将其存储在缓存中,在移动时携带此消息,在下一次与其他节点连接时根据路由策略进行消息转发.

DTN路由策略分为单拷贝策略和多拷贝策略[5].前者消耗资源较少但很难实现消息的成功传输,为了增加消息的投递率和降低传输时延,通常采用多拷贝策略.多拷贝策略下,由于价格、体积等因素的影响[3],节点有限的缓存空间无法满足大量消息副本的存放需求,导致在传输过程中部分消息副本遭到丢弃而无法到达目的节点,从而使得整体网络投递率下降.因此,如何制定有效的缓存管理策略,对不同消息副本进行分类和评估,做到有针对性的存放和删除消息副本,是提高网络整体性能所需要解决的关键问题之一.

传统的缓存管理策略不考虑或只考虑单一的消息属性对消息进行丢弃,具有一定的盲目性.近年来,国内外大量科学文献对传统缓存管理策略进行了改进,多集中于通过将消息属性进行叠加来确定消息优先级,并依据此制定出消息丢弃策略,以得到网络性能的提升[6-8].然而,在实际网络环境中,消息属性对网络性能的影响程度会随着时间的推移而不断变化,大多数文献并未对这一变化进行深入讨论,因此其方法有待进一步改进和提升.

本文在Spray and Wait[9]路由算法的基础上提出了一种基于消息综合属性的缓存管理策略MCA-BMS:综合考虑了消息大小、消息生存时间和消息转发次数三种消息属性确定消息的优先级,决定消息的转发和丢弃顺序,此外缓存管理策略中还引入了ACK确认机制[10],删除已经投递成功的冗余消息,以提高网络资源利用率.通过与SHLI[11]、DLC[12]、MPBBM[6]和SAD[13]进行仿真实验对比,MCA-BMS在投递率、传输时延和网络开销等网络整体性能方面有较大的提升.

2 相关工作

正如前文所述,多拷贝路由算法的性能会因为节点缓存空间有限但无法容纳传入的消息副本所发生的缓存溢出现象而下降.为了减轻缓冲区溢出的影响,需要对节点缓存中的消息进行丢弃,缓存管理策略决定了在缓存溢出时需要丢弃的消息.

传统的缓存管理策略[11,14],包括如DLR,FIFO等不考虑消息的属性而仅考虑消息进入缓存空间的先后顺序和滞留时间;又如MOFO,SHLI等传统缓存管理策略仅考虑转发次数或消息生存时间单一的消息属性,这些传统缓存管理策略没有对消息属性进行全面的考虑和衡量,具有一定的盲目性,因此之后的大部分研究对消息属性进行了划分和综合来对传统缓存管理策略进行改进.

现有的缓存管理策略可以分为根据局部信息设计和根据全局信息设计.全局信息包括网络中消息副本数、消息转发次数等,文献[15]针对Epidemic[16]路由算法提出了依据报文质量的拥塞控制策略DmQ,通过估计网络中消息转发次数,并综合消息生存时间确定消息丢弃顺序,以得到更好的网络性能.文献[6]针对Epidemic路由算法综合消息生存时间和转发次数,将消息生存时间和消息在网络中的转发次数进行归一化处理,提出一种基于消息特性的缓存管理算法MPBBM,将消息生存时间取对数处理使之与消息转发次数处于同一数量级,并将两者叠加决定消息丢弃顺序,有效提高Epidemic算法的性能.然而没有为消息生存时间和转发次数分配相应的权重,因而无法调整两者的影响程度以适应不同的环境.

由于DTN网络的间断性连接和节点的移动性,很难获得和维护整个网络的全局信息,只能通过节点相遇交换信息来对全局信息进行预测,这种预测往往是不准确的,并且节点需要额外空间保存全局信息,造成缓存空间的消耗,因此采用下述局部信息设计缓存管理策略更符合DTN的网络特点.

文献[12]针对Binary Spray and Wait路由算法提出了基于二分散发和等待路由的自适应拥塞控制策略DLC.主要思想是利用路由算法的特点,用消息副本数作为转发次数、存在时间和散发能力的综合表现,优先丢弃消息副本数少的消息来达到提高投递率和减少开销的目的.然而只考虑转发次数这一种消息属性不够全面,没有考虑消息生存时间等消息属性对网络性能产生的影响.

文献[13]不同于以上缓存管理策略,考虑了消息大小因素,提出了可感知大小的丢弃策略SAD,其主要思想是根据消息大小尽可能最小化丢弃副本数量来达到最小化网络开销的目的,以避免频繁丢弃消息浪费网络资源.

综上所述,消息大小、消息生存时间和消息转发次数对于网络性能有着重要的影响.然而,很少有缓存管理策略能够综合考虑这3种消息属性,且大多数缓存管理策略都是针对Epidemic算法进行改进,很少有根据Spray and Wait消息转发特性专门针对Spray and Wait算法的缓存管理策略.因此,本文提出一种针对Spray and Wait路由算法基于消息综合属性的缓存管理策略MCA-BMS,通过同时考虑消息大小、消息生存时间和消息转发次数决定消息的转发和丢弃顺序,提升网络综合性能.

3 网络模型

3.1 消息大小

消息大小直接影响节点缓存中可以容纳的消息数量.当节点发生拥塞导致部分消息副本需要被丢弃时,必须考虑到消息大小对消息丢弃数量的影响,否则有可能会出现丢弃多个消息节点之后缓存仍然难以容纳新到来消息的情况,从而造成不必要的消息丢失,使得整个网络中消息投递率下降;另一方面,频繁的消息丢弃会消耗节点能量,也会增大网络开销.

因此,为了减少这种情况的发生,本文提出了消息大小阈值的概念,根据阈值对节点缓存中的消息进行筛选,尽可能最小化丢弃消息数量,来达到降低网络开销,提高投递率的目的.

消息大小阈值Sthreshold表示接收消息需要空出的缓存空间大小,其计算方法如公式(1)所示:

Sthreshold=Msize-FBsize

(1)

其中Msize表示节点即将接收消息大小,是消息生成后的固定属性,可以直接获取;FBsize表示缓存空闲大小,可以通过节点缓存占用比、节点缓存大小计算进行获取.

由于同一节点在不同时刻接收消息的大小、节点缓存空闲大小不尽相同,因此消息大小阈值并不是一个定值,而是不断变化的.

消息丢弃策略中首先筛选出消息大小大于阈值的消息进行丢弃,以最小化消息丢弃数量,从而降低网络开销.

3.2 消息生存时间

节点在创建消息的时候,会为每个消息分配初始生存时间,随着仿真时间的增加,消息的剩余生存时间会逐渐减少.节点每隔一段时间会对缓存空间中的消息进行检查,删除消息生存时间到期的消息.

消息剩余生存时间直接影响消息能否到达目的节点.当节点进行消息丢弃时,需要考虑消息剩余生存时间对消息丢弃策略造成的影响,否则那些生存时间快要到期的消息可能滞留在缓存中,而那些新创建的消息可能还没来得及转发就被丢弃.对于那些生存时间快要到期的消息,一方面这些消息的副本可能已经被成功投递;另一方面,这些消息大概率会在传输过程中因生存时间到期而被节点删除,很难到达目的节点,从而加大整个网络消息传输时延.对于那些新创建的消息,由于消息副本还没有得到充分的转发就被丢弃,使得网络中的消息副本数较少,扩散范围较小,成功投递的概率较低,从而降低整个网络的消息投递率.

因此本文通过定义生存时间阈值,根据阈值对缓存中消息队列进行划分,在消息生存时间小于阈值时,优先丢弃消息生存时间小的消息来减少上述情况的发生.

消息生存时间阈值如公式(2)所示:

TTLthreshold=δ*TTLinit

(2)

式中TTLthreshold表示消息生存时间阈值,TTLinit表示消息初始生存时间,δ为0~1之间的数,后文中通过实验确定δ在当前仿真环境下的值,从而确定生存时间阈值.

3.3 消息转发次数

除了上述消息大小和消息生存时间,消息的转发次数也同样需要考虑.消息的转发次数越多,则网络中该消息的副本越多,消息已经成功投递的可能性越大,并且即使没有被成功投递,部分节点丢弃这种消息,其他节点仍有很大的转发机会,不会对整体消息投递率造成很大影响;然而若丢弃消息转发次数少的消息,由于消息并没有得到充分转发机会,消息很难到达目的节点,使得消息投递率下降,因此消息转发次数影响了消息的投递率.

对于一般多拷贝算法,消息的转发次数属于全局信息,需要通过节点维护这一全局信息并通过节点间接触对消息转发次数进行更新,而使用全局信息必定会带来消息缓存的占用和预测的不准确性.然而基于本文所改进的路由算法Spray and Wait的特点,可以采用消息副本对消息转发次数进行替代.由于Spray and Wait路由算法中节点维护了缓存空间中消息副本数,且每次喷发只复制一个消息,因此消息副本数越少就意味着该消息的转发次数越多.在消息生存时间充足的时候,即生存时间大于生存时间阈值的时候,优先对转发次数多的消息即消息副本少的消息进行丢弃,可以给转发次数少的消息更多转发机会,提高消息投递率.

3.4 消息效用值

通过上述对消息3个重要属性进行分析,可以得到消息大小主要影响网络开销,消息生存时间主要影响传输时延,消息转发次数主要影响消息投递率,那么如何平衡这3个消息属性的影响程度,使得网络中综合性能最优成为我们需要解决的问题.

本文采用定义消息效用值的方法将消息生存时间和消息转发次数两种消息属性进行综合,通过消息生存时间阈值来确定两种消息属性的影响程度.消息效用值的定义以更加直观的方式来衡量消息转发和丢弃的优先级,从而确定转发和丢弃的顺序.具体定义如公式(3)所示:

(3)

式中TTLthreshold表示消息生存时间阈值,Copiesk表示节点携带消息mk的消息副本数,TTLk表示该节点中消息的剩余生存时间.

由于本文采用的路由算法为Spray and Wait算法,因此节点中消息初始副本数可以预先设置,并且可以为每个消息增加消息副本字段来记录消息副本数.

在消息剩余生存时间小于生存时间阈值时,则消息剩余生存时间成为丢弃消息所需要考虑的主要因素,通过优先丢弃消息剩余生存时间小的消息,以降低网络传输时延.

当消息剩余生存时间大于消息生存时间阈值时,可以认为消息有足够的时间到达目的节点,消息剩余生存时间不再是比较丢弃顺序的主要因素,因此将转发次数即消息副本数作为选择丢弃消息的依据,通过优先丢弃消息副本数少的消息,让消息转发次数少的消息有更多的转发机会,以提高网络消息投递率.

4 基于消息综合属性的缓存管理策略MCA-BMS

本文提出的基于Spray and Wait的综合缓存管理策略MCA-BMS综合了节点携带消息大小、生存时间和副本数,对Spray and Wait算法的消息的转发和丢弃策略进行改进,本节从ACK确认机制、消息转发和丢弃顺序、消息转发策略以及消息丢弃策略4个方面进行介绍.

4.1 ACK确认机制

DTN的ACK确认机制不同于传统Internet的TCP确认机制,其目的并不是为了提供可靠传输,而只是为了根据确认信息丢弃已经投递的冗余消息,缓解网络压力,达到降低网络负载,提高投递率的目的.

本文引入的ACK确认机制[17]原理实现如下:

1)每个节点维护一个ACK消息列表,用于记录节点中已经投递成功的消息id.

2)当节点中有消息成功投递到目的节点时,记录消息ID添加到ACK列表中,并将该消息从缓存中删除.

3)当两个节点如vi和vj相遇时,首先会交换彼此的ACK列表,将对方的表中的消息id添加到自己的ACK列表中.接着,节点vi和节点vj分别检索自身ACK列表,判断缓存中是否含有ACK列表中id所对应的消息:如果存在这样的消息且该消息不是正在传输则将其从缓存空间中删除.

本文引入ACK确认机制,对冗余消息进行删除,一方面使得节点缓存能容纳更多消息,减少了因缓存空间不足而造成频繁丢弃现象的发生,提升网络的整体性能;另一方面,可以减少冗余消息对缓存管理策略中消息选择所造成的影响,尽量避免非冗余消息丢弃而冗余消息仍滞留在缓存情况的发生.

4.2 消息优先级队列

根据前文定义的消息效用值对缓存中消息进行排序,得到如图1所示的消息优先级队列.

图1 消息优先级队列Fig.1 Message priority queue

当消息效用值相同,则很难进行缓存队列的管理,因此使用了类似{SAD;FIFO}的队列组策略:消息效用值相同时先比较消息大小,若仍相同则比较消息进入缓冲区的时间.其中消息大小较小的消息具有更高的效用值,这是为了在丢弃消息时丢弃消息大小大的消息以腾出更多的缓存空间容纳更多消息,在接收消息时接收消息大小较小的消息以接收更多的消息.

4.3 消息转发策略和丢弃策略

消息转发策略:节点在遇到其他节点需要进行消息转发时,每次选择缓存中消息优先级队列队首的消息对消息进行转发.

消息丢弃策略:当两节点相遇时,首先进行ACK确认机制,删除两节点中已经成功投递的消息;当接收节点空闲缓存不足以容纳邻居节点即将传输过来的消息时,根据消息大小筛选出消息大小大于或等于消息大小阈值Sthreshold的消息,优先丢弃效用值低的消息;若消息大小均小于Sthreshold则优先丢弃缓存中消息优先级队列队尾的消息并重新计算Sthreshold.

具体消息丢弃策略图2所示.

图2 消息丢弃策略Fig.2 Message discarding strategy

具体消息丢弃算法如算法1所示.

算法1.消息丢弃算法

输入:即将到来消息Mnew;

输出:丢弃成功返回TRUE,失败返回FALSE;

1. IFMnew.size > BufferSize

2. RETURN FALSE

3. END IF

教学设计:教师依据学情分析结果,综合课程教学目标、课程教学内容、课程知识重难点等,并参考学生预习检测统计分析和讨论的情况,完善教学设计方案、准备多媒体教学资料。[3]

4. WHILEFreeBufferSize

5.Sthr←Mnew-FreeBufferSize

6.FOR eachMkinMBuffer

7.IFMk.size ≥Sthr

8. pushMkinto temporary queueQ

9. END IF

10. END FOR

12. delete least utility messageMoldinQ

13.FreeBufferSize+=Mold.size

14. ELSE

15. delete tail of queue in BufferMtail

16.FreeBufferSize+=Mtail.size

17. END IF

18. END WHILE

19. RETURN TRUE

算法1行-3行表示整个缓存空间不足以容纳即将到来的消息,这时就不会接收该消息;4行-10行表示把缓存队列中消息大于消息阈值Sthr的消息放入临时队列Q中;11行-13行表示若队列Q不为空即缓存中有消息大于消息阈值Sthr的消息,则筛选出队列Q中效用值最小的消息Mold进行删除;14行-16行表示若缓存中没有消息大于消息阈值Sthr的消息,则删除缓存队列中效用值最小的消息Mtail,即对队尾的消息进行删除.

5 仿真结果与分析

5.1 仿真环境配置

本实验采用ONE仿真平台[18]在Spray and Wait路由算法的基础上对DLC,MPBBM,SHLI,SAD和本文提出的MCA-BMS算法进行仿真.仿真采用ONE平台自带的赫尔辛基市地图作为移动场景,大小为4500m×3400m,节点数量设置为126个,共分为3类节点:行人、出租车、有轨电车.其中行人组80个节点,出租车组40个节点,这两组按照基于地图路线的最短路径模型移动,有轨电车组共6个节点,按照基于地图的固定路线模型移动.具体的仿真参数设置如表1所示,其它参数采用ONE平台自带的默认配置文件default_settings.txt中的默认设置.

表1 仿真参数Table 1 Simulation parameters

5.2 评价指标

本文采用以下指标来评估相关算法的性能[19].

1)投递率(Delivery Ratio)

投递率=成功投递到目标节点的消息数量/网络中生成的所有消息数量.

2)平均时延(Average Latency)

平均时延=网络中所有被成功投递的消息从源节点产生开始到目标节点完整接收到所经过的平均时间.

3)网络负载率(Overhead ratio)

网络负载率:需要投递的消息的发送总次数/成功投递到目标节点的消息数量.

5.3 生存时间阈值设置实验

由于生存时间阈值直接影响何时比较副本数,何时比较消息生存时间,即效用值的确定,进而影响消息投递率和传输时延,因此确定固定仿真条件下生存时间阈值显得尤为重要.消息生存时间阈值由消息初始生存时间的比例确定,即为确定比例系数δ,使得算法在投递率和传输时延方面均能表现较好.

首先在[0,1]区间,以0.05为间距确定参数δ的大致范围,投递率和平均时延分别如图3所示.

从图3(a)和图3(b)可以看出δ在0.2和0.35时MCA-BMS投递率相对较高,相差不是很明显,但在传输时延方面δ为0.35比δ为0.2时下降了很多,因此将参数δ的取值范围确定在0.35附近.为了进一步精确确定参数δ的值,在[0.29-0.36]之间以0.01为间距,得到MCA-BMS的投递率和平均时延,如图4所示.

图3 δ不同取值条件下的性能比较Fig.3 Comparison of performance under different values of δ

综合图4(a)和图4(b)可以很明显看出当参数δ取0.35时MCA-BMS在投递率和传输时延综合方面表现最优.

5.4 算法比较及分析

为了验证MCA-BMS算法的高效性,进行了3组仿真实验,在不同的消息生存时间、不同的仿真时间以及不同的消息产生速率下对5种算法在消息投递率、网络负载率和平均传输时延等网络性能方面进行评估,并且除了传统算法SHLI均加入了ACK确认机制以达到控制变量的目的.实验结果表明,MCA-BMS对网络的性能提升最大.

图4 δ不同取值条件下的性能比较Fig.4 Comparison of performance under different values of δ

1)不同消息生存周期

在前面环境配置下,改变消息生存周期,对比各种算法在不同消息生存周期下消息投递率(如图5(a)所示)、网络负载率(如图5(b)所示)、平均时延(如图5(c)所示)3个方面的变化情况.

图5(a)显示了各个算法在不同的消息生存时间变化下消息投递率的变化情况.由于随着消息生存时间的增加,许多消息不会因为消息剩余生存时间短被丢弃而能够成功投递,因此各个算法的投递率基本呈现上升趋势.其中本文提出的算法MCA-BMS投递率最高:MCA-BMS的消息投递率相较MPBBM平均提高了3.46%,相较DLC平均提高了6.24%,相较SHLI平均提高了17.72%,相较SAD提升了33.59%.

图5 不同消息生存周期条件下的性能比较Fig.5 Comparison of performance under different message time to live

MCA-BMS的消息投递率高于MPBBM的可能原因有两个:一是MPBBM算法未考虑消息的大小,因此可能多次出现接收一个消息而删除多个消息的情况;二是MPBBM算法仅仅将消息生存时间和消息副本数保持在一个数量级,而未考虑两者的占比情况,一般说来消息副本数占比越多则消息投递率越高.

SAD的消息投递率最低的原因是该算法只考虑消息的大小,保证每次丢弃消息的个数最小,并没有对消息生存时间和消息副本数进行考虑,因此可能丢弃消息副本数大即还未得到转发的消息,导致投递率很低.

图5(b)比较了各个路由算法的网络负载率.其中SAD算法的网络负载率最低,这是由于该算法为了使每次丢弃的消息个数最少,因此优先将消息大小大的消息进行丢弃,而这样会为缓冲区腾出大量的空间,使得整个网络的负载率较低.

DLC算法的负载率最高的原因是该算法丢弃副本数最低的消息,即转发次数最多的消息,使得总的消息转发次数大大增加,网络负载率最高.

图5(c)评估了各个算法的平均时延的变化情况.从图中可以看出SHLI的平均时延最低,MCA-BMS次之,这是由于SHLI算法只考虑丢弃生存时间最短的消息,使得成功投递的消息生存时间偏高,计算出的平均时延较低,然而由于可能丢弃一些消息生存时间低但能成功投递的消息,导致该算法的投递率偏低;本文中算法MCA-BMS能够在保持高投递率的情况下,平均时延方面性能仅次于SHLI.

DLC的平均时延是最高的,这是因为该算法使得转发次数少的消息得到更多的转发机会,这就会导致转发次数少且需要长时间到达目的节点的消息得到转发,造成整体的平均时延较高.

综上所述,MCA-BMS在消息投递率方面优于其他4种算法,在网络负载率和平均时延方面均是次优,因此可以得出在不同的消息生存周期MCA-BMS的整体性能是最好的.

2)不同仿真时间

在不同的仿真时间条件下,比较和分析各个算法在消息投递率(如图6(a)所示)、网络负载率(如图6(b)所示)、平均时延(如图6(c)所示)3个方面的变化情况.

图6(a)显示了各个算法在不同的仿真时间下消息投递率的变化情况.随着仿真时间的增加,有更多的消息被成功投递,因此各个算法的投递率基本呈现上升趋势.其中本文提出的算法MCA-BMS投递率最高:MCA-BMS在不同仿真时间下的投递率相较MPBBM平均提高了7.03%,相较DLC平均提高了7.82%,相较SHLI平均提高了22.32%,相较SAD提升了37.33%.

图6 不同仿真时间条件下的性能比较Fig.6 Comparison of performance under different simulation time

图6(b)比较了各个算法的网络负载率.结果依然是SAD算法网络负载率最低,MCA-BMS算法次优.MCA-BMS算法的网络负载率随仿真时间的增加先增加后趋于稳定,是因为先开始消息的生存时间基本大于消息生存时间阈值,因此大都按照消息副本对消息进行丢弃,使得消息得到大量转发,网络负载率升高;随着时间的推移,消息生存时间占主要因素,因此网络负载率趋向于SHLI算法.

图6(c)评估了在不同仿真时间下网络的平均时延的变化.从图中可以看出随着仿真时间的增加,MCA-BMS算法的平均时延逐渐增加并趋于平缓,仍然是高于SHLI算法,比其他3种算法低,处于次优.

综上所述,随着仿真时间的增加,由于MCA-BMS综合考虑了消息大小、消息生存时间和消息副本数,与其他算法的优势逐渐明显,从总体上来看,MCA-BMS在各个方面都有显著优势.

3)不同消息生成间隔

消息生成间隔与消息产生速率呈反比,通过改变消息生成间隔,即改变消息产生速率,比较和分析各个算法在消息投递率(如图7(a)所示)、平均时延(如图7(b)所示)、网络负载率(如图7(c)所示)3个方面的变化情况.

图7 不同消息生成间隔条件下的性能比较Fig.7 Comparison of performance under different message generation interval

图7(a)显示了各个算法的消息投递率的变化.5种算法的投递率都呈现上升的趋势,这是因为随着消息生成间隔的增加,消息产生速率逐渐变小,网络中的消息逐渐变少,资源利用率变高,减少大量消息因为缓存不足而频繁丢弃的情况,因此投递率均呈现上升的趋势,这时对于消息的转发和丢弃策略直接影响着消息是否能成功转发到目的节点.对比图中的数据可以得出,MCA-BMS的消息投递率相较MPBBM平均提高了6.93%,相较DLC平均提高了8.52%,相较SHLI平均提高了26.00%,相较SAD提升了53.45%.

图7(b)比较了各个算法的网络负载率随消息产生速率的变化情况.与之前不同的是当消息生成间隔低的时候,MCA-BMS算法的网络负载率会高于SHLI算法,这是因为消息生成间隔低,就会有大量新消息的产生,由于新产生的消息的生存时间基本大于消息生存时间阈值,所以基本按照消息副本数对消息进行丢弃,许多消息被转发,网络负载率提高,而随着消息生成间隔增加,新消息的生成速率降低,网络负载率逐渐降低,由于同时考虑了消息大小和消息生存时间,因此比单一考虑消息生存时间的SHLI网络负载率低.

图7(c)评估了各个算法在不同的消息产生速率下平均时延的变化情况.随着消息产生速率逐渐降低,MCA-BMS的平均时延方面的性能仍仅次于SHLI算法,DLC算法的平均时延依然为最高.

综上所述,在不同的消息产生速率条件下,综合考虑投递率、负载率以及平均时延方面,MCA-BMS对网络的性能提升最大.

6 结束语

本文针对Spray and Wait路由算法提出了基于消息综合属性:消息生存时间、消息大小和消息副本数的缓存管理策略MCA-BMS.该算法首先通过消息大小尽可能减少消息丢弃的数量,减少因丢弃消息大小不足造成频繁丢弃的情况,降低网络负载率,再按照消息生存时间和消息副本数对消息优先级进行排序,实现消息投递率和平均传输时延的平衡,最后通过加入ACK确认机制,删除网络中的大量冗余消息副本,缓解网络拥塞情况,进一步提升网络整体性能.

仿真结果显示,对比其他四种算法,MCA-BMS在投递率上始终是最高的,在网络负载率和消息传输时延方面是次优的,因此从整体上来看MCA-BMS要优于其他4种缓存管理策略,但是由于消息生存时间阈值是根据本文仿真环境实验进行确定,经过组内研究讨论,下一步将研究如何动态确定消息生存时间阈值,从而使得MCA-BMS能够适应不同缓存等其他仿真环境.

猜你喜欢

副本投递时延
传统与文化的“投递”
计算机网络总时延公式的探讨
计算机网络总时延公式的探讨
基于物联网的IT运维可视化管理系统设计与实现
《舍不得星星》特辑:摘颗星星给你呀
国家知识产权局公告:专利证书改版
大迷宫
新副本“战歌之城”怨灵BOSS面面观
《口袋西游—蓝龙》新副本“幽冥界”五大萌点
走出孤独囧境