CN105050148B - 一种无线传感网路由的实现方法 - Google Patents
一种无线传感网路由的实现方法 Download PDFInfo
- Publication number
- CN105050148B CN105050148B CN201510564269.7A CN201510564269A CN105050148B CN 105050148 B CN105050148 B CN 105050148B CN 201510564269 A CN201510564269 A CN 201510564269A CN 105050148 B CN105050148 B CN 105050148B
- Authority
- CN
- China
- Prior art keywords
- node
- global function
- function node
- nodes
- branch
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/04—Communication route or path selection, e.g. power-based or shortest path routing based on wireless node resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种无线传感网路由的实现方法,其特征在于,所述无线传感网包含两种节点:全功能节点和部分功能节点;全功能节点具有路由转发功能,部分功能节点不具有路由转发功能,部分功能节点用于感知环境参数;所述无线传感网通过接入路由器连接到下一代互联网,接入路由器和所述无线传感网中的所有全功能节点构建成一个树状结构,称为地址树,地址树的根节点为接入路由器;部分功能节点通过地址树与其他节点进行通信,地址树中与部分功能节点直接通信的全功能节点称为部分功能节点的关联节点,所述无线传感网通过本发明所提供的实现方法可缩短通信延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、车辆管理等领域。
Description
技术领域
本发明涉及一种实现方法,尤其涉及的是一种无线传感网路由的实现方法。
背景技术
无线网络作为一种新型通信网络,能够实现节点与节点之间的多跳无线通信。随着无线网络技术的不断发展以及各种新应用的不断涌现,迫切需要无线网络能够接入互联网以满足用户急剧增长的应用需求。
无线网络作为一种特殊类型的移动自组网,具有移动速度快、节点数量多、覆盖面积大等特点。基于IPv6的互联网(以下简称IPv6网络)具有移动性支持、地址资源丰富以及扩展性强等优点。因此,无线网络接入IPv6网络成为满足用户应用需求的理想解决方案。
目前的研究人员提出了无线网络通过接入基于IPv6的互联网获取网络服务的模式并定义了相应的协议栈,但是由于无线网络网的体系结构与IPv6网络不通,现有的接入方法具有一些局限性。因此需要提出一种无线网络的通信实现方法,从而降低数据丢失率,提高服务质量。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种无线传感网路由的实现方法。
技术方案:本发明公开了一种无线传感网路由的实现方法,所述无线传感网包含两种节点:全功能节点和部分功能节点;全功能节点具有路由转发功能,部分功能节点不具有路由转发功能,部分功能节点用于感知环境参数;所述无线传感网通过接入路由器连接到下一代互联网,接入路由器和所述无线传感网中的所有全功能节点构建成一个树状结构,称为地址树,地址树的根节点为接入路由器;部分功能节点通过地址树与其他节点进行通信,地址树中与部分功能节点直接通信的全功能节点称为部分功能节点的关联节点;
所述无线传感网节点的IPv6地址由四部分构成,第一部分为树ID,它唯一标识一个无线传感网,一个无线传感网中所有传感器节点的树ID都相同,其值等于相同无线传感网内的接入路由器的树ID;第二部分为1比特的类型域,该域表示一个传感器节点的类型,当类型域为1时,表示该节点为全功能节点,当类型域为0时,表示该节点为部分功能节点;第三部分为i比特的树枝ID,它唯一标识一个全功能节点,第四部分为j比特的节点ID,它唯一标识一个部分功能节点;接入路由器的IPv6地址的类型域值为1,树枝ID为0,节点ID为非零自然数;接入路由器的树ID预先设置;
类型域,树枝ID和节点ID构成链路地址,其长度为16比特或者64比特;
一个全功能节点的树枝ID的有效长度L与该节点所在地址树的深度d成正比,L≤i,如公式(1)所示,
L=d·c 公式(1),
其中,c是衡量一个全功能节点拥有的最大子节点数量的变量,即2c-1是一个全功能节点拥有的最大子节点数,c一般取值范围为2-6;
全功能节点获取IPv6地址后定期广播信标帧,信标帧负载包括树ID,可供分配的树枝ID数量和节点ID数量;地址树中每个节点保存一个树枝ID表,具有2c-1个表项,每个表项包含三个域:树枝ID域,分配状态和生命周期,其中分配状态具有两个值,已分配和未分配,如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到对应该树枝ID的全功能节点广播的信标帧,那么将生命周期域值设置为最大值;生命周期一般设置为信标帧广播周期的整数倍,例如1分钟;如果生命周期衰减为0,那么将该树枝ID的分配状态改为未分配;
全功能节点启动后,用自己的硬件ID作为临时链路地址(例如MAC地址)并侦听邻居接入路由器或者全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配树枝ID最大的邻居接入路由器或者全功能节点获取地址,包括以下步骤:
步骤101:开始;
步骤102:全功能节点向邻居接入路由器或者全功能节点发送树枝ID请求命令帧,源链路地址为全功能节点的临时链路地址;
步骤103:邻居接入路由器或者全功能节点收到树枝ID请求命令帧后,查看树枝ID表,选择最小未分配的树枝ID,向全功能节点返回树枝ID响应命令帧,树枝ID响应命令帧负载为分配的树枝ID,同时将该树枝ID的分配状态设置为已分配,生命周期设置为最大值;
步骤104:全功能节点收到树枝ID响应命令帧后,将自己的树枝ID设置为邻居接入路由器或者全功能节点的树枝ID,然后将自己的树枝ID扩展c个比特,并将扩展的c个比特的值设置为树枝ID响应命令帧中分配的树枝ID值,然后将树ID与自己的树枝ID相结合构建成IPv6地址,其中,类型域为1,节点ID为0;
步骤105:结束;
通过上述过程,全功能节点获取了地址并可以进行通信;
树中每个节点保存一个节点ID表,具有2j-1个表项,i取值为4或者8;每个表项包含三个域:节点ID,分配状态和生命周期,其中,分配状态具有两个值,已分配状态和未分配状态;如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到该节点ID的部分功能节点广播的信标帧,那么将生命周期域值设置为最大值;生命周期设置为信标帧广播周期的整数倍,例如1分钟;如果生命周期衰减为0,那么将该节点ID的分配状态改为未分配;
部分功能节点启动后,用自己的硬件ID(例如MAC地址)作为临时链路地址,并侦听全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配节点ID数量最大的全功能节点获取地址,包括以下步骤:
步骤201:开始;
步骤202:部分功能节点向全功能节点发送节点ID请求命令帧,源地址为部分功能节点临时链路地址;
步骤203:全功能节点收到节点ID请求命令帧后,查看节点ID表,选择最小未分配的节点ID,向部分功能节点返回节点ID响应命令帧,节点ID响应命令帧负载为分配的节点ID,同时将该节点ID的分配状态设置为已分配状态,生命周期设置为最大值;
步骤204:部分功能节点收到节点ID响应命令帧后,将自己的树枝ID设置为全功能节点的树枝ID,将节点ID设置为节点ID响应命令帧中的节点ID值,然后将树ID,树枝ID以及节点ID相结合构建成IPv6地址,其中,类型域值为0;
步骤205结束。
通过上述过程,部分功能节点可以获取地址,并进行正确通信;
本发明所述方法中,全功能节点获取IPv6地址后,构建一跳邻居表和两跳邻居表,一跳邻居表用于记录一跳范围内的全功能节点,每个表项包含两个域:邻居节点的链路地址和生命周期;二跳邻居表用于记录两跳范围内的全功能节点,每个表项包括三个域:两跳邻居节点的链路地址,一跳邻居节点的链路地址,以及生命周期,其中一跳邻居节点的链路地址为到达该两跳邻居节点所经过的一跳邻居节点的链路地址;
全功能节点配置地址后,广播的信标帧包括树ID,可供分配的树枝ID数量和节点ID数量,以及一跳邻居表和两跳邻居表;
全功能节点根据下述过程建立一跳邻居表和二跳邻居表:
步骤301:开始;
步骤302:全功能节点收到邻居全功能节点的信标帧后,判断该邻居全功能节点是否在自己的一跳邻居表内,如果是进行步骤303,否则进行步骤304:
步骤303:全功能节点将该邻居全功能节点加入到一跳邻居列表中,生命周期设置为最大值;
步骤304:全功能节点查看信标帧中一跳邻居表的每个表项,判断该表项标识的全功能节点是否为自己的一跳邻居全功能节点,如果是,进行步骤306,否则进行步骤305;
步骤305:全功能节点将该表项标识的全功能节点加入到二跳邻居表中,其中,二跳邻居节点的链路地址为该表项标识的全功能节点的链路地址,一跳邻居节点的链路地址为该信标帧的源链路地址,生命周期设置为最大值;
步骤306:全功能节点判断是否执行了步骤303或者步骤305,如果是,进行步骤307,否则执行步骤308;
步骤307:全功能节点重复步骤302~步骤306;
步骤308:结束。
本发明所述方法中,如果全功能节点Y1是全功能节点Y2的祖先节点,全功能节点Y1的树枝ID的有效长度为L1,全功能节点Y2的树枝ID的有效长度为L2,那么全功能节点Y2到达全功能节点Y1的距离h如公式(2)所示:
如果一个数据帧的目的链路地址的树枝ID与全功能节点X的树枝ID相同,那么该数据帧路由到全功能节点X的过程如下所示:
步骤401:开始;
步骤402:收到该数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,并判断全功能节点X是否为自己的一跳邻居节点,如果是,进行步骤403,否则进行步骤404;
步骤403:当前全功能节点将该数据帧发动到全功能节点X,进行步骤410;
步骤404:当前全功能节点判断全功能节点X是否为自己二跳邻居节点表中一个表项中的二跳邻居节点,如果是,进行步骤405,否则进行步骤406;
步骤405:当前全功能节点将该数据帧转发给全功能节点X对应表项的一跳邻居节点域对应的全功能节点,进行步骤402;
步骤406:如果当前全功能节点的一跳邻居节点表T1存在n个表项,每个表项所标识的邻居全功能节点为Yk,1≤k≤n,二跳邻居节点表T2存在m个表项,每个表项所标识的二跳邻居全功能节点为Zb,1≤b≤m,全功能节点Yk与全功能节点X的共同祖先为Ak,全功能节点Yk到达全功能节点Ak的距离与全功能节点X到达全功能节点Ak的距离之和为hk,全功能节点Zb与全功能节点X的共同祖先为全功能节点Ab,全功能节点Zb到达全功能节点Ab的距离与全功能节点X到达全功能节点Ab的距离之和为hb,当前全功能节点判断其一跳邻居节点表T1中是否存在满足公式(3)的全功能节点,如果是,执行步骤407,否则执行步骤408;
公式(3)中,在一跳邻居表中存在一个表项,该表项标识的全功能节点Yp,全功能节点Yp与全功能节点X的共同祖先为Ap,全功能节点Yp到达全功能节点Ap的距离与全功能节点X到达全功能节点Ap的距离之和为hp,hp小于或者等于hk并且hp小于或者等于hb加1;
步骤407:当前全功能节点将数据帧转发给满足公式(3)的一跳全功能节点,执行步骤402;
步骤408:当前全功能节点从自己的二跳邻居节点表T2中选择满足公式(4)的全功能节点;
公式(4)中,在二跳邻居表中存在一个表项,该表项标识的全功能节点Yq,全功能节点Yq与全功能节点X的共同祖先为Aq,全功能节点Yq到达全功能节点Aq的距离与全功能节点X到达全功能节点Aq的距离之和为hq,hq小于hk并且hp小于或者等于hb;
步骤409:当前全功能节点将数据帧转发给满足公式(4)的两跳邻居节点对应表项中一跳邻居节点域对应的全功能节点,执行步骤402;
步骤410:结束。
通过上述过程,节点之间实现了通信,由于路由路径最短,因为降低了通信延迟。
本发明所述方法中,在部分功能节点Z2的关联节点为X2,部分功能节点Z8的关联节点为X8的情况下,部分功能节点Z2与部分功能节点Z8的通信过程包括如下步骤:
步骤501:开始;
步骤502:部分功能节点Z2构建一个数据帧,源地址为自己的链路地址,目的地址为部分功能节点Z8的链路地址,然后将数据帧发送到自己的关联节点X2;
步骤503:根据目的链路地址的树枝ID,数据帧通过步骤401到步骤409从全功能节点X2路由到全功能节点X8;
步骤504:全功能节点X8收到数据帧后,根据数据帧的目的链路地址,将数据帧转发到部分功能节点Z8;
步骤505:结束。
通过上述过程,节点之间实现了通信,由于路由路径最短,因为降低了通信延迟。
本发明所述方法中,全功能节点X1检测到父节点Y1失效后,全功能节点X1侦听邻居全功能节点广播的信标帧,选择可供分配树枝ID最大并且不是全功能节点Y1的子孙节点的全功能节点Y2获取新的树枝ID和IPv6地址,并对自己子孙节点的地址进行更新,过程如下所示:
步骤601:开始;
步骤602:全功能节点X1或者子孙节点获取新的链路地址后,采用新的链路地址广播信标帧,信标帧负载为原来的链路地址;
步骤603:如果收到该信标帧的部分功能节点的树枝ID等于信标帧负载中的链路地址的树枝ID,则将自己的树枝ID设置为信标帧源地址的树枝ID,节点ID不变;
步骤604:如果收到信标帧的节点为全功能节点X1的子孙节点,则将自己的树枝ID设置为信标帧源链路地址的树枝ID,然后将自己的树枝ID扩展c个比特,将扩展的c个比特的值设置为自己原来链路地址的最后c个比特有效位的值;
步骤605:重复步骤602到步骤604,直到全功能节点X1的所有子孙节点都更新了链路地址并且采用新的链路地址广播了信标帧;
步骤606:结束。
即使全功能节点的父节点失效,该节点仍然能通过上述过程实现正常通信,从而提高了通信质量。
本发明所述方法中,如果全功能节点Y1失效,那么在其子孙节点在地址更新期间仍然采用原来的IPv6地址进行通信,全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点Y3的树枝ID,在全功能节点Y3不是全功能节点Y1的子孙节点的情况下,如果邻居节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么邻居节点进行如下步骤以将数据帧送到目的节点:
步骤701:开始;
步骤702:收到数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,判断全功能节点Y3是否为当前全功能节点的邻居节点,如果是,进行步骤703,否则进行步骤704;
步骤703:当前全功能节点直降将数据帧转发给全功能节点Y3,进行步骤712;
步骤704:当前全功能节点判断全功能节点Y3是否为自己的两跳邻居节点,如果是,进行步骤705,否则进行步骤706;
步骤705:当前全功能节点将数据帧转发给全功能节点Y3对应二跳表项的一跳邻居节点域对应的邻居节点,进行步骤702;
步骤706:当前全功能节点判断一跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤708,否则进行步骤707;
步骤707:如果当前全功能节点有n1个不是全功能节点Y1的子孙节点的一跳邻居全功能节点,记作Nk1,1≤k1≤n1,全功能节点Nk1与全功能节点Y3的共同祖先为全功能节点Ak1,全功能节点Nk1到达全功能节点Ak1的距离与全功能节点Y3到达全功能节点Ak1的距离之和为hk1,那么当前全功能节点将数据帧转发给满足公式(5)的一跳邻居全功能节点,进行步骤711;
步骤708:当前全功能节点判断二跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤710,否则进行步骤709;
步骤709:如果当前全功能节点有m1个不是全功能节点Y1的子孙节点的二跳邻居全功能节点,记作Mb1,1≤b1≤m1,全功能节点Mb1与全功能节点Y3的共同祖先为Ab1,全功能节点Mb1到达全功能节点Ab1的距离与全功能节点Y3到达全功能节点Ab1的距离之和为hb1,那么当前全功能节点将数据帧转发给满足公式(6)的二跳邻居全功能节点,进行步骤702;
步骤710:当前全功能节点选择一个一跳邻居全功能节点,该邻居节点距离接入路由器最近且邻居节点相对较多,然后将数据帧转发给该邻居节点,执行步骤702;
步骤711:不是全功能节点Y1的子孙节点的一跳邻居全功能节点收到数据帧后,根据树状结构,将数据帧路由到接入路由器,然后接入路由器再根据树状结构将数据帧路由到全功能节点Y3;
步骤712:结束。
上述过程可以确保两个节点之间实现通信,由于路由路径最短,因为降低了通信延迟。
本发明所述方法中,全功能节点建立一跳邻居表之后,向接入路由器发送注册命令帧,注册命令帧负载为一跳邻居表;
全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点X6的树枝ID,全功能节点X6是全功能节点Y1的子孙节点,如果全功能节点Y1的邻居全功能节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么它进行如下步骤以将数据帧送到目的节点:
步骤801:开始;
步骤802:全功能节点Y1的邻居全功能节点收到数据帧后,如果邻居全功能节点是全功能节点Y1的子节点,则进行步骤803,否则执行步骤804;
步骤803:邻居全功能节点根据步骤701到步骤712将数据帧路由到接入路由器,执行步骤805;
步骤804:邻居全功能节点根据树状结构将数据帧路由到接入路由器;
步骤805:接入路由器查看全功能节点Y1子孙节点的一跳邻居节点列表,判断全功能节点X6的一跳邻居节点是否都是全功能节点Y1的子孙节点,如果是,进行步骤807,否则进行步骤806;
步骤806:接入路由器通过树状结构将数据帧路由到不是全功能节点Y1子孙节点的一跳邻居节点,该一跳邻居节点收到数据帧后,将数据帧转发给全功能节点X6,进行步骤808;
步骤807:如果全功能节点X6的x-1跳范围内的邻居全功能节点都是全功能节点Y1的子孙节点,x≥2,那么接入路由器查看全功能节点X6的x跳邻居全功能节点,直到发现一个不是全功能节点Y1子孙节点的邻居全功能节点,且该邻居全功能节点到达全功能节点X6的路由路径不经过全功能节点Y1,然后接入路由器采用路由头部将数据帧路由到全功能节点X6,其中路由头部的值为该邻居全功能节点到达全功能节点X6的路由路径;
步骤808:结束。
上述过程可以确保两个节点之间实现通信,由于路由路径最短,因为降低了通信延迟。
有益效果:本发明提供了一种无线传感网路由的实现方法,所述无线网络通过本发明所提供的实现方法可获取IPv6网络提供的网络服务,同时保持通信的连续性,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的无线传感网体系结构示意图。
图2为本发明所述的全局IPv6地址结构示意图。
图3为本发明所述的全功能节点地址配置流程示意图。
图4为本发明所述的部分功能节点地址配置流程示意图。
图5为本发明所述的邻居表建立流程示意图。
图6为本发明所述的路由流程示意图。
图7为本发明所述的通信流程示意图。
图8为本发明所述的处理节点失效流程示意图。
图9为本发明所述的全功能节点失效情况下的路由流程示意图。
图10为本发明所述的全功能节点失效情况下的通信流程示意图。
具体实施方式:
本发明提供了一种无线传感网路由的实现方法,所述无线网络通过本发明所提供的实现方法可获取IPv6网络提供的网络服务,同时保持通信的连续性,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。
图1为本发明所述的无线传感网体系结构示意图。所述无线传感网包含两种节点:全功能节点1和部分功能节点2;全功能节点1具有路由转发功能,部分功能节点2不具有路由转发功能,部分功能节点2用于感知环境参数;所述无线传感网通过接入路由器3连接到下一代互联网,接入路由器3和所述无线传感网中的所有全功能节点1构建成一个树状结构,称为地址树,地址树的根节点为接入路由器3;部分功能节点2通过地址树与其他节点进行通信,地址树中与部分功能节点2直接通信的全功能节点1称为部分功能节点的关联节点。
图2为本发明所述的全局IPv6地址结构示意图。所述无线传感网节点的IPv6地址由四部分构成,第一部分为127-i-j位的树ID,它唯一标识一个无线传感网,一个无线传感网中所有传感器节点的树ID都相同,其值等于相同无线传感网内的接入路由器的树ID;第二部分为1比特的类型域,该域表示一个传感器节点的类型,当类型域为1时,表示该节点为全功能节点,当类型域为0时,表示该节点为部分功能节点;第三部分为i比特的树枝ID,它唯一标识一个全功能节点,第四部分为j比特的节点ID,它唯一标识一个部分功能节点;接入路由器的IPv6地址的类型域值为1,树枝ID为0,节点ID为非零自然数;
类型域,树枝ID和节点ID构成链路地址,其长度为16比特或者64比特;
一个全功能节点的树枝ID的有效长度L与该节点所在地址树的深度d成正比,L≤i,如公式(1)所示,
L=d·c 公式(1),
其中,c是衡量一个全功能节点拥有的最大子节点数量的变量,即2c-1是一个全功能节点拥有的最大子节点数,c一般取值范围为2-6;
全功能节点获取IPv6地址后定期广播信标帧,信标帧负载包括树ID,可供分配的树枝ID数量和节点ID数量;地址树中每个节点保存一个树枝ID表,具有2c-1个表项,每个表项包含三个域:树枝ID域,分配状态和生命周期,其中分配状态具有两个值,已分配和未分配,如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到对应该树枝ID的全功能节点广播的信标帧,那么将生命周期域值设置为最大值;生命周期一般设置为信标帧广播周期的整数倍,例如1分钟;如果生命周期衰减为0,那么将该树枝ID的分配状态改为未分配。
图3为本发明所述的全功能节点地址配置流程示意图。全功能节点启动后,用自己的硬件ID作为临时链路地址(例如MAC地址)并侦听邻居接入路由器或者全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配树枝ID最大的邻居接入路由器或者全功能节点获取地址,包括以下步骤:
步骤101:开始;
步骤102:全功能节点向邻居接入路由器或者全功能节点发送树枝ID请求命令帧,源链路地址为全功能节点的临时链路地址;
步骤103:邻居接入路由器或者全功能节点收到树枝ID请求命令帧后,查看树枝ID表,选择最小未分配的树枝ID,向全功能节点返回树枝ID响应命令帧,树枝ID响应命令帧负载为分配的树枝ID,同时将该树枝ID的分配状态设置为已分配,生命周期设置为最大值;
步骤104:全功能节点收到树枝ID响应命令帧后,将自己的树枝ID设置为邻居接入路由器或者全功能节点的树枝ID,然后将自己的树枝ID扩展c个比特,并将扩展的c个比特的值设置为树枝ID响应命令帧中分配的树枝ID值,然后将树ID与自己的树枝ID相结合构建成IPv6地址,其中,类型域为1,节点ID为0;
步骤105:结束;
通过上述过程,全功能节点获取了地址并可以进行通信。
图4为本发明所述的部分功能节点地址配置流程示意图。树中每个节点保存一个节点ID表,具有2j-1个表项,i取值为4或者8;每个表项包含三个域:节点ID,分配状态和生命周期,其中,分配状态具有两个值,已分配状态和未分配状态;如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到该节点ID的部分功能节点广播的信标帧,那么将生命周期域值设置为最大值;生命周期设置为信标帧广播周期的整数倍,例如1分钟;如果生命周期衰减为0,那么将该节点ID的分配状态改为未分配;
部分功能节点启动后,用自己的硬件ID(例如MAC地址)作为临时链路地址,并侦听全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配节点ID数量最大的全功能节点获取地址,包括以下步骤:
步骤201:开始;
步骤202:部分功能节点向全功能节点发送节点ID请求命令帧,源地址为部分功能节点临时链路地址;
步骤203:全功能节点收到节点ID请求命令帧后,查看节点ID表,选择最小未分配的节点ID,向部分功能节点返回节点ID响应命令帧,节点ID响应命令帧负载为分配的节点ID,同时将该节点ID的分配状态设置为已分配状态,生命周期设置为最大值;
步骤204:部分功能节点收到节点ID响应命令帧后,将自己的树枝ID设置为全功能节点的树枝ID,将节点ID设置为节点ID响应命令帧中的节点ID值,然后将树ID,树枝ID以及节点ID相结合构建成IPv6地址,其中,类型域值为0;
步骤205结束。
通过上述过程,部分功能节点可以获取地址,并进行正确通信。
图5为本发明所述的邻居表建立流程示意图。本发明所述方法中,全功能节点获取IPv6地址后,构建一跳邻居表和两跳邻居表,一跳邻居表用于记录一跳范围内的全功能节点,每个表项包含两个域:邻居节点的链路地址和生命周期;二跳邻居表用于记录两跳范围内的全功能节点,每个表项包括三个域:两跳邻居节点的链路地址,一跳邻居节点的链路地址,以及生命周期,其中一跳邻居节点的链路地址为到达该两跳邻居节点所经过的一跳邻居节点的链路地址;
全功能节点配置地址后,广播的信标帧包括树ID,可供分配的树枝ID数量和节点ID数量,以及一跳邻居表和两跳邻居表;
全功能节点根据下述过程建立一跳邻居表和二跳邻居表:
步骤301:开始;
步骤302:全功能节点收到邻居全功能节点的信标帧后,判断该邻居全功能节点是否在自己的一跳邻居表内,如果是进行步骤303,否则进行步骤304:
步骤303:全功能节点将该邻居全功能节点加入到一跳邻居列表中,生命周期设置为最大值;
步骤304:全功能节点查看信标帧中一跳邻居表的每个表项,判断该表项标识的全功能节点是否为自己的一跳邻居全功能节点,如果是,进行步骤306,否则进行步骤305;
步骤305:全功能节点将该表项标识的全功能节点加入到二跳邻居表中,其中,二跳邻居节点的链路地址为该表项标识的全功能节点的链路地址,一跳邻居节点的链路地址为该信标帧的源链路地址,生命周期设置为最大值;
步骤306:全功能节点判断是否执行了步骤303或者步骤305,如果是,进行步骤307,否则执行步骤308;
步骤307:全功能节点重复步骤302~步骤306;
步骤308:结束。
图6为本发明所述的路由流程示意图。如果全功能节点Y1是全功能节点Y2的祖先节点,全功能节点Y1的树枝ID的有效长度为L1,全功能节点Y2的树枝ID的有效长度为L2,那么全功能节点Y2到达全功能节点Y1的距离h如公式(2)所示:
如果一个数据帧的目的链路地址的树枝ID与全功能节点X的树枝ID相同,那么该数据帧路由到全功能节点X的过程如下所示:
步骤401:开始;
步骤402:收到该数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,并判断全功能节点X是否为自己的一跳邻居节点,如果是,进行步骤403,否则进行步骤404;
步骤403:当前全功能节点将该数据帧发动到全功能节点X,进行步骤410;
步骤404:当前全功能节点判断全功能节点X是否为自己二跳邻居节点表中一个表项中的二跳邻居节点,如果是,进行步骤405,否则进行步骤406;
步骤405:当前全功能节点将该数据帧转发给全功能节点X对应表项的一跳邻居节点域对应的全功能节点,进行步骤402;
步骤406:如果当前全功能节点的一跳邻居节点表T1存在n个表项,每个表项所标识的邻居全功能节点为Yk,1≤k≤n,二跳邻居节点表T2存在m个表项,每个表项所标识的二跳邻居全功能节点为Zb,1≤b≤m,全功能节点Yk与全功能节点X的共同祖先为Ak,全功能节点Yk到达全功能节点Ak的距离与全功能节点X到达全功能节点Ak的距离之和为hk,全功能节点Zb与全功能节点X的共同祖先为全功能节点Ab,全功能节点Zb到达全功能节点Ab的距离与全功能节点X到达全功能节点Ab的距离之和为hb,当前全功能节点判断其一跳邻居节点表T1中是否存在满足公式(3)的全功能节点,如果是,执行步骤407,否则执行步骤408;
公式(3)中,在一跳邻居表中存在一个表项,该表项标识的全功能节点Yp,全功能节点Yp与全功能节点X的共同祖先为Ap,全功能节点Yp到达全功能节点Ap的距离与全功能节点X到达全功能节点Ap的距离之和为hp,hp小于或者等于hk并且hp小于或者等于hb加1;
步骤407:当前全功能节点将数据帧转发给满足公式(3)的一跳全功能节点,执行步骤402;
步骤408:当前全功能节点从其二跳邻居节点表T2中选择满足公式(4)的全功能节点;
公式(4)中,在二跳邻居表中存在一个表项,该表项标识的全功能节点Yq,全功能节点Yq与全功能节点X的共同祖先为Aq,全功能节点Yq到达全功能节点Aq的距离与全功能节点X到达全功能节点Aq的距离之和为hq,hq小于hk并且hp小于或者等于hb;
步骤409:当前全功能节点将数据帧转发给满足公式(4)的两跳邻居节点对应表项中一跳邻居节点域对应的全功能节点,执行步骤402;
步骤410:结束。
通过上述过程,节点之间实现了通信,由于路由路径最短,因为降低了通信延迟。
图7为本发明所述的通信流程示意图。在部分功能节点Z2的关联节点为X2,部分功能节点Z8的关联节点为X8的情况下,部分功能节点Z2与部分功能节点Z8的通信过程包括如下步骤:
步骤501:开始;
步骤502:部分功能节点Z2构建一个数据帧,源地址为自己的链路地址,目的地址为部分功能节点Z8的链路地址,然后将数据帧发送到自己的关联节点X2;
步骤503:根据目的链路地址的树枝ID,数据帧通过步骤401到步骤409从全功能节点X2路由到全功能节点X8;
步骤504:全功能节点X8收到数据帧后,根据数据帧的目的链路地址,将数据帧转发到部分功能节点Z8;
步骤505:结束。
通过上述过程,节点之间实现了通信,由于路由路径最短,因为降低了通信延迟。
图8为本发明所述的处理节点失效流程示意图。全功能节点X1检测到父节点Y1失效后,全功能节点X1侦听邻居全功能节点广播的信标帧,选择可供分配树枝ID最大并且不是全功能节点Y1的子孙节点的全功能节点Y2获取新的树枝ID和IPv6地址,并对自己子孙节点的地址进行更新,过程如下所示:
步骤601:开始;
步骤602:全功能节点X1或者子孙节点获取新的链路地址后,采用新的链路地址广播信标帧,信标帧负载为原来的链路地址;
步骤603:如果收到该信标帧的部分功能节点的树枝ID等于信标帧负载中的链路地址的树枝ID,则将自己的树枝ID设置为信标帧源地址的树枝ID,节点ID不变;
步骤604:如果收到信标帧的节点为全功能节点X1的子孙节点,则将自己的树枝ID设置为信标帧源链路地址的树枝ID,然后将自己的树枝ID扩展c个比特,将扩展的c个比特的值设置为自己原来链路地址的最后c个比特有效位的值;
步骤605:重复步骤602到步骤604,直到全功能节点X1的所有子孙节点都更新了链路地址并且采用新的链路地址广播了信标帧;
步骤606:结束。
即使全功能节点的父节点失效,该节点仍然能通过上述过程实现正常通信,从而提高了通信质量。
图9为本发明所述的全功能节点失效情况下的路由流程示意图。如果全功能节点Y1失效,那么在其子孙节点在地址更新期间仍然采用原来的IPv6地址进行通信,全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点Y3的树枝ID,在全功能节点Y3不是全功能节点Y1的子孙节点的情况下,如果邻居节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么邻居节点进行如下步骤以将数据帧送到目的节点:
步骤701:开始;
步骤702:收到数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,判断全功能节点Y3是否为当前全功能节点的邻居节点,如果是,进行步骤703,否则进行步骤704;
步骤703:当前全功能节点直降将数据帧转发给全功能节点Y3,进行步骤712;
步骤704:当前全功能节点判断全功能节点Y3是否为自己的两跳邻居节点,如果是,进行步骤705,否则进行步骤706;
步骤705:当前全功能节点将数据帧转发给全功能节点Y3对应二跳表项的一跳邻居节点域对应的邻居节点,进行步骤702;
步骤706:当前全功能节点判断一跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤708,否则进行步骤707;
步骤707:如果当前全功能节点有n1个不是全功能节点Y1的子孙节点的一跳邻居全功能节点,记作Nk1,1≤k1≤n1,全功能节点Nk1与全功能节点Y3的共同祖先为全功能节点Ak1,全功能节点Nk1到达全功能节点Ak1的距离与全功能节点Y3到达全功能节点Ak1的距离之和为hk1,那么当前全功能节点将数据帧转发给满足公式(5)的一跳邻居全功能节点,进行步骤711;
步骤708:当前全功能节点判断二跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤710,否则进行步骤709;
步骤709:如果当前全功能节点有m1个不是全功能节点Y1的子孙节点的二跳邻居全功能节点,记作Mb1,1≤b1≤m1,全功能节点Mb1与全功能节点Y3的共同祖先为Ab1,全功能节点Mb1到达全功能节点Ab1的距离与全功能节点Y3到达全功能节点Ab1的距离之和为hb1,那么当前全功能节点将数据帧转发给满足公式(6)的二跳邻居全功能节点,进行步骤702;
步骤710:当前全功能节点选择一个一跳邻居全功能节点,该邻居节点距离接入路由器最近且邻居节点相对较多,然后将数据帧转发给该邻居节点,执行步骤702;
步骤711:不是全功能节点Y1的子孙节点的一跳邻居全功能节点收到数据帧后,根据树状结构,将数据帧路由到接入路由器,然后接入路由器再根据树状结构将数据帧路由到全功能节点Y3;
步骤712:结束。
上述过程可以确保两个节点之间实现通信,由于路由路径最短,因为降低了通信延迟。
图10为本发明所述的全功能节点失效情况下的通信流程示意图。全功能节点建立一跳邻居表之后,向接入路由器发送注册命令帧,注册命令帧负载为一跳邻居表;
全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点X6的树枝ID,全功能节点X6是全功能节点Y1的子孙节点,如果全功能节点Y1的邻居全功能节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么它进行如下步骤以将数据帧送到目的节点:
步骤801:开始;
步骤802:全功能节点Y1的邻居全功能节点收到数据帧后,如果邻居全功能节点是全功能节点Y1的子节点,则进行步骤803,否则执行步骤804;
步骤803:邻居全功能节点根据步骤701到步骤712将数据帧路由到接入路由器,执行步骤805;
步骤804:邻居全功能节点根据树状结构将数据帧路由到接入路由器;
步骤805:接入路由器查看全功能节点Y1子孙节点的一跳邻居节点列表,判断全功能节点X6的一跳邻居节点是否都是全功能节点Y1的子孙节点,如果是,进行步骤807,否则进行步骤806;
步骤806:接入路由器通过树状结构将数据帧路由到不是全功能节点Y1子孙节点的一跳邻居节点,该一跳邻居节点收到数据帧后,将数据帧转发给全功能节点X6,进行步骤808;
步骤807:如果全功能节点X6的x-1跳范围内的邻居全功能节点都是全功能节点Y1的子孙节点,x≥2,那么接入路由器查看全功能节点X6的x跳邻居全功能节点,直到发现一个不是全功能节点Y1子孙节点的邻居全功能节点,且该邻居全功能节点到达全功能节点X6的路由路径不经过全功能节点Y1,然后接入路由器采用路由头部将数据帧路由到全功能节点X6,其中路由头部的值为该邻居全功能节点到达全功能节点X6的路由路径;
步骤808:结束。
上述过程可以确保两个节点之间实现通信,由于路由路径最短,因为降低了通信延迟。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的无线传感网路由的实现方法,性能分析如下:当节点增加时,每个节点的平均地址配置代价和延迟也随之增加。当节点数量为40时,地址配置代价为100,地址配置延迟为85ms。
表1仿真参数
本发明提供了一种无线传感网路由的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
Claims (7)
1.一种无线传感网路由的实现方法,其特征在于,所述无线传感网包含两种节点:全功能节点和部分功能节点;全功能节点具有路由转发功能,部分功能节点不具有路由转发功能,部分功能节点用于感知环境参数;所述无线传感网通过接入路由器连接到下一代互联网,接入路由器和所述无线传感网中的所有全功能节点构建成一个树状结构,称为地址树,地址树的根节点为接入路由器;部分功能节点通过地址树与其他节点进行通信,地址树中与部分功能节点直接通信的全功能节点称为部分功能节点的关联节点;
所述无线传感网节点的IPv6地址由四部分构成,第一部分为树ID,它唯一标识一个无线传感网,一个无线传感网中所有传感器节点的树ID都相同,其值等于相同无线传感网内的接入路由器的树ID;第二部分为1比特的类型域,类型域表示一个传感器节点的类型,当类型域为1时,表示该节点为全功能节点,当类型域为0时,表示该节点为部分功能节点;第三部分为i比特的树枝ID,它唯一标识一个全功能节点,第四部分为j比特的节点ID,它唯一标识一个部分功能节点;接入路由器的IPv6地址的类型域值为1,树枝ID为0,节点ID为非零自然数;接入路由器的树ID预先设置;
类型域,树枝ID和节点ID构成链路地址,其长度为16比特或者64比特;
一个全功能节点的树枝ID的有效长度L与该节点所在地址树的深度d成正比,L≤i,如公式(1)所示,
L=d·c 公式(1),
其中,c是衡量一个全功能节点拥有的最大子节点数量的变量,即2c-1是一个全功能节点拥有的最大子节点数;
全功能节点获取IPv6地址后定期广播信标帧,信标帧负载包括树ID,可供分配的树枝ID数量和节点ID数量;地址树中每个节点保存一个树枝ID表,具有2c-1个表项,每个表项包含三个域:树枝ID域,分配状态和生命周期,其中分配状态具有两个值,已分配和未分配,如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到对应该树枝ID的全功能节点广播的信标帧,那么将生命周期域值设置为最大值;如果生命周期衰减为0,那么将该树枝ID的分配状态改为未分配;
全功能节点启动后,用自己的硬件ID作为临时链路地址,并侦听邻居接入路由器或者全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配树枝ID最大的邻居接入路由器或者全功能节点获取地址,包括以下步骤:
步骤101:开始;
步骤102:全功能节点向邻居接入路由器或者全功能节点发送树枝ID请求命令帧,源链路地址为全功能节点的临时链路地址;
步骤103:邻居接入路由器或者全功能节点收到树枝ID请求命令帧后,查看树枝ID表,选择最小未分配的树枝ID,向全功能节点返回树枝ID响应命令帧,树枝ID响应命令帧负载为分配的树枝ID,同时将该树枝ID的分配状态设置为已分配,生命周期设置为最大值;
步骤104:全功能节点收到树枝ID响应命令帧后,将自己的树枝ID设置为邻居接入路由器或者全功能节点的树枝ID,然后将自己的树枝ID扩展c个比特,并将扩展的c个比特的值设置为树枝ID响应命令帧中分配的树枝ID值,然后将树ID与自己的树枝ID相结合构建成IPv6地址,其中,类型域为1,节点ID为0;
步骤105:结束;
树状结构中每个节点保存一个节点ID表,具有2j-1个表项,每个表项包含三个域:节点ID,分配状态和生命周期,其中,分配状态具有两个值,已分配状态和未分配状态;如果分配状态值为已分配,那么生命周期域值随着时钟递减,如果在生命周期内收到该节点ID的部分功能节点广播的信标帧,那么将生命周期域值设置为最大值;生命周期设置为信标帧广播周期的整数倍;如果生命周期衰减为0,那么将该节点ID的分配状态改为未分配;
部分功能节点启动后,用自己的硬件ID作为临时链路地址,并侦听全功能节点广播的信标帧,获取树ID,然后选择距离接入路由器最近且可供分配节点ID数量最大的全功能节点获取地址,包括以下步骤:
步骤201:开始;
步骤202:部分功能节点向全功能节点发送节点ID请求命令帧,源地址为部分功能节点临时链路地址;
步骤203:全功能节点收到节点ID请求命令帧后,查看节点ID表,选择最小未分配的节点ID,向部分功能节点返回节点ID响应命令帧,节点ID响应命令帧负载为分配的节点ID,同时将该节点ID的分配状态设置为已分配状态,生命周期设置为最大值;
步骤204:部分功能节点收到节点ID响应命令帧后,将自己的树枝ID设置为全功能节点的树枝ID,将节点ID设置为节点ID响应命令帧中的节点ID值,然后将树ID,树枝ID以及节点ID相结合构建成IPv6地址,其中,类型域值为0;
步骤205结束。
2.根据权利要求1所述的一种无线传感网路由的实现方法,其特征在于,全功能节点获取IPv6地址后,构建一跳邻居表和两跳邻居表,一跳邻居表用于记录一跳范围内的全功能节点,每个表项包含两个域:邻居节点的链路地址和生命周期;二跳邻居表用于记录两跳范围内的全功能节点,每个表项包括三个域:两跳邻居节点的链路地址,一跳邻居节点的链路地址,以及生命周期,其中一跳邻居节点的链路地址为到达该两跳邻居节点所经过的一跳邻居节点的链路地址;
全功能节点配置地址后,广播的信标帧包括树ID,可供分配的树枝ID数量和节点ID数量,以及一跳邻居表和两跳邻居表;
全功能节点根据下述过程建立一跳邻居表和二跳邻居表:
步骤301:开始;
步骤302:全功能节点收到邻居全功能节点的信标帧后,判断该邻居全功能节点是否在自己的一跳邻居表内,如果是进行步骤303,否则进行步骤304:
步骤303:全功能节点将该邻居全功能节点加入到一跳邻居列表中,生命周期设置为最大值;
步骤304:全功能节点查看信标帧中一跳邻居表的每个表项,判断该表项标识的全功能节点是否为自己的一跳邻居全功能节点,如果是,进行步骤306,否则进行步骤305;
步骤305:全功能节点将该表项标识的全功能节点加入到二跳邻居表中,其中,二跳邻居节点的链路地址为该表项标识的全功能节点的链路地址,一跳邻居节点的链路地址为该信标帧的源链路地址,生命周期设置为最大值;
步骤306:全功能节点判断是否执行了步骤303或者步骤305,如果是,进行步骤307,否则执行步骤308;
步骤307:全功能节点重复步骤302~步骤306;
步骤308:结束。
3.根据权利要求1所述的一种无线传感网路由的实现方法,其特征在于,如果全功能节点Y1是全功能节点Y2的祖先节点,全功能节点Y1的树枝ID的有效长度为L1,全功能节点Y2的树枝ID的有效长度为L2,那么全功能节点Y2到达全功能节点Y1的距离h如公式(2)所示:
如果一个数据帧的目的链路地址的树枝ID与全功能节点X的树枝ID相同,那么该数据帧路由到全功能节点X的过程如下所示:
步骤401:开始;
步骤402:收到该数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,并判断全功能节点X是否为自己的一跳邻居节点,如果是,进行步骤403,否则进行步骤404;
步骤403:当前全功能节点将该数据帧发动到全功能节点X,进行步骤410;
步骤404:当前全功能节点判断全功能节点X是否为自己二跳邻居节点表中一个表项中的二跳邻居节点,如果是,进行步骤405,否则进行步骤406;
步骤405:当前全功能节点将该数据帧转发给全功能节点X对应表项的一跳邻居节点域对应的全功能节点,进行步骤402;
步骤406:如果当前全功能节点的一跳邻居节点表T1存在n个表项,每个表项所标识的邻居全功能节点为Yk,1≤k≤n,二跳邻居节点表T2存在m个表项,每个表项所标识的二跳邻居全功能节点为Zb,1≤b≤m,全功能节点Yk与全功能节点X的共同祖先为Ak,全功能节点Yk到达全功能节点Ak的距离与全功能节点X到达全功能节点Ak的距离之和为hk,全功能节点Zb与全功能节点X的共同祖先为全功能节点Ab,全功能节点Zb到达全功能节点Ab的距离与全功能节点X到达全功能节点Ab的距离之和为hb,当前全功能节点判断其一跳邻居节点表T1中是否存在满足公式(3)的全功能节点,如果是,执行步骤407,否则执行步骤408;
步骤407:当前全功能节点将数据帧转发给满足公式(3)的一跳全功能节点,执行步骤402;
步骤408:当前全功能节点从自己的二跳邻居节点表T2中选择满足公式(4)的全功能节点;
步骤409:当前全功能节点将数据帧转发给满足公式(4)的两跳邻居节点对应表项中一跳邻居节点域对应的全功能节点,执行步骤402;
步骤410:结束。
4.根据权利要求3所述的一种无线传感网路由的实现方法,其特征在于,在部分功能节点Z2的关联节点为X2,部分功能节点Z8的关联节点为X8的情况下,部分功能节点Z2与部分功能节点Z8的通信过程包括如下步骤:
步骤501:开始;
步骤502:部分功能节点Z2构建一个数据帧,源地址为自己的链路地址,目的地址为部分功能节点Z8的链路地址,然后将数据帧发送到自己的关联节点X2;
步骤503:根据目的链路地址的树枝ID,数据帧通过步骤401到步骤409从全功能节点X2路由到全功能节点X8;
步骤504:全功能节点X8收到数据帧后,根据数据帧的目的链路地址,将数据帧转发到部分功能节点Z8;
步骤505:结束。
5.根据权利要求1所述的一种无线传感网路由的实现方法,其特征在于,全功能节点X1检测到父节点Y1失效后,全功能节点X1侦听邻居全功能节点广播的信标帧,选择可供分配树枝ID最大并且不是全功能节点Y1的子孙节点的全功能节点Y2获取新的树枝ID和IPv6地址,并对自己子孙节点的地址进行更新,过程如下所示:
步骤601:开始;
步骤602:全功能节点X1或者子孙节点获取新的链路地址后,采用新的链路地址广播信标帧,信标帧负载为原来的链路地址;
步骤603:如果收到该信标帧的部分功能节点的树枝ID等于信标帧负载中的链路地址的树枝ID,则将自己的树枝ID设置为信标帧源地址的树枝ID,节点ID不变;
步骤604:如果收到信标帧的节点为全功能节点X1的子孙节点,则将自己的树枝ID设置为信标帧源链路地址的树枝ID,然后将自己的树枝ID扩展c个比特,将扩展的c个比特的值设置为自己原来链路地址的最后c个比特有效位的值;
步骤605:重复步骤602到步骤604,直到全功能节点X1的所有子孙节点都更新了链路地址并且采用新的链路地址广播了信标帧;
步骤606:结束。
6.根据权利要求5所述的一种无线传感网路由的实现方法,其特征在于,如果全功能节点Y1失效,那么在其子孙节点在地址更新期间仍然采用原来的IPv6地址进行通信,全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点Y3的树枝ID,在全功能节点Y3不是全功能节点Y1的子孙节点的情况下,如果邻居节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么邻居节点进行如下步骤以将数据帧送到目的节点:
步骤701:开始;
步骤702:收到数据帧的当前全功能节点查看一跳邻居节点表和二跳邻居节点表,判断全功能节点Y3是否为当前全功能节点的邻居节点,如果是,进行步骤703,否则进行步骤704;
步骤703:当前全功能节点直降将数据帧转发给全功能节点Y3,进行步骤712;
步骤704:当前全功能节点判断全功能节点Y3是否为自己的两跳邻居节点,如果是,进行步骤705,否则进行步骤706;
步骤705:当前全功能节点将数据帧转发给全功能节点Y3对应二跳表项的一跳邻居节点域对应的邻居节点,进行步骤702;
步骤706:当前全功能节点判断一跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤708,否则进行步骤707;
步骤707:如果当前全功能节点有n1个不是全功能节点Y1的子孙节点的一跳邻居全功能节点,记作Nk1,1≤k1≤n1,全功能节点Nk1与全功能节点Y3的共同祖先为全功能节点Ak1,全功能节点Nk1到达全功能节点Ak1的距离与全功能节点Y3到达全功能节点Ak1的距离之和为hk1,那么当前全功能节点将数据帧转发给满足公式(5)的一跳邻居全功能节点,进行步骤711;
步骤708:当前全功能节点判断二跳表中是否全部是全功能节点Y1的子孙节点,如果是,进行步骤710,否则进行步骤709;
步骤709:如果当前全功能节点有m1个不是全功能节点Y1的子孙节点的二跳邻居全功能节点,记作Mb1,1≤b1≤m1,全功能节点Mb1与全功能节点Y3的共同祖先为Ab1,全功能节点Mb1到达全功能节点Ab1的距离与全功能节点Y3到达全功能节点Ab1的距离之和为hb1,那么当前全功能节点将数据帧转发给满足公式(6)的二跳邻居全功能节点,进行步骤702;
步骤710:当前全功能节点选择一个一跳邻居全功能节点,该邻居节点距离接入路由器最近且邻居节点相对较多,然后将数据帧转发给该邻居节点,执行步骤702;
步骤711:不是全功能节点Y1的子孙节点的一跳邻居全功能节点收到数据帧后,根据树状结构,将数据帧路由到接入路由器,然后接入路由器再根据树状结构将数据帧路由到全功能节点Y3;
步骤712:结束。
7.根据权利要求5所述的一种无线传感网路由的实现方法,其特征在于,全功能节点建立一跳邻居表之后,向接入路由器发送注册命令帧,注册命令帧负载为一跳邻居表;
全功能节点Y1的邻居全功能节点收到数据帧后,该数据帧的目的链路地址的树枝ID等于全功能节点X6的树枝ID,全功能节点X6是全功能节点Y1的子孙节点,如果全功能节点Y1的邻居全功能节点根据步骤401到步骤410判断数据帧的下一跳节点为全功能节点Y1,那么它进行如下步骤以将数据帧送到目的节点:
步骤801:开始;
步骤802:全功能节点Y1的邻居全功能节点收到数据帧后,如果邻居全功能节点是全功能节点Y1的子节点,则进行步骤803,否则执行步骤804;
步骤803:邻居全功能节点根据步骤701到步骤712将数据帧路由到接入路由器,执行步骤805;
步骤804:邻居全功能节点根据树状结构将数据帧路由到接入路由器;
步骤805:接入路由器查看全功能节点Y1子孙节点的一跳邻居节点列表,判断全功能节点X6的一跳邻居节点是否都是全功能节点Y1的子孙节点,如果是,进行步骤807,否则进行步骤806;
步骤806:接入路由器通过树状结构将数据帧路由到不是全功能节点Y1子孙节点的一跳邻居节点,该一跳邻居节点收到数据帧后,将数据帧转发给全功能节点X6,进行步骤808;
步骤807:如果全功能节点X6的x-1跳范围内的邻居全功能节点都是全功能节点Y1的子孙节点,x≥2,那么接入路由器查看全功能节点X6的x跳邻居全功能节点,直到发现一个不是全功能节点Y1子孙节点的邻居全功能节点,且该邻居全功能节点到达全功能节点X6的路由路径不经过全功能节点Y1,然后接入路由器采用路由头部将数据帧路由到全功能节点X6,其中路由头部的值为该邻居全功能节点到达全功能节点X6的路由路径;
步骤808:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510564269.7A CN105050148B (zh) | 2015-09-08 | 2015-09-08 | 一种无线传感网路由的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510564269.7A CN105050148B (zh) | 2015-09-08 | 2015-09-08 | 一种无线传感网路由的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105050148A CN105050148A (zh) | 2015-11-11 |
CN105050148B true CN105050148B (zh) | 2018-08-17 |
Family
ID=54456242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510564269.7A Active CN105050148B (zh) | 2015-09-08 | 2015-09-08 | 一种无线传感网路由的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105050148B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744562B (zh) * | 2016-03-25 | 2019-04-02 | 中国地质大学(武汉) | 基于符号聚合近似的无线传感网数据压缩与重构方法及系统 |
CN107484110B (zh) * | 2017-08-28 | 2020-09-01 | 常熟理工学院 | 一种基于智能车载传感网的数据通信实现方法 |
CN108601095B (zh) * | 2018-05-08 | 2020-07-07 | 常熟理工学院 | 一种多媒体传感网的实现方法 |
CN113132989B (zh) * | 2021-04-20 | 2023-09-15 | 宁波奥克斯电气股份有限公司 | 配网方法及智能家居系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310335B1 (en) * | 2000-09-06 | 2007-12-18 | Nokia Networks | Multicast routing in ad-hoc networks |
EP2135404B1 (de) * | 2007-04-10 | 2014-04-02 | Unify GmbH & Co. KG | Verfahren zum betreiben eines nach art des mesh, insbesondere gemäss dem standard ieee 802.11s, aus einer vielzahl von netzwerkknoten gebildeten netzwerks |
EP2725751B1 (en) * | 2012-10-24 | 2014-12-10 | Nxp B.V. | Routing table updating |
CN103347101B (zh) * | 2013-06-25 | 2016-02-10 | 常熟理工学院 | 基于簇的6LoWPAN无线传感器网络地址配置方法 |
CN103491590B (zh) * | 2013-09-26 | 2015-12-02 | 常熟理工学院 | 一种下一代无线传感器网络路由的实现方法 |
CN103476088B (zh) * | 2013-09-26 | 2016-02-10 | 常熟理工学院 | 一种下一代无线传感器网络路由通信的实现方法 |
-
2015
- 2015-09-08 CN CN201510564269.7A patent/CN105050148B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105050148A (zh) | 2015-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101267433B (zh) | 一种适应异构网络环境的中心控制源路由协议方法 | |
CN105050148B (zh) | 一种无线传感网路由的实现方法 | |
Yoo et al. | Global: A gradient-based routing protocol for load-balancing in large-scale wireless sensor networks with multiple sinks | |
Chang et al. | Energy-aware node placement, topology control and MAC scheduling for wireless sensor networks | |
Yi et al. | Evaluation of routing protocol for low power and Lossy Networks: LOADng and RPL | |
CN105119828B (zh) | 一种快速的无线网络路由实现方法 | |
ATE429112T1 (de) | Verfahren, kommunikationssysteme und mobil-router zum routen von datenpaketen von einem beweglichen netzwerk zu einem heimatnetzwerk des beweglichen netzwerks | |
Galvez et al. | Responsive on-line gateway load-balancing for wireless mesh networks | |
CA2640842A1 (en) | Virtual root bridge | |
CN102769885B (zh) | 一种在传感器网络中实现路由的方法和传感器网络 | |
CN110113264A (zh) | 一种命名数据网络的缓存和路由实现方法 | |
CN109246785A (zh) | 一种未来移动网络的实现方法 | |
CN106900174A (zh) | 无线局域网网状网络的数据传输方法、装置及系统 | |
Mu et al. | Performance analysis of the ZigBee networks in 5G environment and the nearest access routing for improvement | |
CN103781199B (zh) | 微功率无线通信网络的组网方法 | |
CN105636144A (zh) | 一种延长zigbee网络生命周期的方法 | |
CN105721271A (zh) | 无线和电力线通信网状网络 | |
CN104717640B (zh) | 一种基于定位的无线网络通信的实现方法 | |
Samar et al. | Hybrid routing: The pursuit of an adaptable and scalable routing framework for ad hoc networks | |
CN104244423B (zh) | 基于无线传感器网络多路径传输的时隙调度算法 | |
CN105553854B (zh) | 一种基于移动自组织网络的系统及其组播路由方法 | |
CN104244230B (zh) | 下一代无线网络的组播通信实现方法 | |
CN102231891A (zh) | 物联网末端数据采集路由方法 | |
Kumar et al. | Connectivity-aware routing in sensor networks | |
Rashid et al. | ZigBee: Simulation and Investigation of Star and Mesh Topology by using different Transmission Bands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |