基于内容及留存时间的VANETs转发策略
2019-04-19汤媛媛
汤媛媛,朱 琦,胡 晗
(南京邮电大学 江苏省无线通信重点实验室,江苏 南京 210003)
1 概 述
车载自组织网络(vehicular ad hoc networks,VANETs)作为现代智能交通系统(intelligent transportation system,ITS)的一个重要组成部分,已成为当前移动通信网络研究的热点。在VANETs中,通信主要在车与车之间和车与基础设施之间进行[1-3],在安全信息传递、辅助驾驶及娱乐资源共享等方面有着广泛的应用前景。
文献[4]提出车辆根据邻居列表选择距离自身最远的车辆作为候选转发车辆,并采用指数退避机制选择一个候选车辆作为转发节点。在VANETs中,由于车辆拓扑结构的动态变化,无法保证通信的稳定性。因此,有学者提出命名数据网络[5](named data networking,NDN),请求车辆不需要知道内容存储在什么地方,只需要转发有内容标记的请求包,网络中有对应内容的车辆回复数据包,将基于IP的点对点通信方式转变为用数据命名的内容检索方式。文献[6]将NDN应用到VANETs中,提出了V-NDN模型。但是由于在VANETs中车辆动态变化快,请求的转发成功率较低,所以,如何选择请求的转发节点是转发策略中的一个主要问题[7]。文献[8]为了解决V-NDN中请求的转发问题,提出了一种混合转发策略HVNDN,根据请求的内容种类确定不同的请求转发节点选择策略,提高了多跳V2V通信的可靠性和有效性。文献[9]为了提高VANTEs中数据包的转发速度,提出了一种多跳和多路径的VANET转发节点选择算法,该算法利用多条路径实现更快的内容检索,提升了内容搜索速度,节省了网络资源。文献[6-9]虽然改进了NDN在VANETs中的应用,但由于缺乏对内容所处位置的感知,请求的转发节点的选择效率不高。因此需要更加高效的内容查找和请求的转发策略。
为了提高请求包的转发成功率及内容的及时获取,文献[10]对前一个车辆的请求进行标记,根据自身的位置信息和前一个请求方向选择下一个转发节点,避免了请求的回旋转发,提高了获得内容的成功率。文献[11]分析了请求包和数据包的转发行为,并提出了CODIE模型,在请求包的转发中加入跳数的记录,并增加了跳数的限制,避免了请求超时。文献[12]根据内容关系度最大的原则选择请求的转发节点,减少了转发请求的开销,提高了获取内容的概率。但是该策略没有考虑车辆移出通信范围的情况,只着重于车辆遇到内容的时刻,导致请求的转发节点的选择不准确。同时,文献中假设网络的拓扑结构保持不变,与实际的车辆场景相差甚远。
为了提高车载网络中车辆间通信的稳定性和内容获取的高效性,在文献[12]的基础上,针对车辆拓扑结构动态变化的场景,文中提出了一种考虑内容关系度与留存时间的转发策略。车辆动态地更新自身维持的内容记录表,保证内容关系度的准确性,请求车辆根据位置、速度等信息计算留存时间,由内容关系度与留存时间综合决定选择请求的转发节点,提高内容获取概率和通信稳定性。同时,为了进一步提高请求的成功率,在转发策略中加入了内容缓存,车辆根据内容关系度阈值判断是否需要缓存收到的内容。最后,通过仿真对提出的策略进行验证。
2 转发策略
假设在车载网络中,每个车辆都装备有GPS(global positioning system),车辆能够通过GPS进行精确的时间和位置同步,车辆间可通过周期性的安全信息广播获取周围车辆的速度、方向等信息。在命名数据网络中,每个节点通过维持转发信息表(forwarding information base,FIB)、待处理兴趣表(pending interest table,PIT)和数据缓存(content store,CS)来处理请求包和数据包[13]。NDN最初是为了有线通信设计的,不适用于高速移动、拓扑结构变化快的车联网场景。因此,需要对该方式进行改进,以适用于车联网场景。
假设在车载网络中,有内容的车辆定期广播内容摘要信息,收到内容摘要信息的车辆更新自身的内容记录表。有请求的车辆先根据请求的内容查找自身的内容记录表,如果有该内容的记录,则广播请求信息,向周围车辆获取该内容;如果无记录,则请求获取邻居车辆的内容关系度;邻居车辆计算内容关系度并返回,请求车辆计算留存时间及获取内容概率,选择请求的转发节点;将该消息告知该车辆。如果在这一时刻,有多个车辆选择同一车辆作为请求的转发节点,则该车辆比较请求车辆的获取内容概率,选择其中最大的车辆作为其请求的转发节点,发ACK信息进行确认。未收到ACK信息的车辆则在下一时刻重新进行请求。同时,转发节点向自身一跳邻居车辆请求该内容,如果成功收到该内容的数据包,则计算此时与请求车辆的距离,选择内容的转发节点;收到内容的车辆根据内容获取概率阈值确定是否需要缓存该内容;如果未收到该内容,则将此信息返回给上一请求节点,重新进行请求,当请求超过一定的时长,请求车辆仍没有收到请求的内容,则认为此次请求失败。
3 请求的转发节点选择
当请求车辆i未在一定时间内收到一跳邻居车辆回复的内容j时,认为无法从邻居车辆获取该内容,因此发送请求获取内容关系度的信息Prob。Prob消息主要包括内容摘要,请求车辆ID,初始请求时刻以及一些可选项。邻居车辆收到Prob信息后,根据自身的内容记录表计算内容关系度,将其通过Back信息返回,Back信息不仅包含以上四项,还需要包含自身ID和内容关系度。车辆i计算邻居车辆在自身通信范围的留存时间,结合收到邻居车辆回复的内容关系度计算邻居车辆获取内容j的概率,选择请求的转发节点,并广播Ann信息通知对应车辆作为其请求的转发节点,Ann信息是在Prob信息上加上转发车辆ID和获取内容概率。收到Ann信息的邻居车辆若确认成为车辆i的请求转发节点,则回复ACK信息,告知车辆,ACK信息就是将Ann信息中的获取内容概率换成转发确认标记。
3.1 内容关系度获取
为了方便描述内容关系度的获取,文中采用文献[12]中的定义,若车辆中无某一内容但收到邻居车辆广播的内容摘要信息中包含该内容,则称该车辆遇到该内容。拥有内容的车辆周期性广播拥有内容的摘要信息。收到内容摘要信息的车辆及时更新自身维持的内容记录表。内容记录表主要包括该车辆遇到内容的时间以及内容来源的车辆序号。
无法从邻居车辆获取内容的请求车辆i会暂时停止请求的广播,开始广播请求获取内容j关系度的Prob信息。收到Prob信息的车辆x,根据内容摘要查找自身维持的内容记录表,计算内容关系度。车辆x与内容j的关系度[12]计算如下:
(1)
F(x)=(1/2)λx
(2)
其中,λ为权重控制参数,据文献[14]取λ=e-4。
如果记录的当时拥有该内容的车辆现在已不在车辆x的通信距离内,则不参与计算,提高内容关系度的准确性;对于仍处于车辆x一跳范围内的车辆,根据式1、式2计算内容关系度。发送Back信息告知请求车辆i自身的内容关系度。
3.2 留存时间计算
只根据内容关系度选择请求的转发节点,对于请求车辆i来说,关系度最大的车辆为x,其获取内容的可能也是最大的,但根据式2可知,当收到邻居车辆广播的内容摘要信息越接近于当前时刻t时,F(x)的值越大,得到的关系度值越大。但此时车辆x很可能驶出车辆i的通信距离,无法应答,造成转发节点选择失败,请求时延增大。因此车辆i可以根据自身与车辆x的速度、行驶方向及通信距离,计算车辆x在请求车辆i通信距离内的留存时间,提高请求的转发节点选择的成功率。
为了方便描述留存时间的计算过程,假设一个双向的高速公路场景,车辆分布如图1所示。车辆i广播Prob信息,请求获得邻居车辆关于内容j的关系度。
图1 车辆分布
假设车辆x,y都有关于内容j的记录,通过式1计算关系度,车辆x的关系度Cx(j)大于车辆y的Cy(j)。但是从图1可以看出,车辆x位于车辆i的通信边缘,在未来的一段时间内,车辆x将移出其通信距离,导致通信失败,因此需要考虑距离因素,计算车辆x在车辆i的通信距离内的留存时间Ti(x)。
当前时刻车辆i,x,y的速度分别为vi,vx,vy,行驶方向如图1所示,位置坐标分别为(Xi,Yi),(Xx,Yx),(Xy,Yy),则两车之间的距离为:
(3)
考虑到真实的交通场景,车辆在Y轴方向上的距离对于车辆间留存时间的计算无明显影响,因此在这里将两车间距离简化为:
Di,x=|Xi-Xx|
(4)
根据车辆行驶方向的不同,将留存时间的计算分为以下三种情况:
(1)车辆x与车辆i的行驶方向相同,经过时间T后,两车间的距离为:
di,x=|vx-vi|×T
(5)
假设车辆间的通信距离为R,如果车辆间的距离大于R,则无法建立通信链路,则车辆x在车辆i通信范围内的留存时间为:
Ti(x)=(R-Di,x)/(|vx-vi|)
(6)
(2)车辆x与车辆i的行驶方向不同,且两车相互靠近,经过时间T后,两车间的距离为:
(7)
车辆x在车辆i通信范围内的留存时间为:
Ti(x)=(R+Di,x)/(vx+vi)
(8)
(3)车辆x与车辆i的行驶方向不同,且两车相互远离,经过时间T后,两车间的距离为:
di,x=|vx+vi|×T
(9)
车辆x在车辆i通信范围内的留存时间为:
Ti(x)=(R-Di,x)/(vx+vi)
(10)
3.3 内容获取概率
车辆i广播Prob信息获得邻居车辆的关系度,再根据速度、位置、行驶方向计算邻居车辆在自身通信距离内的留存时间Ti。假设车辆i的一跳邻居车辆的数目为N,Vk为其中一个邻居车辆。则请求车辆i计算邻居车辆获取内容j的概率为:
(11)
算法1:请求车辆选择转发节点的算法。
1:初始化:请求车辆为i,请求内容为j,车辆i的一跳邻居车辆的总数为N
2:车辆i广播Prob信息
3:t时刻,收到Prob的邻居车辆x查询自身记录表,找到与j相关的记录Recordx,j(2,num),num为记录内容j的次数,第一行为遇到j的时刻,第二行为对应的有j的车辆
4:if num≠0
5:令Cx(j)=0
6:fork=1:num
7:ifDVk,x 8:根据式2计算F(t-tk) 9:Cx(j)=Cx(j)+F(t-tk) 10:else 11:Cx(j)=Cx(j) 12:end 13:end 14:通过Back信息告知车辆i关系度 15:else 16:不返回关系度值 17:end 18:车辆i收到n个关系度,计算对应车辆的留存时间Ti 19:ifn>0 20:forl=1:n 21:根据式6、式8、式10计算留存时间Ti(Vl) 22:根据式11计算从Vl获取j的概率PVl(j) 23:end 24:i从n个P值中选择最大值对应的车辆作为转发节点 25:else 26:车辆i从邻居中随机选择一个车辆作为请求车辆 27:end 28:i广播信息告知选择的车辆作为转发节点或请求车辆 从图1可以看出,考虑内容关系度与留存时间的影响,请求车辆i根据算法1选择车辆y作为转发节点。对于车辆y来说,如果只收到了车辆i发送的Ann信息,则回复ACK信息确认成为车辆i的转发节点;如果还收到了车辆z发送的Ann信息,车辆y比较收到的车辆x,z的Ann信息中的获取内容概率,选择获取内容概率大的车辆作为其请求的转发节点,发送ACK信息进行告知。如果车辆i收到车辆y发送的ACK信息,其中请求车辆ID为i,则等待转发节点找寻内容j并返回数据;如果车辆i收到的ACK信息请求车辆ID不为i或未收到ACK信息,则按照算法1重新进行请求的转发节点选择。 车辆y确认成为车辆i的请求转发节点后,将向自身通信范围R内的车辆广播内容j的请求信息,收到该请求信息的车辆检查自身的数据存储CS,如果有内容j,则将内容发送给车辆y;若无该内容,不进行回复。当车辆y收到内容j时,查找此时请求车辆i的位置,如果在R内,则向车辆i发送数据;若不在,则根据两车速度、方向和位置选择在车辆y的R内且最靠近请求车辆i的车辆作为内容转发节点。 转发车辆及请求车辆收到数据后,根据Zipf定律[15]计算内容流行度决定是否缓存该数据,内容j的流行度为: (12) 其中,M为内容总数,j∈(1,2,…,M);η是表征分布的指数的值,η=0.8。 车辆根据式1计算收到的内容j的关系度值。当关度值大于阈值Cthr时,表明该车辆的R内有一定的车辆拥有内容j,不需要缓存该内容;当小于阈值时,则需要考虑缓存内容j。车辆首先检查CS区是否有空闲,若有空闲,则直接缓存内容j;若CS区无空闲,则计算内容j与已存储的内容的流行度,并用内容j替换最小流行度的内容。 具体的缓存过程如下: 算法2:内容缓存算法。 1:初始化:车辆c收到的内容为j,其CS区大小为Cap,已缓存的内容数量为m,内容的关系度阈值为Cthr 2:根据式12计算内容j的关系度Cc(j) 3:ifCc(j) 4:ifm 5:将内容j存储在CS中 6:else 7:fork=1:m 8:根据式12计算每一个内容k的流行度qk 9:end 10:找出m个内容中流行度qk最小的内容min 11:ifqj>qmin 12:车辆c将内容min替换为j 13:else 14:车辆c的CS区不变 15:end 16:else 17:不进行内容缓存 18:end 通过仿真对基于内容关系度与留存时间的转发策略的性能进行分析。假设一个总长L=1 000 m的双向两车道高速公路场景,车辆服从随机分布。假设网络中内容的总量可配置,每个车辆的存储上限为3个内容,随机指定网络中20%的车辆为初始内容存储节点,内容随机分布。车辆的请求信息到达服从λ=6的泊松分布,请求某一内容的概率服从Zipf分布,请求信息的有效时长为3 s。具体的仿真参数如表1所示。 表1 仿真参数 仿真比较了文献[12]提出的只考虑内容关系度的转发策略与文中提出的转发策略的性能。性能指标为请求成功率和平均路径长度,定义如下: (1)请求成功率:网络中初始请求车辆,即请求产生的原车辆成功获得内容的次数与生成的总的初始请求次数的比值。 (2)平均路径长度:仿真时间内,所有请求车辆从产生初始请求开始到获得所请求的内容为止,所经过的转发车辆总数的平均值。 图2 不同车辆数目下的请求成功率 图2比较了两种转发策略下,随着车辆数目的增大得到的请求成功率。从图中可以看出,文中提出的转发策略得到的请求成功率优于文献[12]的转发策略,且随着车辆数目的增多,请求成功率逐渐增加。这是因为文中提出的转发策略综合考虑了转发车辆获取内容关系度与在请求车辆R内的留存时间,去除了已经驶出转发车辆R内的拥有内容的车辆,提高了关系度的准确性,同时避免选择可能即将移出请求车辆R的车辆的情况,提高了请求成功率。随着车辆数目的增多,对于网络中的每一个车辆来说,邻居车辆的数目增多,拥有内容的可能性增大,选择转发节点的范围也会相应增大,请求成功率也逐渐增大。 图3比较了两种转发策略下,随着车辆数目的增大得到的平均路径长度。从图中可以看出,文中提出的转发策略得到的平均路径长度低于文献[12]的转发策略,且随着车辆数目的增多,平均路径长度逐渐降低。这是由于请求成功率的提高,对于网络中拥有某一内容的车辆数目来说也相应增大,在接下来的请求过程中,选择到的转发节点获取内容的概率也相应增大,请求完成所经过的路径会相应降低。随着车辆数目的增多,邻居车辆数目增多,拥有内容的车辆数增多,请求成功率增大,平均路径长度相应下降。 图3 不同车辆数目下的平均路径长度 图4比较了两种转发策略下,随着内容广播周期的增大得到的请求成功率。从图中可以看出,文中提出的转发策略得到的请求成功率高于文献[12]的转发策略,且随着内容广播周期的增大,请求成功率呈现先增后降的趋势。根据仿真设置的参数及t=R/V,计算车辆在R内留存的时间约为6 s,对于文献[12]来说,广播周期越小,车辆在R内的广播内容摘要的次数越多,邻居车辆收到的内容信息时间不断更新,计算的关系度越大,尤其是当有内容车辆即将移出车辆R时,得到的关系度最大,导致选择的转发节点不准确,请求成功率下降。因此随着广播周期的增大,请求成功率逐渐增大。但随着广播周期的进一步增大,车辆不能保证在通信范围内必然广播一次内容摘要信息,造成车辆获得关于邻居车辆拥有的内容信息的不准确,从而带来请求成功率的下降。 图4 不同内容广播周期下的请求成功率 而文中提出的转发策略是根据关系度与留存时间计算获取内容概率,进行转发节点的选择,所以当内容广播周期较低时,请求成功率明显优于文献[12]的转发策略。而随着广播周期的增大,获得内容的及时性越低,请求成功率逐渐下降。在广播周期为1~2 s中,请求成功率有一小段上升,这是因为获取内容概率计算中比例因子设置的问题,导致留存时间对获取内容概率影响较小,并没有完全避免选择可能即将移出R的车辆的可能,所以出现了和文献[12]提出的转发策略在广播周期较低时一样的现象。 图5比较了两种转发策略下,随着内容广播周期增大得到的平均路径长度。从图中可以看出,文中提出的转发策略得到的平均路径长度低于文献[12]的转发策略。通常请求成功率较低时,请求成功所需的路径长度也越高。文献[12]的转发策略符合平均路径长度的变化趋势。但对于文中提出的转发策略来说,平均路径长度呈一直上升的趋势。这是由于留存时间的影响一定程度上改善了关系度的影响,选择的车辆获取内容的概率仍较高,平均路径长度维持在一个较低的水平。 图5 不同内容广播周期下的平均路径长度 考虑到车载网络中车辆拓扑结构动态变化快的特点,提出了一种基于内容关系程度和留存时间的转发策略,同时考虑了内容缓存,改进了只考虑内容关系程度的转发策略的不足,较为准确地估算获取内容的概率。仿真结果表明,该转发策略能有效地提高网络中的请求成功率,同时降低了请求成功所经过的路径长度,一定程度上减少了请求时延,提高了网络性能。在未来的车载通信中,高效的转发节点选择能快速准确地找到请求内容,降低请求时延,提高请求成功率,同时也避免了请求的洪泛式广播带来的信道资源的过多占用、广播开销大等现象,能较为快速地满足车载通信中多种业务需求。3.4 确认转发节点
4 内容获取及缓存
5 仿真与分析
6 结束语