一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种社会属性感知的车载自组网机会路由方法与流程

2021-10-19 22:23:00 来源:中国专利 TAG:组织网络 机会 组网 路由 感知


1.本发明涉及车载自组织网络中的路由协议,属于机会网络与车载自组织网络的融合技术,具体涉及一种社会属性感知的车载自组网机会路由方法。


背景技术:

2.车辆之间的联网通信即车联网(internet of vehicle,iov),其源于对物联网(internetof things,iot)这一概念的延伸,车联网旨在实现车

车(vehicle

to

vehicle,v2v)、车

人(vehicle

to

people,v2p)、车

路边单元(vehicle

to

infrastructure,v2i)及车

互联网(vehicle

to

network,v2n)之间的信息交互,实现对交通的智能化管理,达到“车





云”的感知协同化发展,并且构建出高度协同的车联网生态体系。车载自组织网络(vehivular ad

hoc network,vanet)作为无线自组织网络(mobile ad

hoc network,manet) 的一个重要应用场景,是一种实现车辆节点之间联网通信的解决方案。车载自组织网络中的车辆节点移动频繁,移动速度快,移动范围广,以及网络拓扑结构多变的特点使得传统的无线自组织网络中的路由协议并不能很好地用于解决车辆节点之间的数据传输问题。但是,机会网络的特性恰好满足车联网这一应用场景。
3.机会网络(opportunistic network)降低了对节点之间通信链路的要求,允许通信链路间歇式连通,主要是利用大量节点的频繁移动所带来的相遇机会,实现数据的传输。机会网络的相关研究最早起源于早期的移动自组织网络(mobile ad

hoc networks,manet)和延迟 /中断容忍网络(delay/disruption tolerant networks,dtn)。移动自组织网络是一种特殊的移动无线网络,manet不需要网络基础设施的支持,网络中的节点既要充当主机,又具有路由器的相关功能,节点相互之间作为对等的实体进行无线连接和数据通信;dtn主要采用“存储

携带

转发”(store

carry

forward)的策略完成网络中的数据传输任务。与manet 和dtn相比,机会网络的涵盖范围更广,更加关注于日常生活中携带移动智能设备的普通用户和配备智能传感器的交通工具进行较短距离数据传输的场景。
4.因此,将传统车载自组织网络的路由协议与机会路由的思想相结合,设计一种适用于车载自组织网络的机会路由传输协议工作方法对提高车辆节点之间的通信能力和通信质量具有重要的现实意义。


技术实现要素:

5.为解决上述背景技术中车载自组织网络不能很好地解决车辆节点之间的数据传输问题,以及将机会网络与传统车载自组织网络的路由协议相结合以提高车辆节点之间的通信能力和通信质量,本发明提供一种社会属性感知的车载自组网机会路由方法,该方法提出并运用了车辆节点社会属性生成方法、车辆节点的状态转换方法、车辆节点之间的社区形成方法、车辆节点之间的社区维护方法、社区相关度和社区离散度方法和数据转发方法降低了随资源的占用,提高了车辆节点之间的通信质量与能力。
6.为实现上述目的,本发明提供一种社会属性感知的车载自组网机会路由方法,其
技术方案为:
7.一种社会属性感知的车载自组网机会路由方法,包括以下步骤,
8.s1、社区初始化阶段:车辆节点周期性地记录自身的历史目的地信息,生成车辆节点的社会属性集合,具有相同社会属性的车辆节点之间形成社区;
9.s2、社区维护阶段:社区内的所有车辆节点不断更新社区状态,共同维护社区状态更新,使社区逐渐趋于稳定;
10.s3、数据转发阶段:将自身携带数据包传递给目的节点,形成去中心化的、自组织的车载机会网络;
11.上述的车辆节点利用gps、车载传感器、智能移动设备或电子地图获得车辆节点的行驶状态、所在位置、停留时间;所述车辆节点配备有车载系统、存储设备及短程通信设备以具备计算能力、存储能力以及短程通信能力。
12.进一步地,所述社区初始化阶段、社区维护阶段和数据转发阶段通过车辆节点社会属性生成方法、车辆节点的状态转换方法、车辆节点之间的社区形成方法、车辆节点之间的社区维护方法、社区相关度和社区离散度方法和数据转发方法中的一种或多种方法实现各个阶段的功能。
13.进一步的,所述车辆节点社会属性生成方法包括以下步骤:
14.a1、车辆节点v利用gps设备获取车辆节点v的位置坐标信息,为每一个目的地生成一个位置坐标p(x,y);
15.a2、周期性的记录下车辆节点v在一段时间内访问过的n个目的位置p和驻留时长t,形成车辆节点v的历史目的地记录集合pt
v

16.a3、通过k

means聚类算法得到经过坐标聚合和时间聚合后的新集合pt

v
17.a4、根据车辆节点的访问习惯,剔除部分访问时间较短的区域,得到k个感兴趣区域作为车辆节点v的社会属性标记q,生成车辆节点v的社会属性集合表示为:
18.atter
v
={q1,q2,q3…
,q
k
}。
19.进一步地,所述根据车辆节点的访问习惯,剔除部分访问时间较短的区域具体为:根据车辆节点的访问习惯计算得到访问兴趣区域的时长阈值t0,利用t0剔除掉那些访问总时长较短的区域;其中,兴趣区域的时长阈值t0为:
[0020][0021]
其中,表示车辆节点v的平均驻留时长;σ表示车辆节点v的驻留时长标准差;μ为可调系数,表示不同车辆节点的行为活动存的差异。
[0022]
进一步地,所述车辆节点的状态包括自由节点状态free_node、待加入社区状态 wait_node和已加入社区状态;所述车辆节点的状态与车辆节点当前所处的位置有关,具体车辆节点的状态转换方法包括以下情况:
[0023]
b1、车辆节点处于自身不感兴趣的区域,则车辆节点的状态位为free_node;在该状态下,车辆节点不寻求加入社区,也不与其他节点产生关于社区的交互行为;
[0024]
b2、车辆节点处于自身感兴趣的区域,且尚未加入该区域的社区,则车辆节点的状态位为wait_node;在该状态下,车辆节点周期性广播join消息报文,寻求加入社区,或者接收来自其他节点的join消息报文,形成一个新的社区;
[0025]
b3、车辆节点处于自身感兴趣的区域,且已加入了社区,则车辆节点周期性广播combine 消息报文;在该状态下,若发现该区域存在的其他社区,则两个社区进行合并;车辆节点也接收来自其他待加入社区状态的车辆节点的join消息报文,将其纳入自己的社区。
[0026]
进一步地,所述车辆节点之间的社区形成方法包括以下步骤:
[0027]
c1、根据尚未加入社区的车辆节点v在一个检测周期内的历史行程,获得关于车辆节点 v的k个兴趣区域,即获得车辆节点v的k个社会属性信息;
[0028]
c2、车辆节点v处于k个兴趣区域其中一个兴趣区域s,车辆节点v处于wait_node状态,并向周围广播join消息报文,寻求加入社区;
[0029]
c3、或通过以下方法形成新社区:车辆节点v在可通信范围内收到了尚未加入社区的车辆节点u的join消息报文,且车辆节点u也处于wait_node状态,则车辆节点u和车辆节点 v将形成一个新的社区c
s

[0030]
c4、在步骤c3中形成新的社区c
s
后,车辆节点u改变自身状态为united_node状态,并向自身的社区属性列表添加社区c
s
的状态信息;车辆节点u返回create消息报文,通知车辆节点v加入社区;
[0031]
c5、在c2步骤或c4步骤中,车辆节点v收到create消息报文后,向自身的社区列表中加入新产生的社区状态信息,车辆节点v加入了社区。
[0032]
进一步地,所述车辆节点之间的社区维护方法包括以下维护情况的维护方法:wait_node 状态的车辆节点加入社区的维护方法、社区的合并的维护方法、社区状态信息更新的维护方法和车辆节点离开社区的维护方法。
[0033]
进一步地,所述wait_node状态的车辆节点加入社区的维护方法为:车辆节点v处于自身的兴趣区域,周期性向周围广播join消息报文等待加入社区,在车辆节点v可通信范围内的车辆节点u处于united_node,在接收到join消息报文后,会返回permit消息报文,允许车辆节点v加入社区c
s
,并且更新自身的社区状态信息;所述社区的合并的维护方法为:车辆节点v处于已加入社区的一个区域s且处于united_node状态,周期性向周围广播 combine消息报文,与区域s内其他处于united_node状态的车辆节点进行社区合并;所述社区状态信息更新的维护方法为:所述车辆节点加入社区和社区的合并使社区状态发生改变,处于united_node状态的车辆节点会广播update消息报文,表明自身节点状态和社区状态;收到update消息报文的车辆节点会对两个社区状态进行比较分析,进而更新和维护社区状态信息;车辆节点离开社区的维护方法为:车辆节点v行为习惯发生变化,在新的检测周期内,兴趣区域产生了改变,则发送一条update消息报文通知社区内其他节点更新社区信息,选择合适的中继节点转发消息报文,然后删除该社区信息,离开社区。
[0034]
进一步地,所述社区相关度和社区离散度方法包括反映车辆节点v访问社区c的频繁程度和稳定程度的社区相关度和反映车辆节点v与目标社区c的距离相关性的社区离散度;所述社区相关度越高的车辆节点与社区c的粘性越大,该车辆节点作为社区c内的核心节点;所述离散程度越低,车辆节点v接近目标社区c的可能性越大,车辆节点v与目标社区c内的车辆节点的社会属性越相近,越容易相遇。
[0035]
进一步地,所述数据转发方法包括车辆节点在目的社区内的数据转发方法和车辆节点在目的社区外的数据转发方法;所述车辆节点在目的社区内的数据转发方法为:检测
可通信范围内的车辆节点集合中是否有也属于目的节点所属社区的车辆节点,若存在多个同属于目的社区的节点,选择社区相关度最大的车辆节点进行数据转发;否则,利用数据包保留最大时长,若在达到最大时长之前,车辆节点还未到达目的社区,或者未遇到社区相关度更大的节点,则选择距离目的社区的社区离散度最小的车辆节点进行转发;所述车辆节点在目的社区外的数据转发方法为:选择距离目的节点社区的社区离散度较小的车辆节点作为中继节点进行数据转发。
[0036]
与现有技术相比,本发明的优点及有益效果为:本发明将机会网络与传统车载自组织网络的路由协议相结合,并创造性提出了车辆节点社会属性生成方法、车辆节点的状态转换方法、车辆节点之间的社区形成方法、车辆节点之间的社区维护方法、社区相关度和社区离散度方法和数据转发方法,通过上述方法,降低了对资源的占用,如减少存储空间、计算量和降低了网络负载,提高了车辆节点之间的通信质量与能力。上述方法实现的车载自组网机会路由工作方法主要利用车辆节点的行驶状态信息和地理位置信息形成车辆节点的社会属性信息,采用本地的数据分析方法,属于离线操作,可以有效地减少车联网中的数据交互量,降低网络负载。社区与地理位置具有很强的相关性,可以满足现实中一些目的性和区域性很强的数据分发需求。
附图说明
[0037]
图1为本发明车载自组网机会路由工作流程示意图;
[0038]
图2是高斯分布置信概率分布图;
[0039]
图3是车辆节点状态迁移图;
[0040]
图4是车辆节点生成社会属性过程;
[0041]
图5是两个车辆节点形成社区的流程;
[0042]
图6是车辆节点加入社区流程;
[0043]
图7是社区合并流程;
[0044]
图8是社区状态更新流程;
[0045]
图9是车辆节点离开社区流程;
[0046]
图10是数据转发流程。
具体实施方式
[0047]
为了使本发明的技术方案及优点更加清楚明白,下面结合附图1至10对本发明作进一步详细说明。
[0048]
一种社会属性感知的车载自组网机会路由工作方法,如图1所示,该方法包括以下步骤:
[0049]
s1、社区初始化阶段:车辆节点周期性地记录下自身的历史目的地信息,包括目的地坐标、访问时长和访问间隔等。根据社会属性生成机制产生车辆节点的社会属性集合。具有相似社会属性的车辆节点之间可以形成社区。
[0050]
s2、社区维护阶段:针对车辆节点加入和脱离社区,以及社区之间的合并等情况,分别采用相应的处理机制更新社区状态信息,以维护社区的稳定。
[0051]
s3、数据转发阶段:结合机会传输的思想,车辆节点一方面自身携带数据包通过

存储
‑ꢀ
携带

转发”的方式尽可能将数据包传递给目的节点,另一方面根据社区相关度和社区离散度从邻居节点中选择合适的车辆节点作为中继节点转发数据包,通过两条路径将数据包传递给目的节点。
[0052]
上述车载自组网机会路由工作方法的工作前提为所有车辆节点都具有以下功能,可以获得以下信息:
[0053]
(1)车辆节点可以利用gps、车载传感器、智能移动设备或电子地图等相关工具获得车辆自身的行驶状态、所在位置、停留时间等。车辆节点都配备有车载系统,拥有一定的计算能力;具备存储设备,具有一定的存储能力;具备符合车联网条件的短程通信设备,具有短程通信能力。
[0054]
(2)车辆节点在兴趣区域时,可以采用周期性广播消息报文的方式来交换车辆节点的状态信息,其中包括车辆节点的地理位置信息、兴趣区域和兴趣程度信息、社区状态信息等。
[0055]
(3)车辆节点在其可通信范围内,可以通过周期性广播消息报文的方式来管理社区拓扑结构。
[0056]
在车载自组网机会路由具备上述工作前提下,所述社区初始化阶段、社区维护阶段和数据转发阶段通过车辆节点社会属性生成方法、车辆节点的区域相关性、车辆节点的状态转换方法、车辆节点之间的社区形成方法、车辆节点之间的社区维护方法、社区相关度和社区离散度方法和数据转发方法中的一种或多种方法实现各个阶段的功能。
[0057]
车辆节点社会属性生成方法为:
[0058]
车辆节点v可以利用gps设备获取车辆节点v的位置坐标信息,为每一个目的地生成一个位置坐标p(x,y)。其中x和y表示车辆节点v的目的地在地图上的坐标,现实中可以参考经纬度数据获得,在实验中因为采用二维的电子地图,所有用(x,y)即可表示。
[0059]
根据用户行为习惯和车辆节点的活跃程度定义一个检测周期δt,周期性的记录下车辆节点v在一段时间内访问过的n个目的位置p和驻留时长t,形成车辆节点v的历史目的地记录集合 pt
v

[0060]
pt
v
={(p1,t1),(p2,t2),(p3,t3),

,(p
n
,t
n
)}#(1)
[0061]
车辆节点v每次访问某一目的兴趣区域时所产生的位置坐标p(x,y)的值可能不同,但是位置相近。这在现实中表现为车辆节点停在目的地的附近一些地方。于是需要对历史访问目的地的集合进行聚类分析,找出车辆节点v所感兴趣的k个区域。车辆节点v的历史目的地坐标的离散程度可以在一定程度上反映出车辆节点的活跃程度,所以车辆节点v的历史目的地坐标的标准差决定了参数k的取值。活跃度越高的车辆节点,k的值越大,所具有的社会属性越多。
[0062]
历史目的地位置坐标的平均值为:
[0063][0064]
[0065]
对位置坐标进行归一化:
[0066][0067]
其中,p
max
(x)和p
max
(y)分别表示最大的p(x)和p(y)的值,p
min
(x)和p
min
(y)分别表示最小的p(x)和p(y)值。归一化之后的坐标的平均值为:
[0068][0069][0070]
通过归一化之后坐标的标准差得到参数k的值:
[0071][0072]
其中k∈z,表示车辆节点v所感兴趣的k个兴趣区域。由此得到了聚类所需要的类的数量参数k的值。
[0073]
从集合pt
v
中提取车车辆节点v在一个检测周期δt内的目的地集合:
[0074]
p
v
={p1,p2,p3,

,p
n
}#(8)
[0075]
k

means聚类算法是一种被广泛使用的简洁和高效的聚类算法,将集合p
v
通过聚类分析后得到车辆节点v所感兴趣的k个区域的中心位置:
[0076][0077]
其中参数k由式(7)可得出,参数k是k

means聚类算法的重要输入参数,它是车辆节点v 兴趣区域的数量,决定了k

means算法聚类的数量。
[0078]
由于k

means产生的区域中心位置是一个随机产生的位置,可能并不是集合p
v
中的一个元素,所以需要找到一个真实访问过的物理位置对应其兴趣区域,也就是在集合p
v
中找到最接近集合中每个元素的位置坐标。定义两个位置之间的欧式距离l
p1,p2
为:
[0079][0080]
计算每个聚类区域内,每个位置p到聚类中心p
c
的距离,找到距离每个聚类中心p
c
距离最短的位置坐标p
l
,然后修改与位置p
l
的距离效于l
th
的所有其他位置的坐标p为坐标p
l
,其中l
th
为可调参数,根据车辆节点所处区域的繁华程度,范围大小可调。因此,除了一些具有明显聚集性特征的位置坐标经过聚合后形成了统一的坐标标识,还有一些离散程度比较大的坐标,但可能也是车辆节点感兴趣的位置独立存在。所以最终得到经过坐标聚合之后新的历史目的地记录集合pt'
v

[0081]
pt

v
={(p1,t1),(p1,t2),(p2,t3),

,(p
n
,t
n
)|k<n<n}#(11)
[0082]
集合pt'
v
中包含了用户在一个检测周期内访问过的目的区域和时长信息,然后将车辆节点v在每个区域内的驻留时长分别求和后,得到车辆节点v在一个检测周期内对各个
区域的总访问时长,得到新的兴趣区域集合:
[0083]
pt

v
={(p1,t
′1),(p2,t
′2),(p3,t
′3),

,(p
n
,t

n
)|k<n<n}#(12)
[0084]
但是,pt”v
中包含的区域可能很多,不能选择所有区域都作为车辆节点的社会属性,因此根据车辆节点的访问习惯,剔除掉一些访问时间较短的区域。
[0085]
利用高斯分布模型对历史目的地驻留时长进行建模,先计算车辆节点v的平均驻留时长:
[0086][0087]
然后再计算车辆节点v的驻留时长标准差:
[0088][0089]
高斯分布的置信区间范围由式(14)所得的标准差σ来决定,并以该区间来判断选择车辆节点v所感兴趣的区域。但是由于不同车辆节点的行为活动存在非常大的差异,因此,引入一个可调系数μ,可得高斯分布的置信区间的驻留时长最小值,也就是阈值驻留时长t0为:
[0090][0091]
其中,可调系数μ的值可以根据车辆活跃程度进行微调,结合图2,高斯分布的置信区间范围如下所示:
[0092][0093]
车辆节点对于某一区域的访问情况可以归为以下4类:
[0094]
(1)访问频率低,持续时间短,可以判断为车辆节点v对这一区域可能并不感兴趣;
[0095]
(2)访问频率低,持续时间长,根据在一个检测周期内的总访问时长判断车辆节点v对这一区域是否感兴趣;
[0096]
(3)访问频率高,持续时间短,根据在一个检测周期内的总访问时长判断车辆节点v对这一区域是否感兴趣;
[0097]
(4)访问频率高,持续时间长,可以判断为车辆节点v对这一区域感兴趣。
[0098]
排除所有总访问时长小于t0的区域后,得到k个目的地区域作为车辆节点v的社会属性标记,活跃度越高的车辆节点,k的值越大,所具有的社会属性越多。将兴趣区域位置信息的字符串组合生成兴趣区域id表示为q,生成车辆节点v的社会属性集合表示为:
[0099]
attr
v
={q1,q2,q3,

,q
k
}#(17)
[0100]
上述的社会属性生成方法,通过车辆节点的历史行程信息生成车辆节点的社会属性,全部数据都在本地获取和处理,最终生成的信息也是匿名信息,不会泄露用户隐私,因此从最大程度上保护了用户隐私安全。通过控制检测周期等参数,可以减少所需要的历史
数据量,减少所需要的存储空间,减少计算量,降低节点负载。
[0101]
车辆节点的区域相关性为:
[0102]
车辆节点的社会属性由车辆节点经常访问的区域所决定,为了能够最大程度趋于真实地反映车辆节点v与区域q
j
的社会相关性,同时也表示车辆节点v在区域q
j
中的影响力,定义了以下几个车辆节点属性来描述车辆节点v在区域q
j
中的社区相关度wcd(v,q
j
)。
[0103]
为了方便描述车辆节点与区域的相关性问题,定义f(v,q
j
)是车辆节点v与区域q
j
的访问频率之间的相关性,即车辆节点v访问区域q
j
的次数占检测周期δt内,对所有区域访问次数的比例,如公式(18)所示:
[0104][0105]
其中,m(v,q
j
)表示车辆节点在δt内对区域q
j
的访问次数,表示车辆节点v在δt内访问所有区域的总次数。
[0106]
定义t(v,q
j
)表示车辆节点v和区域q
j
的密切度之间的相关性:
[0107][0108]
其中,t(v,q
j
)表示车辆节点v在δt内在区域q
j
的滞留总时长,表示车辆节点v在δt内在所有区域滞留的总时长。
[0109]
定义r(v,q
j
)表示车辆节点v访问区域q
j
的时间间隔的相关性,时间间隔是指车辆节点相邻两次访问区域q
j
的时间之间的间隔。在机会传输过程中,时间间隔是影响机会传输的一个非常重要的因素,通过它可以预测未来车辆节点v访问区域q
j
的可能性。
[0110][0111]
其中,r(v,q
j
)表示最近相邻两次车辆节点v与区域q
j
相遇之间的时间间隔,表示车辆节点v与其他区域最近相邻两次相遇之间的时间间隔的总时长。
[0112]
最后将这三个衡量车辆节点v与区域q
j
之间相关性的参数组合成为一个区域相关度:
[0113]
wcd(v,q
j
)=αf(v,q
j
) βt(v,q
j
) γr(v,q
j
)#(21)
[0114]
其中,α、β、和γ是根据车辆节点分析结果动态可调的三个系数,并且满足:
[0115]
α β γ=1#(22)
[0116]
车辆节点的区域相关度反映了车辆节点与物理区域的相关性程度,区域相关度越高的车辆节点,访问区域相对频繁和稳定,属于区域内的核心节点。重新生成车辆节点v的社会属性集合表示为:
[0117]
attr
v
={(q1,d1),(q2,d2),(q3,d3),

,(q
k
,d
k
)}#(23)
[0118]
d
j
=wcd(v,q
j
),j=1,2,3,

,k#(24)#
[0119]
车辆节点的状态转换方法为:
[0120]
车辆节点位置的改变会使车辆节点处于不同的工作状态,产生不同的数据交互行
为,结合车辆节点的位置与社区的关系,将车辆节点划分为3种状态(如表1所示):自由节点状态、待加入社区状态和已加入社区状态。各状态之间的状态迁移图如图3所示。车辆节点的状态与车辆节点当前所处的位置息息相关,根据车辆节点是否出去自身的兴趣区域,以及是否已经加入了社区,分为以下3种情况:
[0121]
(1)当车辆节点处于自身不感兴趣的区域时,车辆节点的状态位为:free_node。车辆节点不会寻求加入社区,也不会和其他节点产生关于社区的交互行为。
[0122]
(2)当车辆节点处于自身感兴趣的区域时,如果车辆节点尚未加入该区域的社区,则车辆节点的状态位为:wait_node。车辆节点周期性广播join消息报文,寻求加入社区,或者接收来自其他节点的join消息报文,形成一个新的社区。
[0123]
(3)当车辆节点处于自身感兴趣的区域时,如果车辆节点已经加入了社区,则车辆节点周期性广播combine消息报文,如果发现该区域存在的其他社区,则两个社区进行合并。同时车辆节点也接收来自其他待加入社区状态的车辆节点的join消息报文,将其纳入自己的社区。
[0124]
表1
[0125][0126]
车辆节点之间的社区形成方法为:
[0127]
新的社区由两个均处于wait_node状态的车辆节点共同形成。根据车辆节点v在一个检测周期内的历史行程,获得关于车辆节点v的k个兴趣区域,也就是车辆节点v所具有的k个社会属性信息,如式(23)所示。活跃度越高的车辆节点,其所具有的社会属性越多。
[0128]
当车辆节点v处于k个区域其中一个区域s时,由于车辆节点v尚未加入社区,所以车辆节点v处于wait_node状态,并向周围广播join消息报文,寻求加入社区。
[0129]
表2中列出了join消息报文中的一些关键字段:
[0130]
·
type:消息报文的类型;
[0131]
·
n
v
:车辆节点v所具有的社会属性数量;
[0132]
·
车辆节点v关于区域s的社会属性id;
[0133]
·
车辆节点v关于区域s的社区相关度。
[0134]
表2
[0135][0136]
若在车辆节点v可通信范围内的车辆节点u收到了join消息报文,并且车辆节点u也处于 wait_node状态,则车辆节点u和车辆节点v将形成一个新的社区c
s

[0137]
当车辆节点u收到join消息报文后,首先比较和生成新的社区的id信息
[0138][0139]
因为社区相关度越大的车辆节点与这一区域的联系更加紧密,所以新的位置信息向社区相关度更大的车辆节点偏移。同时有利于两个车辆节点再次访问区域s时进行区域判断和位置坐标聚合。
[0140]
新的社区c
s
产生后,车辆节点u改变自身状态为united_node状态,并向自身的社区属性列表添加社区c
s
的状态信息,包括:社区id,社区创建时间和社区容量。其中社区id由生成,社区创建时间由车辆节点u生成,社区容量为2。最终车辆节点u加入社区c
s

[0141]
然后车辆节点u返回create消息报文,通知车辆节点v加入社区。
[0142]
表3中列出了create消息报文中的一些关键字段:
[0143]
·
type:消息报文类型;
[0144]
·
社区c
s
的唯一标识符id;
[0145]
·
社区c
s
的生成时间;
[0146]
·
社区c
s
内容量,即包含的节点数量。
[0147]
表3
[0148][0149]
车辆节点v收到create消息报文后,向自身的社区列表中加入新产生的社区c
s
状态信息,则车辆节点v也加入了社区c
s
,如表4所示。
[0150]
表4
[0151][0152]
上述车辆节点之间的社区形成方法,与其他分簇或者划分社区的方法的不同之处在于,处于同一社区的节点并不表示它们当前处于同一物理区域内。处于同一社区的车辆节点之间拥有相似的社会属性,这可以表现在消费水平相似、消费领域相似、生活习惯相似等方面。利用车辆节点社会属性形成社区,在指向性较强的消息投递和分发场景中,能够以较小的资源消耗和较快的速度获得较大的利益回报。
[0153]
车辆节点之间的社区维护方法为:
[0154]
车辆节点首先获取自身的社会属性,然后与其他社会属性相似的车辆节点形成社区。相似的社区会逐渐合并形成长期稳定且覆盖范围更大的社区。但是人的社会关系、生活状态或工作状态发生变化常常会导致行为规律发生改变,同时会导致车辆节点的社会属性发生改变,车辆节点的社区也会发生改变。因此针对社区的变化,分成以下几种情况进行维护:
[0155]
(1)wait_node状态的车辆节点加入社区
[0156]
当车辆节点v处于自身的兴趣区域时,周期性向周围广播join消息报文,在车辆节点v可通信范围内的车辆节点u处于united_node,在接收到join消息报文后,会返回permit
消息报文,允许车辆节点v加入社区c
s
,并且更新自身的社区状态信息。
[0157]
表5中列出了permit消息报文中的一些关键字段:
[0158]
·
type:消息报文类型;
[0159]
·
车辆节点u的社区c
s
的id;
[0160]
·
车辆节点u的社区c
s
生成时间;
[0161]
·
车辆节点u的社区c
s
内的节点数量。
[0162]
表5
[0163][0164]
车辆节点v在收到permit消息报文后,会更新自身的社区状态信息,并且由wait_node状态改变为united_node。
[0165]
(2)社区的合并
[0166]
当车辆节点v不在自身的兴趣区域时,更新自身状态为free_node状态。当车辆节点v处于一个已加入社区的区域s时,车辆节点v处于united_node状态,并且周期性向周围广播combine 消息报文,与区域s内其他也处于united_node状态的节点进行社区合并。
[0167]
表6中列出了combine消息报文中的一些关键字段信息:
[0168]
·
type:消息报文的类型;
[0169]
·
车辆节点v在社区c
s
的社区中心度;
[0170]
·
车辆节点v的社区c
s
的id;
[0171]
·
车辆节点v的社区c
s
的生成时间;
[0172]
·
车辆节点v的社区c
s
的节点数量。
[0173]
表6
[0174][0175]
若区域s内存在一个车辆节点u,也处于united_node状态,当收到combine消息报文后,将来自车辆节点v的社区信息和自己关于社区c
s
的信息进行比较:
[0176][0177]
值较大的车辆节点表示其社区建立较晚,所以值较大的车辆节点加入值较小的车辆节点的社区。
[0178]
通过比较社区内车辆节点数量的大小,将容量较小的社区并入容量更大的社区内,形成覆盖范围更大的社区。新建立的社区并入较早成立的社区,保持社区存在的稳定性。
[0179]
假设通过比较后,车辆节点u选择加入车辆节点v的社区,则车辆节点u修改自身的社区状态列表,更新和的值。然后返回update消息报文,通知车辆节点v有新的车
辆节点加入,更新社区状态列表。
[0180]
表7中列出了update消息报文中的一些关键字段:
[0181]
·
type:消息报文类型;
[0182]
·
action:表示具体行为,包括加入社区、被加入社区、更新容量等;
[0183]
·
社区c
s
的id;
[0184]
·
社区c
s
的生成时间;
[0185]
·
社区c
s
内的节点数量。
[0186]
表7
[0187][0188]
车辆节点v收到update消息报文后,更新社区状态列表中关于社区c
s
的c
s
值。最终,车辆节点u删除自己原有的社区的信息,加入了车辆节点v的社区并且新的社区c
s
包含了社区的容量,有利于原来属于社区的车辆节点再次访问社区c
s
时,并入新的社区c
s
。同时也有利于兼并其他容量较小的社区,形成更大更稳定的社区。
[0189]
(3)社区状态信息更新
[0190]
车辆节点u和v处于同一区域,并且都处于united_node状态,但是由于两个车辆节点分别与其他节点产生过信息交互过程,允许其他节点加入了社区,或者与其他社区进行了合并,则社区状态会发生改变。
[0191]
处于united_node状态的车辆节点会广播update消息报文,表明自身节点状态和社区状态。收到update消息报文的车辆节点会对两个社区状态进行比较分析。若车辆节点u和v的社区c
p
值已经不同,则进入到社区合并过程;若c
p
值相同,但是c
n
值不同,则较大的值覆盖较小的值。
[0192]
(4)车辆节点离开社区
[0193]
当车辆节点v由于行为习惯发生变化,在新的检测周期内,兴趣区域产生了改变,则删除已经不会再访问的社区信息。但是,社区内的其他车辆节点并不一定会与车辆节点v相遇,车辆节点需要发送一条update消息报文通知社区内其他节点更新社区信息,选择合适的中继节点转发消息报文,然后删除该社区信息。
[0194]
上述社区维护方法,针对车辆节点加入社区和离开社区,以及社区之间的合并和社区状态更新分别制定了相应的处理机制,以维护社区的长期稳定。
[0195]
社区相关度和社区离散度方法为:
[0196]
已经加入社区的车辆节点v拥有自己的社会属性结合和社区状态列表:
[0197]
attr
v
={(q1,d1),(q2,d2),(q3,d3),

,(q
k
,d
k
)}#(27)
[0198]
车辆节点v在区域s加入了社区c,则车辆节点v关于区域s的社区相关度wcd的值同时也可以作为车辆节点v关于社区c的社区相关度的值,得到集合
[0199]
c
v
={(c1,d1),(c2,d2),(c3,d3),

,(c
k
,d
k
)}#(28)
[0200]
社区相关度反映了车辆节点v访问社区c的频繁程度和稳定程度,因此社区c中社区相关度越高的车辆节点,与社区c的粘性越大,可以理解为社区c内的核心节点。选择社区相关度较高的节点作为中继节点,将有利于数据向社区c或在社区c内的转发。
[0201]
为了方便数据跨社区的转发,引入社区间社区离散度的概念,车辆节点v对于社区c的社区离散度定义为:
[0202][0203]
其中,l(c
i
,c)表示社区c
i
与社区c的欧式距离:
[0204][0205]
社区离散度bcd(v,c)的值反映了车辆节点v与目标社区c的距离相关性,车辆节点v的社区集合越接近目标社区c,或者关于目标社区的离散程度越低,则bcd(v,c)的值越小,车辆节点v接近目标社区c的可能性越大,车辆节点v与目标社区c内的车辆节点的社会属性越相近,越容易相遇;反之,bcd(v,c)的值越大,则车辆节点v接近目标社区c的可能性越小,车辆节点v与目标社区c内的车辆节点的社会属性相差越大,相遇的可能性越小。
[0206]
显然,bcd(v,c)值较小的车辆节点适合作为转发数据包到社区c的中继节点。
[0207]
上述社区相关度和社区离散度方法,社区相关度反映了车辆节点访问社区的密切程度,同时也表示了与社区内其他车辆节点相遇的概率。社区离散度反映了车辆节点与目的社区相遇的几率,也就是车辆节点能够成功向目的社区投递数据包概率。社区相关度和社区离散度充分发挥了基于社区的机会路由传输优势,减少了网络中的数据包分组副本数量,降低了网络负载,提高了数据分组投递成功率。
[0208]
数据转发方法为:
[0209]
(1)当前节点在目的社区内的数据转发机制
[0210]
当车辆节点收到数据包时,如果目的节点所在的社区同时也是当前车辆节点的一个社区,首先检测可通信范围内的车辆节点集合中是否有也属于目的节点所属社区的车辆节点,如果检测到多个同属于目的社区的节点,则选择社区相关度最大的车辆节点进行数据转发;否则,利用车辆节点的社区相关度计算数据包保留最大时长,如果在达到最大时长之前,车辆节点还未到达目的社区,或者未遇到社区相关度更大的节点,则选择距离目的社区的社区离散度最小的车辆节点进行转发。
[0211]
定义车辆节点v对于数据包d的最大保留时长rt(v,d)为:
[0212][0213]
其中,d1是数据包的可调参数,根据数据包的重要性和紧急性可调;δ是时间调节因子,防止rt(v,d)的值过大,造成数据包长时间占用存储空间的情况。wcd(v,c
d
)是车辆节点v 关于d的目的节点所在社区的社区相关度,因为v的社区列表中包含了d的目的节点所在社区,所以可以从社区状态列表中获得社区相关度,并且还可以获得车辆节点v和目的社区的相遇时间间隔r(v,c
d
),同公式(20)中的r(v,q
d
),因为车辆节点已经加入区域q
d
的社区c
d
,所以区域q
d
和社区c
d
的状态值是一致的;bcd(v,c
d
)是车辆节点v和目的社区c
d
的社区离散度,虽然车辆节点v已经属于目的社区c
d
,但是社区离散度的值依然可以衡量车辆节点的活动区域关于目的社区的离散程度,社区离散度越小表明车辆节点v的活动区域越靠近目的社区,则数据包保留时长越长,增加将数据包转发至目的社区的可能性。
[0214]
(2)当前节点在目的社区外的数据转发机制
[0215]
当前节点和目的节点同属于一个社区内时,数据优先向社区内社区相关度较高的车辆节点转发,然后再转发至目的节点。当前节点处于目的社区之外时,首先选择距离目的节点社区的社区离散度较小的车辆节点作为中继节点,同时也要计算数据包保留时长,但是因为当前节点不在目的节点社区之内,所以没有目的社区的社区相关度wcd(v,c
d
)的值和相遇时间间隔r(v,c
d
)的值,所以不在目的社区内的节点v关于数据包d的最大保留时长rt(v,d)为:
[0216][0217]
其中,ε是时间调节因子,防止rt(v,d)的值过大;n是车辆节点v邻居节点的数量,是车辆节点v的历史平均保留时长。当车辆节点v的邻居节点中,具有的接近目的节点的车辆节点越多时,车辆节点v的最大保留时长越短,因为邻居节点可能更适合完成转发任务,所以能够节省车辆节点v的存储开销;当车辆节点v的邻居节点中,接近目的节点社区的车辆节点较少时,可能车辆节点v更适合完成转发任务,所以最大保留时长较大。
[0218]
上述数据转发方法,结合机会传输的思想,充分利用车辆节点的移动规律和相遇规律,建立了基于社区的数据转发的方法。
[0219]
根据上述车载自组网机会路由工作过程、工作前提及车辆节点社会属性生成方法、车辆节点的区域相关性、车辆节点的状态转换方法、车辆节点之间的社区形成方法、车辆节点之间的社区维护方法、社区相关度和社区离散度方法和数据转发方法,本实施例的车载自组网机会路方法首先生成车辆节点的社会属性集合,然后具有相同社会属性的车辆节点之间形成社区,并且社区内的所有车辆节点共同维护社区状态更新,最终形成去中心化的、自组织的车载机会网络。具体工作方式如下:
[0220]
1、社区初始化阶段
[0221]
社区初始化阶段主要分为两个子阶段:第一阶段是车辆节点经过分析自身历史目的地集合,生成自身的社会属性信息;第二阶段是具有相似社会属性特征的车辆节点之间形成稳定的社区。
[0222]
如图4所示,当车辆节点v开始一个新的检测周期后,记录周期内访问过的所有目的地的位置坐标信息和访问时长信息。当检测周期结束后,生成车辆节点v的历史目的地集合pt
v
,然后通过k

means聚类算法得到经过坐标聚合和时间聚合后的新集合pt
v
``。根据车辆节点的访问习惯计算得到访问兴趣区域的时长阈值t0,利用t0剔除掉那些访问总时长较短的区域,最终得到车辆节点v的兴趣区域,也就是车辆节点v的社会属性结合attr
v
。至此第一阶段完成。
[0223]
如图5所示,当车辆节点处于自身的兴趣区域时,如果状态位为wait_node,则表示车辆节点正在寻找加入社区的机会,车辆节点周期性向可通信范围内的车辆节点广播join消息报文,同时也监听是否收到来自其他也处于wait_node状态的车辆节点广播的join消息报文。如果车辆节点先收到了来自其他车辆节点的join消息报文,则不再广播join消息报文,然后开始根据收到的join消息报文中的车辆节点数据,生成社区状态信息,更新自身的社区状态列表,并返回create消息报文告知对方车辆节点生成了新的社区。至此第二阶段完成,并且也完成了社区初始化阶段。
[0224]
社区初始化阶段完成后,一些车辆节点已经相互生成了一些社区,但是这些社区容量较小,且社区的位置id可能也不能最大程度上反映出这一区域的社会特征,还需要经过社区维护阶段,才能形成逐渐趋于稳定的社区。
[0225]
2、社区维护阶段
[0226]
社区维护阶段是为了不断更新社区状态,使社区逐渐趋于稳定。针对wait_node状态的车辆节点加入社区、社区合并、社区状态更新和车辆节点离开社区三种情况分别采用具有针对性的处理方案。
[0227]
(1)wait_node状态的车辆节点加入社区
[0228]
图6展示了处于wait_node状态的车辆节点加入社区的过程,其中区别于社区形成过程的地方在于,如果车辆节点在广播join消息报文之后,没有收到create消息报文,而是收到了permit消息报文,则表示该区域已存在社区,并且已允许车辆节点加入该社区,则车辆节点更新自己的社区状态。
[0229]
(2)社区合并
[0230]
如图7所示,处于united_node状态的车辆节点周期性转发combine消息报文,包含了自身社区状态的信息,同处于united_node状态的车辆节点接收到combine消息后,比较两个社区c
n
值是否相同,较大的c
n
值覆盖较小的c
n
值,大社区兼并小社区能够使得社区容量稳定增加,如果c
n
值也相同,则较小的c
t
值覆盖较大的c
t
值,形成时间久的社区兼并新形成的社区,使得社区逐渐趋于稳定。最终返回update消息报文,通知对方更新社区状态列表。
[0231]
(3)社区状态更新
[0232]
图8展示了车辆节点之间的社区状态更新流程,处于united_node状态的车辆节点周期性广播update消息报文,然后检测是否收到来自其他车辆节点的update消息报文,当收到来自其他车辆节点的update消息报文时,比较两者的社区状态c
p
值是否相同,如果不相同则进入社区合并流程,使得两者的社区c
p
趋于统一,如果c
p
值相同,则继续比较c
n
值是否相同,较大的c
n
值覆盖较小的c
n
值,大社区兼并小社区能够使得社区容量稳定增加,如果c
n
值也相同,则较小的c
t
值覆盖较大的c
t
值,形成时间久的社区兼并新形成的社区,使得社区逐渐趋于稳定。
[0233]
(4)车辆节点离开社区
[0234]
车辆节点的社区集合是其社会属性集合的子集,车辆节点在某个社会属性所代表的区域加入社区后,社区的id会覆盖社会属性的id。因此,每个社会属性对应的社区c
p
值与社会属性q的值相同。
[0235]
如图9所示,每当车辆节点完成一个检测周期后,比较由最近的兴趣区域生成的社会属性集合与原来的社会属性集合是否发生改变,如果车辆节点的社会属性集合中已经不再包含某一社区,则需要通知社区内的车辆节点改变社区状态信息。由于车辆节点可能已经对社区不再感兴趣,因此,车辆节点发送一个到目的社区的update消息报文,按照从社区外到社区内的消息转发规则进行消息转发。收到update的目的社区的车辆节点在转发数据包的同时,更新社区状态列表中对应社区的状态值。最终,社区的更新信息逐渐扩散到整个社区的车辆节点。
[0236]
3、数据转发阶段
[0237]
网络是数据传输的通路,社区的建立是为了提高数据在网络中的传输效率,图10
具体说明了基于savor协议的车载机会网络中的数据转发规则。
[0238]
车辆节点在产生/收到数据包后,首先判断自己的社区列表中是否包含目的节点的社区,如果包含,则属于数据在社区内的转发场景。车辆节点检测邻居节点中是否存在同社区的车辆节点,如果存在,则优先选择社区相关度最大的车辆节点作为中继节点;否则计算数据包最大保留时长,由自己负责携带和转发数据包。
[0239]
如果车辆节点不属于目的节点社区,则属于社区外向社区内传输的场景,车辆节点优先选择邻居节点中距离目的社区的社区离散度最小的车辆节点作为中继节点,同时计算数据包最大保留时长,尽最大可能将数据包转发至目的社区。
[0240]
以上所述实施例仅表达了本发明的一种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜