一种基于复杂网络中心性的vanet分簇路由方法

文档序号:10691865阅读:833来源:国知局
一种基于复杂网络中心性的vanet分簇路由方法
【专利摘要】本发明提出了一种基于复杂网络中心性的VANET分簇路由方法,包括以下步骤:根据复杂网络中心性推举出簇头节点,建立簇头;网络中所有簇头节点根据收到的确认信息挑选骨干路径,骨干路径上的节点设为骨干节点,建立骨干网;骨干网建立以后,簇头和骨干节点的所有邻居被设置为成员节点,簇结构形成;骨干节点和簇头通过Hello报文对簇结构进行维护和解散;根据相应的规则进行数据包的转发。本发明通过骨干节点拓展了簇头的控制范围,减少了簇的总数,提高了分簇算法的性能,在分组到达率、控制开销等方面的表现更好,更适用于车载自组网环境。
【专利说明】
-种基于复杂网络中心性的VANET分簇路由方法
技术领域
[0001] 本发明属于车辆自组织网络无线通信技术领域,特别是一种基于复杂网络中屯、性 的VANET分簇路由方法。
【背景技术】
[0002] 车载自组网(Vehicular Ad hoc化twork,VA肥T)是智能交通系统的重要组成部 分,是移动自组网(Mobile Ad hoc化twork,MA肥T)技术在交通领域的新应用。在VA肥T环 境中,车辆之间、车辆与路边通信设施之间通过无线连接进行信息交互。通过VANET提供的 通信平台,车辆不但能获取邻近车辆的位置、速度、加速度、方向等信息,从而最大程度避免 碰撞等交通事故,还能准确获悉人眼视距W外的实时交通状况,从而便于选择最优行车路 线,避免拥堵。VA肥T还可W提供Internet接入服务,增强旅行舒适性。VA肥T技术在交通安 全、辅助驾驶、车联网、物联网等领域都有很广阔的应用前景。
[0003] 传统的MA肥T路由方法W节约能源为主要目标,并且是基于网络节点作低速无约 束运动的前提而设计的。然而VANET具有高动态拓扑、频繁的网络分割、节点运动可预测等 独特性质,因此传统的MANET路由方法无法适用于能源充足、节点高速运动的VANET环境。此 夕h城市场景中存在路边建筑物的遮挡、无线电干扰等外部因素的影响,VANET节点之间的 通信链路会出现频繁中断的现象,因此基于城市场景建立端到端的路由往往会产生较大的 控制开销,并且路由的有效期很短。目前VA肥T分簇路由方法方面的研究较热。相比于其他 类型的路由方法,分簇路由方法可将网络拓扑变化的影响限制在局部范围内,减少了参与 路由计算节点数目。簇头将成员节点的数据进行融合然后再转发,减少了数据通信量。此外 分簇结构有利于对网络进行管理和同步,具有较好的可扩展性和服务发现功能。但是在 VANET环境中,现有分簇路由方法存在簇结构不稳定、控制开销较大、延迟大等突出问题亟 待解决。

【发明内容】

[0004] 本发明的目的在于提供一种结构稳定、数据到达率高、延迟小、控制开销小的基于 复杂网络中屯、性的VANET分簇路由方法。
[0005] 实现本发明目的的技术解决方案为:一种基于复杂网络中屯、性的VA肥T分簇路由 方法,包括如下步骤:
[0006] 步骤1,网络中的全部节点发起簇头推举过程,建立簇头:设定推举过程的局部捜 索范围为1,对任意节点a,首先进行深度为1的广度优先捜索,记录下捜索到的邻居节点及 邻居节点的中屯、性;所有邻居节点构成集合S,a节点保存自己与S中节点的所有路径,然后 将a节点自己的中屯、性与S中邻居节点中屯、性进行对比,如果存在中屯、性比a节点中屯、性大 的邻居节点,则a节点对集合S中中屯、性最大的邻居节点发出确认信息,同意该中屯、性最大 的邻居节点作为簇头,如果不存在,则a节点本身设为簇头;
[0007] 步骤2,网络中所有簇头节点根据收到的确认信息挑选骨干路径,建立骨干网:向 簇头节点h发送确认信息的邻居节点构成候选骨干节点集B;计算h节点与B中节点之间的所 有路径的中屯、性,选出m条中屯、性最大的路径作为簇的骨干路径,骨干路径上的节点作为簇 的骨干节点,最终簇头和骨干节点构成骨干网;
[0008] 步骤3,建立成员节点:骨干网建立W后,簇头和骨干节点的所有邻居被设置为成 员节点,当一个节点是不同簇的骨干节点的共同邻居时,该节点随机选择其中的一个簇加 入;
[0009] 步骤4,骨干节点和簇头通过化11〇报文对簇结构进行维护和解散;
[0010] 步骤5,基于所形成的簇结构进行数据包的转发,完成VANET分簇路由。
[0011] 进一步地,步骤1所述网络中的全部节点发起簇头推举过程,建立簇头,具体如下:
[0012] (1.1)发出簇头声明:所有不在簇内的节点,周期性地向邻居节点广播簇头声明报 文,收到簇头声明报文的节点将做出两个判断:一、判断自己是否为簇头或骨干路径上的节 点;二、判断自己与上一跳车辆之间的链路生存时间是否大于规定的阔值Tthre,当其中任意 一个判断为是时,将簇头声明报文丢弃不做处理,当两个判断均为否时对此簇头声明报文 做出如下处理:
[0013] ①判断簇头声明报文是否已达规定的最大跳数1,如果已经到达1,簇头声明报文 不再进行转发,反之将簇头声明报文转发给邻居节点,为了避免簇头声明报文在网络里形 成环路,规定簇头声明报文只能转发给该簇头声明报文储存路径W外的节点,即只能沿着 简单路径转发;
[0014] ②节点将簇头声明报文源节点的中屯、性与自己的中屯、性进行对比,如果自己的中 屯、性较高则发出驳回报文,驳回源节点建立簇头的请求,如果自己的中屯、性较低则根据如 下的方法将簇头声明报文存储下来:首先建立一个最佳源即候选簇头节点的簇头声明报文 队列,队列中储存了来自当前最佳源的簇头声明报文,当最佳源再次收到新的簇头声明报 文时,将此簇头声明报文的源节点与自己储存的最佳源节点进行对比,如果新收到的簇头 声明报文的源节点中屯、性更高,则清空旧的最佳源的簇头声明报文队列,将新收到的簇头 声明报文加入队列,若新收到的簇头声明报文源节点恰是最佳源,则将此簇头声明报文添 加至队列末尾;
[0015] (1.2)发出驳回报文:当一个节点收到比自己中屯、性低的节点发来的簇头声明报 文时,该节点通过驳回报文对簇头声明报文予W驳回,通过簇头声明报文和驳回报文的交 互最终选择出中屯、性最高的节点作为簇头;当节点收到驳回报文后,在停止声明窗口期TSAW 内停止簇头的建立,等待其他节点形成簇,如果经过一个停止声明窗口期TsAwW后还是不能 加入簇中,则此节点重启簇头的声明过程即返回步骤(1.1),否则进入下一步;
[0016] (1.3)发送同意报文:对于收到簇头声明报文的节点,从记录下第一个声明报文时 算起,直到经历一个声明报文的监听窗口期TahwW后,该节点分析所有收到的簇头声明报 文,然后向最佳源发送同意报文;:
[0017] (1.4)簇头建立:如果节点发出簇头声明报文后的一段等待建立窗口期Twee内,没 有收到任何驳回报文,该节点成为簇头。
[0018] 进一步地,步骤2所述网络中所有簇头节点根据收到的确认信息挑选骨干,建立骨 干网,具体步骤如下:
[0019] (2.1)对等待建立窗口期Twee内收到的全部同意报文进行分析,选择其中度中屯、性 最大的m条路径作为簇的骨干路径;
[0020] (2.2)簇头节点挑选出骨干路径之后,沿着骨干路径发送通知报文,通知报文携带 了簇头路由表的完整拷贝,收到通知报文的节点将自己的网络身份设置为骨干节点,然后 建立本簇的名片信息,最终簇头和骨干节点构成骨干网,骨干网建立W后,簇头节点继续按 照时间周期Τιι重复发送通知报文,用来维持簇头与骨干节点的联系,并且更新本簇的名片 信息。
[0021] 进一步地,步骤3所述建立成员节点的过程如下:
[0022] 簇头节点和骨干节点的所有一阶邻居构成簇的成员节点集合,如果一个节点是两 个W上不同簇的骨干节点的共同一阶邻居,那么该节点随机挑选一个簇,并成为成员节点; 如果有不属于任何簇的剩余节点,那么运些剩余节点之间重新发起分簇过程,即重复步骤1 ~3,直到所有节点全部加入簇之中,最终形成簇头带动骨干节点共同控制成员节点的层次 结构。
[0023] 进一步地,步骤4所述骨干节点和簇头通过化11〇报文对簇结构进行维护和解散, 具体过程如下:
[0024] 骨干节点通过化11〇报文维持与簇头的联系,位于骨干路径末端的骨干节点,按照 时间周期Τηι产生化11〇报文,并通过骨干路径向簇头转发,Hello报文的作用包括两个:一、 验证簇结构的完整性;二、通知簇头节点有哪些成员节点新加入或离开了簇;每个收到 Hello报文的沿途骨干节点都把自己的邻居信息加入到当前的化11〇报文中,簇头节点收到 来自骨干路径的Hello报文后,更新该骨干路径控制下的全部簇成员的名单,当簇头节点在 簇头有效时间窗口期TCHV收不到骨干路径的化11〇报文时,认为骨干网的链路已经断裂,停 止通知报文的周期性发送,该簇头节点并将自己的身份设置为普通节点,簇头消失;同理, 当骨干节点在展臂时间窗口期TCMV收不到来自簇头的通知报文时,该骨干节点将自己的身 份设置为普通节点,并且不再参与化11〇报文的转发,从而脱离簇。
[0025] 进一步地,步骤5所述基于所形成的簇结构进行数据包的转发,完成VA肥T分簇路 由,具体如下:
[0026] (5.1)待转发数据的节点将数据包交付给自己的簇头,收到数据包后查询路由表, 更新数据包数据结构中的Go for gateway和Go for destination两个bool值的内容,Go for gateway的值为真表示本簇内无法送达,需要通过网关转发;Go for destination的值 为真表示在本簇内即可完成交付;
[0027] (5.2)骨干节点通过运两个bool值的类型判断将数据包转发给网关或是直接在簇 内交付;如果数据需要网关转发,则骨干网将数据包送至网关节点,网关节点收到数据包 后,转发给相应的目的簇的骨干节点,该骨干节点再将数据包转发至簇头;
[00%] (5.3)重复步骤(5.1)~(5.2),直到数据包送至目的节点。
[0029]本发明与现有技术相比,其显著优点为:(1)基于复杂网络中屯、性的VANET分簇路 由方法推举中屯、性高的节点作为簇头,与簇头之间的通信链路维持时间较长的节点作为簇 头的骨干节点,形成簇头协同骨干节点共同控制簇成员的簇结构。该路由方法通过骨干节 点拓展了簇头的控制范围,减少了簇的总数,提高了分簇算法的性能。与经典路由方法 (A0DV、LCA等)的性能相比,该路由方法在分组到达率、控制开销等方面的表现更好,更适用 于车载自组网环境。
【附图说明】
[0030] 图1是本发明基于复杂网络中屯、性的VANET分簇路由方法的流程图。
[0031] 图2是声明报文的数据结构图。
[0032] 图3是最佳源信息数据结构图。
[0033] 图4是驳回报文数据结构图。
[0034] 图5是同意报文数据结构图。
[0035] 图6是名片信息的建立与通知报文的转发流程图。
[0036] 图7是通知报文数据结构图。
[0037] 图8是名片信息数据结构图。
[0038] 图9是多级簇结构示意图。
[0039] 图10是化11〇报文数据结构图。
[0040] 图11是路由表信息结构图。
[0041] 图12是路由信息的建立的流程图。
[0042] 图13是数据包数据结构图。
[0043] 图14是数据包传递过程示意图。
【具体实施方式】
[0044] 下面结合附图及具体实施例对本发明作进一步详细说明。
[0045] 本发明基于复杂网络中屯、性的VA肥T分簇路由方法,包括如下步骤:
[0046] 步骤1,根据复杂网络中屯、性,网络中的全部节点发起簇头推举过程,建立簇头。网 络中的全部节点发起簇头推举过程:设定推举过程的局部捜索范围为1,对任意节点a,首先 进行深度为1的广度优先捜索,记录下捜索到的邻居节点及邻居节点的中屯、性(定义为节点 的度);所有邻居节点构成集合S,a节点保存自己与S中节点的所有路径,然后将a节点自己 的中屯、性与S中邻居节点中屯、性进行对比,如果存在中屯、性比a节点中屯、性大的邻居节点, 则a节点对集合S中中屯、性最大的邻居节点发出确认信息,同意该中屯、性最大的邻居节点作 为簇头,如果不存在,则a节点本身设为簇头;具体步骤如下:
[0047] (1.1)发出簇头声明。所有不在簇内的节点,周期性地向邻居节点广播簇头声明报 文化ead Announce Packet ,ΗΑΡ)。收到声明的节点将做出两个判断:一、判断自己是否为簇 头或骨干路径上的节点;二、判断自己与上一跳车辆之间的链路生存时间是否大于协议规 定的阔值Tthre(即通过GPS与电子导航系统判断Tthre时间内两车的距离是否会超出最大通信 距离)。当其中任意一个判断为是时,将声明报文丢弃,不做处理。当两个判断均为否时对此 报文做出如下处理:
[004引①判断簇头声明报文是否已达规定的最大跳数1,如果已经到达1,簇头声明报文 不再进行转发,反之将簇头声明报文转发给邻居节点,为了避免簇头声明报文在网络里形 成环路,规定簇头声明报文只能转发给该簇头声明报文储存路径W外的节点,即只能沿着 简单路径转发;
[0049]②节点将簇头声明报文源节点的中屯、性与自己的中屯、性进行对比,如果自己的中 屯、性较高则发出驳回报文,驳回源节点建立簇头的请求,如果自己的中屯、性较低则根据如 下的方法将簇头声明报文存储下来:首先建立一个最佳源即候选簇头节点的簇头声明报文 队列,队列中储存了来自当前最佳源的簇头声明报文,当最佳源再次收到新的簇头声明报 文时,将此簇头声明报文的源节点与自己储存的最佳源节点进行对比,如果新收到的簇头 声明报文的源节点中屯、性更高,则清空旧的最佳源的簇头声明报文队列,将新收到的簇头 声明报文加入队列,若新收到的簇头声明报文源节点恰是最佳源,则将此簇头声明报文添 加至队列末尾
[0050] 收到声明报文处理的流程图如图1所示,声明报文的数据结构设计如图2所示,最 佳源信息数据结构设计如图3所示。
[0051] (1.2)发出驳回报文。当一个节点收到比自己中屯、性低的节点发来的声明报文时, 该节点通过驳回报文(Reject Packet,RP)对声明报文予W驳回。通过声明报文和驳回报文 的交互最终选择出中屯、性最高的节点作为簇头。当节点收到驳回报文后,在停止声明窗口 期TsAw(Stop Announce Window)时间窗口内停止簇头的建立,等待其他节点形成簇。如果经 过一个停止声明窗口期TsAwW后还是不能加入簇中,则此节点重启簇头的声明过程即返回 步骤(1.1),否则进入下一步;
[0052] 驳回报文数据结构设计如图4所示。
[0053] (1.3)发送同意报文。对于收到声明报文的节点,从记录下第一个声明报文时算 起,直到其经历一个声明报文的监听窗口期TAHw(Announce化aring Window) W后,该节点 分析所有收到的声明报文,然后向最佳源发送同意报文。同意报文数据结构包含两个整形 变量,两个数组。其数据结构设计如图5所示。一个数组用于储存同意报文的转发路径,另一 个数组用W储存转发路径上节点的全部邻居节点。由于两点之间可能存在多条路径,每个 声明报文都代表了最佳源节点到当前节点之间的一条路径,所W当前节点可能存储了多个 来自最佳源的声明报文。对于当前节点队列中的每个声明报文,都要生成一个与之相对应 的同意报文。同意报文的转发路径是其对应声明报文的反向路径。同意报文在转发的过程 中,将路径上的节点的全部邻居节点记录到数组中,通过数组将每条路径所能控制的节点 汇总至簇头,簇头利用运些信息挑选骨干,建立骨干路径。
[0054] 步骤4:簇头建立。如果节点发出声明报文后的一段等待建立窗口期Twcc(Wait to 化eate Cluster)内,没有收到任何驳回报文,该节点成为簇头。
[0055] 步骤2,网络中所有簇头节点根据收到的确认信息挑选骨干节点,建立骨干网:向 簇头节点h发送确认信息的邻居节点构成候选骨干节点集B。计算h节点与B中节点之间的所 有最短路径的中屯、性(定义为路径上所有节点的度的),从中选出m条中屯、性最大的路径作 为簇的骨干路径,骨干路径上的节点作为簇的骨干节点,具体如下:
[0056] (2.1)对窗口期Twee内收到的全部同意报文进行分析,选择其中度中屯、性最大的m 条路径作为簇的骨干路径,伪代码如表1所示:
[0化7] 表1
[0化引
[0060] (2.2)簇头节点挑选出骨干路径之后,沿着骨干路径发送通知报文,通知报文携带 了簇头路由表的完整拷贝。收到通知报文的节点将自己的网络身份设置为骨干节点,然后 建立本簇的名片信息,最终簇头和骨干节点构成骨干网。骨干网建立W后,簇头节点继续按 照时间周期Tii(Inform Interval)重复发送通知报文,用来维持簇头与骨干节点的联系,并 且更新本簇的名片信息。图6展示了 2号节点通过通知报文的展臂得知自己不是运条展臂的 末端,继续将通知报文传递给下面5号节点的过程。图7和图8分别是通知报文数据结构图和 名片信息数据结构图。
[0061] 步骤3,建立成员节点:骨干网建立W后,簇头和骨干节点的所有邻居被设置为成 员节点,当一个节点是不同簇的骨干节点的共同邻居时,该节点随机选择其中的一个簇加 入;具体过程如下:
[0062] 簇头节点和骨干节点的所有一阶邻居构成簇的成员节点集合,如果一个节点是两 个W上不同簇的骨干节点的共同一阶邻居,那么该节点随机挑选一个簇,并成为成员节点; 如果有不属于任何簇的剩余节点,那么运些剩余节点之间重新发起分簇过程,即重复步骤1 ~3,直到所有节点全部加入簇之中,最终形成簇头带动骨干节点共同控制成员节点的层次 结构,簇结构形成。
[0063] 最终建立的多级簇结构示意图如图9所示。
[0064] 步骤4,骨干节点和簇头通过化11〇报文对簇结构进行维护和解散,具体过程如下:
[0065] 骨干节点通过化11〇报文维持与簇头的联系,位于骨干路径末端的骨干节点,按照 时间周期Thi化ello Interval)产生化11〇报文,并通过骨干路径向簇头转发,Hello报文的 作用包括两个:一、验证簇结构的完整性;二、通知簇头节点有哪些成员节点新加入或离开 了簇;每个收到化11〇报文的沿途骨干节点都把自己的邻居信息加入到当前的化11〇报文 中,簇头节点收到来自骨干路径的化11〇报文后,更新该骨干路径控制下的全部簇成员的名 单,当簇头节点在簇头有效时间窗口期TcmKCluster Head Validity)收不到骨干路径的 Hello报文时,认为骨干网的链路已经断裂,停止通知报文的周期性发送,该簇头节点并将 自己的身份设置为普通节点,簇头消失;同理,当骨干节点在展臂时间窗口期TcMv(Cluster Mainstay Validity)收不到来自簇头的通知报文时,该骨干节点将自己的身份设置为普通 节点,并且不再参与化11〇报文的转发,从而脱离簇。
[0066] 化11〇报文的数据结构设计如图10所示。
[0067] 步骤5,基于所形成的簇结构进行数据包的转发,完成VANET分簇路由,具体如下: [006引a、路由表的建立与更新
[0069] 如果一个节点可W同时直接联系到至少两个属于不同簇的骨干节点,那它就是协 议规定的网关节点。网关节点根据时间周期TGEii(Gateway Exchange Information Interval)交换不同簇的骨干节点的名片信息,其算法伪代码如表2所示:
[0070] 表 2
[0073] 网关节点将邻居骨干节点的名片信息进行封装,生成网关报文,然后网关节点将
[0071]
[0072] 来自不同簇的网关报文相互交换。交换后的网关报文沿骨干路径转发至对应的簇头,通过 运种信息交换机制,簇头可W得知其他簇内的路由信息,从而建立起网络全局路由表。路由 表信息结构设计如图11所示。
[0074]簇头中存储了一张全局路由表,用于记录到达其他节点的路由信息。图12展示了 簇头节点建立与更新路由信息的流程。对于某个节点i,簇头首先判断i节点是否在本簇内, 如果是,将路由表中i节点的簇内标识置为真。如果否,则将簇内标识置为假,然后分析来自 其他簇的网关报文中的路由信息,选择其中距i节点最近的簇作为下一跳的转发地址,如果 距离相等,则选取其中时间戳最新的。协议规定了路由信息的有效期TRivUouting Information化lidity),超出有效期的路由信息会失效。簇头节点将网络中全部节点的路 由信息组合起来,从而形成一张整个网络的路由表。
[00巧]b、数据包传递过程
[0076] (5.1)待转发数据的节点将数据包交付给自己的簇头。收到数据包后查询路由表, 更新数据包数据结构中的Go for gateway和Go for destination两个bool值的内容。Go for gateway的值为真表示本簇内无法送达,需要通过网关转发。Go for destination的值 为真表示在本簇内即可完成交付。
[0077] (5.2)骨干节点通过运两个bool值的类型判断将数据包转发给网关或是直接在簇 内交付。如果数据需要网关转发,则骨干网将数据包送至网关节点。网关节点收到数据包 后,转发给相应的目的簇的骨干节点,骨干节点再将数据包至其簇头;
[0078] (5.3)重复步骤(5.1)~(5.2),直到数据包送至目的节点。
[0079] 数据包数据结构图见图13,数据包传递过程如图14所示。
[0080] 实施例1
[0081] 本发明的方法测试:
[0082] 本仿真实验采取visual studio 2015软件,使用C++语言编写。在windows 2003server系统的服务器平台上运算。实验选取一个的模型地图,地图中设置横向11条,纵 向11条的双向街道,同方向街道之间的间隔为W(1000m),街道交叉的地方为交通路口,其中 共有121个路口。相关参数设定为:仿真区域大小L=1000mX 1000m,节点数量N= 100,节点 速度v = 15m/s,数据包生成率P = 1.01,节点通信范围r = 1500m。
[0083] 通过实验仿真分析,该路由的骨干网的链路持续时间阔值Tthre存在一个最佳取值 范围,在此范围内分组到达率与端到端延迟都可W到达最佳值。在本实验的参数下,Tthre的 最佳值约在50S-150S之间。
[0084] 本实验中共对比了 Ξ种路由协议在模拟环境下的表现:基于中屯、性的分簇路由方 法、按需矢量路由方法(A0DV)、最小ID分簇路由方法化CA)。实验结果证明本发明提出的方 法在分组到达率、控制开销等方面的表现好于A0DV与LCA路由方法更适用于车载自组网环 境。
【主权项】
1. 一种基于复杂网络中心性的VANET分簇路由方法,其特征在于,包括如下步骤: 步骤1,网络中的全部节点发起簇头推举过程,建立簇头:设定推举过程的局部搜索范 围为1,对任意节点a,首先进行深度为1的广度优先搜索,记录下搜索到的邻居节点及邻居 节点的中心性;所有邻居节点构成集合S,a节点保存自己与S中节点的所有路径,然后将a节 点自己的中心性与S中邻居节点中心性进行对比,如果存在中心性比a节点中心性大的邻居 节点,贝 1Ja节点对集合S中中心性最大的邻居节点发出确认信息,同意该中心性最大的邻居 节点作为簇头,如果不存在,则a节点本身设为簇头; 步骤2,网络中所有簇头节点根据收到的确认信息挑选骨干路径,建立骨干网:向簇头 节点h发送确认信息的邻居节点构成候选骨干节点集B;计算h节点与B中节点之间的所有路 径的中心性,选出m条中心性最大的路径作为簇的骨干路径,骨干路径上的节点作为簇的骨 干节点,最终簇头和骨干节点构成骨干网; 步骤3,建立成员节点:骨干网建立以后,簇头和骨干节点的所有邻居被设置为成员节 点,当一个节点是不同簇的骨干节点的共同邻居时,该节点随机选择其中的一个簇加入; 步骤4,骨干节点和簇头通过Hello报文对簇结构进行维护和解散; 步骤5,基于所形成的簇结构进行数据包的转发,完成VANET分簇路由。2. 根据权利要求1所述的基于复杂网络中心性的VANET分簇路由方法,其特征在于,步 骤1所述网络中的全部节点发起簇头推举过程,建立簇头,具体如下: (1.1) 发出簇头声明:所有不在簇内的节点,周期性地向邻居节点广播簇头声明报文, 收到簇头声明报文的节点将做出两个判断:一、判断自己是否为簇头或骨干路径上的节点; 二、判断自己与上一跳车辆之间的链路生存时间是否大于规定的阈值T thre,当其中任意一 个判断为是时,将簇头声明报文丢弃不做处理,当两个判断均为否时对此簇头声明报文做 出如下处理: ① 判断簇头声明报文是否已达规定的最大跳数1,如果已经到达1,簇头声明报文不再 进行转发,反之将簇头声明报文转发给邻居节点,为了避免簇头声明报文在网络里形成环 路,规定簇头声明报文只能转发给该簇头声明报文储存路径以外的节点,即只能沿着简单 路径转发; ② 节点将簇头声明报文源节点的中心性与自己的中心性进行对比,如果自己的中心性 较高则发出驳回报文,驳回源节点建立簇头的请求,如果自己的中心性较低则根据如下的 方法将簇头声明报文存储下来:首先建立一个最佳源即候选簇头节点的簇头声明报文队 列,队列中储存了来自当前最佳源的簇头声明报文,当最佳源再次收到新的簇头声明报文 时,将此簇头声明报文的源节点与自己储存的最佳源节点进行对比,如果新收到的簇头声 明报文的源节点中心性更高,则清空旧的最佳源的簇头声明报文队列,将新收到的簇头声 明报文加入队列,若新收到的簇头声明报文源节点恰是最佳源,则将此簇头声明报文添加 至队列末尾; (1.2) 发出驳回报文:当一个节点收到比自己中心性低的节点发来的簇头声明报文时, 该节点通过驳回报文对簇头声明报文予以驳回,通过簇头声明报文和驳回报文的交互最终 选择出中心性最高的节点作为簇头;当节点收到驳回报文后,在停止声明窗口期TSM内停止 簇头的建立,等待其他节点形成簇,如果经过一个停止声明窗口期Ts?以后还是不能加入簇 中,则此节点重启簇头的声明过程即返回步骤(1.1),否则进入下一步; (1.3) 发送同意报文:对于收到簇头声明报文的节点,从记录下第一个声明报文时算 起,直到经历一个声明报文的监听窗口期TAfW以后,该节点分析所有收到的簇头声明报文, 然后向最佳源发送同意报文;: (1.4) 簇头建立:如果节点发出簇头声明报文后的一段等待建立窗口期Twee内,没有收 到任何驳回报文,该节点成为簇头。3. 根据权利要求1所述的基于复杂网络中心性的VANET分簇路由方法,其特征在于,步 骤2所述网络中所有簇头节点根据收到的确认信息挑选骨干,建立骨干网,具体步骤如下: (2.1) 对等待建立窗口期Twee内收到的全部同意报文进行分析,选择其中度中心性最大 的m条路径作为簇的骨干路径; (2.2) 簇头节点挑选出骨干路径之后,沿着骨干路径发送通知报文,通知报文携带了簇 头路由表的完整拷贝,收到通知报文的节点将自己的网络身份设置为骨干节点,然后建立 本簇的名片信息,最终簇头和骨干节点构成骨干网,骨干网建立以后,簇头节点继续按照时 间周期Τπ重复发送通知报文,用来维持簇头与骨干节点的联系,并且更新本簇的名片信息。4. 根据权利要求1所述的基于复杂网络中心性的VANET分簇路由方法,其特征在于,步 骤3所述建立成员节点的过程如下: 簇头节点和骨干节点的所有一阶邻居构成簇的成员节点集合,如果一个节点是两个以 上不同簇的骨干节点的共同一阶邻居,那么该节点随机挑选一个簇,并成为成员节点;如果 有不属于任何簇的剩余节点,那么这些剩余节点之间重新发起分簇过程,即重复步骤1~3, 直到所有节点全部加入簇之中,最终形成簇头带动骨干节点共同控制成员节点的层次结 构。5. 根据权利要求1所述的基于复杂网络中心性的VANET分簇路由方法,其特征在于,步 骤4所述骨干节点和簇头通过Hello报文对簇结构进行维护和解散,具体过程如下: 骨干节点通过Hello报文维持与簇头的联系,位于骨干路径末端的骨干节点,按照时间 周期THI产生Hello报文,并通过骨干路径向簇头转发,Hello报文的作用包括两个:一、验证 簇结构的完整性;二、通知簇头节点有哪些成员节点新加入或离开了簇;每个收到Hello报 文的沿途骨干节点都把自己的邻居信息加入到当前的Hello报文中,簇头节点收到来自骨 干路径的Hello报文后,更新该骨干路径控制下的全部簇成员的名单,当簇头节点在簇头有 效时间窗口期Tow收不到骨干路径的Hello报文时,认为骨干网的链路已经断裂,停止通知 报文的周期性发送,该簇头节点并将自己的身份设置为普通节点,簇头消失;同理,当骨干 节点在展臂时间窗口期τ?收不到来自簇头的通知报文时,该骨干节点将自己的身份设置 为普通节点,并且不再参与Hello报文的转发,从而脱离簇。6. 根据权利要求1所述的基于复杂网络中心性的VANET分簇路由方法,其特征在于,步 骤5所述基于所形成的簇结构进行数据包的转发,完成VANET分簇路由,具体如下: (5.1) 待转发数据的节点将数据包交付给自己的簇头,收到数据包后查询路由表,更新 数据包数据结构中的Go for gateway和Go for destination两个bool值的内容,Go forgateway的值为真表示本簇内无法送达,需要通过网关转发;Go for destination的值 为真表示在本簇内即可完成交付; (5.2) 骨干节点通过这两个bool值的类型判断将数据包转发给网关或是直接在簇内交 付;如果数据需要网关转发,则骨干网将数据包送至网关节点,网关节点收到数据包后,转 发给相应的目的簇的骨干节点,该骨干节点再将数据包转发至簇头; (5.3)重复步骤(5.1)~(5.2),直到数据包送至目的节点。
【文档编号】H04W84/18GK106060888SQ201610361674
【公开日】2016年10月26日
【申请日】2016年5月26日
【发明人】濮存来, 杨先霞, 李思源, 许忠奇
【申请人】南京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1