首页> 中国专利> 一种利用路口静态节点辅助数据转发的车载网路由协议

一种利用路口静态节点辅助数据转发的车载网路由协议

摘要

本发明中公开一种利用路口静态节点辅助数据转发的车载网路由协议。在各个路口处设置静态节点,所有静态节点不断收集UPAC报文并进行处理,获得路段传输时延

著录项

  • 公开/公告号CN103379575A

    专利类型发明专利

  • 公开/公告日2013-10-30

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201310275846.1

  • 发明设计人 秦华标;余聪;翁锦深;

    申请日2013-07-02

  • 分类号H04W40/04;H04W84/18;

  • 代理机构广州粤高专利商标代理有限公司;

  • 代理人何淑珍

  • 地址 511458 广东省广州市南沙区环市大道南25号华工大广州产研院

  • 入库时间 2024-02-19 21:01:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-14

    未缴年费专利权终止 IPC(主分类):H04W40/04 专利号:ZL2013102758461 申请日:20130702 授权公告日:20160504

    专利权的终止

  • 2016-05-04

    授权

    授权

  • 2013-11-27

    实质审查的生效 IPC(主分类):H04W40/04 申请日:20130702

    实质审查的生效

  • 2013-10-30

    公开

    公开

说明书

技术领域

本发明涉及车载自组网技术,具体涉及利用路口静态节点辅助数据转发的车载 网路由协议。

背景技术

随着智能交通系统的发展,在城市交通的车载自组网中进行大量数据的多跳传递越来 越引起人们的关注。不同于传统移动自组网中节点的移动是随意的,城市交通的车载自组 网中节点的移动是具有轨迹的。数据是在车辆节点间进行转发的,而车辆节点的移动轨迹 是可以由一系列路口以及与之连接的路段表示的,所以当数据在路段中转发时,转发轨迹 是沿着路段的,当数据转发到路口时,车载自组网路由协议会通过其算法选择下一个转发 路段进行数据的转发,然后数据又重新沿着路段进行转发,转发的过程不断重复这些步骤, 直到遇到目的节点。目前的车载自组网路由协议中,有些车载自组网路由协议是通过算法 判断出转发的数据处于路口,虽然不需要额外设备,但是算法复杂,系统开销大,精确度 也不高。而利用路口静态节点判断转发的数据处于路口(当数据转发到路口静态节点时, 说明转发的数据处于路口中),并为转发的数据选择下一个转发路段的路由策略是当下极 具潜力的研究方向。这种路由策略的技术关键在于根据路段的连通状态选择下一个转发路 段,从而降低时延或者提高传递率。当前采用的方法有:(1)根据路段连通状态的历史信 息作为选择下一个转发路段的依据。(2)通过多跳广播的方式获得路段当前的连通状态信 息,而且为了获得全局最优路径,静态节点间也不断地进行信息交流。其中,方法(1) 无法准确地获悉路段当前的连通状态,通过历史信息获得的下一个转发路段可能不是最优 选择。方法(2)中的各个节点间的多跳广播以及静态节点间的信息交流加重了网络负载, 而且算法复杂。

发明内容

本发明的目的在于克服现有车载组网路由协议的不足,提供一种性能更优的利用路口 静态节点辅助数据转发的车载网路由协议,实现大量数据的多跳传递。本发明通过 路口静态节点获得与之连接的各个路段的路段传输时延tdelay和路段连通状态tstate,利用这两 个信息以及贪婪转发算法选择下一个转发路段,信息收集简便、价值高,算法实现简单、 代价低,所选的下一个转发路段连通性强;同时由于静态节点的存在,使得在路段中进行 数据转发所采用的贪婪转发算法更优,基本上避免了局部最优现象的发生。改进后的利用 路口静态节点辅助数据转发的路由协议提高了数据传递的成功率,降低时延与网络负载。 本发明的具体技术方案如下。

一种利用路口静态节点辅助数据转发的车载网路由协议,其包括如下步骤:

(1)在各个路口处设置静态节点,所有静态节点不断收集UPAC报文并进行处理,获 得路段传输时延tdelay和路段连通状态tstate;包括静态节点和车辆节点的所有节点不断收集 HELLO报文并进行处理,获得失效时间点TD。

(2)当数据在路段中转发时,路由协议利用失效时间点TD和微观贪婪转发算法选择 下一跳节点进行数据转发;当数据转发到交叉路口时,路由协议利用路段传输时延tdelay、路 段连通状态tstate和宏观贪婪转发算法选择下一个转发路段进行数据转发。

上述协议中,步骤(1)中的所有静态节点不断收集UPAC报文并进行处理,获得路段 传输时延tdelay和路段连通状态tstate的具体过程为:

各个静态节点周期性地向它所有的相邻静态节点发送连通性单播报文UPAC,周期为 T1,UPAC报文包括源静态节点IP地址、目的静态节点IP地址、目的静态节点地理位置、报 文发送时间。所述的相邻静态节点指的是与该静态节点连接的各个路段的另一端的静态节 点。路段上的车辆接收到UPAC报文后,利用目的静态节点的地理位置,选择邻居节点列表 中离目的静态节点最近的邻居节点作为下一跳进行报文的转发。如果车辆节点在时间twait内仍然无法找到正确的下一跳,则直接丢弃该报文。经过车辆节点的多次中转,目的静态 节点接收到相邻静态节点的UPAC报文;

各个静态节点维护一张相邻静态节点列表,列表保存与该路口连接的各个路段另一端 的静态节点的IP地址、地理位置以及该路段的路段传输时延tdelay、路段连通状态tstate。一个表 项对应一个路段;

当静态节点接收到UPAC报文后,通过当前时间减去保存在UPAC报文中的报文发送时 间获得UPAC报文从源静态节点传递到目的静态节点的时延,并等价为数据从接收UPAC报 文的静态节点经过对应路段传输到发送UPAC报文的静态节点的时延,将时延填充或者覆盖 在相邻静态节点列表中对应表项的路段传输时延tdelay,完成对路段传输时延tdelay的初始化或 者更新。该时延是宏观贪婪转发算法选择下一个转发路段时用于比较的信息,反映对应该 时延的路段中车辆的密集程度,路段车辆密集度越高,数据在该路段上进行传输的时延越 短,所以该时延数据的意义不在于是否精确,因此等价是合理的;

静态节点的相邻静态节点列表中的每个表项的路段连通状态tstate是一个由10个元素构 成的环形链表。每当静态节点接收到一个与之连接的路段另一端静态节点发来的UPAC报文 时,则将该UPAC报文的到达时间填充在对应表项路段连通状态tstate的环形链表元素里,当 填充完10个元素后,则将接着接收到的UPAC报文的到达时间从链表头处开始,依次进行覆 盖,实现更新。当宏观贪婪转发算法选择下一个转发路段时,则将每个表项路段连通状态 tstate的环形链表中的最近时间减去最远时间,得到时间差值。某个表项所得的时间差值较小, 说明该表项对应路段的连通状态较好。因为同样是接收到10个UPAC报文,车辆密集度较低、 连通性差的路段中,UPAC报文容易丢失,从而使时间差值较长,反之,车辆密集度较高、 连通性强的路段中,UPAC报文不易丢失,静态节点能在更短的时间内接收到同样数量的 UPAC报文。

上述协议中,步骤(2)中的微观贪婪转发算法的具体包括:

(2.1)当源节点打算发送数据给目的静态节点时,则通过网格定位服务GLS获得目的 静态节点的地理位置以及源节点所在路段中更靠近目的静态节点的静态节点的地理位置;

(2.2)第一步,源节点将发送给目的静态节点的数据封装成普通的IP数据包;第二步, 将整个IP数据包进行第二次封装,第二次封装后的IP数据包中,包头部分的目的节点IP地址 是通过GLS获得的源节点所在路段中更靠近目的静态节点的静态节点的IP地址,内容部分 是第二次封装后的目的节点的地理位置和第一步中的整个IP数据包;第三步,标注该数据 包为IP数据包;第四步,利用第二次封装后的目的节点的地理位置,选择邻居节点列表中 离该目的节点最近的邻居节点作为下一跳进行IP数据包的转发;

(2.3)处于路段中的车辆节点接收到IP数据包时,首先检查邻居节点列表中是否存在 静态节点并且该静态节点是接收到的IP数据包的目的节点,如果是,则直接将IP数据包传 递给该静态节点;如果邻居节点列表中不存在静态节点或者静态节点不是目的节点,车辆 节点则利用目的节点的地理位置,选择邻居节点列表中离目的节点最近的邻居节点作为下 一跳进行IP数据包的转发;如果车辆节点在时间twait内仍然无法找到正确的下一跳,则直接 丢弃该IP数据包;

(2.4)当静态节点接收到IP数据包时,首先对其进行第一次解封装,从而获得真正的 目的节点的IP地址,如果IP地址就是该静态节点的IP地址,该静态节点则直接接收这个IP 数据包;如果IP地址不是该静态节点的IP地址,则该静态节点首先利用宏观贪婪转发算法 选择下一个转发路段,然后将整个IP数据包进行重新封装,重新封装后的IP数据包中,包 头部分的目的节点IP地址是利用宏观贪婪转发算法所选择的下一个转发路段另一端的静态 节点的IP地址,内容部分是重新封装后的目的节点的地理位置和进行第一次解封装时的整 个IP数据包;最后利用重新封装后的目的节点的地理位置,选择邻居节点列表中离该目的 节点最近的邻居节点作为下一跳进行IP数据包的转发。

其中,利用目的节点的地理位置,选择邻居节点列表中离目的节点最近的邻居节点作 为下一跳进行数据转发的具体过程为,节点首先对邻居节点列表以失效时间点TD作为依据 进行排序,然后依序对邻居节点列表中各个表项进行计算,就是将当前时间减去各个表项 的失效时间点TD,当某个表项的计算结果是负值,说明该表项已经失效,对应的邻居节点 已经离开了本节点的最大有效通信距离Rmax,当某个表项的计算结果是正值,说明该表项 对应的邻居节点仍然处于本节点的通信范围内。因为是以失效时间点TD作为排序依据,所 以再往下的所有表项对应的邻居节点也处于本节点的通信范围内。最后,节点在剩下的邻 居节点中选择离目标节点最近的邻居节点作为下一跳,进行数据的转发。

上述协议中,步骤(2.4)中的宏观贪婪转发算法的具体步骤为:

步骤(2.4)中的宏观贪婪转发算法的具体步骤如下。

(2.4.1)静态节点首先根据相邻静态节点列表中每一个表项的路段连通状态tstate计算每 一个表项对应的时间差值。所述的时间差值是通过将表项中路段连通状态tstate的环形链表保 存的最近时间减去最远时间获得的。当某一个表项对应的这个时间差值超过阈值Tthread时, 表示该表项对应的路段处于连通性差的状态,则将对应的路段排除在选择下一个转发路段 的选择范围外。如果所有表项的对应路段都处于连通性差的状态,则选择其中连通性最强 的路段作为下一个转发路段进行IP数据包的转发。如果静态节点的邻居节点列表中没有对 应该路段的车辆节点,则选择次优路段,依此类推。

(2.4.2)排除了连通性差的路段后,静态节点首先根据路段传输时延tdelay计算邻居静态 节点列表中剩下的各个表项的数据传输距离Dtrans,然后选择Dtrans最小的对应路段作为下一个 转发路段进行IP数据包的转发;如果静态节点的邻居节点列表中没有对应该路段的车辆节 点,则选择次优路段,依此类推。

其中,根据路段传输时延tdelay计算数据传输距离Dtrans的具体内容为,设数据传输速度为 vtrans,将vtrans与相邻静态节点列表某一个表项的路段传输时延tdelay相乘,获得对应路段的时延 距离Ddelay;所述的时延距离Ddelay表示数据从该静态节点传输到对应路段另一端静态节点所 需的虚拟距离,而非真正的地理距离;车辆密集度较高、连通性强的路段中,传输数据所 需的时延短,时延距离Ddelay小而地理距离不一定小,反之,车辆密集度较低、连通性差的 路段中,传输数据所需的时延长,时延距离Ddelay大而地理距离不一定大;所述的数据传输 速度vtrans的计算公式如下:

vtrans=Rttrans

其中R表示车辆节点与静态节点的平均有效通信距离,而ttrans表示节点处理数据、发送 数据、数据一跳传播、下一跳节点接收到数据所需的时间。

数据从当前静态节点传输到与之连接的一个路段另一端的静态节点的时延距离Ddelay与 该路段另一端静态节点到目的静态节点的几何距离L的和构成了选择该路段作为下一个转 发路段进行数据转发时,当前静态节点与目的静态节点的传输距离Dtrans,具体计算公式如 下:

Dtrans=Ddelay+L

上述协议中,步骤(1)中包括静态节点和车辆节点的所有节点不断收集HELLO报文 并进行处理,获得失效时间点TD的具体过程为,各个节点周期性地进行HELLO报文的一跳 广播,报文包括节点自身的IP地址、地理位置、移动方向、移动速度,周期为T2。如果是 静态节点,则该静态节点的移动方向和移动速度均为0。

各个节点维护一张邻居节点列表,邻居节点列表保存邻居节点的IP地址、地理位置、 移动方向、移动速度以及失效时间点TD。一个表项对应一个邻居节点。

当节点接收到HELLO报文时,首先判断是否存在与广播该HELLO报文的节点对应的 表项,如果不存在,则创建对应该节点的表项,将HELLO报文中的节点IP地址、地理位置 相应地填充到该表项对应的邻居节点IP地址、地理位置,并根据HELLO报文中的地理位置、 移动方向、移动速度计算失效时间点TD,完成初始化。如果存在,则将HELLO报文中的节 点IP地址、地理位置相应地覆盖该表项对应的邻居节点IP地址、地理位置,并根据HELLO 报文中的地理位置、移动方向、移动速度计算失效时间点TD,完成更新。其中,计算失效 时间点TD的步骤为,首先根据HELLO报文中的地理位置、移动方向、移动速度计算该邻居 节点停留在本节点通信范围内的停留时间TL;其次将TL与当前时间TN相加得到该邻居节点 的失效时间点TD(也就是该邻居节点离开本节点通信范围内的时间点)。其中所述的停留 时间TL的计算公式如下:

TL=(YVV-XVH)±(VH2+VV2)Rmax2-(XVV+VHY)2VH2+VV2

其中X=xu-xd,VH=vucosθu-vdcosθd,Y=yu-yd,VV=vusinθu-vdsinθd,TL为邻 居节点的停留时间,也称链路预测生存时间,(xu,yu),(xd,yd)分别为两个节点当前的位置, (vuu),(vdd)分别为两个节点的移动速度和移动方向,Rmax为节点间的最大有效通信距 离。

与现有技术相比,本发明的优点与积极效果在于:

1、本发明通过路口静态节点获得与之连接的各个路段的路段传输时延tdelay和路段连通 状态tstate,利用这两个信息以及贪婪转发算法选择下一个转发路段,信息收集简便、价值高, 算法实现简单、代价低,所选的下一个转发路段连通性强。

2、由于静态节点的存在,使得在路段中进行数据转发所采用的贪婪转发算法更优,基 本上避免了局部最优现象的发生。

3、改进后的利用路口静态节点辅助数据转发的路由协议提高了数据传递的成功率,降 低时延与网络负载。

附图说明

图1是本发明实施方式中的整体示意图。

图2a是本发明实施方式中UPAC报文的格式示意图;图2b是相邻静态节点列表的格式示意 图;图2c是相邻静态节点列表的路段连通状态tstate的保存方式示意图;图2d是HELLO报文的 格式示意图;图2e是邻居节点列表的格式示意图。

图3是本发明实施方式中的微观贪婪转发算法流程图。

图4是本发明实施方式中的微观贪婪转发算法示意图。

图5是本发明实施方式中的宏观贪婪转发算法流程图。

图6是本发明实施方式中的宏观贪婪转发算法示意图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

图1为本发明的整体示意图,具体步骤包括,(1)在各个路口处设置静态节点,所有 静态节点不断收集UPAC报文并进行处理,获得路段传输时延tdelay和路段连通状态tstate;包括 静态节点和车辆节点的所有节点不断收集HELLO报文并进行处理,获得失效时间点TD。(2) 当数据在路段中转发时,路由协议利用失效时间点TD和微观贪婪转发算法选择下一跳节点 进行数据转发;当数据转发到交叉路口时,路由协议利用路段传输时延tdelay、路段连通状态 tstate和宏观贪婪转发算法选择下一个转发路段进行数据转发。

步骤(1)中的所有静态节点不断收集UPAC报文并进行处理,获得路段传输时延tdelay和路段连通状态tstate的具体过程为,各个静态节点周期性地向它所有的相邻静态节点发送连 通性单播报文UPAC,周期为T1,UPAC报文包括源静态节点IP地址、目的静态节点IP地址、 目的静态节点地理位置、报文发送时间。图2a是UPAC报文的格式示意图。所述的相邻静态 节点指的是与该静态节点连接的各个路段的另一端的静态节点。路段上的车辆接收到UPAC 报文后,利用目的静态节点的地理位置,选择邻居节点列表中离目的静态节点最近的邻居 节点作为下一跳进行报文的转发。如果车辆节点在时间twait内仍然无法找到正确的下一跳, 则直接丢弃该报文。经过车辆节点的多次中转,目的静态节点接收到相邻静态节点的UPAC 报文。

各个静态节点维护一张相邻静态节点列表,列表保存与该路口连接的各个路段另一端 的静态节点的IP地址、地理位置以及该路段的路段传输时延tdelay、路段连通状态tstate。一个表 项对应一个路段。图2b是各个静态节点都维护的相邻静态节点列表的格式示意图,其中仅 列举出了三个静态节点。

当静态节点接收到UPAC报文后,通过当前时间减去保存在UPAC报文中的报文发送时 间获得UPAC报文从源静态节点传递到目的静态节点的时延,并等价为数据从接收UPAC报 文的静态节点经过对应路段传输到发送UPAC报文的静态节点的时延,将时延填充或者覆盖 在相邻静态节点列表中对应表项的路段传输时延tdelay,完成对路段传输时延tdelay的初始化或 者更新。该时延是宏观贪婪转发算法选择下一个转发路段时用于比较的信息,反映对应该 时延的路段中车辆的密集程度,路段车辆密集度越高,数据在该路段上进行传输的时延越 短,所以该时延数据的意义不在于是否精确,因此等价是合理的。

静态节点的相邻静态节点列表中的每个表项的路段连通状态tstate是一个由10个元素构 成的环形链表,其保存方式的示意图如图2c所示。每当静态节点接收到一个与之连接的路 段另一端静态节点发来的UPAC报文时,则将该UPAC报文的到达时间填充在对应表项路段 连通状态tstate的环形链表元素里,当填充完10个元素后,则将接着接收到的UPAC报文的到 达时间从链表头处开始,依次进行覆盖,实现更新。当宏观贪婪转发算法选择下一个转发 路段时,则将每个表项路段连通状态tstate的环形链表中的最近时间减去最远时间,得到时间 差值。某个表项所得的时间差值较小,说明该表项对应路段的连通状态较好。因为同样是 接收到10个UPAC报文,车辆密集度较低、连通性差的路段中,UPAC报文容易丢失,从而 使时间差值较长,反之,车辆密集度较高、连通性强的路段中,UPAC报文不易丢失,静态 节点能在更短的时间内接收到同样数量的UPAC报文。

步骤(1)中的包括静态节点和车辆节点的所有节点不断收集HELLO报文并进行处理, 获得失效时间点TD的具体过程为,各个节点周期性地进行HELLO报文的一跳广播,报文包 括节点自身的IP地址、地理位置、移动方向、移动速度,周期为T2。格式如图2d所示。如 果是静态节点,则该静态节点的移动方向和移动速度均为0。

各个节点维护一张邻居节点列表,邻居节点列表保存邻居节点的IP地址、地理位置、 移动方向、移动速度以及失效时间点TD。一个表项对应一个邻居节点。图2e是各个节点都 维护的邻居节点列表的格式示意图,其中仅列举出三个邻居节点。

当节点接收到HELLO报文时,首先判断是否存在与广播该HELLO报文的节点对应的 表项,如果不存在,则创建对应该节点的表项,将HELLO报文中的节点IP地址、地理位置 相应地填充到该表项对应的邻居节点IP地址、地理位置,并根据HELLO报文中的地理位置、 移动方向、移动速度计算失效时间点TD,完成初始化。如果存在,则将HELLO报文中的节 点IP地址、地理位置相应地覆盖该表项对应的邻居节点IP地址、地理位置,并根据HELLO 报文中的地理位置、移动方向、移动速度计算失效时间点TD,完成更新。其中,计算失效 时间点TD的步骤为,首先根据HELLO报文中的地理位置、移动方向、移动速度计算该邻居 节点停留在本节点通信范围内的停留时间TL;其次将TL与当前时间TN相加得到该邻居节点 的失效时间点TD(也就是该邻居节点离开本节点通信范围内的时间点)。例如,当前时间 TN为21:30:30,停留时间TL为10s,则失效时间点为21:30:40。其中所述的停留时间TL的计 算公式如下:

TL=(YVV-XVH)±(VH2+VV2)Rmax2-(XVV+VHY)2VH2+VV2

其中X=xu-xd,VH=vucosθu-vdcosθd,Y=yu-yd,VV=vusinθu-vdsinθd,TL为邻 居节点的停留时间,也称链路预测生存时间,(xu,yu),(xd,yd)分别为两个节点当前的位置, (vuu),(vdd)分别为两个节点的移动速度和移动方向,Rmax为节点间的最大有效通信距 离。

步骤(2)中的微观贪婪转发算法的具体步骤如下,流程图如图3所示。

(2.1)当源节点打算发送数据给目的静态节点时,则通过网格定位服务GLS获得目的 静态节点的地理位置以及源节点所在路段中更靠近目的静态节点的静态节点的地理位置。

(2.2)第一步,源节点将发送给目的静态节点的数据封装成普通的IP数据包。第二步, 将整个IP数据包进行第二次封装,第二次封装后的IP数据包中,包头部分的目的节点IP地址 是通过GLS获得的源节点所在路段中更靠近目的静态节点的静态节点的IP地址,内容部分 是第二次封装后的目的节点的地理位置和第一步中的整个IP数据包。第三步,标注该数据 包为IP数据包。第四步,利用第二次封装后的目的节点的地理位置,选择邻居节点列表中 离该目的节点最近的邻居节点作为下一跳进行IP数据包的转发。

(2.3)处于路段中的车辆节点接收到IP数据包时,首先检查邻居节点列表中是否存在 静态节点并且该静态节点是接收到的IP数据包的目的节点,如果是,则直接将IP数据包传 递给该静态节点。如果邻居节点列表中不存在静态节点或者静态节点不是目的节点,车辆 节点则利用目的节点的地理位置,选择邻居节点列表中离目的节点最近的邻居节点作为下 一跳进行IP数据包的转发。如果车辆节点在时间twait内仍然无法找到正确的下一跳,则直接 丢弃该IP数据包。

(2.4)当静态节点接收到IP数据包时,首先对其进行第一次解封装,从而获得真正的 目的节点的IP地址,如果IP地址就是该静态节点的IP地址,该静态节点则直接接收这个IP 数据包。如果IP地址不是该静态节点的IP地址,则该静态节点首先利用宏观贪婪转发算法 选择下一个转发路段,然后将整个IP数据包进行重新封装,重新封装后的IP数据包中,包 头部分的目的节点IP地址是利用宏观贪婪转发算法所选择的下一个转发路段另一端的静态 节点的IP地址,内容部分是重新封装后的目的节点的地理位置和进行第一次解封装时的整 个IP数据包。最后利用重新封装后的目的节点的地理位置,选择邻居节点列表中离该目的 节点最近的邻居节点作为下一跳进行IP数据包的转发。

其中,利用目的节点的地理位置,选择邻居节点列表中离目的节点最近的邻居节点作 为下一跳进行数据转发的具体过程为,节点首先对邻居节点列表以失效时间点TD作为依据 进行排序,然后依序对邻居节点列表中各个表项进行计算,就是将当前时间减去各个表项 的失效时间点TD,当某个表项的计算结果是负值,说明该表项已经失效,对应的邻居节点 已经离开了本节点的最大有效通信距离Rmax,当某个表项的计算结果是正值,说明该表项 对应的邻居节点仍然处于本节点的通信范围内。因为是以失效时间点TD作为排序依据,所 以再往下的所有表项对应的邻居节点也处于本节点的通信范围内。最后,节点在剩下的邻 居节点中选择离目标节点最近的邻居节点作为下一跳,进行数据的转发。

图4是车辆节点选择下一跳节点的一个具体例子。通过对HELLO报文的收集和处理, 车辆节点A的邻居节点列表中具有6个表项。当接收到一个目的节点为静态节点B的IP数据 包时,车辆节点A首先检查邻居节点列表中是否存在静态节点并且该静态节点是静态节点 B,由于不存在,所以车辆节点首先对邻居节点列表以失效时间点TD作为依据进行排序, 然后依序对邻居节点列表中的6个表项进行计算,就是将当前时间减去各个表项的失效时间 点TD。其中,M1虽然是离目的节点最近的邻居节点,但是由于计算结果为负值(说明M1 已经离开了本节点的最大有效通信距离Rmax),所以被排除在选择范围外。M2到M5这5个 邻居节点的计算结果为正值,仍然处于车辆节点A的通信范围内。这5个邻居节点中,M2 是离静态节点B最近的邻居节点,所以车辆节点A选择邻居节点M2作为数据转发的下一跳 节点。

步骤(2.4)中的宏观贪婪转发算法的具体步骤如下。流程图如图5所示。

(2.4.1)静态节点首先根据相邻静态节点列表中每一个表项的路段连通状态tstate计算每 一个表项对应的时间差值。所述的时间差值是通过将表项中路段连通状态tstate的环形链表保 存的最近时间减去最远时间获得的。当某一个表项对应的这个时间差值超过阈值Tthread时, 表示该表项对应的路段处于连通性差的状态,则将对应的路段排除在选择下一个转发路段 的选择范围外。如果所有表项的对应路段都处于连通性差的状态,则选择其中连通性最强 的路段作为下一个转发路段进行IP数据包的转发。如果静态节点的邻居节点列表中没有对 应该路段的车辆节点,则选择次优路段,依此类推。

(2.4.2)排除了连通性差的路段后,静态节点首先根据路段传输时延tdelay计算邻居静态 节点列表中剩下的各个表项的数据传输距离Dtrans,然后选择Dtrans最小的对应路段作为下一个 转发路段进行IP数据包的转发;如果静态节点的邻居节点列表中没有对应该路段的车辆节 点,则选择次优路段,依此类推。

其中,根据路段传输时延tdelay计算数据传输距离Dtrans的具体内容为,设数据传输速度为 vtrans,将vtrans与相邻静态节点列表某一个表项的路段传输时延tdelay相乘,获得对应路段的时延 距离Ddelay;所述的时延距离Ddelay表示数据从该静态节点传输到对应路段另一端静态节点所 需的虚拟距离,而非真正的地理距离;车辆密集度较高、连通性强的路段中,传输数据所 需的时延短,时延距离Ddelay小而地理距离不一定小,反之,车辆密集度较低、连通性差的 路段中,传输数据所需的时延长,时延距离Ddelay大而地理距离不一定大;所述的数据传输 速度vtrans的计算公式如下:

vtrans=Rttrans

其中R表示车辆节点与静态节点的平均有效通信距离,而ttrans表示节点处理数据、发送 数据、数据一跳传播、下一跳节点接收到数据所需的时间。

数据从当前静态节点传输到与之连接的一个路段另一端的静态节点的时延距离Ddelay与 该路段另一端静态节点到目的静态节点的几何距离L的和构成了选择该路段作为下一个转 发路段进行数据转发时,当前静态节点与目的静态节点的传输距离Dtrans,具体计算公式如 下:

Dtrans=Ddelay+L

图6是静态节点选择下一个转发路段的一个具体例子。静态节点A的相邻静态节点列 表中具有3个表项。首先,静态节点A根据列表中每一个表项的路段连通状态tstate计算每 一个表项对应的时间差值,分别为tstate_AB、tstate_AE、tstate_AF。因为tstate_AF>Tthread,说明 路段AF处于连通性差的状态,将其排除在选择下一个转发路段的选择范围外。接着,静 态节点A根据路段传输时延tdelay计算相邻静态节点列表中剩下2个表项的数据传输距离 Dtrans,因为Dtrans_AE<Dtrans_AB,所以选择路段AE。最后,由于此时路段AE中并没有 车辆节点处于静态节点A的通信范围内,所以静态节点A选择了次优路段AB进行数据 转发。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号