一种基于信号强度的车载Adhoc网络分簇方法

文档序号:7665775阅读:142来源:国知局
专利名称:一种基于信号强度的车载Ad hoc网络分簇方法
技术领域
基于信号强度的车载Ad hoc网络分簇方法属于大规模无线Ad hoc网络分簇路由研究领域。

背景技术
移动Ad hoc网络(MANET)是一种多跳的、自组织的网络,每个节点既是主机,又是路由器,两个节点之间如果要进行通信,如果对方不在自己的信号覆盖范围内,需要借助其他节点进行转发。路由选择的优劣在很大程度上影响了网络的性能。由于MANET网络中的节点随时可能移动,并且没有基站之类的中央控制设备与之相连,这一方面给用户带来了很大的便利,另一方面也为设计合适的路由协议带来了困难。
从网络的体系结构方面考虑,移动Ad hoc网络(MANET)可分为平面式和分级式。平面结构比较健壮,但是控制开销大,可扩展性不佳,主要适用于中小型网络。分级结构中,网络划分成簇,每个簇包含一个簇头和多个簇成员,簇头和网关构成虚拟骨干网。分级结构的优点是网络可扩充性好,容易实现网络的管理和同步。另外,基于分簇结构,MANET可采用类似蜂窝网络的资源分配方法。在簇内,簇头可以控制节点的业务接入请求并合理分配带宽。因此通过分簇算法将网络划分成簇可以提高Ad hoc网络的性能,具有重要意义。目前,已经提出很多启发式分簇算法,如最小节点分簇算法,最高节点度分簇算法,节点权重分簇算法,按需加权分簇算法,以及有效减少簇头数量的多跳分簇算法等等。其中,最大节点度算法的原则是尽量减少簇的数目,以减少报文传输时的转发次数。每个节点通过交互控制消息可以知道其邻居节点的数目,然后将自己的度数(已被分簇的节点不计算其节点度)向邻居节点广播。在所有未被分簇节点中,选择度数最大的节点做为簇头。当度数相同时,则选择ID最小的节点作为簇头。簇头的邻居节点则成为该簇的成员,并不再参与簇的生成过程,反复进行以上过程直到所有节点都加入某个簇。该算法的优点在于分簇算法简单,网络中簇的数目较少,即源目的节点对之间的平均跳数较少,从而减少了分组往返时延。该算法的缺点在于簇首节点的选举算法不够优化,且网络分簇并没有考虑节点移动方向信息,因此当节点移动性较强时,簇头的更新频率急剧上升,造成了大量的维护开销。因此,如何设计一种高效率的分簇生成与维护策略,解决大规模高移动性车载Ad hoc网络所存在的上述问题,是当前分簇路由协议所研究的关键问题。


发明内容
本发明的目的在于提供一种能够优化分簇性能、稳定分簇结构的基于信号强度的车载Ad hoc网络分簇方法。
本发明的特征在于,它依次含有以下步骤 步骤(1.)节点初始化在每个节点中建立一跳邻居表,记录节点与所有一跳邻居节点的链接关系,其中包括邻居节点ID,本节点与邻居节点连接信号强度;建立分簇信息表,其中包括簇内节点ID、节点类型、优先级、连接跳数信息;在临时簇首节点中建立两跳邻居节点连接矩阵,连接矩阵为N*N方阵,N为所有两跳邻居节点的数量。,其中Wij表示节点i与节点j的信号连接强度,0为无连接; 步骤(2.)单个节点在表初始化完成之后,按照以下步骤参与分簇的形成 步骤(2.1)节点启动后向周围两跳邻居节点发送包含行驶方向信息的Hello报文,同向行驶邻居节点回应报文,包含链路以及本节点的状态。若发现两跳内节点有已经存在的簇首节点,则声明加入此群,等待确认;若收到临时簇首声明,则进入步骤(2.2);如果既没有发现簇首节点也没有收到临时簇首声明则跳入步骤(2.3)。
步骤(2.2)将本节点的一跳邻居表发给临时簇首节点。
步骤(2.3)向本节点两跳范围内的节点发出临时簇首声明,收到声明的节点进行步骤(2.2)操作。
步骤(2.4)临时簇首节点将收到的各个节点的一跳邻居连接信息汇总为包含簇内所有节点的一跳邻居节点连接矩阵,并按照下述方法进行簇首选择通过对一跳邻居节点连接矩阵进行平方运算求出两跳邻居节点连接矩阵,矩阵每一行的元素之和就是此行所对应节点的带权连接度,计算出带权连接度之后选取连接度最大的节点为簇首节点,并将选举结果进行广播,收到广播信息的节点判断自己是否是簇首节点,不是则向簇首节点发出注册申请,收到回复信息则成功加入群,当此节点已经是其他群的群成员,则收到广播信息后将自己注册为网关节点,并向邻居节点以及关联簇首节点发送状态信息;最后簇首节点生成簇成员表,并广播给簇内成员。分簇过程完毕。
步骤(3.)在分簇过程完成之后,簇内节点进入分簇维护阶段,分簇维护过程包含新节点加入、节点离开、簇首更迭,网关节点的注册与注销等过程,维护过程按照以下步骤进行 步骤(3.1)未加入任何簇的节点首先等待两秒,如果两秒内收到来自其它簇首的Hello信息,则判断自己是否已经是任一簇的簇成员节点,如果是,则触发申请过程向此簇申请成为网关节点,如果自己未加入任何簇,则申请为此簇的普通成员节点;当两秒内节点没有收到任何簇首的Hello信息,则此节点向周围节点广播请求加入信息,信息中包含节点ID,行驶方向信息等,并设置此广播的跳数为两跳,收到广播信息的一般节点以及网关节点负责转发消息,收到广播信息的簇首节点则判断请求加入信息中的行驶方向信息,若与本簇行驶方向相同,则返回确认信息,将此节点加入本簇,并将相关信息保存到分簇信息表中,随后将更新后的分簇信息表进行广播,簇内其它成员收到广播信息后更新自己的分簇信息表相关内容;若与本簇行驶方向不同,则忽略收到的请求。
步骤(3.2)当簇成员节点离开群内任何节点的通信范围,或发生有效路由请求但未能达到的情况下,簇首节点将与此节点相关的状态信息及请求信息暂存30秒,若30秒内仍无法探测到目标节点再次出现,则宣布此成员离开本簇,并在分簇信息表中删除此节点信息,启动分簇信息表广播更新过程;若30秒内收到探测到目标节点再次出现,则维持原有分簇信息; 步骤(3.3)当簇首节点的连接权值下降到簇内连接权值最高的节点的1/3时,启动簇首节点更迭过程,原簇首节点放弃簇首的位置,簇内连接权值最高的节点声明自己为簇首节点,并启动分簇路由信息表更新过程; 步骤(3.4)当两个同向移动的簇中的簇首节点移动到彼此一跳通信范围之内时,比较两个分簇的大小,簇成员数较小的节点放弃簇首资格,簇成员数较大的节点继续保持簇首资格,原有的两个簇间的网关节点更迭身份为现有簇的普通成员节点,已经注销的簇中的原有成员节点,如果在现存簇首节点的两跳通信范围之内,则声明自己为现存簇的成员节点,其他节点则重新开始分簇过程; 步骤(3.5)当两个簇之间的所有网关节点均与某一簇首失去联系时,两个簇的簇首节点宣布解除邻居簇关系。
本发明针对实际道路中的汽车行驶特性进行分簇算法的设计,充分考虑了车载Ad hoc网络的特点,并利用节点连接强度的信息进行辅助分簇,分簇流程简单,节点计算负担小,算法为半分布式算法且复杂度小;采用本发明进行分簇,簇结构稳定,节点更迭次数少,能够有效的减少分簇中产生的控制信息,提高网络的性能,解决了车载Ad hoc网络在实际环境中的性能低下的问题。



图1.考虑汽车行驶方向信息的分簇策略示意图,数字1到4标识的圆圈表示四组不同行驶方向的车辆,两个黑色曲线标识的圆形区域之内的标识为1的节点分别为两个簇内的普通节点或簇首节点,两个圆域相交的区域内的表示为1的节点为网关节点。; 图2.分簇形成阶段的算法流程图; 图3.节点离开簇的处理流程图; 图4.簇首节点冲突的处理流程图;
具体实施例方式 应用于Ad hoc网络的传统分簇算法种类繁多,但大都没有考虑分簇算法的具体应用场合。首先,在实际道路环境下,由于车辆移动性强,不同行驶方向的车辆间相对移动速度很大,如果采用传统的分簇策略,必然会造成分簇结构无法稳定、簇首节点频繁更新的问题,使得网络中控制信息占据大量带宽资源,系统健壮性下降,网络性能严重降低。其次,传统分簇方法未考虑节点之间信号强度,从而可能导致采用此方法选举出的群首以及网关节点并不具备很好的通信能力以及稳定性,而因此带来的群首和网关节点的频繁更新,同样会对网络性能带来极大影响。设计一种考虑实际道路环境以及汽车行驶方向信息以及终端间信号连接强度的车载Ad hoc分簇算法是本发明的主要贡献。
考虑汽车行驶方向信息的分簇策略示意图见图1该图可以清楚的表明当汽车向不同的方向行驶时本分簇策略的特点,图中,四组不同行驶方向的车辆用数字1到4标识的圆圈表示,圆圈旁的箭头表示节点的运动方向,当分簇形成阶段开始时,一跳通信范围之内的车辆首先交换彼此的行驶方向信息,不同方向的车辆不参与彼此的分簇过程,图中两个黑色曲线标识的圆形区域之内的标识为1的节点分别为两个簇内的普通节点或簇首节点,两个圆域相交的区域内的表示为1的节点为网关节点。同簇车辆通信不通过簇首和网关节点,当簇内节点需要与簇外节点进行通信时,根据簇成员表和路由表的信息,通过网关节点与其他簇的簇成员进行通信。
在本发明的描述中,分簇策略划分为分簇形成过程和分簇维护过程两部分,其一是由步骤(2.)完成的节点初始化与分簇形成过程。其主要思想是当节点初始化完成之后,首先等待两秒,如果两秒内收到来自其它簇首的Hello信息,则判断自己是否已经是任一簇的簇成员节点,如果是,则触发申请过程向此簇申请成为网关节点,如果自己未加入任何簇,则申请为此簇的普通成员节点;当两秒内节点没有收到任何簇首的Hello信息,分簇过程被触发,首先判断两跳以内有没有临时簇首节点,如果没有则声明自己为临时簇首节点,临时簇首节点根据收到的各个节点的一跳邻居表汇总为包含簇内所有节点的一跳连接矩阵A
其中aij表示节点i与节点j的信号连接强度。通过对一步连接矩阵进行平方运算求出二跳连接矩阵B
其中wij表示节点i与节点之间的二跳信号连接强度。矩阵B中每一行的元素之和就是此行所对应节点的带权连接度Wi,计算公式如下所示 计算出带权连接度之后选取连接度最大的节点为簇首节点,并将选举结果进行广播。参与此分簇的其他节点根据收到的分簇结果来确定自己的角色,如果被选举为簇首节点,则等待其他节点的申请,并回复注册信息,如果普通成员节点或网关节点,则分别向簇首节点进行注册。
其二是由步骤(3)完成的分簇维护过程。分簇维护阶段可划分为几种不同的情况进行处理第一种情况是当簇首发现有任一节点与其断开两跳连接且路由请求无法到达时,便触发节点离开的维护处理程序,首先设置30秒的缓冲期,如果30秒内节点重新回到簇首控制范围内,则只是更新和此节点相关的路由信息即可,若30秒内无法重新发现此节点,则宣布节点离开簇,并根据节点类型的不同进行相应的簇成员表的更新;第二种情况的触发条件是当簇首发现当簇首节点的连接权值下降到群内连接权值最高的节点的1/3时,满足此条件则触发簇首节点更迭过程,原簇首节点放弃簇首的位置,簇内连接权值最高的节点声明自己为簇首节点,并启动分簇路由信息表更新过程;第三种情况是当两个同向移动的簇中的簇首节点移动到彼此一跳通信范围之内时,比较两个分簇的大小,簇成员数较小的节点放弃簇首资格,簇成员数较大的节点继续保持簇首资格,原有的两个簇间的网关节点更迭身份为现有簇的普通成员节点,已经注销的簇中的原有成员节点,如果在现存簇首节点的两跳通信范围之内,则声明自己为现存簇的成员节点,其他节点则重新开始分簇过程。
权利要求
1.一种基于信号强度的车载Ad hoc网络分簇方法,其特征在于该方法是基于车载Adhoc网络的实际特点考虑汽车行驶方向信息并利用信号强度为权值进行分簇以及簇的维护过程的,本方法含有以下步骤
步骤(1.)节点初始化在每个节点中建立一跳邻居表,记录节点与所有一跳邻居节点的链接关系信息,链接关系信息包括邻居节点ID,本节点与邻居节点连接信号强度;建立分簇信息表,分簇信息表中包括簇内节点ID、节点类型、优先级、连接跳数信息;在临时簇首节点中建立两跳邻居节点连接矩阵,连接矩阵为N*N方阵,N为所有两跳邻居节点的数量,连接矩阵元素记为Wij,Wij表示节点i与节点j的信号连接强度,Wij值为0表示无连接;
步骤(2.)单个节点在表初始化完成之后,按照以下步骤参与分簇的形成
步骤(2.1)节点启动后向周围两跳邻居节点发送包含行驶方向信息的Hello报文,同向行驶邻居节点回应报文,包含链路以及本节点的状态,当发现两跳内节点有已经存在的簇首节点时,则声明加入此群,等待确认;当收到临时簇首声明时,则进入步骤(2.2);既没有发现簇首节点也没有收到临时簇首声明,则跳入步骤(2.3);
步骤(2.2)将本节点的一跳邻居表发给临时簇首节点,进入步骤(2.4);
步骤(2.3)向本节点两跳范围内的节点发出临时簇首声明,收到声明的节点进行步骤(2.2)操作;
步骤(2.4)临时簇首节点将收到的各个节点的一跳邻居连接信息汇总为包含簇内所有节点的一跳连接矩阵,并按照下述方法进行簇首选择通过对一跳连接矩阵进行平方运算求出二跳连接矩阵,矩阵每一行的元素之和就是此行所对应节点的带权连接度,计算出带权连接度之后选取连接度最大的节点为簇首节点,并将选举结果进行广播,收到广播信息的节点判断自己是否是簇首节点,不是则向簇首节点发出注册申请,收到回复信息则成功加入群,当此节点已经是其他群的群成员,则收到广播信息后将自己注册为网关节点,并向邻居节点以及关联簇首节点发送状态信息;最后簇首节点生成簇成员表,并广播给簇内成员,分簇过程完毕;
步骤(3.)在分簇过程完成之后,簇内节点进入分簇维护阶段,分簇维护过程包含新节点加入、节点离开、簇首更迭,网关节点的注册与注销过程,维护过程按照以下步骤进行
步骤(3.1)未加入任何簇的节点首先等待两秒,当两秒内收到来自其它簇首的Hello信息,则判断自己是否已经是任一簇的簇成员节点是,则触发申请过程向此簇申请成为网关节点;当自己未加入任何簇,则申请为此簇的普通成员节点;当两秒内节点没有收到任何簇首的Hello信息,则此节点向周围节点广播请求加入信息,信息中包含节点ID、行驶方向信息,并设置此广播的跳数为两跳,收到广播信息的一般节点以及网关节点负责转发消息,收到广播信息的簇首节点则判断请求加入信息中的行驶方向信息,当与本簇行驶方向相同,则返回确认信息,将此节点加入本簇,并将相关信息保存到分簇信息表中,随后将更新后的分簇信息表进行广播,簇内其它成员收到广播信息后更新自己的分簇信息表相关内容;当与本簇行驶方向不同,则忽略收到的请求;
步骤(3.2)当簇成员节点离开群内任何节点的通信范围,或发生有效路由请求但未能达到的情况下,簇首节点将与此节点相关的状态信息及请求信息暂存30秒,在30秒内仍无法探测到目标节点再次出现,则宣布此成员离开本簇,并在分簇信息表中删除此节点信息,启动分簇信息表广播更新过程;当30秒内收到探测到目标节点再次出现,则维持原有分簇信息;
步骤(3.3)当簇首节点的连接权值下降到簇内连接权值最高的节点的1/3时,启动簇首节点更迭过程,原簇首节点放弃簇首的位置,簇内连接权值最高的节点声明自己为簇首节点,并启动分簇路由信息表更新过程;
步骤(3.4)当两个同向移动的簇中的簇首节点移动到彼此一跳通信范围之内时,比较两个分簇的大小,簇成员数较小的节点放弃簇首资格,簇成员数较大的节点继续保持簇首资格,原有的两个簇间的网关节点更迭身份为现有簇的普通成员节点,已经注销的簇中的原有成员节点,当在现存簇首节点的两跳通信范围之内,则声明自己为现存簇的成员节点,其他节点则重新开始分簇过程;
步骤(3.5)当两个簇之间的所有网关节点均与某一簇首失去联系时,两个簇的簇首节点宣布解除邻居簇关系。
全文摘要
本发明公开了一种基于信号强度的车载Ad hoc网络分簇方法,提供一种从汽车行驶方向信息入手,同向行驶的车辆间参与同簇的形成和维护过程的网络分簇和维护的方法。通过节点初始化后,在同向行驶车辆间建立临时簇首,在临时簇首的两跳范围内,形成邻居连接表,节点连接信号强度权值最大的节点为簇首节点,其余节点为本簇的普通节点或网关节点;维护过程基于汽车的行驶方向信息以及节点连接强度信号。本发明由于考虑了行驶方向信息以及节点连接信号强度,所以在城市交通环境下车载Ad hoc网络分簇结构相对其他方法要稳定,节点更迭次数以及与分簇相关的控制信息数量少,本发明解决了城市交通环境下车载Ad hoc网络性能低下、延长簇的寿命、改善了网络状态。
文档编号H04L12/56GK101207572SQ200710179578
公开日2008年6月25日 申请日期2007年12月14日 优先权日2007年12月14日
发明者安建伟, 米振强, 扬 杨, 周贤伟, 杨裕亮 申请人:北京科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1