1.一种基于链路质量的车联网通信方法,其特征在于,包括以下步骤:
S1:车联网中的各个车辆周期性地广播Hello数据包,Hello数据包中包括源车辆ID、源车辆位置坐标、区域ID和邻接车辆列表,其中移动车辆的区域ID设置为“null”,停放车辆的区域ID根据车辆所位于的区域进行设置,邻接车辆列表中保存源车辆的相邻单跳车辆的信息,采用以下方法进行更新维护:
每个车辆持续接收其他车辆广播的Hello数据包,当车辆为移动车辆时,每当接收到一个其他车辆的Hello数据包,则判断该车辆信息是否存在于其邻接车辆列表中,如果存在则更新该邻接车辆信息,否则将该车辆信息加入邻接车辆列表;当车辆为停放车辆时,每当接收到一个其他车辆的Hello数据包,首先提取出区域ID,判断是否与自身的区域ID相同,如果相同则不作任何操作,如果不同则进一步判断该车辆信息是否存在于其邻接车辆列表中,如果存在则更新该邻接车辆信息,否则将该车辆信息加入邻接车辆列表;
S2:各个车辆周期性地判断与邻接车辆之间是否存在双向链路,其判定方法为:在接收到其他车辆的Hello数据包时,提取其他车辆的邻接车辆列表,如果自身存在于该车辆的邻接车辆列表中,即判定与该车辆存在双向链路,对该链路进行链路质量评估,否则不作任何操作;
链路质量评估的方法为:在判断得到与车辆存在双向链路的邻接车辆后,统计预设时间T内接收到的来自该邻接车辆的Hello数据包的数量M,根据以下公式计算链路质量LQ:
其中,Th表示Hello数据包的发送周期,λ表示邻接车辆为移动车辆或停放车辆时的权重系数,当邻接车辆为移动车辆时,λ=a,当邻接车辆为停放车辆时,λ=b,且0<a<1,0<b<1,a+b=1;
S3:当车辆需要作为源车辆进行通信时,首先将与源车辆存在双向链路的邻接车辆放入候选中继集合X,从源车辆的邻接车辆列表中获取候选中继集合X中每个邻接车辆的车辆位置坐标,计算源车辆到该邻接车辆的距离,然后将源车辆到候选中继集合X中所有邻接车辆的距离进行平均得到距离平均值,从候选中继集合X中删除与源车辆距离大于距离平均值的邻接车辆;
计算当前候选中继集合X中每个邻接车辆的评估值Pi=LQi×di,i=1,2,…,|X|,|X|表示当前候选中继集合X中的邻接车辆数量,LQi表示源车辆与第i个邻接车辆间的双向链路质量,di表示源车辆与第i个邻接车辆间的距离。根据当前候选中继集合X中邻接车辆的评估值从大到小对邻接车辆进行排序,选择前K个邻接车辆作为中继节点,其中K是根据需要进行设置的,由这K个中继节点对源车辆的信息数据包进行转发。
2.根据权利要求1所述的车联网通信方法,其特征在于,所述邻接车辆列表采用如下方法进行老化维护:周期性地清空车辆的邻接车辆列表,然后根据新收到的Hello数据包重新更新维护邻接车辆列表。
3.根据权利要求1所述的车联网通信多跳方法,其特征在于,所述步骤S2中,参数a和b满足a<b。
4.根据权利要求1所述的车联网通信方法,其特征在于,所述步骤S3中,还采用以下方法对中继节点的转发等待时间进行设置:按照评估值从大到小对中继节点按0至K-1进行编号,如果第k个中继节点为停放车辆,设置其转发等待时间wk=0,否则设置其转发等待时间wk=k×σ,其中k=0,1,…,K-1,σ表示预设的时间参数。