本发明涉及无线通信
技术领域:
,尤其是涉及一种结合拓扑维护的分簇时间同步方法。
背景技术:
:无线AdHoc网络是一种有特殊用途的网络,最初起源于美国军事研究领域,它在没有中心基础设施情况下,可以实现多个移动终端临时互联,解决移动通信网络快速搭建的问题。AdHoc网络组网灵活快捷,逐步从军事通信研究发展到民用通信领域,被广泛应用于野外探测,移动目标勘探以及地震水灾后临时通信网络建设等方面。AdHoc网络中的节点可以任意移动,同时无线传播条件不断变化,导致网络节点通信链路也在变化。此外网络节点本身也面临着节点失效与节点加入的情况,这增加了网络拓扑维护与时间同步的难度。AdHoc网络不同于静态传感器网络,其应用场景决定了分布式网络将面临着由于节点运动造成的网络拓扑结构动态变化,这种拓扑结构的变化将直接影响同步效果。网络时间同步是节点与邻居节点时间交互的过程,而网络拓扑的频繁变化将极难保证节点与邻居节点关系,导致同步精度的严重损失,同时波束成形天线的定向特性也使得邻居节点关系发现过程富有难度。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种结合拓扑维护的分簇时间同步方法,具有优秀的同步性能,可以很好解决基于波束成型天线的分簇同步问题,采用簇间同步优先策略可以有效提高同步效率,并且与拓扑维护相结合能很好的适应动态网络拓扑带来的影响。本发明的目的可以通过以下技术方案来实现:一种结合拓扑维护的分簇时间同步方法,该方法包括:选举阶段,系统选择连接性最大节点作为网络根节点;分簇阶段,在网络事件异步且配备定向天线场景下,以网络根节点为起始完成网络分簇,同时完成网络初始同步;同步阶段,通过簇内与簇间同步稳定同步效果;维护阶段,就节点的移动入网与退网分别进行维护策略分析。该方法具体步骤如下:步骤A:选举阶段,选举阶段通过全向发现过程与定向选举过程选择网络中连接性最大的节点作为网络根节点,该网络根节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点;步骤B:定向分簇阶段,网络节点时间异步,同时节点工作在定向模式,此时网络节点需要预先规划收发状态,此时节点以选举阶段根节点为起始,依照分簇规则将网络分成簇状网络,在分簇阶段传输分簇信息的同时会通过传播网络根节点的时钟信息完成网络节点的第一次初始同步;步骤C:时间同步阶段,通过线性回归模型完成簇间节点的时间同步,而簇首节点对簇内节点迭代时间信息,促使簇内节点时间达到分布式一致收敛;通过分布式迭代与线性回归两种同步模型的混合,完成全网节点的时间同步;步骤D:维护阶段,贯穿于整个网络,其维护包括两个方面,一是针对于节点移动的动态拓扑维护,包括节点的移动,入网以及退网三种状态;二是针对于时间同步的维护,周期性地传播同步信息以便维护时间同步的效果。所述的步骤A具体包括以下子步骤:步骤A1:全向发现,在全向发现过程中,波束成形天线工作于全向模式,通过天线的DOA估计建立邻居节点的位置信息;全向过程假设节点周围邻居节点较分散,不存在多个节点位于同一节点的同一波束方向,否则将影响DOA估计的准确性;当网络对邻居节点方向发现比例超过阈值时,此时发现过程结束,节点保存邻居节点方向信息;步骤A2:定向发现,定向发现过程刚开始时,由于网络节点异步,节点之间的时隙不一定对齐,因此不同节点负责维护自身周期与时隙;节点在每个周期开始时独立选择收发状态,发送状态节点从全向发现过程保存的邻居方向信息表中随机选择方向,并在一周期内保持方向不变,每个时隙持续发送选举数据包;由于节点间时隙不对齐,接收状态节点分别于所有接收方向停留至少超过一个时隙才可确保接收数据包,设定接收状态节点在每个接收方向停留两个时隙;发送状态节点一段时间后进入接收时隙,而此时接收状态节点将切换至发送时隙快速回复应答数据包,因此一周期内节点通信可完成收发两次交互,接收状态节点应答的数据包包含根节点选举信息。所述的定向发现选举出根节点,即节点解析选举数据包,根据以下规则更新根节点ID、根节点度数以及时间戳信息;Step1.只有当选举数据包中的时间戳快于本地保存的时间戳时才更新时间戳信息;Step2.只有当选举数据包中的根节点度数大于本地保存的根节点度数,或者两者度数相同,选举数据包中根节点的ID更小的情况下才更新节点本身的根节点ID与根节点度数信息;该根节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点。所述的分簇规则采用的是3hBAC-B(3-hopBetweenAdjacentClusterheadersUsingBeamformingantennas)算法,有效解决定向异步模式下的网络分簇。所述的步骤B具体包括以下子步骤:步骤B1:开始时,分簇阶段对节点分别定义{Init,Head,Member,Guest,Competition}五种层级,其中Init层级表示节点初始状态,未被分配任何层级;Head表示簇首节点;Member表示与簇首节点相邻的簇成员节点;Guest表示与簇成员节点相邻的临时节点;Competition表示处于竞争簇首节点的状态。节点被安排层级的同时会被分配三种分簇状态,分别是{UNSET,PENDING,SET},其中UNSET为初始化时未设置状态,PENDING状态为节点不知道自己是什么层级,处于暂定状态,SET状态为节点已定义某种层级,已确定状态,所有节点在初始化时被定义为Init等级与UNSET状态,接下来开始分簇流程;步骤B2:网络在选举阶段已找到网络连接性最大的节点,网络节点同时保存自身邻居节点方向信息与度数信息,参考节点首先被定义为簇首节点,簇首节点将节点等级设置为Head,状态设置为SET;簇首节点工作在接收模式,其他的Init节点工作在发送模式;处于发送模式的节点从邻居节点方向信息表中随机一个方向作为发送方向发送分簇数据包,分簇数据包格式包括,分簇数据包标识Cluster、发送节点ID与度数、发送节点的时间信息、以及发送节点还有R时隙进入接收时隙;簇首节点在T2时刻接收发送节点的分簇数据包,将其在邻居信息表中置为成员节点,并在T3时刻快速应答数据包,应答数据包格式包括应答数据包标识Reply、回复节点ID、回复源节点的层级、以及该节点接收选举数据包和回复应答数据包时刻信息;步骤B3:接收节点接收并解析应答数据包,获悉簇首节点ID,知道自己属于哪个簇,若层级表示Head即为簇首节点回复的数据包,接收节点在T4时刻收到应答数据包,更新本地时间从而与簇首节点同步,同时将自身标识为簇成员节点,状态更新为SET状态,并进入接收模式;经过一段时间上述过程后,凡是层级不为Init的节点都已经至少与簇首节点完成一次同步,因此它们作为时间参考节点传播时间同步消息;步骤B4:簇成员节点进入接收模式后,网络中其他Init节点仍处于发送模式,这些节点在与成员节点通信成功后,将成员节点ID保存至分簇节点信息表中,并将自己标识为Guest节点,Guest节点随机选择收发状态,即以概率pT选择发送状态,以(1-pT)的概率选择接收状态;由于与成员节点相邻的节点不一定是Guest节点,也有可能是其他簇的成员节点,因此将该节点设置为PENDING状态,轮询一段时间确定其真实层级;网络依据当前分簇信息,选择下一个簇首节点,簇首节点需要满足两个条件:该节点为UNSET节点且该节点与Guest节点相邻,下个簇首节点是候选节点中度数最大的节点,若同时有两个候选节点度数相同,则选择ID更小的节点为本次分簇的簇首节点;与Guest相邻的节点被选为簇首节点的候选节点,设置PENDING状态,在网络中传播分簇信息,若候选节点在一定周期后仍然是簇首节点,则将其状态更新为SET,并以此簇首节点等级为基准修改簇内节点等级,一直重复此过程直到网络中找不到簇首节点为止;步骤B5:Guest节点随机选择收发模式,所有未设置状态的节点与Guest节点通信后将自身标识为PENDING状态,表示其不确定自身被设置为何种状态;PENDING状态的节点在每个周期内随机选择收发模式,PENDING状态节点只与PEDNING状态节点通信;处于PENDING状态的所有层级为Init的节点中度最大的节点将自身设置为Head等级,若在指定周期内其层级未被改变,则更新为SET状态,此时下一个簇首节点已经被确定了,其余节点以此节点为基准安排自身状态,当Guest节点一跳范围内存在簇首节点时,Guest节点升级为成员节点;步骤B6:分簇阶段完成后,节点都以各自的身份加入相应的簇,整个分簇网络构建完成。所述的步骤C具体包括以下子步骤:步骤C1:簇间同步,在分簇完成后每个簇存在一个簇首节点,簇间同步过程从根节点开始,根节点与簇内所有网关节点依照线性回归模式即公式(1-6)完成同步,簇内网关成员节点与簇首节点完成同步后,向其他簇的网关节点传播同步信息,其他簇内网关节点同样依照线性回归模式同步,再与该簇簇首节点同步,从而完成不同簇间的簇首节点同步;假设已同步簇的成员节点为A,未同步簇的成员节点为B,依照分簇算法,相邻两个簇的簇首节点至少相隔两跳的距离,因此相邻的簇首节点只可以借助网关节点通信;节点A向节点B发送同步消息,节点B根据节点A的时间信息,利用线性回归模型估计出节点A的时钟参数,依照公式(1-6)更新自身时钟参数;节点B利用A的时间信息同步后,在向B节点所在簇的簇首节点发送时间信息,该簇首节点依照节点B的时间信息完成同步,因此相邻簇节点同步依靠线性回归模型实现,簇首节点与网关节点完成同步过程与此相同;步骤C2:簇内同步,只有当该簇的网关节点将同步消息扩散完成后簇首节点才发布簇内同步消息,簇内同步过程中节点发送相同格式数据包,同步数据包包含源节点ID,所在簇的簇首节点ID,源节点的等级,节点虚拟时钟节点虚时钟频率偏移以及虚时钟时偏补偿参数簇首节点向簇成员节点发送同步信息,所有簇成员节点接收后向簇首节点发送同步数据包,簇首节点接收所有节点的同步数据包后,依据数据包中的内容可计算簇内节点频率补偿参数平均值其中Nh表示簇成员节点个数,i表示成员节点编号,是指节点i的虚时钟频偏补偿参数,αhi是簇首节点h与簇成员节点i的相对频偏,可依照公式(1-2)计算:其中αj(k+1)、αi(k+1)指节点j和i的第k+1个采集点的虚时钟频率偏移,Tj(k+1)、Ti(k+1)代表节点j和i的第k+1个采集时间;簇首节点计算出邻居节点频率补偿参数的平均值,按照公式(1-3)更新本地补偿参数其中ρv是虚时钟频偏调整因子,指簇首节点h在第k个采集点的频率补偿参数平均值;节点调整频率偏移的同时也调整时间偏移,簇首节点依据成员节点发送的节点时间计算簇内成员节点时间平均值其中为定义的网络节点i的虚拟时钟;基于簇内节点时间的平均值,簇首节点依据公式(1-5)更新虚时钟时偏补偿参数其中ρs是虚时钟时偏调整因子,指在第k个采集点的节点时间平均值,指第k个采集点的虚拟时钟;簇首节点更新频率与偏移补偿参数,向成员节点传播簇首节点虚时钟补偿参数与时间戳,成员节点按照公式(1-6)(1-7)更新频率补偿参数以及时间补偿参数:其中αih=1/αhi是节点i与节点j的相对频偏,ρ∈[0,1]和ρ′∈[0,1]是虚时钟调整因子,簇首节点与成员节点分别通过公式(1-3)(1-5)和公式(1-6)(1-7)更新时钟补偿参数,最终可以达到簇内节点时间一致性收敛。所述的步骤D具体包括以下子步骤:步骤D1:节点主动退网,簇内节点退网包含簇首节点与非簇首节点退网,Guest节点请求主动退网时,向管理它的成员节点发送退网申请,成员节点将其从邻居节点信息表中删除,成员节点请求主动退网时,向该簇的头节点发送退网申请,簇首节点将其从邻居节点信息表中删除,并向簇内其他节点发布该节点退网信息;若簇首节点主动申请退网,其将向其成员节点发布退网通知,其成员节点收到退网通知后,选择附近的簇以Guest身份加入;若成员节点不能以Guest身份加入,则声明为Init层级,等待一定周期后再加入附近簇,至此,簇首节点完成主动退网操作;步骤D2:节点被动退网,网络节点由于失效和被毁导致无法通知其周围节点退网消息就已经离开网络,此过程需充分利用TM-MAC协议中邻居节点发现阶段,检测簇内节点的运动情况,当节点在邻居节点发现阶段没有搜索到某邻居节点信息,无法知道该节点是移动出簇还是失效退网,此时按照节点移动维护方案维护网络分簇状态,从邻居方向信息表中删除该节点;步骤D3:新节点入网,指新节点主动发送申请消息加入网络,网络中的节点接收到该节点的入网请求后与该节点完成一次时间同步,新节点完成同步后加入网络;当新节点加入网络时,网络属于同步状态,而该节点时间与网络时间异步,此时需要修改TM-MAC协议,在TM-MAC协议中增加新节点接入帧,每隔一定周期进入接入帧,接入帧与普通帧结构相同,唯一的不同在于接入帧会增加两个子时隙用于新节点接入;在原有的TM-MAC协议的搜索阶段中,包含OT、SRTS与SCTS子时隙用于邻居节点发现,其中OT子时隙时节点工作在全向模式,节点随机选择收发状态广播训练序列,接收到训练序列的节点根据DOA估计邻居节点方向,当节点估计到邻居节点方向后更新邻居节点方向信息表;在SRTS子时隙,此时节点工作在定向模式,节点以pT的概率随机从邻居节点方向信息表中选择一个方向发送SRTS数据包,以(1-pT)的概率随机选择邻居节点方向信息表中的一个方向进行接收;若此时一对节点同时处于收发状态,则邻居节点之间可以建立连接,若接收节点收到多个数据包,将发生碰撞,此时隙发现失败;在SCTS时隙中,节点同样工作在定向模式,此时上一子时隙中处于发送状态的节点切换为接收状态,接收状态的节点切换为发送状态,并且保持方向不变,在上一子时隙成功收到SRTS数据包的节点向相应的节点回复SCTS信息;如果节点A收到节点B的SCTS的信息,则认为邻居节点发现成功,通过SRTS/SCTS的二次握手可以检测到发现过程中的冲突问题,如果产生冲突,则此次发现失败,需要进行下一次的发现;在TM-MAC协议中增加OL与SYNC子时隙,其中OL子时隙时新入网节点处于全网侦听阶段,其余节点在每个时隙随机选择全向收发状态,当一个节点在某个周期内处于发送状态发送训练序列后,其后两个时隙将处于全向接收状态,当新入网节点接收到训练序列时,其知道周围存在已经入网的节点,由于已入网节点将会在两个时隙后进入接收模式,因此新入网节点在接收训练序列后通过DOA估计估计接收发送并在其后两个周期向四周全向广播训练序列,已入网节点接收到新入网节点的训练序列后,通过DOA估计估计该方向,加入该节点的入网方向信息表;等到系统进入至SYNC子时隙时,这个子时隙是用来定向发现新入网节点并与之完成一次同步,此时已入网处于接收模式,对入网方向信息表每个邻居节点方向轮询扫描两个时隙,新入网节点随机选择周围一个节点处于发送模式持续发送数据包,此时已入网节点可以与新入网节点通过双向模式完成一次同步,新节点即可加入网络中并可以运行同步MAC协议;步骤D4:节点本身属于网络,但是由于节点的移动性导致节点暂时脱离网络一段时间后重新移动到网络内,此时可通过邻居节点发现阶段发现该节点加入网络,节点运行的帧格式与网络帧格式相同,TM-MAC在邻居节点发现阶段发现该节点后,该节点向周围节点发送入网请求,有节点接收该请求信息后,同意该节点入网申请。与现有技术相比,本发明很好地解决了基于波束成型天线的分簇同步问题,实现了同步算法可以很好的适应动态拓扑下的网络同步。附图说明图1为分簇数据包数据格式示意图;图2为应答数据包数据格式示意图;图3为簇首节点竞争示意图;图4为网络分簇结果示意图;图5为搜索阶段的子时隙图;图6为分簇阶段同步完成后同步误差图;图7为同步阶段不同策略时间对比图;图8为同步阶段完成后网络同步误差图;图9为不同同步方式随时间增加的稳定性对比图;图10为邻居节点发现比率与SRTS时隙数目的关系图;图11为维护阶段通信开销对比图;图12为入网全向侦听阶段时隙与入网成功概率的关系图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。本发明提出一种结合拓扑维护的分簇分布式时间同步方案,该方案在普通同步算法的基础上,增加了定向异步分簇与拓扑维护的功能,通过分簇同步算法提高同步效率,增加同步维护的周期长度,并通过维护规则维持网络拓扑结构与同步稳定性,可以大大提高节点的同步精度与同步周期,适应拓扑变化。本发明是根据以下技术方案实现的:步骤A:选举阶段。选举阶段通过全向发现过程与定向选举过程选择网络中连接性最大的节点作为网络根节点,该节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点,由于分簇算法不是按照层级方式同步,所以不需要在选举阶段构建层级结构。步骤B:定向分簇阶段。网络节点时间异步,同时节点工作在定向模式,此时网络节点需要预先规划收发状态。此时节点以选举阶段根节点为起始,依照分簇规则将网络分成簇状网络。分簇规则采用的是3hBAC分簇算法,该算法通过引入Guest状态节点扩大了分簇半径,并且对拓扑变化具有良好的适应性。但是该算法并不能直接应用于配备波束成形天线的AdHoc网络,本章对该算法进行了优化,提出了一种3hBAC-B(3-hopBetweenAdjacentClusterheadersUsingBeamformingantennas)算法,可以有效解决定向异步模式下的网络分簇。我们在分簇阶段传输分簇信息的同时会通过传播网络根节点的时钟信息完成网络节点的第一次初始同步。步骤C:时间同步阶段。网络已经被分成簇状结构,且节点之间都已至少与参考节点完成一次时间同步。此时网络可以认为已经同步,但是同步状态不稳定,随着时间增加将会逐渐变成不同步的状态。此时簇间节点之间,由于簇首节点不直接相邻,此时通过线性回归模型完成簇间节点的时间同步。而簇首节点对簇内节点迭代时间信息,促使簇内节点时间达到分布式一致收敛。通过分布式迭代与线性回归两种同步模型的混合,完成全网节点的时间同步。步骤D:维护阶段,贯穿于整个网络。其维护主要是两个方面,一是针对于节点移动的动态拓扑维护,这里主要考虑节点的移动,入网以及退网三种状态;二是针对于时间同步的维护,虽然在时间同步阶段完成了时间同步,但是由于同步阶段完成的同步仍然会随着时间的增加而导致同步效果变差的问题,因此我们仍然需要周期性的传播同步信息维护时间同步的效果。所述的步骤A:选举阶段,包括如下步骤:步骤A1:全向发现。在全向发现过程中,波束成形天线工作于全向模式,通过智能天线的DOA估计建立邻居节点的位置信息。全向过程假设节点周围邻居节点较分散,不存在多个节点位于同一节点的同一波束方向,否则将影响DOA估计的准确性。当网络对邻居节点方向发现比例超过阈值时,此时发现过程结束,节点保存邻居节点方向信息。步骤A2:定向发现。定向发现过程刚开始时,由于网络节点异步,节点之间的时隙不一定对齐,因此不同节点负责维护自身周期与时隙。节点在每个周期开始时独立选择收发状态,发送状态节点从全向发现过程保存的邻居方向信息表中随机选择方向,并在一周期内保持方向不变,每个时隙持续发送选举数据包。由于节点间时隙不对齐,接收状态节点分别于所有接收方向停留至少超过一个时隙才可确保接收数据包,因此本算法中,设定接收状态节点在每个接收方向停留两个时隙。发送状态节点一段时间后进入接收时隙,而此时接收状态节点将切换至发送时隙快速回复应答数据包,因此一周期内节点通信可完成收发两次交互。接收状态节点应答的数据包包含根节点选举信息。定向发现过程需要选举出根节点,即节点解析选举数据包,根据以下规则更新根节点ID、根节点度数以及时间戳信息。Step1.只有当选举数据包中的时间戳快于本地保存的时间戳时才更新时间戳信息;Step2.只有当选举数据包中的根节点度数大于本地保存的根节点度数,或者两者度数相同,选举数据包中根节点的ID更小的情况下才更新节点本身的根节点ID与根节点度数信息;该根节点将作为下一个阶段中分簇初始节点,同时也是网络时间参考节点,由于分簇算法不是按照层级方式同步,所以不需要在选举阶段构建层级结构。所述的步骤B:分簇阶段,包括如下步骤:步骤B1:开始时,分簇阶段对节点分别定义{Init,Head,Member,Guest,Competition}五种层级,其中Init层级表示节点初始状态,未被分配任何层级;Head表示簇首节点;Member表示与簇首节点相邻的簇成员节点;Guest表示与簇成员节点相邻的临时节点;Competition表示处于竞争簇首节点的状态。节点被安排层级的同时会被分配三种分簇状态,分别是{UNSET,PENDING,SET},其中UNSET为初始化时未设置状态,PENDING状态为节点不知道自己是什么层级,处于暂定状态,SET状态为节点已定义某种层级,已确定状态。所有节点在初始化时被定义为Init等级与UNSET状态,接下来开始分簇流程。步骤B2:网络在选举阶段已找到网络连接性最大的节点,网络节点同时保存自身邻居节点方向信息与度数信息。参考节点首先被定义为簇首节点,簇首节点将节点等级设置为Head,状态设置为SET。簇首节点工作在接收模式,其他的Init节点工作在发送模式。处于发送模式的节点从邻居节点方向信息表中随机一个方向作为发送方向发送分簇数据包,分簇数据包格式如图1所示,Cluster表示分簇数据包标识,分别包含发送节点ID与度数,发送节点的时间信息,以及发送节点还有R时隙进入接收时隙。簇首节点在T2时刻接收发送节点的分簇数据包,将其在邻居信息表中置为成员节点,并在T3时刻快速应答数据包,应答数据包格式如图2所示,Reply表示应答数据包标识。应答数据包包含回复节点ID,回复源节点的层级,以及该节点接收选举数据包和回复应答数据包时刻信息。步骤B3:接收节点接收解析应答数据包,获悉簇首节点ID,知道自己属于哪个簇。若层级表示Head即为簇首节点回复的数据包。接收节点在T4时刻收到应答数据包,按照公式更新本地时间从而与簇首节点同步,同时将自身标识为簇成员节点,状态更新为SET状态,并进入接收模式。经过一段时间上述过程后,凡是层级不为Init的节点都已经至少与簇首节点完成一次同步,因此它们可以作为时间参考节点传播时间同步消息。步骤B4:簇成员节点进入接收模式后,网络中其他Init节点仍处于发送模式。这些节点在与成员节点通信成功后,将成员节点ID保存至分簇节点信息表中,并将自己标识为Guest节点。Guest节点随机选择收发状态,即以概率pT选择发送状态,以(1-pT)的概率选择接收状态。由于与成员节点相邻的节点不一定是Guest节点,也有可能是其他簇的成员节点,因此将该节点设置为PENDING状态,轮询一段时间确定其真实层级。网络依据当前分簇信息,选择下一个簇首节点,簇首节点需要满足两个条件:该节点为UNSET节点且该节点与Guest节点相邻。下个簇首节点是候选节点中度数最大的节点,若同时有两个候选节点度数相同,则选择ID更小的节点为本次分簇的簇首节点。与Guest相邻的节点被选为簇首节点的候选节点,设置PENDING状态,在网络中传播分簇信息。若候选节点在一定周期后仍然是簇首节点,则将其状态更新为SET,并以此簇首节点等级为基准修改簇内节点等级,一直重复此过程直到网络中找不到簇首节点为止。步骤B5:Guest节点随机选择收发模式,所有未设置状态的节点与Guest节点通信后将自身标识为PENDING状态,表示其不确定自身未确定被设置为何种状态。PENDING状态的节点在每个周期内随机选择收发模式,PENDING状态节点只与PEDNING状态节点通信。如图3所示,节点12与节点13为PENDING状态的Init节点,表示不确定自身状态,只有当状态为SET时才确定自身是否为簇首节点。处于PENDING状态的所有层级为Init的节点中度最大的节点将自身设置为Head等级,若在指定周期内其层级未被改变,则更新为SET状态,此时下一个簇首节点已经被确定了,其余节点以此节点为基准安排自身状态。当Guest节点一跳范围内存在簇首节点时,Guest节点升级为成员节点。如图3所示,节点5与节点6都是SET状态节点,节点9,10以及11都是PENDING状态节点,节点12和节点13为PENDING状态的候选节点。当一定周期的分簇交互后,节点12由于其度数大ID较小变为簇首节点,其余按照节点12修改层级与状态。步骤B6:分簇阶段完成后,节点都以各自的身份加入相应的簇,整个分簇网络构建完成。图4为典型的分簇网络,从图中可以看出,两个簇首节点之间至少相隔3跳距离,Guest节点只能加入一个成员节点所在的簇内,若一个Guest节点与多个成员节点相连,随机选择一个成员节点接入即可。所述的步骤C:同步阶段,包括如下步骤:步骤C1:簇间同步。在分簇完成后每个簇存在一个簇首节点,簇间同步过程从根节点开始,根节点与簇内所有网关节点依照线性回归模式即公式(1-6)完成同步,簇内网关成员节点与簇首节点完成同步后,向其他簇的网关节点传播同步信息,其他簇内网关节点同样依照线性回归模式同步,再与该簇簇首节点同步,从而完成不同簇间的簇首节点同步。这里假设已同步簇的成员节点为A,未同步簇的成员节点为B,依照分簇算法,相邻两个簇的簇首节点至少相隔两跳的距离,因此相邻的簇首节点只可以借助网关节点通信。节点A向节点B发送同步消息,节点B根据节点A的时间信息,利用线性回归模型估计出节点A的时钟参数,依照公式(1-6)更新自身时钟参数。节点B利用A的时间信息同步后,在向B节点所在簇的簇首节点发送时间信息,该簇首节点依照节点B的时间信息完成同步。因此相邻簇节点同步依靠线性回归模型实现。簇首节点与网关节点完成同步过程与此相同。步骤C2:簇内同步。只有当该簇的网关节点将同步消息扩散完成后簇首节点才可以发布簇内同步消息,簇内同步过程中节点发送相同格式数据包,同步数据包包含源节点ID,所在簇的簇首节点ID,源节点的等级(如member层级),节点虚拟时钟节点虚时钟频偏补偿参数以及虚时钟频偏补偿参数簇首节点向簇成员节点发送同步信息,所有簇成员节点接收后向簇首节点发送同步数据包,簇首节点接收所有节点的同步数据包后,依据数据包中的内容可计算簇内节点频率补偿参数平均值:其中Nh表示簇成员节点个数,i表示成员节点编号。αhi是簇首节点h与簇成员节点i的相对频偏,可依照公式(1-2)计算:簇首节点计算出邻居节点频率补偿参数的平均值,按照公式(1-3)更新本地补偿参数:节点调整频率偏移的同时也调整时间偏移,簇首节点依据成员节点发送的节点时间计算簇内成员节点时间平均值:基于簇内节点时间的平均值,簇首节点依据公式(1-5)更新虚时钟时偏补偿参数:簇首节点更新频率与偏移补偿参数,向成员节点传播簇首节点虚时钟补偿参数与时间戳,成员节点按照公式(1-6)(1-7)更新频率补偿参数以及时间补偿参数:其中αih=1/αhi是节点i与节点j的相对频偏,ρ∈[0,1]和ρ′∈[0,1]是虚时钟调整因子。簇首节点与成员节点分别通过公式(1-3)(1-5)和公式(1-6)(1-7)更新时钟补偿参数,最终可以达到簇内节点时间一致性收敛。所述的步骤D:维护阶段,包括如下步骤:步骤D1:节点主动退网。簇内节点退网包含簇首节点与非簇首节点退网。Guest节点请求主动退网时,向管理它的成员节点发送退网申请,成员节点将其从邻居节点信息表中删除。成员节点请求主动退网时,向该簇的头节点发送退网申请,簇首节点将其从邻居节点信息表中删除,并向簇内其他节点发布该节点退网信息。若簇首节点主动申请退网,其将向其成员节点发布退网通知,其成员节点收到退网通知后,选择附近的簇以Guest身份加入。若成员节点不能以Guest身份加入,则声明为Init层级,等待一定周期后再加入附近簇。至此,簇首节点完成主动退网操作。步骤D2:节点被动退网。网络节点由于失效和被毁等原因导致无法通知其周围节点退网消息就已经离开网络,此过程需充分利用TM-MAC协议中邻居节点发现阶段,检测簇内节点的运动情况。当节点在邻居节点发现阶段没有搜索到某邻居节点信息,无法知道该节点是移动出簇还是失效退网,此时按照上文所述的节点移动维护方案维护网络分簇状态,从邻居方向信息表中删除该节点。步骤D3:新节点入网。指新节点主动发送申请消息加入网络,网络中的节点接收到该节点的入网请求后与该节点完成一次时间同步,新节点完成同步后加入网络。当新节点加入网络时,网络属于同步状态,而该节点时间与网络时间异步。此时需要修改TM-MAC协议,在TM-MAC协议中增加新节点接入帧,每隔一定周期进入接入帧,接入帧与普通帧结构相同,唯一的不同在于接入帧会增加两个子时隙用于新节点接入。因此新节点接入帧的邻居节点发现阶段的时隙如图5所示。在原有的TM-MAC协议的搜索阶段中,包含OT,SRTS与SCTS子时隙用于邻居节点发现,其中OT子时隙时节点工作在全向模式,节点随机选择收发状态广播训练序列,接收到训练序列的节点根据DOA估计邻居节点方向,当节点估计到邻居节点方向后更新邻居节点方向信息表。在SRTS子时隙,此时节点工作在定向模式,节点以pT的概率随机从邻居节点方向信息表中选择一个方向发送SRTS数据包,以1-pT的概率随机选择邻居节点方向信息表中的一个方向进行接收。若此时一对节点同时处于收发状态,则邻居节点之间可以建立连接,若接收节点收到多个数据包,将发生碰撞,此时隙发现失败。在SCTS时隙中,节点同样工作在定向模式,此时上一子时隙中处于发送状态的节点切换为接收状态,接收状态的节点切换为发送状态,并且保持方向不变。在上一子时隙成功收到SRTS数据包的节点向相应的节点回复SCTS信息。如果节点A收到节点B的SCTS的信息,则认为邻居节点发现成功,通过SRTS/SCTS的二次握手可以检测到发现过程中的冲突问题。如果产生冲突,则此次发现失败,需要进行下一次的发现。在TM-MAC协议中增加OL与SYNC子时隙,其中OL子时隙时新入网节点处于全网侦听阶段,其余节点在每个时隙随机选择全向收发状态,当一个节点在某个周期内处于发送状态发送训练序列后,其后两个时隙将处于全向接收状态。当新入网节点接收到训练序列时,其知道周围存在已经入网的节点。由于已入网节点将会在两个时隙后进入接收模式,因此新入网节点在接收训练序列后通过DOA估计估计接收发送并在其后两个周期向四周全向广播训练序列。已入网节点接收到新入网节点的训练序列后,通过DOA估计估计该方向,加入该节点的入网方向信息表。等到系统进入至SYNC子时隙时,这个子时隙是用来定向发现新入网节点并与之完成一次同步。此时已入网处于接收模式,对入网方向信息表每个邻居节点方向轮询扫描两个时隙,新入网节点随机选择周围一个节点处于发送模式持续发送数据包。此时已入网节点可以与新入网节点通过双向模式完成一次同步,新节点即可加入网络中并可以运行同步MAC协议。步骤D4:节点本身属于网络,但是由于节点的移动性导致节点暂时脱离网络一段时间后重新移动到网络内,此时可通过邻居节点发现阶段发现该节点加入网络,节点运行的帧格式与网络帧格式相同。TM-MAC在邻居节点发现阶段发现该节点后,该节点向周围节点发送入网请求,有节点接收该请求信息后,同意该节点入网申请。具体实施例仿真环境使用TheOne网路模拟器(TheOpportunisticNetworkEnvironmentsimulator),ONE模拟是有阿尔托大学以及慕尼黑工业大学负责开发维护并提供开源。ONE模拟器由Java语言开发,基于离散时间模拟引擎,模拟时引擎会负责更新模块从而实现仿真功能。它的功能包含移动网络的动态模型、节点之间的路由与通信、通过GUI界面显示网络中节点的通信传输状态等。此外ONE模拟器可以导入现实场景的移动数据并产生移动报告。仿真网络规模为10个节点到50个节点,节点随机排布,仿真中节点的时钟晶振频率依然是1ppm,节点时间模型为近似线性,即每个时隙的频率漂移都不是固定的,具体仿真参数如表1所示。表1仿真参数设置仿真参数参数值节点数目10to50仿真场景大小20*20(km*km)节点覆盖距离500m网络数据率2Mbps波束成形天线角度5度节点移动速率vmax10m/s节点故障间隔时间期望50sec节点在全向模式选择发送概率0.2节点在定向模式选择发送概率0.5首先对分簇阶段的算法性能进行仿真,验证了分簇算法在定向异步条件下的表现,以及分簇阶段完成同步的同步进度,此外本小节对分簇结束后的不同簇结构的同步开销进行了理论分析并仿真了不同簇数目对同步阶段同步开销的影响。接着对同步阶段的同步性能与通信开销进行了仿真验证,分别仿真了簇间同步优先策略与簇内同步优先策略完成同步所需时间与精度,验证了同步阶段算法的适应性,同时可以明显提高同步效率。(1):分簇阶段仿真分析,网络中所有节点都至少与参考节点完成一次同步,所以此时网络中已经完成初始同步,此时同步误差可如图6所示,经过分簇阶段的初始同步,网络节点最坏误差维持在10μs以下,可见分簇阶段的同步效果还是较好的。随着网络规模的增大,节点之间的最坏误差也在增加,这也正如上一章所分析的那样,成对双向同步随着跳数的增加,同步误差也会累计造成同步效果变差。图7仿真了簇间同步优先策略与簇内同步策略完成节点同步所需要的时间,可以看出簇间优先同步策略具有更高的效率。这是由于先簇间同步后,各个簇首节点可以并行迭代簇内节点完成同步;而先进行簇内同步时,需要前一个簇内节点完全同步后才可往后面簇串行同步,因此簇间同步优先策略的效率高于簇内同步优先策略。随着网络规模增加,簇间优先策略的同步精度优势则愈发明显。同步阶段主要是维护同步效果,其同步误差如图8所示,图中可以看出,经过同步阶段后,网络节点同步误差精度依旧保持在μs级别,仿真分别比较了簇间同步优先与簇内同步优先策略的误差对比,簇间优先同步策略先将网络所有簇首节点同步再在各个簇内迭代时间完成同步,其同步效率高;而簇内同步优先策略的效率较低,完成全网时间同步需要时间更长。但是网络节点对时间是敏感的,耗费的时间越长将带来更大的同步误差。因此从总体来看簇间同步优先策略的同步误差比簇内同步优先策略的同步误差要小。本实例仿真了分簇阶段的成对双向同步方式,簇间同步优先同步方式与簇内同步优先同步方式随着时间增加的稳定性效果,结果如图9所示,可以看出随着时间的增大,仅仅采用双向同步方式同步稳定性极差,随着时间增加同步误差迅速增加,而在同步阶段增加迭代后的稳定性效果明显更好。同时随着时间增加,簇间同步优先策略的同步方式稳定性更优,因此本发明选择先簇间节点同步再簇内迭代时间的方式稳定网络同步。图10仿真了SRTS阶段时隙数目与邻居节点发现比率之间的关系,邻居节点发现比率指该周期内成功发现的邻居节点个数与总的邻居节点个数的比率。由于SRTS与SCTS阶段的时隙是相同的,我们通过逐步增加SRTS的时隙数目,分析邻居节点发现情况。从仿真结果可以看出总体趋势是随着时隙数的增加,邻居节点发现成功的比率是增加的,同时随着节点移动速率的增加,网络拓扑动态变化,发现的比率会不断降低。可以看出本发明的MAC协议可以在每一帧内发现新的邻居节点关系,从而适应动态拓扑的变化。图11分别仿真了维护阶段中网络规模与通信开销的关系,由于在维护阶段主要的工作是进行新的邻居节点关系发现,假设网络规模为N,节点选择发送的概率为pT,则每个时隙都有NpT个节点处于发送状态,则整个过程的通信开销为NpTt,因此网络的开销仅与发现阶段的时隙数与网络规模有关,与节点的运动状态没有关系。当有节点加入网络时,由于本方案中在TM-MAC协议中增加节点入网侦测子时隙,所以节点的入网时延实际上就是节点入网侦测子时隙的长度。本发明仿真了新节点入网时其邻居节点个数不同时,节点成功入网的概率与入网侦测子时隙的关系,如图12所示。图中仿真了在入网全向阶段中,不同的时隙对节点入网造成的影响,仿真的节点个数为10个,仿真次数为10000次,分别测试了节点入网时邻居节点个数为1,2以及3的时候的成功概率,从图中可以看出节点从网络边缘入网时入网成功率最高,因为此时冲突最少。此外随着全向侦听子时隙的时隙数增多,入网的成功概率明显增加,当达到一个阈值时,入网成功概率将保持100%。而节点入网时延Tdelay的值即为:Tdelay=TOT+TSRTS+TSCTS+TOL+Tsync综上所述,本发明提出的算法可以很好解决基于波束成型天线的分簇同步问题,采用簇间同步优先策略可以有效提高同步效率,并且与拓扑维护相结合适应动态网络拓扑变化。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域:
的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。当前第1页1 2 3