CN101426294B - 一种能够局部按需建簇的无线传感器网络路由方法 - Google Patents
一种能够局部按需建簇的无线传感器网络路由方法 Download PDFInfo
- Publication number
- CN101426294B CN101426294B CN2008102395753A CN200810239575A CN101426294B CN 101426294 B CN101426294 B CN 101426294B CN 2008102395753 A CN2008102395753 A CN 2008102395753A CN 200810239575 A CN200810239575 A CN 200810239575A CN 101426294 B CN101426294 B CN 101426294B
- Authority
- CN
- China
- Prior art keywords
- bunch
- node
- message
- route
- imax
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种能够局部按需建簇的无线传感器网络路由方法,通过该方法,可以实现无线传感器网络中的一种节点能耗保护的路由机制,并且通过局部按需快速建簇减少了原来的全网建簇的能源消耗。在网络最开始的运行过程中,传感器各个节点基本能量饱满,而且一般只有少许的节点需要进行数据传输,这时让网络中的各个节点进行AODV式的平面路由,保证网络的高扩展性及能量的低损耗。当网络运行一段时间后,可能在某个局部区域网络开始趋于频繁的数据传递,或者某个节点因为频繁的发送数据而造成它能量消耗过快,这时需要对这个热点区域进行局部分簇,防止网络中的某些节点能量消耗过快,形成“死点”。当网络一些局部节点进行了簇首建立并按照分簇层次式结构进行数据发送后,簇内的节点时刻监听它所在簇的簇首能量状态,并在必要时发起换簇申请。
Description
技术领域
本发明涉及一种应用于无线传感器网络的路由方法,更特别地说,是指一种能够局部按需建簇并进行簇首更新的路由方法。
背景技术
无线传感器网络综合了传感器技术、嵌入式计算技术、分布式信息处理技术和通信技术,能够协作地实时监测、感知和采集网络分布区域内的各种环境或监测对象的信息,并对这些信息进行处理,获得详尽而准确的信息,传送到需要这些信息的用户。无线传感器网络可以使人们在任何时间、地点和任何环境条件下获取大量详实而可靠的信息,因此,这种网络系统可以被广泛地应用于国防军事、国家安全、环境监测、交通管理、医疗卫生、制造业、反恐抗灾等领域。
无线传感器网络中节点的能量资源、计算能力和带宽都非常有限,而且无线传感器网络通常由大量密集的传感节点构成,这些节点通常安置在人类无法进入的环境。这就决定了无线传感器网络协议栈各层的设计都必须以能源有效性为首要的设计要素。无线传感器网络的路由技术是无线传感器网络领域的研究热点,目前,也已经有很多适用于无线传感器网络的路由协议/方法。比如,基于距离矢量的按需路由AODV(Ad hoc On Demand Distance Vector)协议,它需要发送数据的节点通过路由请求报文RREQ建立路由路径之后,发送数据,它是一种平面式的路由方式;分簇路由协议,它是将传感器网络分成若干个局部区域,即所谓的簇,一个簇中有一个簇首,当簇内的任意一个节点要发送数据时,都首先发送给簇首,再由簇首节点进行转发,它是一种层次式的路由方式。
在分簇路由协议中,由于簇首节点需要转发簇内所有节点的数据,因此,簇首节点的能量消耗就比非簇首节点大得多,因此,在分簇路由协议中,需要采用一定的策略更新簇首节点,从而提高簇首节点乃至整个网络的寿命。
AODV路由对于数据量比较少的情况比较适用,但是当数据量较多时,全网的能耗过高;而对于数据比较频繁的情况,则分簇路由就体现出较大的优越性。在传感器网络中,不同区域的数据转发频率可能存在较大的差别,因此在这种情况下,单纯使用AODV协议或单纯使用分簇路由协议都不是最佳的选择。
所以,本发明提供了一种结合AODV和分簇的、能够按需局部建簇的无线传感器网络路由方法。该路由方法在传输数据量少的局部区域使用AODV的平面路由策略,而在传输数据量较多或能耗过大的局部区域按需建簇、使用分簇路由方法;在簇首更新方面,本方法也提供了一种按需的局部簇首更新机制。
发明内容
本发明的目的是提供一种能够局部按需建簇的路由方法,通过该方法,可以实现无线传感器网络中的一种节点能耗保护的路由机制,并且通过局部按需快速建簇减少了原来的全网建簇的能源消耗。
本发明解决其技术问题所采用的技术方案是:一种能够局部按需建簇的路由方法,在网络部署完成最开始的运行过程中,传感器各个节点能量饱满,而且一般只有少许的节点需要进行数据传输,这时让网络中的各个节点进行AODV式的平面路由,保证网络的高扩展性及能量的低损耗。当网络在运行了一段时间后,可能在某个局部区域网络开始趋于频繁的数据传递,或者部分节点因为频繁的发送数据而造成能量消耗过快,这时对这个热点区域进行局部分簇,防止网络中的某些节点能量消耗过快,形成“死点”。建簇后,簇内的节点时刻监听其所在簇的簇首能量状态,并在必要时发起换簇申请,通过这种按需簇首更新策略,来达到一个全网的能量均衡。
本发明的一种能够局部按需建簇的无线传感器网络路由方法存在的优点为:
(1)本路由方法结合了AODV和分簇路由的思想,灵活性更高,适应性更强。
(2)和传统的分簇路由在全网统一建簇不同,本路由方法采用局部按需建簇,建簇的效率更高。
(3)本路由方法提供了一种局部按需簇首更新机制,当一个簇在更新簇首时,不影响其它簇的正常的信息路由。
附图说明
图1是本发明无线传感器网络路由的总体流程图。
图2是本发明剩余能量信息监听的平面式路由流程图。
图3是本发明层次式路由中,簇首节点的工作流程图。
图4是本发明层次式路由中,非簇首节点的工作流程图。
图5是本发明局部通信过于频繁引发首轮建簇的示意图。
图6是本发明通信节点能耗过低引发首轮建簇的示意图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的详细说明。
参见图1所示,本发明的一种能够局部按需建簇的无线传感器网络路由方法包括两种模式,平面式路由和层次式路由。在传感器网络部署完成最开始的运行过程中,传感器各个节点能量饱满,而且一般只有少许的节点需要进行数据传输,这时让网络中的各个节点进行平面路由。在平面式路由阶段,网络中的任意节点Ni,首先初始化路由相关的各种参数(如节点标识、节点在网络中的位置、节点发送功率等),然后按照AODV方式路由数据,同时监听邻居节点(是指节点Ni的邻居节点)发送的报文情况。在平面式路由中如果节点Ni监听到邻居节点有发起建簇申请,则选择一个簇首,并加入该簇结构中,并以非簇首节点(在簇网络中节点Ni被称作非簇首节点)身份进入层次式路由阶段;如果节点Ni没有监听到邻居节点发起建簇申请,则根据监听的邻居发送报文情况,估算邻居节点的剩余能量和估算区域内的网络通信频繁度,决定是否需要建簇。如果不需要建簇,则继续采用平面式路由方式;如果需要建簇,则节点Ni发起建簇申请,并以簇首节点(在簇网络中节点Ni被称作簇首节点)身份进入层次式路由阶段。
在层次式路由阶段,节点Ni为簇首节点的处理方式:
如果节点Ni为簇首节点,则发起建簇申请,将愿意加入本簇的邻居节点加入到簇结构中,然后按照层次式路由转发数据,同时监听簇内非簇首节点是否发送换簇申请。如果没有非簇首节点发起换簇申请,则继续以自身为簇首进行层次式路由;当有非簇首节点(是指在簇网络中除节点Ni以外的节点)发送换簇申请,则根据这些非簇首节点的能量和自身能量,决定是否同意非簇首节点的换簇申请,如果同意,则解散原有的簇;如果不同意,则继续以自身为簇首进行层次式路由。
在层次式路由阶段,节点Ni为非簇首节点的处理方式:
如果节点Ni为非簇首节点,则选择一个簇首NA(在网络中标识为A的一个节点)加入簇结构,按照层次式路由转发数据,同时非簇首节点Ni监听簇首节点NA发送报文的情况。非簇首节点Ni如果监听到簇首节点NA发来的解散簇的消息,则退出簇结构,并进入平面式路由;否则,非簇首节点Ni根据监听的簇首节点NA发送报文情况估算簇首节点NA的能量,并判断是否需要发起换簇申请,如果不需要发起换簇申请,则继续以非簇首节点身份执行层次式路由。当需要发起换簇申请时,非簇首节点Ni向簇首节点NA发送换簇申请,并等到簇首节点NA的回复,如果簇首节点NA同意换簇申请,则发起建簇申请,并以簇首节点身份进入层次式路由;否则继续以非簇首节点身份执行层次式路由。
在本发明中,Ni有多个身份。在平面式路由中,Ni表示网络中的任意一个节点。在层次式路由中,Ni表示以簇首身份时为簇首节点,以非簇首身份时为非簇首节点。本发明的路由方法首先进行的是带剩余能量信息监听的平面式路由阶段。
本发明的带剩余能量信息监听的平面式路由是指任意节点Ni利用AODV协议进行数据报文的路由,在路由数据的同时监听节点Ni所在区域内网络通信频繁度和邻居节点(是指能够接收到节点Ni广播信息的节点)的剩余能量。节点Ni通过监听信息(网络通信频繁度、节点剩余能量)来决定节点Ni所在区域是否要发起局部建簇,如果需要,进入到层次式路由阶段中。
参见图2所示,在本发明中,任意节点Ni通过监听信息来决定所在区域是否要发起局部建簇的处理步骤为:
步骤101:设置节点Ni的发送功率Pi和路由请求报文计数器RREQ_NUMi。
在本发明中,发送功率Pi是指节点Ni发送数据时使用的功率,所有节点在初始时的发送功率是一个统一值,记为POWER;RREQ_NUMi是指用来统计节点Ni监听到的路由请求报文RREQ的数量。根据RREQ_NUMi这个值,节点Ni能够估计出该节点所在区域内网络通信频繁度,初始时设RREQ_NUMi=0。
步骤102:建立节点Ni的邻居节点表单和剩余能量信息表单。
第一方面,节点Ni向网络广播状态消息STATUSi=(Ni,(xi,yi),Ei)。第二方面,节点Ni根据接收到的邻居节点广播的状态消息,建立邻居节点表单Nbi={Ni1,Ni2,...,Nim}和邻居节点剩余能量表单NEnergyi={Ei1,Ei2,...,Eim}。
Ni为节点Ni的标识,
(xi,yi)表示Ni节点在无线传感网络中的位置,
Ei表示Ni节点的剩余能量,
Nbi={Ni1,Ni2,...,Nim}表示节点Ni的所有邻居节点集合,
Ni1表示节点Ni的第一个邻居节点,
Ni2表示节点Ni的第二个邻居节点,
Nim表示节点Ni的第m个邻居节点,也表示节点Ni的任意一个邻居节点,
NEnergyi={Ei1,Ei2,...,Eim}表示节点Ni的所有邻居节点的剩余能量集合,
Ei1节点Ni的第一个邻居节点Ni1的剩余能量,
Ei2节点Ni的第二个邻居节点Ni2的剩余能量,
Eim节点Ni的第m个邻居节点Nim的剩余能量,也表示节点Ni的任意一个邻居节点的剩余能量。
步骤103:如果节点Ni需要发送数据,则利用AODV路由协议通过路由请求报文RREQ建立路由,通过所建立的路由路径发送数据报文。
在本发明中,节点Ni发送的路由请求报文RREQ中,除了满足AODV路由协议的路由请求信息外,还包含有节点Ni的当前剩余能量Ei。
步骤104:节点Ni监听任意邻居节点Nim发送的路由请求报文RREQ、数据报文和簇首通知报文CNTF。
簇首通知报文CNTF(sn,ID,EID,kID)中,sn表示报文序列号,ID表示发送簇首通知报文的节点编号,EID表示节点的当前剩余能量,ki表示节点的报文发送后功率的调整参数。
在本发明中,根据节点Ni监听任意邻居节点Nim发送的报文类型不同,分如下三个子步骤处理。
步骤104-1:如果节点Ni监听到任意邻居节点Nim发送的路由请求报文RREQ,则执行步骤105,否则,执行步骤104-2;
步骤104-2:如果节点Ni监听到任意邻居节点Nim发送的数据报文,则执行步骤106,否则,执行步骤104-3;
步骤104-3:如果节点Ni监听到任意邻居节点Nim发送的簇首通知报文CNTF,则节点Ni以非簇首身份转入局部区域内的层次式路由(即执行步骤204),否则,执行步骤103。
步骤105:节点Ni监听到任意邻居节点Nim发送的路由请求报文RREQ,则计数器加1(即RREQ_NUMi=RREQ_NUMi+1),同时更改邻居节点剩余能量表单NEnergyi中邻居节点Nim的剩余能量值,然后执行步骤107。
步骤106:节点Ni监听到任意邻居节点Nim发送的数据报文,更改邻居节点剩余能量表单NEnergyi中邻居节点Nim的剩余能量值。
由于无线传感器网络中各节点的发送功率在初始时统一设为了POWER,则可估计出发送一次数据报文的能量消耗,从而估计出邻居节点Nim发送一次数据报文后的剩余能量Eim。
步骤107:对节点Ni的剩余能量Ei与邻居节点Nim的剩余能量Eim进行差值比较,如果Ei与Eim的差值大于阈值DifEnergy_THRESH,即Ei-Eim>DifEnergy_THRESH,则节点Ni将以簇首身份转入局部区域内的层次式路由(即执行步骤201);否则,执行步骤108。
步骤108:当节点Ni的计数器RREQ_NUMi的大小大于网络通信频繁的阀值BUSY_THRESH,即RREQ_NUMi>BUSY_THRESH,则节点Ni将以簇首身份转入局部区域内的层次式路由(即执行步骤201);否则,执行步骤103。
本发明的节点估算区域内的网络通信频繁度和邻居节点的剩余能量来决定是否需要建簇或发起换簇申请。所依据的判断规则分别为:
估算区域内的网络通信频繁度的判断规则为:当节点Ni监听收到的每个数据包,如果在某段时间内,监听到的路由请求报文数目超过一个阀值BUSY_THRESH,则认为网络该局部区域通信过于频繁,需要建簇,将网络的发送方式由平面式路由转为层次式路由结构。
估算邻居节点的剩余能量的判断规则为:对于平面式路由阶段节点、广播了状态消息,或者每个发出RREQ报文的节点,或者是刚刚成为簇首、并向外广播了它成簇消息的节点,该节点周围其它一些在通信范围内的节点都能够获得它当前的剩余能量,在后面该节点每发出一个新的数据包,可以推测出该节点目前剩余的能量,如果原簇首节点的能量和该监听节点的能量相差到达一定阀值DifEnergy_THRESH;或者在平面式结构中,某个节点不断发送数据使得剩余能量过低,则需要发出建簇或者新的换簇申请。
本发明的局部区域内的由于某节点的能耗过低或者网络通信频繁度高需要建簇,则由簇首节点发送簇首通知报文CNTF申请建簇,并邀请其它节点加入该簇。收到CNTF报文的节点,可回复加入簇应答报文CNTP加入到该簇中。簇建立完成后,节点在簇内稳定运行,当簇内节点将要发送的数据发送给簇首,由簇首节点统一转发。同时簇内节点要监听簇首,并估算簇首的剩余能量,当簇首的能量小于簇内其他节点能量时,发送簇首更换请求报文CREQ申请成为新簇首。当簇首收到CREQ报文后,进入局部簇更新过程,根据簇首本身实际剩余能量,可以拒绝更换簇首,区域内的路由方式不变;也可以同意更换簇首,并解散原有的簇。下面以节点Ni为例,在建簇-簇内稳定运行-局部簇更新的处理过程如图3,图4所示。
在需要建簇的区域中有两类节点,一类是发出建簇信号、要成为簇首的节点;另一类是没有发出建簇信号、准备加入新的簇结构的节点,对不同类型节点,处理过程不同。对网络中任意节点Ni,如果Ni发出建簇信号、要成为簇首,则执行建立新簇首子过程;对网络中任意节点Ni,如果Ni没有发出建簇信号、准备加入新的簇结构时,执行加入簇结构子过程。
步骤201:调整簇首节点Ni发送功率为POWER的1/ki,然后广播簇首通知报文CNTF申请以自己为簇首建立一个簇。
簇首节点Ni将发送功率调整为POWER的1/ki来广播簇首通知报文CNTF是要以POWER的1/ki作为将来簇内的通信功率,达到簇内通信节省能量的目的。
步骤202:在设定时间TIME_C内,簇首Ni接收任意邻居节点Nim发送的加入簇应答报文CNTP(sn,ID,IDC,rep),加入新的簇节点。
CNTP(sn,ID,IDC,rep)报文是区域内节点加入以某个节点为簇首的簇的应答报文,sn为报文序列号,ID为报文发送源节点的编号,IDC为要加入簇的簇首节点编号,rep表示同意加入簇的标志位。。
簇首Ni收到CNTP(sn,ID,IDC,rep)报文后,将节点Nim加入到本簇中,生成以节点Ni为簇首的簇节点表单NConi={Ci1,Ci2,...,Cir},其中,Ci1是以节点Ni为簇首的簇中的第一个簇节点,Ci2是以节点Ni为簇首的簇中的第二个簇节点,Cir是以节点Ni为簇首的簇中的第r个簇节点,也称为以节点Ni为簇首的簇中的任意一个簇节点。簇首接收区域内节点的CNTP报文应该有一定的时间限定,在本发明中,接收的时间设为TIME_C。
步骤203:调整簇首Ni发送功率为POWER的ki倍。将簇首的功率调大,方便它进行数据传输。簇建立完成,执行步骤206。
步骤204:非簇首Ni比较所有收到的CNTF(sn,ID,EID,kID)报文中的节点剩余能量信息,选择剩余能量最大的节点(记为NiMAX_CN),将节点NiMAX_CN作为新簇首;
步骤205:非簇首Ni根据能量最大节点NiMAX_CN发送的CNTF报文中的功率调节系数kiMAX_CN值,将发送功率调节为POWER的1/kiMAX_CN,向能量最大NiMAX_CN回复CNTP报文,并记录能量最大NiMAX_CN的能量。至此,非簇首Ni加入到了以能量最大节点NiMAX_CN为簇首的簇中,执行步骤208。
经上述步骤簇建立完成后,节点在簇内稳定运行,进入层次式路由。簇内节点将要发送的数据发送给簇首Ni,由簇首Ni统一转发,同时簇内节点要监听簇首Ni,并估算簇首Ni的剩余能量Ei,在簇首Ni能量过低条件下发送更换簇首的请求报文CREQ;而簇首则在转发数据的同时监听簇内其他节点发送的CREQ报文。
在簇内稳定运行阶段,簇首节点和非簇首节点处理步骤是不同的。对网络中任意节点的Ni,如果Ni为簇首节点,在稳定运行阶段,则执行簇首节点簇内稳定运行子过程;对网络中任意节点Ni,如果Ni为非簇首节点,处在簇首为最大能量节点NiMAX_CN的簇中,在稳定运行阶段,则执行非簇首节点簇内稳定运行子过程。
步骤206:簇首节点Ni将簇内节点Cir要发送的数据转发,同时监听簇内节点Cir是否发送簇首更换请求报文CREQ报文。
簇首更换请求报文CREQ报文是簇内节点监听到簇首的能量比自己的能量低时,发出的更换自己为簇首的请求报文,CREQ报文格式为CREQ(sn,ID,EID,req),sn为报文序列号,ID为发起簇首更换请求的节点编号,EID为节点的当前剩余能量,req表示申请更换自己为簇首的标志位。
根据簇首节点Ni是否监听到簇内节点Cir发送的簇首更换请求报文CREQ报文,有如下子步骤
步骤206-1:如果簇首Ni监听到簇内节点Cir发送的簇首更换请求报文CREQ报文,则执行步骤207,否则继续执行步骤206。
步骤207:簇首Ni收到来自簇内节点Cir发送的CREQ报文,则判断簇内节点Cir的剩余能量Eir与簇首Ni本身的当前能量Ei大小,如果Ei>Eir,则执行步骤207-1,否则执行步骤213。
簇首请求应答报文CREP的报文格式为CREP(sn,ID,EID,CREP_TYPE),sn为报文序列号,ID为发起簇首更换请求的节点编号,EID为节点的当前剩余能量,CREP_TYPE为是否同意邻居节点的簇首更换请求标志,如果同意更换请求,令CREP_TYPE=1,如果拒绝更换请求,令CREP_TYPE=0。
步骤207-1:簇首Ni回复一个簇首请求应答报文CREP报文拒绝簇内节点Cir的更换请求,然后执行步骤206
对网络中任意节点的Ni,如果Ni为非簇首节点,处在簇首为最大能量节点NiMAX_CN(简称最大簇首NiMAX_CN)的簇中,在稳定运行阶段,则执行如下步骤:
步骤208:如果节点Ni需要发送数据,则将要发送的数据发送给最大簇首NiMAX_CN,并通过最大簇首NiMAX_CN转发数据,同时监听最大簇首NiMAX_CN的报文转发。
根据节点Ni监听最大簇首NiMAX_CN的报文转发类型,有如下处理子步骤:
步骤208-1:如果节点Ni监听到最大簇首NiMAX_CN转发的簇解散报文CDEV报文,则簇已解散,节点Ni转入带剩余能量信息监听的平面式路由(即执行步骤101)。簇解散报文CDEV报文格式为CDEV(sn,ID),sn为报文序列号,ID为发起簇首更换请求的节点编号。
步骤208-2:如果节点Ni监听到最大簇首NiMAX_CN发出的除CDEV报文以外的其他报文,则执行步骤209。否则继续执行步骤208。
步骤209:通过节点Ni估算最大簇首NiMAX_CN的能量,并根据最大簇首NiMAX_CN的能量大小来判断是否换簇;
步骤209-1:如果簇首节点NiMAX_CN的能量小于节点Ni的能量,则执行步骤210,否则执行步骤208
节点Ni已知簇首节点NiMAX_CN的发送功率,则可估计出簇首节点NiMAX_CN发送一次数据报文的能量消耗,从而估计出簇首节点NiMAX_CN的剩余能量。
步骤210:节点Ni发送更换簇首的请求报文CREQ。
步骤211:节点Ni接收簇首节点NiMAX_CN转发的簇首请求应答报文CREP。
根据节点Ni收到的簇首节点NiMAX_CN转发的簇首请求应答报文CREP的类型,有如下处理子步骤:
步骤211-1:如果节点Ni收到簇首节点NiMAX_CN转发的簇首请求应答报文CREP中CREP_TYPE=0,则执行步骤212,否则执行步骤201。
步骤212:根据CREP报文中的EiMAX_CN来更新簇首节点NiMAX_CN的能量信息,然后执行步骤208。
局部簇更新是指簇首节点同意邻居节点发送的簇首更新请求后的处理过程,具体的处理步骤为:
步骤213:簇首节点Ni比较所有收到的CREQ报文中的发送节点的剩余能量信息,选择剩余能量最大的发送节点(记为NiMAX_CR),将节点NiMAX_CR作为下一轮的簇首节点;同时向其它发送节点发送一个CREP报文拒绝簇首更换请求。。
步骤214:簇首节点Ni回复一个簇首请求应答报文CREP给节点NiMAX_CR,同意节点NiMAX_CR的簇首更换请求,并记录节点NiMAX_CR的当前剩余能量信息。
步骤215:簇首节点Ni向它的簇节点表单NConi中的所有节点Cir发送一个簇解散报文CDEV,通知簇内节点簇已解散。清空簇节点表单NConi后,节点Ni转入带剩余能量信息监听的平面式路由(即执行步骤101)。
在本发明中,步骤201、步骤202、步骤203为建立簇首子过程。对网络中任意节点Ni,如果Ni发出建簇信号、要成为簇首,则执行建立新簇首子过程。
在本发明中,步骤204和步骤205为加入簇结构子过程。对网络中任意节点Ni,如果Ni没有发出建簇信号、准备加入新的簇结构时,执行加入簇结构子过程。
在本发明中,步骤206、步骤206-1、步骤207、步骤207-1为簇首节点簇内稳定运行子过程。对网络中任意节点的Ni,如果Ni为簇首节点,在稳定运行阶段,则执行簇首节点簇内稳定运行子过程。
在本发明中,步骤208、步骤208-1、步骤208-2、步骤209、步骤209-1、步骤210、步骤211、步骤211-1、步骤212为非簇首节点簇内稳定运行子过程。对网络中任意节点Ni,如果Ni为非簇首节点,处在簇首为最大能量节点NiMAX_CN的簇中,在稳定运行阶段,则执行非簇首节点簇内稳定运行子过程。
在本发明中,步骤213、步骤214、步骤215为局部簇更新子过程。对网络中的簇首节点,如果同意邻居节点发送的簇首更新请求,则执行局部簇更新子过程。
局部建簇可能是由网络通信频繁或者能耗过低引发的,两处原因引发建簇过程示例如下:
一个由多个节点组成的网络,BUSY_THRESH得值设为3,网络的统一发送功率设为POWER,局部建簇后的功率调整参数k为2,其中节点Ni表示任一中间节点。如图5所示,节点N1、节点N2、节点N3和节点N8都需要向Nd节点发送数据,为了发送数据需要发送路由请求报文RREQ来建立路由路径。节点N4、节点N5和节点Ni收到了路由请求报文RREQ,则它们的路由请求报文计数器都会相应增加。这样,虽然中间节点Ni没有作为路由路径中的某个转发节点,但是它可以监听到网络中RREQ报文数量达到了4,超过了BUSY_THRESH,则多个达到这一条件的Ni节点都会发出建簇申请,当以POWER/2为发送功率发出CNTF报文,以最多一跳的方式广播出去,其他所有节点在收到多个CNTF报文后,比较各个CNTF报文剩余能量之间的大小,然后选择剩余能量最大的那个节点回复CNTP报文,表明加入该节点为簇首组成的簇结构,这个时候所有加入簇结构的节点把发送功率调整到POWER/2的功率向簇首节点发送数据,而相应的簇首节点将发送功率调整到POWER×2转发数据。
一个由多个节点组成的网络,如果只有一个节点在持续的发送数据,那么将无法达到BUSY_THRESH阀值条件。如图6所示,只有节点N1在持续不断的向Nd节点发送数据,数据路由的路径为节点N1、节点N2、节点N3和节点Nd。中间节点Ni监听到节点N1最开始发出的路由请求报文RREQ,并探知节点N1的剩余能量。在后续的数据发送中,中间节点Ni监听节点N1一共发送多少数据包,从而得到节点N1剩余能量的近似值Ei1,当Ei-Ei1>DifEnergy_THRESH时,中间节点Ni可以发出建簇申请,具体建簇过程同局部通信过于频繁首轮建簇。
Claims (5)
1.一种能够局部按需建簇的无线传感器网络路由方法,其特征在于:在传感器网络部署完成最开始的运行过程中,传感器各个节点能量饱满,而且只有少许的节点需要进行数据传输,这时让网络中的各个节点进行平面路由;在平面式路由阶段,网络中的任意节点Ni,首先初始化路由参数,然后按照AODV方式路由数据,同时监听邻居节点发送的报文情况;在平面式路由中如果节点Ni监听到邻居节点有发起建簇申请,则选择一个簇首,并加入该簇结构中,并以非簇首节点身份进入层次式路由阶段;如果节点Ni没有监听到邻居节点发起建簇申请,则根据监听的邻居发送报文情况,估算邻居节点的剩余能量和估算区域内的网络通信频繁度,决定是否需要建簇;如果不需要建簇,则继续采用平面式路由方式;如果需要建簇,则节点Ni发起建簇申请,并以簇首节点身份进入层次式路由阶段;
在层次式路由阶段,节点Ni为簇首节点则发起建簇申请,将愿意加入本簇的邻居节点加入到簇结构中,然后按照层次式路由转发数据,同时监听簇内非簇首节点是否发送换簇申请;如果没有非簇首节点发起换簇申请,则继续以自身为簇首进行层次式路由;当有非簇首节点发送换簇申请,则根据这些非簇首节点的能量和自身能量,决定是否同意非簇首节点的换簇申请,如果同意,则解散原有的簇;如果不同意,则继续以自身为簇首进行层次式路由;
在层次式路由阶段,节点Ni为非簇首节点则选择一个簇首NA加入簇结构,按照层次式路由转发数据,同时非簇首节点Ni监听簇首节点NA发送报文的情况;非簇首节点Ni如果监听到簇首节点NA发来的解散簇的消息,则退出簇结构,并进入平面式路由;否则,非簇首节点Ni根据监听的簇首节点NA发送报文情况估算簇首节点NA的能量,并判断是否需要发起换簇申请,如果不需要发起换簇申请,则继续以非簇首节点身份执行层次式路由;当需要发起换簇申请时,非簇首节点Ni向簇首节点NA发送换簇申请,并等到簇首节点NA的回复,如果簇首节点NA同意换簇申请,则发起建簇申请,并以簇首节点身份进入层次式路由;否则继续以非簇首节点身份执行层次式路由。
2.根据权利要求1所述的能够局部按需建簇的无线传感器网络路由方法,其特征在于:采用平面式路由和层次式路由的两种路由模式。
3.根据权利要求1所述的能够局部按需建簇的无线传感器网络路由方法,其特征在于任意节点Ni平面式路由模式的处理步骤为:
步骤101:设置节点Ni的发送功率Pi和路由请求报文计数器RREQ_NUMi;
步骤102:建立节点Ni的邻居节点表单和邻居节点剩余能量表单;
步骤103:如果节点Ni需要发送数据,则利用AODV路由协议通过路由请求报文RREQ建立路由,通过所建立的路由路径发送数据报文;
步骤104:节点Ni监听任意邻居节点Nim发送的路由请求报文RREQ、数据报文和簇首通知报文CNTF,CNTF报文格式为CNTF(sn,ID,EID,kID),sn表示报文序列号,ID表示发送簇首通知报文的节点编号,EID表示节点的当前剩余能量,kID表示节点的报文发送后功率的调整参数;
步骤104-1:如果节点Ni监听到任意邻居节点Nim发送的路由请求报文RREQ,则执行步骤105,否则,执行步骤104-2;
步骤104-2:如果节点Ni监听到任意邻居节点Nim发送的数据报文,则执行步骤106,否则,执行步骤104-3;
步骤104-3:如果节点Ni监听到任意邻居节点Nim发送的簇首通知报文CNTF,则节点Ni以非簇首身份转入局部区域内的层次式路由,否则,执行步骤103;
步骤105:节点Ni监听到任意邻居节点Nim发送的路由请求报文RREQ,则计数器加1,同时更改邻居节点剩余能量表单NEnergyi中邻居节点Nim的剩余能量值,然后执行步骤107;
步骤106:节点Ni监听到任意邻居节点Nim发送的数据报文,更改邻居节点剩余能量表单NEnergyi中邻居节点Nim的剩余能量值;
步骤107:对节点Ni的剩余能量Ei与邻居节点Nim的剩余能量Eim进行差值比较,如果Ei与Eim的差值大于阈值DifEnergy_THRESH,则节点Ni将以簇首身份转入局部区域内的层次式路由;否则,执行步骤108;
步骤108:当节点Ni的计数器RREQ_NUMi的大小大于网络通信频繁的阀值BUSY_THRESH,则节点Ni将以簇首身份转入局部区域内的层次式路由;否则,执行步骤103。
4.根据权利要求1所述的能够局部按需建簇的无线传感器网络路由方法,其特征在于:对网络中任意节点Ni,在层次式路由阶段的处理步骤为:
步骤201:调整簇首节点Ni发送功率为POWER的1/ki,ki表示簇首节点Ni的报文发送后功率的调整参数,然后广播簇首通知报文CNTF申请以自己为簇首建立一个簇;所有节点在初始时的发送功率是一个统一值,记为POWER;
步骤202:在设定时间TIME_C内,簇首Ni接收任意邻居节点Nim发送的加入簇应答报文CNTP加入新的簇节点;CNTP报文格式为CNTP(sn,ID,IDC,rep),sn为报文序列号,ID为报文发送源节点的编号,IDC为要加入簇的簇首节点编号,rep表示同意加入簇的标志位;
步骤203:调整簇首Ni发送功率为POWER的ki倍;将簇首的功率调大,方便它进行数据传输;簇建立完成,执行步骤206;
步骤204:非簇首Ni比较所有收到的CNTF报文中的节点剩余能量信息,选择剩余能量最大节点NiMAX_CN作为新簇首;
步骤205:非簇首Ni根据剩余能量最大节点NiMAX_CN发送的CNTF报文中的功率调整参数kiMAX_CN值,将发送功率调节为POWER的1/kiMAX_CN,向剩余能量最大NiMAX_CN回复CNTP报文,并记录剩余能量最大NiMAX_CN的能量;非簇首Ni加入到了以剩余能量最大节点NiMAX_CN为簇首的簇中,执行步骤208;
步骤206:簇首节点Ni将簇内节点Cir要发送的数据转发,同时监听簇内节点Xir是否发送簇首更换请求报文CREQ,CREQ报文格式为CREQ(sn,ID,EID,req),sn为报文序列号,ID为发起簇首更换请求的节点编号,EID为节点的当前剩余能量,req表示申请更换自己为簇首的标志位;
步骤206-1:如果簇首Ni监听到簇内节点Cir发送的簇首更换请求报文CREQ报文,则执行步骤207,否则继续执行步骤206;
步骤207:簇首Ni收到来自簇内节点Cir发送的CREQ报文,则判断簇内节点Cir的剩余能量Eir与簇首Ni本身的当前能量Ei大小,如果Ei>Eir,则执行步骤207-1,否则执行步骤213;
步骤207-1:簇首Ni回复一个簇首请求应答报文CREP报文拒绝簇内节点Cir的更换请求,然后执行步骤206;CREP报文格式为CREP(sn,ID,EID,CREP_TYPE),sn为报文序列号,ID为发起簇首更换请求的节点编号,EID为节点的当前剩余能量,CREP_TYPE为是否同意邻居节点的簇首更换请求标志,如果同意更换请求,令CREP_TYPE=1,如果拒绝更换请求,令CREP_TYPE=0;
步骤208:如果节点Ni需要发送数据,则将要发送的数据发送给簇首NiMAX_CN,并通过簇首NiMAX_CN转发数据,同时监听簇首NiMAX_CN的报文转发;
步骤208-1:如果节点Ni监听到簇首NiMAX_CN转发的簇解散报文CDEV,则簇已解散,节点Ni转入带剩余能量信息监听的平面式路由;CDEV报文格式为CDEV(sn,ID),sn为报文序列号,ID为发起簇首更换请求的节点编号;
步骤208-2:如果节点Ni监听到簇首NiMAX_CN发出的除CDEV报文以外的其他报文,则执行步骤209,否则继续执行步骤208;
步骤209:通过节点Ni估算簇首NiMAX_CN的能量,并根据簇首NiMAX_CN的能量大小来判断是否换簇;
步骤209-1:如果簇首节点NiMAX_CN的能量小于节点Ni的能量,则执行步骤210,否则执行步骤208;
步骤210:节点Ni发送更换簇首的请求报文CREQ;
步骤211:节点Ni接收簇首节点NiMAX_CN转发的簇首请求应答报文CREP;
步骤211-1:如果节点Ni收到簇首节点NiMAX_CN转发的簇首请求应答报文CREP中CREP_TYPE=0,则执行步骤212,否则执行步骤201;
步骤212:根据CREP报文中的EiMAX_CN来更新簇首节点NiMAX_CN的能量信息,然后执行步骤208;
步骤213:簇首节点Ni比较所有收到的CREQ报文中的发送节点的剩余能量信息,选择剩余能量最大的发送节点NiMAX_CR作为下一轮的簇首节点;同时向其它发送节点发送一个CREP报文拒绝簇首更换请求;
步骤214:簇首节点Ni回复一个簇首请求应答报文CREP给节点NiMAX_CR,同意节点NiMAX_CR的簇首更换请求,并记录节点NiMAX_CR的当前剩余能量信息;
步骤215:簇首节点Ni向它的簇节点表单NConi中的所有节点Cir发送一个簇解散报文CDEV,通知簇内节点簇已解散;清空簇节点表单NConi后,簇首节点Ni转入带剩余能量信息监听的平面式路由。
5.根据权利要求1所述的能够局部按需建簇的无线传感器网络路由方法,其特征在于:估算区域内的网络通信频繁度的判断规则为,节点Ni监听收到的每个数据包,如果在某段时间内,监听到的路由请求报文数目超过一个阀值BUSY_THRESH,则认为网络该局部区域通信过于频繁,需要建簇,将网络的发送方式由平面式路由转为层次式路由结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102395753A CN101426294B (zh) | 2008-12-15 | 2008-12-15 | 一种能够局部按需建簇的无线传感器网络路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102395753A CN101426294B (zh) | 2008-12-15 | 2008-12-15 | 一种能够局部按需建簇的无线传感器网络路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101426294A CN101426294A (zh) | 2009-05-06 |
CN101426294B true CN101426294B (zh) | 2010-06-30 |
Family
ID=40616569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102395753A Expired - Fee Related CN101426294B (zh) | 2008-12-15 | 2008-12-15 | 一种能够局部按需建簇的无线传感器网络路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101426294B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699903B (zh) * | 2009-10-23 | 2011-10-26 | 北京航空航天大学 | 一种适用于无线传感器网络的组播路由的组播树调整方法 |
CN101938804B (zh) * | 2010-08-27 | 2014-03-05 | 北京交通大学 | 适用于无线传感网路的多路径路由方法 |
CN102014455B (zh) * | 2010-11-23 | 2013-07-03 | 北京航空航天大学 | 一种基于节点间相关性的无线传感器网络分簇路由方法 |
CN102695192A (zh) * | 2011-03-23 | 2012-09-26 | 北京天地互连信息技术有限公司 | IPv6无线传感器网络的路由方法 |
CN102573002B (zh) * | 2012-02-27 | 2014-08-06 | 杭州星纬物联技术有限公司 | 一种基于网络等级区间的无线传感器mesh网络入网请求方法 |
CN103634873B (zh) * | 2013-12-18 | 2017-05-31 | 北京煜邦电力技术有限公司 | 电力抄表系统的无线组网方法和电力抄表设备系统 |
CN104284453B (zh) * | 2014-10-30 | 2018-10-23 | 扬州大学 | 一种较少冗余链路的无线传感器网络组网方法 |
CN104684041B (zh) * | 2015-02-06 | 2018-01-12 | 中国科学院上海微系统与信息技术研究所 | 一种支持大规模节点应用的实时无线传感网路由方法 |
WO2018098754A1 (zh) * | 2016-11-30 | 2018-06-07 | 深圳天珑无线科技有限公司 | 分布式网络的簇首选取方法、节点及系统 |
CN108961701B (zh) * | 2018-08-02 | 2020-01-07 | 盐城迈斯杰信息工程有限公司 | 变电站环境智能监测系统 |
CN110166303B (zh) * | 2019-05-30 | 2022-04-26 | 宁波三星医疗电气股份有限公司 | 一种基于集中器的g3-plc网络诊断维护方法 |
CN111641993B (zh) * | 2020-06-09 | 2022-06-03 | 安徽理工大学 | 一种能量感知动态拓扑控制的时间同步方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094189A (zh) * | 2007-08-10 | 2007-12-26 | 中控科技集团有限公司 | 无线传感器网络系统和基于该系统的分簇路由方法 |
CN101217381A (zh) * | 2008-01-18 | 2008-07-09 | 北京航空航天大学 | 基于跨层的无线传感器网络节能方法 |
CN101272344A (zh) * | 2008-04-25 | 2008-09-24 | 北京航空航天大学 | 一种用于移动传感器网络的基于模糊位置信息的路由方法 |
-
2008
- 2008-12-15 CN CN2008102395753A patent/CN101426294B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094189A (zh) * | 2007-08-10 | 2007-12-26 | 中控科技集团有限公司 | 无线传感器网络系统和基于该系统的分簇路由方法 |
CN101217381A (zh) * | 2008-01-18 | 2008-07-09 | 北京航空航天大学 | 基于跨层的无线传感器网络节能方法 |
CN101272344A (zh) * | 2008-04-25 | 2008-09-24 | 北京航空航天大学 | 一种用于移动传感器网络的基于模糊位置信息的路由方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101426294A (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101426294B (zh) | 一种能够局部按需建簇的无线传感器网络路由方法 | |
US9445355B2 (en) | Multi-interface terminal, and neighbor topology discovery and cooperative communication method therefore | |
Saleem et al. | SMART: A SpectruM-Aware ClusteR-based rouTing scheme for distributed cognitive radio networks | |
Camps-Mur et al. | Enabling always on service discovery: Wifi neighbor awareness networking | |
Zeng et al. | Real-time data report and task execution in wireless sensor and actuator networks using self-aware mobile actuators | |
Shi et al. | Distributed graph routing and scheduling for industrial wireless sensor-actuator networks | |
Casetti et al. | Data connectivity and smart group formation in Wi-Fi direct multi-group networks | |
WO2015154597A1 (zh) | 一种动态构建虚拟小区的方法和装置 | |
Khan et al. | Energy optimization of PR-LEACH routing scheme using distance awareness in internet of things networks | |
Sanshi et al. | Enhanced mobility routing protocol for wireless sensor network | |
Ramkumar et al. | Energy consumption minimization in cognitive radio mobile ad-hoc networks using enriched ad-hoc on-demand distance vector protocol | |
Pitkänen et al. | Mobility and service discovery in opportunistic networks | |
EP3791635B1 (en) | Switching pans while maintaining parent/child relationships | |
CN101588621B (zh) | 一种多跳认知无线网络中基于风险评估的随机路由方法 | |
Farahani et al. | Double leveled unequal clustering with considering energy efficiency and load balancing in dense iot networks | |
Sholla et al. | Clustering internet of things: a review | |
CN105072586B (zh) | 嵌入式无线自组织网络中对广播消息的转发的管理方法 | |
US7613424B2 (en) | Method for performing bluetooth high rate supervisor handover | |
Arnaboldi et al. | Context-aware configuration and management of WiFi direct groups for real opportunistic networks | |
CN107534917A (zh) | 一种主从型网络中的切换方法、主设备、从设备和系统 | |
Colistra et al. | Objects that agree on task frequency in the IoT: A lifetime-oriented consensus based approach | |
Kretschmer et al. | Topology forming and optimization framework for heterogeneous wireless back-haul networks supporting unidirectional technologies | |
Sudheendran et al. | Challenges of mobility aware MAC protocols in WSN | |
CN114040471A (zh) | 基于蓝牙网络的分布式拓扑控制方法及终端 | |
CN108156621B (zh) | 基于OpenFlow协议的密集WLAN干扰控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100630 Termination date: 20141215 |
|
EXPY | Termination of patent right or utility model |