一种车联网中的数据分发方法_2

文档序号:9420269阅读:来源:国知局
信时,接收方的消息 管理过程具体如下:
[0022] 1)当接收方接到某一消息时,首先判断自身是否已有该消息,如果已有该消息,贝U 拒绝接收;否则执行步骤2);
[0023] 2)接收方判断自身的缓冲器O是否处于拥塞状态,如果不是处于拥塞状态,则将 消息的属性改为0,并存储在缓冲器O中;否则执行步骤3);
[0024] 3)比较该消息的副本数量和已存储在缓冲器O中的消息的副本数量,将得出的最 大值与消息副本数量上限值进行对比,若得出的最大值大于消息副本数量上限值,则放弃 最大值所对应的消息;如果得出的最大值并不超过消息副本数量上限值,则放弃在缓冲器 O中存储时间最长的消息;如果在上述过程中被放弃的不是所要接收的消息,则将该消息 属性改为0,然后存储在缓冲器O中。
[00巧]需要说明的是,每个节点均W表的形式记录关于缓冲器中各个消息的属性,包括 消息的源节点ID、源节点行驶方向、消息所属的缓冲器、消息的ID、该节点对消息在网络中 副本数量的估计、消息的生存周期、包大小W及消息在缓冲器中已经存储的时间。
[00%] 本发明的有益效果在于:
[0027] 1、将节点间的通信分为相反方向行驶节点间的通信和相同方向行驶节点间的通 信,考虑到节点同向行驶时由于车辆速度差异不大、网络较稳定W及对时延要求也不高而 使用握手机制进行通信,确保对方节点成功地接收到信息,而异向行驶的节点之间采用传 染病数据分发,W克服网络不连续的问题,一定程度上防止广播风暴,时延也不会增加,能 快速传输消息,无多余花费;
[0028] 2、将节点按照方向有序竞争时隙,减少了接入冲突和多数发生在相反行驶的车辆 之间的合并冲突的概率,而且有效利用空闲时隙,时间复杂度低。
【附图说明】
[0029] 图1为本发明的总体实施流程图;
[0030] 图2为节点间通信的流程图;
[0031] 图3为实施例中不同节点的缓冲器的交互示意图;
[0032] 图4为实施例中的帖结构示意图;
[0033] 图5为计算消息副本时节点分布示意图。
【具体实施方式】
[0034] W下将结合附图对本发明作进一步的描述,需要说明的是,本实施例W本技术方 案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实 施例。
[0035] 如图1所示,一种车联网中的数据分发方法具体流程如下:
[0036] 每个节点有两个缓冲器化Uffer)S与0,其中S中存放自身一路检测到的信息,只 用来发送给反方向行驶的节点,O中存放的是源节点为反方向节点传送的消息,可供自身利 用或传送给同方向没有该消息的节点,如图3所示。反方向节点通信时即是传送S中的消 息时,使用基于传染病模型的数据分发协议。同向节点通信即是传送O中的消息时,使用握 手机制。
[0037]将帖分为n个等同时隙,左边时隙为在方向一上行驶的节点所用,节点从左向右 依次获得有效时隙,右边时隙为在方向二上行驶的节点所用,节点从右向左依次获得有效 时隙,如图4所示,A、B节点为方向一行驶的节点,分别占用时隙1、3,C、D节点为方向二行 驶的节点,分别占用时隙n-2和n-1。当节点new要接入网络时,先侦听一帖的时间,遍历n 个时隙数,判断每个时隙是否空闲并将空闲时隙记录在数组W中,其时间复杂度为0(n)。若 new为方向一行驶的节点,则将空闲时隙按照其在n个等同时隙中的位置,从左往右依次记 录在数组W中,具体记录顺序为2、4、…;侦听完毕后,节点在数组W前半部分中随机选取一 个空闲时隙竞争,即竞争时隙
,其中n。为所记录的空闲时隙个数。若有邻 节点成功接收到分组,则该邻节点将时隙2标记为忙,new节点侦听一帖后,发现有节点将 时隙2标记为忙,则认为竞争成功,若竞争失败,则进行下一轮竞争。若new为方向二上行驶 的节点,侦听完毕后,则将空闲时隙按照其在n个等同时隙中的位置,从右往左依次记录在 数组W中,具体记录顺序为n,n-3,…。类似地,侦听完毕后,节点在数组W前半部分中随机 选取空闲时隙竞争,即竞争时隙'
:,其中n。为所记录的空闲时隙个数。若有 邻节点成功接收到分组,则该邻节点将时隙2标记为忙,new节点侦听一帖后,发现有节点 将时隙2标记为忙,则认为竞争成功,若竞争失败,则进行下一轮竞争。最坏情况为有n个空 闲时隙,则时间复杂度为〇(n),所W本发明中所提出的时隙算法的时间复杂度为0(n)。当 两个行驶方向中的其中一个方向上需要竞争时隙的节点大于另一个方向,则该方向上的节 点可W竞争其对应的初始数组上的后半部分时隙;
[0038]各节点得到时隙后,按照两个缓冲器里内容多少的比例来安排同向传播和反向传 播的时隙比。
[0039]考虑到信息在buffer里面停留的时间越短,说明该消息的发生地离节点所在地 越近,就越需要尽快地传送它,因此本发明采用后进先出的结构传送数据,当有特别紧急的 关于生命安全的消息进找时,节点应该暂时停止接收其它广播消息,立即广播它。有实验表 明,bufferconstraints会影响整个网络的性能,所W当buffer满了W后,应该选择适当 的消息放弃掉;在本发明中,考虑W下几个因素:1、该消息在buffer中已存储的时间(存 储得更久的信息有用性小于存储得较短的信息);2、该消息在整个网络中已有的副本数量 (副本数量更多的信息比副本少的信息成功传输的机会要大);3、特别紧急的关于生命安 全的消息会一直保留,直到消息的生存周期终止。
[0040]每个节点有个表,记录着关于buffer中各个消息的属性,包括消息源节点ID(SID)、源节点行驶方向(dir)、消息所属的是哪一个buffer(S或0)、消息的ID(ID)、节 点i对信息m在网络中副本数量的估计(N;"):、消息的生存周期(ITL)、包大小(SIZE)、消 息在buffer中已经存储的时间(TmgiMu。),其中,消息的生存周期(TTL)表示消息产生时刻 直到它不再有用的时候,过了运个生存周期,认为该消息不再有用,消息会被丢掉。 阳041] 如图2所示,当节点A向节点B广播消息m时,节点B首先判断消息m的源节点的 行驶方向,如果与自身行驶方向相同,则采用握手机制进行消息传送。如果与自身行驶方向 相反,则采用传染病模型分发数据,在运种情况下,节点B先判断自身是否已经有该消息, 如果有,则拒绝接收,如果还没有该消息,则判断自身的缓冲器O是否处于拥塞状态。在本 实施例中,设定缓冲器O中存储量达到85%为拥塞状态。如果检测到缓冲器O不处于拥塞 状态,则直接接收该消息,并将其存储在缓冲器O中,并将其"S或0"的属性修改为0。如果 检测到缓冲器O处于拥塞状态,则按照W下方法进行:
[0042]给消息的副本数量设定一个上限值Nth,比较m与节点B中已存储的消息叫、m2、...的副本数量斯2、辦1、、...,前弃其中副本数量达到上限值的消息,若所有 消息的副本数量都没有到达上限值,则比较消息在缓冲器O中存储的时间将值最大 的那个放弃。如果最后被放弃的消息不是消息m,则将m存储于缓冲器O中,并将其属性"S 或0"改变为0。
[0043]节点估计消息在网络中的副本数量的方法如下:包的广播过程可W看作是树结 构,如图5所示: W44] ①当A检测到消息m时,N'; = 1; W45] ②A将消息m成功广播给节点B,C,D,此时消息m副本数量N; = +3 (转发成 功的节点个数)=4,节点B、C、D中消息m副本数量= 4,:同时记录其 转发的次数化rward(A) = 3; 阳046] ③B将消息m成功转发给它的一跳内节点E、F、G,此时消息m副本数量N
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1