一种水下无线多跳网络拓扑发现方法技术

技术编号:20165181 阅读:27 留言:0更新日期:2019-01-19 00:18
本发明专利技术提供了一种水下无线多跳网络拓扑发现方法,使全网络节点在自主分配节点ID的同时,能够以低的时延和开销完成拓扑发现,每个节点获得其自身ID和网络中的所有相关链路信息。本发明专利技术自主分配节点ID的拓扑发现方法解决了网络拓扑发现过程中存在的布放之前要确定好节点ID的问题,有效避免了获取完整拓扑信息开销大的问题,能够在网络随机布放后快速完成网络的建立,为网络后续正常工作提供基础,方法简单有效,操作实施简单,具有可实施性,具有较低的开销和能耗,有利于延长整个网络的生存期。

【技术实现步骤摘要】
一种水下无线多跳网络拓扑发现方法
本专利技术涉及自组织无线传感器网络
,尤其是一种水下网络拓扑发现方法,适合于水声多跳网络各种无线自组织传感器网络系统。
技术介绍
网络拓扑发现是水声多跳网络的支撑技术之一。对于水声多跳网络,在网络部署的初始阶段,将传感器节点随机布放于待检测区域,当节点布置完毕后,除了自身的信息外,对周围相邻节点的信息毫无所知,此时网络处于无结构状态,在这种情况下,网络无法进行信息采集与处理,因此需要进行网络拓扑发现过程,形成最初的网络结构,使得网络MAC(MediaAccessControl媒体访问控制)层协议能在初始结构下很快搭建,从而网络能够运行。有效的网络拓扑发现方法有利于形成良好的最初网络拓扑结构,不仅能够提高路由协议和MAC层协议的效率,为数据融合、时间同步和目标定位等任务的实现提供网络基础,而且可以延长整个网络的使用时间,对网络运行有至关重要的作用。现已提出的水下网络拓扑发现方法大致可分为两类:基于分布式网络拓扑发现和基于分层式网络拓扑发现。基于分布式网络拓扑发现,RobertoPetroccia提出一种自主分配节点ID(IDentity)的DIVE(distributedIDassignmentandtopologydiscovery分布式地址分配和拓扑发现)方法,该方法将节点布放下去,节点自主产生随机数作为该节点的ID,之后各节点根据本地计时器时间开始广播发现邻居节点HELLO包,生成全网拓扑信息后结束拓扑发现过程,进入后台运行状态。这种方法节点ID自主分配,但是完成拓扑发现的开销较大,而且全网节点自主随机开始广播HELLO分组大大增加了碰撞概率。基于分层式网络拓扑发现,AshishPatil提出通过一个种子节点A发送HELLO包,从反馈回来的数据中选择出B节点为第二个种子节点并告知B节点,之后B节点作为种子节点广播HELLO包,若B节点的邻居节点中没有从未做过种子节点的节点,则返回上一个种子节点继续进行初始化,以此类推,生成的种子节点注册表在种子节点间传阅,最后广播拓扑信息,使全部节点获得拓扑信息。这种方法的节点ID必须是已知的,灵活性和可拓展性差。就目前收集到的资料来看,国外对水下无线多跳网络拓扑发现问题的研究才刚刚开始,国内其他研究机构则尚未开展这项研究。由于水声信道传播时延大,并且布放于水下的传感器节点的能量有限等一些特点,使得无线网络中的拓扑发现技术不能直接地应用于水下。为此,设计出一种能够自主分配节点ID,开销较小,复杂度低的水下多跳网络集中式的拓扑发现方法迫在眉睫。
技术实现思路
为了克服现有技术的不足,本专利技术提供一种水下无线多跳网络拓扑发现方法,考虑到水下多跳网络时延大和能量有限的特点,为了克服现有方法中网络拓扑发现算法中节点ID需要在布放之前就已知或者节点ID分配算法开销大的问题,有效降低拓扑发现过程中的开销,提出一种高效的自主分配节点ID的水下无线多跳网络的拓扑发现方法。本专利技术使全网络节点在自主分配节点ID的同时,能够以低的时延和开销完成拓扑发现,每个节点获得其自身ID和网络中的所有相关链路信息。本专利技术解决其技术问题所采用的技术方案的步骤如下:步骤1:G=(V,L)为待发现网络,G是一个多跳网络,其中V表示该网络中的所有节点集合,L表示网络中所有链路的集合,本专利技术采用树形拓扑结构来完成未知网络的拓扑发现和ID分配;在树形拓扑结构中,指定节点T为根节点,第一跳节点中的节点a对第二跳节点中的节点d发包,节点a指向节点d的有序节点对(a,d)表示节点d为节点a的邻节点,且a是d的父节点,d为a的子节点;节点d的子节点以及与节点d相连通的向下延伸到网络边缘的所有节点称为节点a的子孙节点;没有子节点的节点称为叶子节点;网络中除了根节点,所有节点有唯一的父节点。根据目前现有的树形多跳网络拓扑结构,所有节点分层为根节点、第1层节点、第2层节点,…第n层节点;网络中共有发现的节点数目为N,Ni为节点i的子孙节点的数目,Ci为节点i的子节点的数目,Nei为节点i的邻居节点数目;i=1,2....N;步骤2:拓扑发现流程主要包括如下三个阶段并依次执行:1)、hello包传输阶段:hello包格式为<Type(包类型),Ki,Fi,Li>,其中,包类型为hello、disc和IDA,Ki为随机产生的Ki值,Ki∈[0,...,64],Fi为父亲节点的Ki值,Li为节点i的层次编号即节点i在网络中所属的跳数;2)、disc包传输阶段:disc包格式为<Type,Fi,Ki,Li,Ni>,其中,Ni为子孙节点的个数;3)、IDA包传输阶段:IDA包格式为<Type,IDi,Li,LIST(子节点信息列表{Kj,Nj}})>,其中,IDi为节点ID;具体拓扑发现的步骤如下:步骤2.1、根节点T,令Ki=0,Fi=0,Li=0,按照网络发现数据包格式生成hello包<Type(包类型),Ki,Fi,Li>,并依据Ki,将Ki除以100得出的数值作为计时器Tx_Timer的值,计时器Tx_Timer超时后发送hello包,之后根节点依据式(1)和公式(2)开启计时器Wait_Timerx:Wait_Timerleaf=2Tp+2Tc+Tx_Timermax(1)其中Tp,Tc分别为最大单跳传播时延和传输时延,Tx_Timermax为网络中Tx_Timer的最大值;若节点i不为叶子节点,则x=Li,那么为节点i的计时器;若节点i为叶子结点,则x=leaf,那么Wait_Timerleaf为节点i的计时器;网络拓扑发现过程开始;步骤2.2、网络中第1跳节点i收到来自根节点的hello包后,将父节点的层次号加1作为其层次编号Li,生成节点i的hello包;依据Ki,将Ki除以100得出的数值作为计时器Tx_Timer的值,开启计时器Tx_Timer,计时器超时后发送hello包,之后,节点i如步骤2.1中所述依据式(1)和式(2)开启Wait_Timerx;步骤2.3、网络中第2,3......n跳节点依次执行步骤2.2的操作完成hello包的发送,从根节点出发到网络的叶子节点,依此类推直至全网节点完成hello包的发送;若一个节点在发送hello包之前收到来自多个节点的hello包,将最先到达的hello包的发送节点作为其父节点,将其它节点作为其邻节点;网络中节点i发送hello包后开启Wait_Timerx,在收到的hello包中统计父节点等于Ki的不同K值的个数,得到节点i的子节点个数Ci,将子节点的Ki加入到子节点列表,并将同层次不互为父子且相连通的节点K值添加到邻节点列表{Kj};步骤2.4、若节点i的Ci=0,则判断节点i为叶子节点,然后按照网络发现数据包格式生成disc包<Type,Fi,Ki,Li,Ni>,发送给父节点,报告i节点的disc包中的信息;对于任意非叶子节点i,若Wait_Timerx超时也就是等于式(2)的值后,收到其所有子节点的disc包,则计算其子孙节点的数目Ni,Ni为i节点收到的来自子节点的disc本文档来自技高网
...

【技术保护点】
1.一种水下无线多跳网络拓扑发现方法方法,其特征在于包括下述步骤:步骤1:G=(V,L)为待发现网络,G是一个多跳网络,其中V表示该网络中的所有节点集合,L表示网络中所有链路的集合,本专利技术采用树形拓扑结构来完成未知网络的拓扑发现和ID分配;在树形拓扑结构中,指定节点T为根节点,第一跳节点中的节点a对第二跳节点中的节点d发包,节点a指向节点d的有序节点对(a,d)表示节点d为节点a的邻节点,且a是d的父节点,d为a的子节点;节点d的子节点以及与节点d相连通的向下延伸到网络边缘的所有节点称为节点a的子孙节点;没有子节点的节点称为叶子节点;网络中除了根节点,所有节点有唯一的父节点,根据目前现有的树形多跳网络拓扑结构,所有节点分层为根节点、第1层节点、第2层节点,…第n层节点;网络中共有发现的节点数目为N,Ni为节点i的子孙节点的数目,Ci为节点i的子节点的数目,Nei为节点i的邻居节点数目;i=1,2....N;步骤2:拓扑发现流程主要包括如下三个阶段并依次执行:1)、hello包传输阶段:hello包格式为

【技术特征摘要】
1.一种水下无线多跳网络拓扑发现方法方法,其特征在于包括下述步骤:步骤1:G=(V,L)为待发现网络,G是一个多跳网络,其中V表示该网络中的所有节点集合,L表示网络中所有链路的集合,本发明采用树形拓扑结构来完成未知网络的拓扑发现和ID分配;在树形拓扑结构中,指定节点T为根节点,第一跳节点中的节点a对第二跳节点中的节点d发包,节点a指向节点d的有序节点对(a,d)表示节点d为节点a的邻节点,且a是d的父节点,d为a的子节点;节点d的子节点以及与节点d相连通的向下延伸到网络边缘的所有节点称为节点a的子孙节点;没有子节点的节点称为叶子节点;网络中除了根节点,所有节点有唯一的父节点,根据目前现有的树形多跳网络拓扑结构,所有节点分层为根节点、第1层节点、第2层节点,…第n层节点;网络中共有发现的节点数目为N,Ni为节点i的子孙节点的数目,Ci为节点i的子节点的数目,Nei为节点i的邻居节点数目;i=1,2....N;步骤2:拓扑发现流程主要包括如下三个阶段并依次执行:1)、hello包传输阶段:hello包格式为<Type(包类型),Ki,Fi,Li>,其中,包类型为hello、disc和IDA,Ki为随机产生的Ki值,Ki∈[0,...,64],Fi为父亲节点的Ki值,Li为节点i的层次编号即节点i在网络中所属的跳数;2)、disc包传输阶段:disc包格式为<Type,Fi,Ki,Li,Ni>,其中,Ni为子孙节点的个数;3)、IDA包传输阶段:IDA包格式为<Type,IDi,Li,LIST(子节点信息列表{Kj,Nj}})>,其中,IDi为节点ID;具体拓扑发现的步骤如下:步骤2.1、根节点T,令Ki=0,Fi=0,Li=0,按照网络发现数据包格式生成hello包<Type(包类型),Ki,Fi,Li>,并依据Ki,将Ki除以100得出的数值作为计时器Tx_Timer的值,计时器Tx_Timer超时后发送hello包,之后根节点依据式(1)和公式(2)开启计时器Wait_Timerx:Wait_Timerleaf=2Tp+2Tc+Tx_Timermax(1)其中Tp,Tc分别为最大单跳传播时延和传输时延,Tx_Timermax为网络中Tx_Timer的最大值;若节点i不为叶子节点,则x=Li,那么为节点i的计时器;若节点i为叶子结点,则x=leaf,那么Wait_Timerleaf为节点i的计时器;网络拓扑发现过程开始;步骤2.2、网络中第1跳节点i收到来自根节点的hello包后,将父节点的层次号加1作为其层次编号Li,生成节点i的hello包;依据Ki,将Ki除以100得出的数值作为计时器Tx_Timer的值,开启计时器Tx_Timer,计时器超时后发送hello包,之后,节点i如步骤2.1中所述依据式(1)和式(2)开启Wait_Timerx;步骤2.3、网络中第2,3......n跳节点依次执行步骤2.2的操作完成hello包的发送,从根节点出发到网络的叶子节点,依此类推直至全网节点完成hello包的发送;若一个节点在发送hello包之前收到来自多个节点的hello包,将最先到达的hello包的发送节点作为其父节点,将其它节点作为其邻节点;网络中节点i发送hello包后开启Wait_Timerx,在收到的hello包中统计父节点等于Ki的不同K值的个数,得到节点i的子节点个数Ci,将子节点的Ki加入到子节点列表,并将同层次不互为父子且相连通的节点K值添加到邻节点列表{Kj};步骤2.4、若节点i的Ci=0,则判断节点i为叶子节点,然后按照网络发现数据包格式生成disc包<Type,Fi,Ki,Li,Ni>,发送给父节点,报告i节点的disc包中的信息;对于任意非叶子节点i,若Wait_Timerx超时也就是等于式(2)的值后,收到其所有子节点的disc包,则计算其子孙节点的数目Ni,Ni为i节点收到的来自子节点的disc包中Ni的总和加上i节点的Ci,并生成disc包发送给父节点;已经在hello包传输阶段中得到了每个节点的子节点总数,若Wait_Timerx超时后,节点i收到其部分子节点的disc包,则根据网络发现数据格式形成disc_req包<Typ...

【专利技术属性】
技术研发人员:赵瑞琴刘媛申晓红
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1