鲁顶柱 高静 董守斌
摘 要: 针对无线自组网节点的移动导致多播可靠性降低、开销和时延增加的问题,提出基于邻居覆盖信息的多播方案。该方案通过少量的Hello报文收集一跳内的邻居信息,并据此实时计算节点的密度系数、邻居节点未覆盖率等参数,利用所获参数动态调整节点的多播数据转发时延与转发概率。为进一步降低时延,提出一种基于节点移动速度的数据分发方案,它允许部分快速移动节点采用更高的概率转发多播数据。将其扩展至多播方案中,形成基于邻居覆盖信息和节点移动速度的多播方案。NS2的仿真结果表明,与现有方案相比,该方案将分组投递率提高27%,控制开销减少33.2%,并将端到端平均时延降低45%。
关键词: 多播方案; 无线自组网; 邻居覆盖信息; 转发时延; 分组投递率; 端到端平均时迟
中图分类号: TN915?34; TP393.04 文献标识码: A 文章编号: 1004?373X(2019)10?0053?07
A wireless ad hoc network multicast scheme based on neighbor coverage
information and node motion velocity
LU Dingzhu1,2, GAO Jing1, DONG Shoubin2
(1. School of Information & Engineering, The Open University of Guangdong, Guangzhou 510091, China;
2. School of Computer Science & Engineering, South China University of Technology, Guangzhou 510006, China)
Abstract: A multicast scheme based on neighbor coverage information is proposed to solve the problems of multicast reliability decrease, overhead increase and latency increase caused by node mobility in wireless ad hoc networks. In the scheme, the one?hop neighbor information is collected by using a few Hello messages, and accordingly, parameters such as node density coefficient, and uncoverage rate of neighbor nodes are calculated in real time. The obtained parameters are used to dynamically adjust the forwarding time delay and forwarding probability of nodes′ multicast data. A data distribution scheme based on node motion velocity is proposed to further reduce the time delay. The scheme allows part of fast mobile nodes to perform multicast data transmission with a higher probability. A multicast scheme based on neighbor coverage information and node motion velocity is formed by extending the data distribution scheme to the multicast scheme. The results of the simulation with the NS2 show that the proposed scheme can improve the packet delivery rate by 27%, and decrease the control overhead by 33.2% and the average end?to?end delay by 45% in comparison with the existing schemes.
Keywords: multicast scheme; ad hoc network; neighbor coverage information; forwarding delay; packet delivery rate; end?to?end average delay
0 引 言
无线自组网的多播方案按拓扑结构可分为三类[1]:基于树结构的、基于网格结构的和无状态的多播方案。基于树结构的方案[2?5]利用分发树转发数据,同一数据只会向成员节点分发一次,数据传输效率高;但在无线自组网中树结构易被节点的移动所破坏,难于维护,可靠性低,只适合在节点低速移动的环境中应用。
基于网格结构的方案[6?8]提供冗余的路径,弥补了树结构的不足;但冗余路径维护开销大,同时易引发冲突,增加传输开销。与基于树结构的方案相比,基于网格结构的多播方案对节点移动的适应能力更强[9]。
无状态方案 [10?11]采用源路由或以受限的泛洪方式转发数据,不需要维护拓扑,减少了开销,对节点移动的适应能力最强。本文提出基于邻居覆盖信息和节点移动速度的多播方案(a Neighbor Coverage and Velocity?based Multicast Scheme,NCVM)。该方案根据一跳邻居的多播数据未覆盖信息和自身的移动速度来自适应的动态改变多播数据的转发概率与转发时延,以获得较小的端到端时延和通信开销良好的分组投递率。
1 基于邻居覆盖信息的多播方案
将网络用一个无向图[ G=V, E ]来表示,其中V是网络中所有节点的集合,E是网络中所有无向边的集合,节点之间的每一条链路都用一条无向边来表示。节点ni的邻居节点集合[Nni] 定义为:
[nini,nj∈E&ni,nj∈V]
[Nni]表示邻居节点集合中节点的数量。
1.1 成员关系维护
在基于邻居覆盖信息的移动自组網多播方案(a Neighbor Coverage?based Multicast Scheme,NCM)中,每个多播组成员仅需维护一跳内的成员关系。因而在节点频繁移动的情况下也能通过Hello报文及时更新成员关系,并保持较小的维护开销,特别适合于移动场景。成员关系维护具体过程如下:
当多播源节点r需要发送数据时,它首先向全网广播一个JOIN_GROUP报文,其中包含了多播组标识字段GROUP_ID。当多播接收节点ni收到JOIN_GROUP报文后,该节点构造一个Hello报文,并且向自己的邻居广播这个Hello报文。Hello报文中包含了以下字段:
1) ID(ni)。发送节点ni的ID。
2) Group_ID。Group_ID是发送节点所加入的多播组ID。
3) N(ni)。N(ni)中包含了ni节点的所有邻居多播组成员节点ID,称为邻居节点集合。
4) LEAF_FLAG。如果节点ni是一个叶子节点,LEAF_FLAG位被置为1,否则Hello报文中不包括该字段。
定义1 叶子节点:如果某个节点仅有一个邻居节点,那么这个节点是叶子节点,LEAF_FLAG位被置为1。
定义2 次叶子节点:如果节点的邻居节点中有叶子节点,那么这个节点是次叶子节点。
在成员关系初始化完成之后,每个节点周期性地交换Hello报文来更新成员信息。如果一个节点在Hello报文交换周期内未收到邻居成员节点的Hello报文,将从邻居节点集合中移除该邻居节点。离开多播组的节点不需要发送任何消息。
为了减少Hello报文带来的控制开销,多播方案采用了捎带技术,利用多播报文捎带Hello报文。只有当多播报文的发送间隔大于Hello报文交换周期时才需要单独发送Hello报文。
1.2 未覆盖邻居节点集合
邻居节点集合与未覆盖邻居节点集合如图1所示,节点[ni]与上游节点r相邻,并收到来自r的多播数据m。[N(ni)]和N(r)分别是节点[ni]与上游节点r的邻居节点集合,也就是以各自为圆心,以信号覆盖范围为半径的圆中所有成员节点(自己除外)构成的集合。由于无线网络的广播特性,节点[ni]与节点r共同的邻居节点会收到来自r的多播数据m,节点[ni]的另外一部分非共同邻居节点却未能收到多播数据m,这部分节点(图1最右边区域实心节点)组成了[ni]的未覆盖邻居节点集合[U(ni)],定义如下:
[U(ni)=N(ni)-[N(ni)?N(r)]-{r}] (1)
多播转发时延:节点在第一次收一个多播数据后需要等待一段时间,之后才根据自己的邻居节点多播数据覆盖情况决定是否转发这个多播数据,这个等待时间称为多播转发时延。
图1 邻居节点集合与未覆盖邻居节点集合
合理的选择多播转发时延非常重要,因为:
1) r的部分邻居节点在彼此的信号覆盖范围之内(图1公共区域空心节点),这些邻居节点在收到多播数据后如果同时转发该数据就会引起冲突,节点通过等待一个时延可以减少冲突。
2) 节点[ni]在等待时延的过程中可能会收到来自r以外的其他邻居节点转发的重复多播数据,那么[U(ni)]可能会减小,转发概率也会随之减小。
如果节点[ni]在多播转发时延结束之前收到邻居节点[nj]转发的多播数据m,那么节点ni需要根据节点nj的邻居节点集合来重新计算自己的未覆盖邻居节点集合[U(ni)],计算公式如下:
[Uni=Uni-[Uni?Nni]-{nj}] (2)
1.3 多播数据转发概率
节点[ni]是否转发来自上游节点r的多播数据受到多个因素影响:
1) 节点[ni]的邻居节点数。[ni]的邻居节点数较多时,为了避免产生过多的重复数据,多播数据转发概率应该稍小;反之,应取较大的概率。
2) 节点[ni]的邻居节点未覆盖率和未覆盖邻居绝对数量。对于节点[ni]而言,其邻居节点未覆盖率越大,转发多播数据所获得的覆盖率就越大;如果节点[ni]邻居未覆盖率较小,但其未覆盖邻居绝对数量较大时,转发多播数据也同样是值得的。
邻居节点数量与未覆盖邻居绝对数量影响。文献[12]研究得出:当每个节点的邻居多于5.177 4log N(记为Nc,其中N为网络中节点总数)时,这个网络渐近趋于连通。本文将引入5.177 4log N来衡量节点ni的邻居数和未覆盖邻居绝对数量的多少,以决定多播数据转发概率的大小。
将[Nni] 与Nc之比定义为密度系数d(ni)。[Nni]值越大,密度系数d(ni)越大,网络连通性越好,节点ni的多播数据转发概率就应该越小,产生的冗余和冲突也就越少。
[d(ni)=NniNc] (3)
同样用 [Uni]与Nc之比来衡量未覆盖邻居绝对数量大小,定义为未覆盖邻居数影响因子Fu(ni)。当未覆盖邻居数影响因子越大时,转发多播数据有效覆盖的邻居节点也就越多,转发效率越高,带宽的利用率越高。
[Funi=UniNc] (4)
邻居节点未覆盖率影响。当转发时延结束时,节点ni需要计算邻居节点未覆盖率[Ru(ni)]:
[Ru(ni)=UniNni-1] (5)
式中:[·]表示集合中成员的数量;[Nni-1]表示在节点ni的未覆盖邻居节点集合中剔除了节点r。
当节点ni的邻居节点未覆盖率较大时,节点ni应当以较大的概率转发接收到的多播數据,以提高带宽利用率;相反,当节点ni的邻居节点未覆盖率较小时,应当在保证分组投递率的前提下以尽可能小的概率转发多播数据,以减少冗余和冲突。
多播数据转发概率计算。综合节点ni的邻居节点数、邻居节点未覆盖率和未覆盖邻居节点绝对数量的影响得出基于邻居信息的多播数据转发概率pk(ni):
[pk(ni)=β·Ru(ni)+(1-β)·Fu(ni)d(ni)] (6)
式中,β和[(1-β)]分别是邻居节点未覆盖率和未覆盖邻居数影响因子对多播数据转发概率的影响系数。如果pk(ni)>1时,pk(ni)取值为1。
为了保证多播分组投递率,当ni节点的邻居中有叶子节点nj时,如图1所示,即ni节点是次叶子节点时,ni节点将以概率1转发所接收到的多播数据,pk(ni)的取值为1。为了减少冗余数据,作为转发路径尽头的叶子在接收到多播数据后,不再对其进行转发,p(nj)的取值为0。
因此,节点的多播数据的转发概率为:
[pkni=0, Uni=?1, ?nj,nj∈Uni&Nnj={ni}min1,β·Runi+1-β·Funidni,其他] (7)
1.4 多播转发时延计算
合理设置转发时延不仅能错开相邻节点的多播数据转发时间,降低冲突,还有利于收集足够的邻居节点未覆盖信息,调整多播数据转发概率,提高多播数据转发效率。[ni]节点的未覆盖邻居节点绝对数量,以及它和r节点之间的公共邻居比率都对多播数据的转发时延产生了不同的影响。以下用[Rc(nri)]标记r节点和[ni]节点的公共邻居比率,[Rc(nri)]定义如下:
[Rc(nri)=N(r)?N(ni)N(r)-1] (8)
式中:[·]表示集合中节点的数目;[N(r)-1]表示在节点r的邻居中排除了节点ni。
用[Td(ni)]标记[ni]的转发时延,其定义如下:
[Td(ni)=Δ?(1-Fu(ni)?Rc(nri)), N(r)?N(ni)≠?Td(ni)=0, N(r)?N(ni)=? 或 ?nj,nj∈U(ni)&N(nj) =ni] (9)
式中,[Δ]是一个较小的时延常数。
多播转发时延的取值原则如下:
1) 如果节点[ni]的未覆盖邻居节点绝对数量越多,那么节点[ni]的多播转发时延就应该越小。这样有利于更多的没有接收到多播数据的节点在尽可能短的时间里获取数据,加快多播数据在网络中的传播速度,缩短端到端平均时延。
2) 如果r与[ni]的公共邻居所占比率越大,时延就应该越小。因为节点[ni]越早转发,就会有越多的公共邻居接收到重发的多播数据,并及时调整自己的未覆盖邻居集合,进而减小转发概率,降低冗余数据,提高带宽利用率。
3) N(r)[∩]N([ni])=[?],即节点r和[ni]没有公共邻居时,节点[ni]的转发不会引发冲突,Td(ni)为0可以加快数据的传播。节点[ni]是次叶子节点时,必须转发接收到的多播数据,并将Td(ni)设为0,这可以让公共邻居节点尽快更新未覆盖信息,同时加速数据传播。
特别规定:如果Rd(ni)的计算值小于0,那么规定Rd(ni)的取值为0。
1.5 基于邻居覆盖信息的多播通信算法描述
算法主要包括三部分:
1) 初始化未覆盖邻居节点集合U(ni),计算时延Td (ni);
2) 更新未覆盖邻居节点集合U(ni);
3)在转发时延结束时计算多播数据转发概率
pk(ni),并决定是否转发。
2 基于节点移动速度差异的数据传输方案
基于节点移动速度差异的数据传输方案(Velocity?based Data Dissemination Scheme,VDDS)利用一部分移动速度快的节点来转发数据,以便将数据快速传播到网络中,减少时延。节点移动速度信息可以通过Hello报文增加一个字段vi来收集。
假设节点ni有ki个邻居节点,节点ni的移动速度为vi,它的邻居节点的移动速度为vj(j=1,2,…,ki)。在这(ki+1)个节点中,速度最大的节点的移动速度记为vmax (ni):
[vmax(ni)=max(v1,v2,…,vki)] (10)
这(ki+1)个节点的平均移动速度记为[v(ni)]:
[v(ni)=1ki+1j=1kivj+vi] (11)
这(ki+1)个节点移动速度的标准差记为[σ(ni)]:
[σ(ni)=1ki+1j=1ki(vj-v(ni))2+(vi-v(ni))2] (12)
在基于节点移动速度的数据传输方案中,只有当节点ni的移动速度大于平均移动速度与移动速度标准差之和[(vj-v(ni))]时,才需要计算节点ni的转发概率,即此时节点ni才有可能参与数据转发。
节点ni数据转发概率pv(ni)为:
[pvni= 0, vi≤vni+σnivi-vni+σnivmaxni-vni+σni,vi≤vni+σni] (13)
3 基于鄰居覆盖信息和节点移动速度的多播方案
将VDDS方案扩展应用于方案NCM,形成基于邻居覆盖信息和节点移动速度的多播方案NCVM。NCVM是在NCM的基础上额外选择多播组中部分快速移动的节点来加速数据的传输。在NCVM算法中,节点转发多播数据的概率由节点的移动速度和邻居覆盖信息共同决定。
NCVM算法主要包括三部分:
1) 初始化未覆盖邻居节点集合U(ni),计算基于节点速度的转发概率pv(ni)。如果转发概率落入区间(1-pv(ni))而未能转发该多播数据,则计算时延Td(ni)。
2) 时延Td (ni)未结束之前更新未覆盖邻居节点集合U(ni)。如未覆盖邻居节点集合U(ni)更新后为空,结束计时,退出算法;否则继续更新U(ni),直到计时结束。
3) 计算基于邻居信息的多播数据转发概率pk(ni),并以概率pk(ni)转发多播数据。
NCVM算法中的函数与参数定义如下:
m:节点ni接收到的多播数据。
Timer(ni,m,Td(ni)):计时器,节点ni第一次接收到多播数据m时设定,值为Td(ni)。
random(0,1):值域介于(0,1)区间的随机函数。
基于邻居信息和节点移动速度的多播通信算法如下:
/*初始化未覆盖邻居节点集合[U(ni)]*/
1.While ni receives a fresh multicast message m from r do
2.[U(ni)=N(ni)-[N(ni)?N(r)]-{r}]
3.if [U(ni) =] [?] then
4. [p(ni)] = 0 and return
5.end if
/*计算基于节点速度的转发概率[pvni]*/
6.if [vi>v(ni)+σ(ni)] then
7.[pvni=vi-(v(ni)+σ(ni))vmax(ni)-(v(ni)+σ(ni))]
8.if random(0,1)≤pv(ni) then
9.forwarding (m) and return
10.end if
11.end if
/*计算转发时延Td(ni)*/
12.if [N(r)?N(ni)=?或?nj, N(nj) =ni] then
13.Td(ni)= 0
14.else
15.[Td(ni)=Δ·Rd(ni)]
16.Set a Timer(ni,m,Td(ni))
17.end if
18.end while
/*更新未覆盖邻居节点集合U(ni)*/
19. while ni receives a duplicate m from nj before Timer(ni,m,Td(ni)) expires do
20.[Uni=Uni-[Uni?Nni]]
21.if [U(ni)=?] then
22.p(ni) = 0 and return
23.end if
24.end while
/*计算基于邻居信息的多播数据转发概率pk(ni),并以概率pk(ni)进行转发*/
25.While Timer(ni,m,Td(ni)) expires do
26.if [ ?nj, N(nj) =ni] then
27.pk(ni)=1
28.else
29.[pk(ni)=[β·Ru(ni)+(1-β)·Fu(ni)]/d(ni)]
30.end if
31.if random(0,1) ≤[pk(ni)] then
32.forwarding (m) and return
33.end if
34.end while
4 仿真实验与结果分析
采用NS?2.35[13]对本文提出的NCM及NCVM方案、Ncast[2]、ODMRP[6]方案及泛洪方案[14]进行仿真。实验分别模拟了不同节点移动速度、不同节点数的网络环境,以分析它们对多播方案的开销、端到端时延、分组投递率的影响,方案的性能参数定义如下:
1) 分组传输开销(Packet Transmission Overhead)。所有转发的多播分组与目的节点接收到的有效分组之比。
2) 控制开销(Control Overhead)。每传送一个字节的多播数据所产生的控制分组字节数。
3) 端到端平均时延(Average End?to?End Delay)。多播数据从源节点发出到被目的节点接收的平均时间间隔。
4) 分组投递率(Packet Delivery Ratio)。收到多播数据的成员节点数与所有成员节点数之比。
4.1 实验环境设置
模拟中采用随机路点移动模型(Random Waypoint Model)来模拟移动自组网中节点的移动,节点被固定在1 000 m×1 000 m(Topology Size)的正方形区域内移动。置信度设定为95%,详细的模拟参数如表1所示。
表1 基于鄰居覆盖信息的多播方案模拟参数
[模拟参数 参数值 节点数 50, 100, 150, 200, 250, 300 节点信号传输半径 /m 250 链路带宽 /(Mb/s) 2 流量类型 CBR 分组大小 /B 512 分组发送率 /(packets/sec) 4 驻留时间 /s 0 节点最大移动速度 /(m/s) 0, 5, 10, 15, 20, 25 MAC层协议 IEEE 802.11 DCF CSMA/CA Hello 报文发送周期 /s 4 转发时延常数(Δ) /s 0.01 β(NCM,NCVM) 0.8 join query报文周期(ODMRP) /s 3 ADV报文周期(NCast) /s 3 ]
4.2 节点移动速度对多播方案性能的影响
实验中节点的最大移动速度取值范围为0~25 m/s,网络中节点的数目为200,CBR连接数为20。
图2展示了节点移动速度对多播数据传输开销的影响。NCVM中有部分移动速度较快的节点参与了数据的转发,其分组传输开销略大于NCM。NCM和NCVM通过感知邻居节点的未覆盖信息和节点密度来动态调整多播数据转发概率,其转发概率的自适应性有效减少了冗余分组,降低了冲突。并且引入的随机时延有效地错开相邻节点的数据转发时间,减少对信道的竞争,降低了分组传输开销。相比其他方案,节点移动速度对NCM和NCVM的分组传输开销影响较小。
图2 节点移动速度对分组传输开销的影响
flooding是五个方案中分组传输开销最多的一个。ODMRP方案的冗余分组和节点移动造成的重传增加了分组传输开销。Ncast协议的分组传输开销最小,体现了树结构的高效性,但这是以分组投递率下降为代价的,如图3所示。
图3 节点移动速度对分组投递率的影响
图3呈现了节点移动速度对分组投递率的影响。flooding协议获得了最高的分组投递率。基于网格的ODMRP分组投递率优于基于树结构的NCast。当节点移动速度大于5 m/s时,相比NCast方案,NCM和NCVM方案将分组投递率提高了4.99%~27.4%和5.1%~28.8%。
图4呈现了节点移动速度对控制开销的影响。flooding方案不产生控制开销。ODMRP方案周期性的泛洪和转发组的维护都产生了大量的控制开销,并带来时延,如图4、图5所示。节点移动引起的树结构的频繁重构造成NCast方案控制开销急剧上升,时延也因此而增加。NCM和NCVM利用捎带技术和少量Hello报文维持松散的成员关系,受节点移动影响小,控制开销少。相对于NCast方案,它们将控制开销降低了4.3%~23.2%。
图4 节点移动速度对控制开销的影响
图5 节点移动速度对端到端平均时延的影响
图5呈现了节点移动速度对端到端平均时延的影响。flooding协议、NCM和NCVM方案在节点移动速度加快时时延反而减小,因为携带多播数据的快速移动节点加快了分组的传播。NCM方案中引入了随机转发时延,增加了端到端平均时延,但转发时延会降低信道的竞争和传输冲突,提高了分组的传播速度,反过来一定程度上又降低了端到端平均时延。相比NCast方案,NCM和NCVM方案将端到端平均时延分别降低了7.23%~36.9%和8.09%~45.9%。
4.3 节点密度对多播方案性能的影响
多播组成员节点数目取值分别为50,100,150,200,250,节点的最大移动速度为15 m/s,CBR连接数为20。图6呈现了成员节点数对分组传输开销的影响。flooding转发的冗余分组最多,产生冲突多,分组传输开销增长最快。同时,冲突的增加还导致了时延的增长,分组投递率的下降,如图7、图8所示。但与其他4个协议相比,flooding的分组投递率最高。
图6 成员节点数对分组传输开销的影响
节点的移动和数目的增加使得ODMRP的网格维护变得更加复杂,冲突增多。当节点数目达到150时,分组传输开销增加明显,控制开销增速更快,时延随之增加,如图6、图7、图9所示。节点数目密度增加使得ODMRP的分发组中的冗余链路增多,分组投递率受节点移动的影响反而被弱化了,一直保持在95%以上见图8。
图7 成员节点数对端到端平均时延的影响
图8 成员节点数对分组投递率的影响
基于树结构的NCast保持了较低的分组传输开销。节点密度较大时因冲突的增加,NCast的分組传输开销和端到端平均时延略有增加,如图6、图7所示。节点增加时,分发树的规模也变大,维护开销增多,同时受节点移动的影响,控制开销有所增加,如图9所示。但成员节点数的增加提高了网络的连通性,分发树重构变得容易,因而NCast的分组投递率有所提高,但仍然远低于其他4个多播方案,如图8所示。
图9 成员节点数对控制开销的影响
NCM和NCVM方案在计算转发时延和转发概率时都引入了节点密度参数,有效降低了节点密度对方案性能的负面影响。与NCM相比,NCVM方案的最大的优势在于显著降低了分组时延,并提高了分组投递率,如图7、图8所示。与NCast方案相比,NCM和NCVM方案分别将控制开销降低了2.42%~27.5%,2.27%~27.4%;分别将端到端平均时延降低了11.4%~24.3%,16.1%~32.3%;分别将分组投递率提高了15.6%~27.1%,16.3%~27.3%。
5 结 语
本文针对节点移动速度与节点分布时刻变化的无线自组网提出NCM和NCVM多播方案。方案通过Hello报文收集邻居密度和覆盖信息,实时计算每个节点的转发时延和概率。一跳邻居信息的收集保证了控制开销处于较低水平,灵活的转发时延和概率计算保证了复杂移动环境下的端到端平均时延以及高分组传输率。此外,多播转发时延和概率的定义方法有利于平衡业务负载,提高方案的可扩展性。为了进一步降低时延,在NKVB方案中少数高速节点被用于转发多播消息,加快传播速度,使得NKVB方案更适合于移动环境。仿真结果表明,NCM和NCVM方案在可靠性和开销上均优于现有的多播方案,尤其是在时延方面表现突出,具备优秀的动态网络环境适应能力。
参考文献
[1] KUMAR W G, NEERAJ M. A survey of multicast routing protocols in MANET [J]. IITM journal of management and IT, 2017, 8(1): 42?50.
[2] NARGESI A A, BAG?MOHAMMADI M. Efficient multicast tree construction in wireless mesh networks [J]. Journal of communications and networks, 2014, 16(6): 613?619.
[3] GONG H, FU L, FU X, et al. Distributed multicast tree construction in wireless sensor networks [J]. IEEE transactions on information theory, 2017, 63(1): 280?296.
[4] LU T, ZHU J, CHANG S, et al. Maximizing multicast lifetime in unreliable wireless ad hoc network [J]. Wireless networks, 2018, 24(4): 1175?1185.
[5] BOUSBAA F Z, LAGRAA N, KERRACHE C A, et al. A distributed time?limited multicast algorithm for VANETs using incremental power strategy [J]. Computer networks, 2018, 145: 141?155.
[6] LEE S J, SU W, GERLA M. On?demand multicast routing protocol in multi?hop wireless mobile networks [J]. Mobile networks and applications, 2002, 7(6): 441?453.
[7] YAN Y, TIAN K, HUANG K, et al. D?ODMRP: a destination?driven on?demand multicast routing protocol for mobile ad hoc networks [J]. IET communications, 2012, 6(9): 1025?1031.
[8] ZHANG C, LIU Y, REN X, et al. LSODMRP: improved?ODMRP multicast routing protocol based on local broadcast and stable links for MANET [C]// Proceedings of International Conference in Communications, Signal Processing and Systems. Singapore: Springer, 2017: 574?581.
[9] LEE S J, SU W, HSU J, et al. A performance comparison study of ad hoc wireless multicast protocols [C]// Proceedings of 19th Annual Joint Conference of the IEEE Computer and Communications Societies. Tel Aviv: IEEE, 2000: 565?574.
[10] JIA W, LU D, WANG G, et al. Local retransmission?based gossip protocol in mobile ad hoc networks [C]// Proceedings of IEEE Wireless Communications & Networking Conference. Kowloon: IEEE, 2007: 4244?4249.
[11] LU D, DONG S, JIAO D. NKBM: a neighbor knowledge?based multicast scheme for dense wireless mesh networks [C]// Proceedings of 34th Chinese Control Conference. Hangzhou: IEEE, 2015: 1451?1456.
[12] XUE F, KUMAR P R. The number of neighbors needed for connectivity of wireless networks [J]. Wireless networks, 2004, 10(2): 169?181.
[13] Anon. The network simulator: building?Ns?2 [EB/OL]. [2017?10?18]. https://www.isi.edu/nsnam/ns/.
[14] JETCHEVA J G, HU Y C, MALTZ D A, et al. A simple protocol for multicast and broadcast in mobile ad hoc networks [EB/OL]. [2000?07?20]. https://art.tools.ietf.org/html/draft?ietf?manet?simple?mbcast?01.