本发明设计了一种车载网络中基于道路拓扑结构的地理信息路由方法,属于通信技术领域。
背景技术:
车载自组织网络(vanet)作为移动自组织网络(manet)的一个研究方向,在智能交通系统(its)中有着重要的应用。vanet将车辆节点与道路基础设施作为网络节点,主要实现车辆间通信(v2v,vehicle-to-vehiclecommunication)和车辆与路边设施之间的通信(v2i,vehicle-to-infrastructurecommunication),构成了实时通信的移动网络,提高了交通的安全性和管理效率,同时也为车辆驾驶提供了更多的服务。由于车辆的高移动型,vanet具有网络拓扑频繁变化的特性,一般的manet协议在vanet场景下,容易产生网络中断,高时延,高丢包率等问题,无法满足vanet的需求。所以vanet的协议设计成为了解决这些问题的研究热点。
车载网络城市场景中,因为建筑物的遮挡,车辆节点间数据的传输需要按照道路结构的拓扑来进行发送,传统基于地理信息的路由的性能受到影响。在路由选择时将道路拓扑结构与地理位置信息结合,可以更有效的使用无线信道资源,具有广泛的研究与应用前景。
技术实现要素:
技术问题:本发明所要解决的技术问题在于克服传统路由在vanet中的缺点,提供一种考虑到实际传输中的传输成功率和节点的业务转发能力的路由方法,减少无效的转发次数,提高有限网络资源的利用率。
本发明具体采用以下技术方案解决上述技术问题。
技术方案:本发明旨在提供车载网络中基于道路拓扑结构的地理信息路由方法。该方法包括:
a.确定两跳内可行节点集合:集合n1(x)表示节点x一跳内的所有邻居节点,节点yi∈n1(x)表示n1(x)中的第i个节点,集合n2(x)表示节点x一跳内的所有邻居节点,节点x两跳内的邻节点zj,节点zj∈n2(x)表示n2(x)中的第j个节点。节点x在控制信道上从n1(x)的节点中获取n2(x)中节点的位置信息和一跳邻居节点个数pr(zj),根据位置信息计算n2(x)中所有节点之间邻居关系,对于x节点两跳内的邻节点zj,计算pc(zj)表示节点zj在集合n2(x)中一跳邻节点的个数。节点x两跳内可行节点集合m(x)={z|z∈n2(x),pc(z)<pr(zj),dz,d<dx,d},其中dz,d表示节点z到目的节点d的距离,dx,d表示节点x到目的节点d的距离。
b.选出两跳内的目标节点:定义路口节点集合c,路口节点是位于十字路口可以向四个方向发送数据的节点。节点x为数据流s→d上的节点,找出节点j满足
c.计算路由判据和进行路由选择:对于当前节点x与可选下一跳节点yi∈n1(x),统计在周期时间t内,节点x和节点yi各自一跳邻域的并集中节点对于业务信道的使用情况,用能够占用业务信道进行发送的概率
所述步骤b)中的边缘转发模式,包括以下步骤:
b-1).节点a开始转换为边缘传输模式,如果当前节点x比节点a距离目的节点d更近,转到b-13),否则按照右手准则寻找到目的节点d的可行路径,转到b-2);
b-2).如果当前节点是路口节点转到b-3),否则转到b-10);
b-3)判断该路口节点周围是否有未被标记的路段,如果存在转到b-4),否则转到b-9);
b-4).尝试进行贪婪模式,判断是否能够在未被标记的路段中找到比当前节点距离目的节点更近的一跳邻点,如果能找到转b-5),否则转b-8);
b-5).继续按照右手准则,在未被标记的路段确定一个路段,在这个路段中寻找一跳内的路口节点,如果能够找到转b-6),否则转b-7);
b-6).将该路口节点作为下一跳节点,转到b-12);
b-7).将该路段内距离当前路口节点最远的点作为下一跳,转到b-12);
b-8).按右手准则寻找最近的路口节点,如果能够找到转到b-11),否则转到b-12);
b-9).将找到的路口节点作为下一跳节点,同时将当前节点所在路段在分组中标记,转到b-12);
b-10).按右手准则方向,将当前路段中距离最远的节点作为下一跳,转到b-12);
b-11).没有到目的节点的可行路径,传输结束;
b-12).继续边缘传输模式,分组发送到下一跳节点,转到b-11);
b-13).切换到贪婪模式进行下一跳节点选择。
有益结果
本发明利用了跨层的机制和城市拓扑提出了车载网络城市场景中基于道路拓扑结构的地理信息路由方法,利用该方法建立的路由具有最高的转发效率,可以显著地改善平均端到端延时、吞吐量、丢包率等网络性能。
附图说明
图1是路由选择的流程图。
图2是路口节点示意图。
具体实施方式
在设计车载网络城市场景中的路由协议时,因为建筑物的遮挡,车辆节点间数据的传输需要按照道路结构的拓扑来进行发送,传统基于地理位置的路由算法下一跳节点时,选择与目的节点最近的点进行转发,传输性能较差。当数据发送到网络中的空洞时,会进入边缘传输模式,长时间保持边缘传输模式会影响整体的网络性能。
为了解决这两个问题,本发明提出了一种改进的车载网络中基于道路拓扑结构的地理信息路由,算法流程如图1所示。基于道路拓扑的地理信息路由协议主要针对的是城市场景中因为建筑物的遮挡和道路的移动限制,节点和节点之间的传输在一定程度上需要按照道路的拓扑结构来进行。将道路方向信息和节点位置信息综合考虑,可以更加有效的找出接近目的节点的下一跳。实现主要分为三个部分,分别是下一跳节点预测算法、路由计算和前向节点选择和边缘传输模式的改进。
1、下一跳节点预测算法
如图2所示,在城市场景中节点可以按照拓扑结构分为两类,图中节点a位于十字路口可以向四个方向进行数据发送,我们定义这种位于十字路口并且能够向四个方向发送数的节点叫做路口节点,而其余节点为一般节点。路口节点因为其特性是基于道路拓扑的地理信息路由协议中的关键节点。
以无竞争的多信道接入协议vemac作为mac层协议。在vemac协议中节点通过轮询的方式占用着控制信道上的时隙,当节点占用控制信道上的时隙时向周围节点广播自己一跳内节点和自己的的节点信息。所以节点接收到控制信道上的广播后可以用来维护两跳内节点的位置情况,根据这些位置情况开始进行下一跳节点预测算法。
首先定义目标节点为当前节点可以预测的距离目的节点最近的节点。为了减少进入空洞,在广播信息中加入每个节点自身的一跳邻居节点的个数,用来判断两跳内的节点是否位于空洞中。判决算法如下:
(a)当前节点a对于两跳内比自身更加接近目的节点x的n个邻居结点维护一个二维数组p(n,n),转步骤(b);
(b)当节点a占用控制信道时,数组p清零,转步骤(c);
(c)从节点a占用信道的下一个时隙开始,到节点a再次占用时隙之前,每当节点a接收到其他节点一跳内邻居节点的信息时,记录两跳内的所有节点位置信息,转步骤(d);
(d)根据位置信息和相关道路情况,计算所有两跳内比节点a更加接近目的节点且与节点a在一跳之内的节点。将将这些节点之间的距离关系保存在数组p内,p(x,y)=1表示节点x和节点y相互在一跳之内,p(x,y)=0表示节点x和节点y相互在一跳之外,转步骤(e);
(e)对于节点a两跳内任意一个比节点a更加接近目的节点的节点x。如果x的一跳内的邻居节点数大于数组p中节点x对应行或者列数值的总和,转步骤(f),否则转步骤(g);
(f)节点x存在比节点x更加接近目的节点的一跳邻点;
(g)节点x位于空洞之中不存在更加接近目的节点的一跳邻点。
上述算法中,通过将获取当前节点a两跳内所有节点的位置,估算每个可能的目标节点x在节点a两跳内的一跳邻居结点个数,与实际x的一跳邻居节点的个数比较,如果两者相等,则节点x所有邻居节点都在当前节点a的两跳之内,节点x无法找到比自身更加接近目的节点的一跳邻居节点。该算法的复杂度较高,但是相对的网络开销较少。在车载自组织网络中,车辆节点的计算能力和存储能力一般不受限制,所以该算法能够提高网络性能。
下一跳节点预测算法流程如下:
(a)当前节点a开始开始寻找数据流s→d的下一跳节点,转步骤(b);
(b)当前节点a先排除自己两跳范围内位于空洞中的节点,再根据自己两跳内其他节点的位置分布寻找出最接近目的节点的节点j且,如果节点j与节点a在同一路段上(即两者之间不存在建筑物遮挡)或者节点j与节点a中间有一个节点是路口节点,则转步骤(d),否则转步骤(c);
(c)寻找节点a两跳范围内距离目的节点d最近的路口节点作为新的节点j,转步骤(d);
(d)如果节点j与节点a是同一个节点,则转步骤(e),否则转步骤(f);
(e)开始边缘传输模式;
(f)节点j为两跳内的目标节点。
在上述算法中,步骤(c)中必定可以找到新的节点j。因为在步骤(b)中只有当最接近目的节点的节点j与节点a不在同一路段上时才会进入步骤(c),而节点j与节点a相互在彼此的两跳范围内,必定存在一个路口节点作为两者的中间节点,该节点即为步骤(c)中找到的新的节点j。
找到目标节点意义在于确定了下一跳的传输方向,为了两跳能尽量接近目的节点,在下一跳节点的选择时应该在节点j和当前节点a一跳领点的交集中寻找。
2、前向节点选择
在选择下一跳节点时,因为已经有目标节点表示预测到的两跳内的最优选择,则不需要用于目的节点的距离表示节点的传输的有效性,而采用节点到目标节点的距离作为衡量节点是否适合作为下一跳节点的指标之一。
同时考虑业务信道的占用情况,定义节点占用业务信道的能力。对于当前节点a与可选下一跳节点b,统计在周期时间t内,节点a和节点b各自一跳邻域的并集中节点对于业务信道的使用情况,定义节点a到节点b占用业务信道的能力为:
其中tsch_avi表示业务信道并非全部忙碌,有可用业务信道的时间,pa→b表示能够占用业务信道进行发送的概率。
设集合s={n1,n2,...nm}为当前节点a一跳内的m个邻居节点,已经找到目标节点j,对于集合中任意一个节点ni,我们定义节点ni作为节点a下一跳节点的传输能力为:
则下一跳路由选择的判据为:
通过综合考虑节点的业务队列和距离目标节点的距离,能够更加有效的衡量节点的传输的能力。
3、边缘传输模式
为了解决传统边缘传输模式中每一跳距离较小影响性能的问题,结合城市场景中的路口节点对于传统边缘传输模式进行改进,通过在分组中加入道路标记,将道路拓扑结构作为考虑的要素之一,使得节点能够尽快的恢复到贪婪模式。具体算法如下:
(a)节点a开始转换为边缘传输模式,如果当前节点比节点a距离目的节点d更近,转到步骤(m),否则按照右手准则寻找到目的节点d的可行路径,转到步骤(b);
(b)如果当前节点是路口节点转到步骤(c),否则转到步骤(j);
(c)判断该路口节点周围是否有未被标记的路段,如果存在转到步骤(d),否则转到步骤(i);
(d)尝试进行贪婪模式,判断是否能够在未被标记的路段中找到比当前节点距离目的节点更近的一跳邻点,如果能找到转步骤(e),否则转步骤(h);
(e)继续按照右手准则,在未被标记的路段确定一个路段,在这个路段中寻找一跳内的路口节点,如果能够找到转步骤(f),否则转步骤(g);
(f)将该路口节点作为下一跳节点,转到步骤(l);
(g)将该路段内距离当前路口节点最远的点作为下一跳,转到步骤(l);
(h)按右手准则寻找最近的路口节点,如果能够找到转到步骤(k),否则转到步骤(l);
(i)将找到的路口节点作为下一跳节点,同时将当前节点所在路段在分组中标记,转到步骤(l);
(j)按右手准则方向,将当前路段中距离最远的节点作为下一跳,转到步骤(l);
(k)没有到目的节点的可行路径,传输结束;
(l)继续边缘传输模式,分组发送到下一跳节点,转到步骤(a);
(m)切换到贪婪模式进行下一跳节点选择
该算法中以路口节点与一般节点的特性为核心,当一般节点在边缘传输模式下经过路口节点时,一般节点所在的路段已经不存在通往目的节点的可能通路,可以将该路段标记。通过快速接近路口节点加快边缘传输模式的速度,尽快将节点恢复为提高传输效率。
但是当节点进入边缘传输模式时与目的节点处于平行道路上且两者只相隔街区不存在街道时,会出现特殊情况,无法有效的找到到达目的节点的路径。这种情况下使用传统的边缘传输模式保证能够在节点间拓扑联通的情况下到达目的节点。