一种无线传感器网络的分簇路由方法

文档序号:7794896阅读:347来源:国知局
一种无线传感器网络的分簇路由方法
【专利摘要】本发明公开了一种无线传感器网络的分簇路由方法,该方法包括:从所述无线传感器网络中随机选取若干节点作为簇首节点,各个簇首之间的通信采用低功耗有损网络路由协议RPL方式;当所述簇首节点向外发送OFFER消息邀请其他节点成为其簇成员节点时,根据当前簇首节点在RPL路由树中的位置控制该簇首节点所携带的簇成员节点数量,完成分簇组网过程;在进行数据路由时,所述簇成员节点将采集到的数据通过单跳路由的方式发送至对应的簇首节点;簇首节点采用RPL路由方式将数据传递至根节点。通过采用本发明公开的方法,降低了拓扑树的深度、均衡了各节点的能耗、保持了网络的连通性、提高了网络稳定性的。
【专利说明】一种无线传感器网络的分簇路由方法
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种无线传感器网络的分簇路由方法。
【背景技术】
[0002]作为一种新的信息获取方式和处理模式,无线传感器网络(Wireless SensorNetworks,简称WSN)目前已成为国内外备受关注的研究热点。无线传感器网络是由大量功耗低、传输速率低、处理能力低、能量储备低的传感器节点通过自组织和自我修复的方式组成的网络。无线传感器网络典型的应用场景是:通过大量部署在监测区域内的传感器节点,采集网络覆盖区域内感知对象的信息(如温湿度、光强等),并通过多跳的无线通信方式,将收集、处理后的信息提供给终端用户,可广泛应用于军事侦察、环境监测、医疗监护、农业养殖和其他商业领域,以及空间探索和灾难抢险等特殊领域。
[0003]无线传感器网络是一种低功耗有损网络(Low-power and Lossy Networks,简称LLN)。鉴于低功耗有损网络的特殊性质,目前存在的Internet路由协议(如RIP、0SPF、A0DV等)并不适用,因此IETF ROLL工作组研究制定了低功耗有损网络路由协议(RoutingProtocol for LLN,简称RPL)。RPL协议是一个距离矢量路由协议,节点通过交换距离矢量构造一个有向无环图(Directed Acyclic Graph,简称DAG)。DAG可以有效防止路由环路问题,其根节点通过广播方式与其余节点交互信息,然后节点通过路由度量来选择最优的路径。
[0004]使用RPL路由协议所生成的有向无环图是一种树状的拓扑,叶子节点发出的数据包经过父节点的层层转发,传递给根节点。当无线传感器网络的规模较大,节点数较多时,该路由树的深度也会较深,对于靠近根节点的上层节点来说,需要转发的数据包数量非常大,能耗也会相应的增加。因此,在大规模的无线传感器网络中,上层节点容易因能量耗尽而死亡,影响网络的连通性,与此同时,下层的子节点需要重新选择父节点,会带来网络拓扑的剧烈变动。

【发明内容】

[0005]本发明的目的是提供一种无线传感器网络的分簇路由方法,达到降低拓扑树的深度、均衡各节点的能耗、保持网络的连通性、提高网络稳定性的目的。
[0006]本发明的目的是通过以下技术方案实现的:
[0007]—种无线传感器网络的分簇路由方法,该方法包括:
[0008]从所述无线传感器网络中随机选取若干节点作为簇首节点,各个簇首之间的通信采用低功耗有损网络路由协议RPL方式;当所述簇首节点向外发送OFFER消息邀请其他节点成为其簇成员节点时,根据当前簇首节点在RPL路由树中的位置控制该簇首节点所携带的簇成员节点数量,完成分簇组网过程;
[0009]在进行数据路由时,所述簇成员节点将采集到的数据通过单跳路由的方式发送至对应的簇首节点;簇首节点采用RPL路由方式将数据传递至根节点。[0010]由上述本发明提供的技术方案可以看出,基于分簇和RPL路由协议,选取无线传感器网络中的部分节点作为簇首节点,其余节点为簇成员节点,簇首节点之间的通信采用RPL路由协议,簇内即簇首节点和簇成员节点之间的通信采用单跳路由;通过分簇,可以达到降低拓扑树深度的目的;另外,每一簇首所能携带的成员节点数目由其在RPL路由树中的位置决定,由于处在RPL上层的簇首节点已经携带了很多子节点,能耗比下层的簇首大,因此越靠近根节点的簇首节点携带的成员节点越少,以达到均衡各节点能耗的目的。
【专利附图】

【附图说明】
[0011]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0012]图1为本发明实施例一提供的一种无线传感器网络中分簇路由网络拓扑图的示意图;
[0013]图2为本发明实施例二提供的一种无线传感器网络的分簇路由初次组网的流程图;
[0014]图3为本发明实施例三提供的一种簇首节点轮换的流程图。
【具体实施方式】
[0015]下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0016]本发明实施例中,基于分簇和RPL路由协议,选取无线传感器网络中的部分节点作为簇首节点,其余节点为簇成员节点,簇首节点之间的通信采用RPL路由协议,簇内即簇首节点和簇成员节点之间的通信采用单跳路由。通过分簇,可以达到降低拓扑树深度的目的。每个簇首所能携带的成员节点数目由其在RPL路由树中的位置决定,由于处在RPL上层的簇首节点已经携带了很多子节点,能耗比下层的簇首大,因此越靠近根节点的簇首携带的成员节点越少,以达到均衡各节点能耗的目的。
[0017]另外,对簇首节点进行基于能量的周期性轮换,新任簇首在本簇的成员节点内部进行选举,一般来说选取剩余能量最大的节点作为新任簇首。除了周期性轮换外,当现任簇首节点的剩余能量小于一定阈值时,也可触发簇首轮换过程。新任簇首节点继承原簇首节点在RPL路由树中的位置信息,以达到保持网络连通性和稳定性的目的。
[0018]另一方面,本发明中定义了两种控制消息,均适用于节点的分簇过程。
[0019]控制消息一:OFFER消息。
[0020]OFFER消息由簇首节点发送,包含以下信息:
[0021]Type-code:表示消息的应用场景。如组网时簇首向周围所有节点发送广播消息(0FFER_BR0ADCAST),或向某个普通节点发送消息(OFFER),簇首轮换时向选中的下一轮簇首发送消息(NEXT_HEAD)。[0022]Round-num:表示簇首当前的轮数。由于网络堵塞等原因,可能造成簇首发送的OFFER消息产生一定时间的延迟,当普通节点收到该消息时,发送该消息的簇首可能已经发生轮换并且不再担任簇首,如果OFFER消息中不携带簇首的轮数信息,普通节点就会认为其仍是簇首并有可能选择加入该簇。因此,当普通节点本身的轮数大于或等于收到OFFER的轮数时,应忽略此消息。
[0023]Rank:表示簇首在D0DAG中的位置、与根节点之间的距离。每个簇首所能携带的成员节点数目由其在RPL路由树中的位置决定,越靠近根节点的簇首,其携带的成员节点越少,根节点不携带任何簇成员。这是因为,越靠近根节点,其RPL子节点越多,在数据传输中消耗的能量也越大,为了防止其能量过早的耗尽,就需要减少其簇内成员的个数。
[0024]控制消息二:N0DEINF0消息
[0025]N0DEINF0消息由簇成员节点发送,包含以下信息:
[0026]Type-code:表示消息的应用场景。如组网时普通节点向簇首发送消息确认(ACK)加入该簇,或当一定时间内未加入任何簇时,主动向周围簇首发送广播(0FFER_REQUEST),请求加入。
[0027]Round-num:表示普通节点当前的轮数。与OFFER中Round_num的功能一样,是为了保证全网消息的一致性。
[0028]Res-energy:表示普通节点当前的剩余能量。簇内节点的剩余能量是选择下一轮簇首的标准。簇首的能量耗尽会使轮换过程提早发生,直接影响到网络的稳定性,因此应尽量选择剩余能量比较大的节点作为簇首。
[0029]本发明中定义了两种定时器,适用于分簇和簇首轮换过程。
[0030]定时器一:OFFER定时器
[0031]簇首用来确认广播发送时间的定时器,RPL路由协议在组网过程中使用定时器来控制D10控制消息的发送间隔,随着RPL路由树的逐步建立,D10消息的发送间隔是逐步增大的。本发明中设置OFFER定时器的目的是保证在RPL路由树基本建立时再发送分簇消息,避免由于网络中大量数据包的碰撞造成消息的丢失,而且在RPL路由建立初期,拓扑尚不稳定,无法确定簇首在路由树中的位置,也就无法确定可以携带的簇成员的个数。定时器的时间长度与无线传感器网络的簇首节点数目有关,簇首节点越多,RPL组网所需的时间越长,OFFER定时器所定的时间也越长。具体的实施过程为:当簇首节点收到D10时,启动OFFER定时器,定时器到期后则发送OFFER广播,如果在定时器到期前收到新的D10消息,则重新开始计时。
[0032]定时器二: ROUND定时器
[0033]簇首用来确认簇首轮换时间的定时器。定时器时间长度的设置与簇首轮换的次数有关,轮换的次数越多,定时器时长越短,最后趋于稳定。定时器的初始时长与节点发送数据包(非控制信息)的频率有关,数据包的发送频率越高,簇首轮换也越频繁。具体的实施过程为:当节点确认成为簇首时,启动此定时器,到期时间即为每一轮的时长,到期后则启动簇首轮换过程。
[0034]实施例一
[0035]本发明实施例提供一种无线传感器网络中分簇路由方法,该方法主要包括:
[0036]从所述无线传感器网络中随机选取若干节点作为簇首节点,各个簇首之间的通信采用低功耗有损网络路由协议RPL方式;当所述簇首节点向外发送OFFER消息邀请其他节点成为其簇成员节点时,根据当前簇首节点在RPL路由树中的位置控制该簇首节点所携带的簇成员节点数量,完成分簇组网过程;
[0037]在进行数据路由时,所述簇成员节点将采集到的数据通过单跳路由的方式发送至对应的簇首节点;簇首节点采用RPL路由方式将数据传递至根节点。
[0038]进一步的,所述簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点包括:
[0039]所述簇首节点向外发送OFFER消息,公告自身的簇首地位;
[0040]其他节点收到该OFFER消息后,判断自身是否已经加入簇;若已加入簇,且收到的OFFER广播为该节点所在簇的簇首节点发送,则回复确认消息ACK ;若已加入簇,且收到的OFFER广播为其他簇首节点发送,则丢弃次消息;若未加入簇,则回复ACK消息;
[0041]若同时收到两个簇首节点发送的OFFER消息,则向所述两个簇首节点中离根节点较远的簇首节点回复ACK消息;
[0042]簇首节点收到其他节点回复的ACK消息后,判断该节点是否在本簇的成员列表内;如果不存在,则判断其自身可携带的成员数是否已达上限,若未达到上限则添加该节点为簇成员节点,若已达上限,则丢弃该消息;如果存在,则更新该节点的剩余能量信息;
[0043]当节点收到簇首节点发送的允许加入簇的OFFER单播消息后,记录表示该簇首节点在RPL路由树中位置的Rank值。
[0044]进一步的,该方法还包括:
[0045]周期性进行簇首节点的轮换,从簇成员节点中选择剩余能量最大的节点作为新任簇首节点;以及,在当前簇首节点的剩余能量小于设定的阈值时,从簇成员节点中选择剩余能量最大的节点作为新任簇首节点;
[0046]所述新任簇首节点继承现任簇首节点在RPL路由树中的位置信息。
[0047]进一步的,所述从簇成员节点中选择剩余能量最大的节点作为新任簇首节点之后还包括:
[0048]所述现任簇首节点向新任簇首节点发送ROUND消息,通告其新任簇首的地位;
[0049]所述新任簇首节点收到高消息后向所述现任簇首节点返回确认消息R0UND_ACK,并更新本地的分簇状态表,记录所述现任簇首在RPL路由树中的位置信息;
[0050]所述现任簇首节点向其簇成员节点发送簇首更换消息HEAD_REM0VE ;
[0051]所述簇成员节点更新其分簇状态表及路由表信息,并将实时采集到的数据发送至所述新任簇首节点。
[0052]进一步的,簇首节点向簇成员节点或其他节点发送消息时,簇成员节点或其他节点在收到该消息后,比较该消息中携带的轮数值与其自身轮数值的大小;若该节点自身轮数值大于或等于该消息中携带的轮数值,则忽略该消息。
[0053]进一步的,所述簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点包括:
[0054]设置一定时器来确保所述RPL路由树完成度达到阈值时,该RPL路由树中的簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点。该阈值,可根据实际需求或经验来进行设定。[0055]进一步的,所有节点均需维护一个分簇状态表,记录其自身节点是否为簇首、所在簇的簇首地址、簇首在RPL路由树中的Rank值、当前轮数信息;
[0056]簇首节点还需要维护其簇内成员列表,记录簇成员节点的地址与剩余能量。
[0057]示例性的,图1为本发明实施例提供的一种无线传感器网络中分簇路由网络拓扑图的示意图。该图中的A节点为根节点,负责汇聚信息并管理网络;节点B、Bl、B2、C、C1、D、Dl、D2、D3、E、El、E2、F、F1、F2和F3均为传感器节点。传感器节点用于将采集到的数据汇集到根节点处,且初始能源值相同,具有相同的通信半径。其中,节点B、C、D、E、F为簇首节点,节点B是节点D、E的父节点,即节点D、E是节点B的子节点,同样的,节点C是节点F的父节点,即节点F是节点C的子节点。另外,图中虚线圈出的部分节点构成一个簇,以节点B、B1、B2构成的簇为例,节点B为簇首节点,节点B1、B2为簇成员节点,其他簇的构成以此类推。在通信时,按照图中箭头的方向,由簇首节点D、E、F将接收到的其各自簇成员节点发送的数据传输至簇首节点B、C,再由簇首节点B、C将其簇成员节点及簇首节点D、E、F发送的数据传输至根节点A。
[0058]实施例二
[0059]本发明实施例结合附图2对分簇路由协议中初次组网的过程进行详细的介绍,其主要基于RPL协议和分簇进行组网,达到降低了 RPL路由树深度的目的。在本实施例中,所有节点都需要维护一个分簇状态表,记录节点是否为簇首、所在簇的簇首地址、簇首在RPL路由树中的Rank值、当前轮数等信息。另外,成为簇首的节点需要维护其簇内成员列表,记录簇成员节点的地址、剩余能量。
[0060]初次组网的过程可参见图2,主要包括如下步骤:
[0061]步骤201:簇首节点向周围发送OFFER广播,公告自己的簇首地位。
[0062]簇首节点首先进行RPL组网,路由树初步建立后,开始发送分簇控制信息OFFER广播。具体的0FEER广播消息发送时间以OFFER定时器的设置为准。
[0063]步骤202:普通节点收到OFFER广播后,决定是否加入该簇。
[0064]普通节点判断自己是否已经加入簇。如果还没有加入任何簇,则直接回复ACK消息;如果已经加入簇,且收到的OFFER广播是由本簇的簇首发送,也回复ACK ;如果已经节点加入别的簇,则丢弃此消息。如果同时收到两条来自不同簇首节点的OFFER广播,则选择Rank值较小(离根节点较远)的簇加入。
[0065]步骤203:簇首收到ACK消息后,决定是否接受该节点加入。
[0066]簇首节点首先判断该节点是否在本簇的成员列表内,如果不存在,则判断簇首节点携带的成员数是否已达上限,如果没有达到上限则添加该节点为成员节点,并回复OFFER单播消息;如果该成员已存在,则更新其剩余能量信息,不作回复;如果成员数已经达到上限,则丢弃此消息。
[0067]步骤204:普通节点加入簇。
[0068]普通节点收到簇首节点发送的OFFER单播消息,记录簇首在RPL中的Rank值。至此,普通节点成功加入簇,成为簇成员节点。
[0069]实施例三
[0070]本发明实施例结合附图3对分簇路由协议中簇首轮换的过程做详细的介绍。如图3所示,其主要包括如下步骤:[0071]步骤301:现任簇首节点向新任簇首节点发送ROUND消息。
[0072]ROUND定时器到期后,现任簇首根据簇成员列表中的记录(或者,当前簇首节点的剩余能量小于设定的阈值时),选择剩余能量最大的节点作为新任簇首并向其发送ROUND消息,通告其新任簇首的地位。
[0073]步骤302:新任簇首向现任簇首节点发送R0UND_ACK消息。
[0074]新任簇首收到ROUND消息后,如果决定接受担任下任簇首的邀请,则向现任簇首回复R0UND_ACK消息,确认簇首轮换过程的开始,同时更新自己的分簇状态表,记录现任簇首在RPL路由树中的信息,并开始进行RPL入网过程。
[0075]步骤303:现任簇首向簇成员发送HEAD_REM0VE消息。
[0076]现任簇首向其簇成员节点发送HEAD_REM0VE消息,通告其已卸任簇首这一清况,簇成员节点收到该消息后,不需要回复,但需要更新其分簇状态表及路由表信息。
[0077]步骤304:新任簇首与簇成员之间的控制信息交互。
[0078]新任簇首与簇成员之间的控制信息交互过程在前述实施例中已进行消息描述,故不再赘述。至此,簇首轮换过程结束。
[0079]本发明的上述实施例中,基于分簇和RPL路由协议,选取无线传感器网络中的部分节点作为簇首节点,其余节点为簇成员节点,簇首节点之间的通信采用RPL路由协议,簇内即簇首节点和簇成员节点之间的通信采用单跳路由;通过分簇,可以达到降低拓扑树深度的目的;另外,每一簇首所能携带的成员节点数目由其在RPL路由树中的位置决定,由于处在RPL上层的簇首节点已经携带了很多子节点,能耗比下层的簇首大,因此越靠近根节点的簇首节点携带的成员节点越少,以达到均衡各节点能耗的目的。
[0080]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0081]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
【权利要求】
1.一种无线传感器网络的分簇路由方法,其特征在于,该方法包括:从所述无线传感器网络中随机选取若干节点作为簇首节点,各个簇首之间的通信采用低功耗有损网络路由协议RPL方式;当所述簇首节点向外发送OFFER消息邀请其他节点成为其簇成员节点时,根据当前簇首节点在RPL路由树中的位置控制该簇首节点所携带的簇成员节点数量,完成分簇组网过程;在进行数据路由时,所述簇成员节点将采集到的数据通过单跳路由的方式发送至对应的簇首节点;簇首节点采用RPL路由方式将数据传递至根节点。
2.根据权利要求1所述的方法,其特征在于,所述簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点包括:所述簇首节点向外发送OFFER消息,公告自身的簇首地位;其他节点收到该OFFER消息后,判断自身是否已经加入簇;若已加入簇,且收到的OFFER广播为该节点所在簇的簇首节点发送,则回复确认消息ACK ;若已加入簇,且收到的OFFER广播为其他簇首节点发送,则丢弃次消息;若未加入簇,则回复ACK消息;若同时收到两个簇首节点发送的OFFER消息,则向所述两个簇首节点中离根节点较远的簇首节点回复ACK消息;簇首节点收到其他节点回复的ACK消息后,判断该节点是否在本簇的成员列表内;如果不存在,则判断其自身可携带的成员数是否已达上限,若未达到上限则添加该节点为簇成员节点,若已达上限,则丢弃该消息;如果存在,则更新该节点的剩余能量信息;当节点收到簇首节点发送的允许加入簇的OFFER单播消息后,记录表示该簇首节点在RPL路由树中位置的Rank值。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:周期性进行簇首节点的轮换,从簇成员节点中选择剩余能量最大的节点作为新任簇首节点;以及,在当前簇首节点的剩余能量小于设定的阈值时,从簇成员节点中选择剩余能量最大的节点作为新任簇首节点;所述新任簇首节点继承现任簇首节点在RPL路由树中的位置信息。
4.根据权利要求3所述的方法,其特征在于,所述从簇成员节点中选择剩余能量最大的节点作为新任簇首节点之后还包括:所述现任簇首节点向新任簇首节点发送ROUND消息,通告其新任簇首的地位;所述新任簇首节点收到高消息后向所述现任簇首节点返回确认消息R0UND_ACK,并更新本地的分簇状态表,记录所述现任簇首在RPL路由树中的位置信息;所述现任簇首节点向其簇成员节点发送簇首更换消息HEAD_REMOVE ;所述簇成员节点更新其分簇状态表及路由表信息,并将实时采集到的数据发送至所述新任簇首节点。
5.根据权利要求1或2或4所述的方法,其特征在于,簇首节点向簇成员节点或其他节点发送消息时,簇成员节点或其他节点在收到该消息后,比较该消息中携带的轮数值与其自身轮数值的大小;若该节点自身轮数值大于或等于该消息中携带的轮数值,则忽略该消息。
6.根据权利要求1所述的方法,其特征在于,所述簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点包括:设置一定时器来确保所述RPL路由树完成度达到阈值时,该RPL路由树中的簇首节点向外发送OFFER广播邀请其他节点成为其簇成员节点。
7.根据权利要求1、2、3、4或6所述的方法,其特征在于,所有节点均需维护一个分簇状态表,记录其自身节点是否为簇首、所在簇的簇首地址、簇首在RPL路由树中的Rank值、当前轮数信息;簇首节点还 需要维护其簇内成员列表,记录簇成员节点的地址与剩余能量。
【文档编号】H04W40/02GK103702383SQ201410010192
【公开日】2014年4月2日 申请日期:2014年1月9日 优先权日:2014年1月9日
【发明者】高德云, 杨冬, 张宏科, 高筱菲, 朱婉婷, 赵伟程 申请人:北京交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1