CN108462761B - 一种高效的传感网络地址配置方法 - Google Patents
一种高效的传感网络地址配置方法 Download PDFInfo
- Publication number
- CN108462761B CN108462761B CN201810235131.6A CN201810235131A CN108462761B CN 108462761 B CN108462761 B CN 108462761B CN 201810235131 A CN201810235131 A CN 201810235131A CN 108462761 B CN108462761 B CN 108462761B
- Authority
- CN
- China
- Prior art keywords
- message
- access node
- coordinate set
- coordinate
- name
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
-
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种高效的传感网络地址配置方法,所述网络包括传感网络和用户网络,传感网络包括接入节点和传感节点,用户网络包括接入节点和用户设备;传感节点与接入节点之间多跳可达,用户设备与接入节点之间多跳可达;传感节点、接入节点以及用户设备具有唯一的坐标,并配置一个无线接口;用户设备通过本发明提供的方法能够快速配置地址从而快速获取数据,从而提高了服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
Description
技术领域
本发明涉及一种配置方法,尤其涉及的是一种高效的传感网络地址配置方法。
背景技术
传感网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高传感网地址配置性能。
目前,研究人员提出了通过传感网络获取网络服务的模式并定义了相应的协议栈,但是由于传感网的体系结构与传统网络的体系结构不同,现有的地址配置方法具有一些局限性。因此需要提出一种低延迟的传感网络地址配置实现方法,从而提高服务质量。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种高效的传感网络地址配置方法。
技术方案:本发明公开了一种高效的传感网络地址配置方法,所述网络包括传感网络和用户网络,传感网络包括接入节点和传感节点,用户网络包括接入节点和用户设备;传感节点与接入节点之间多跳可达,用户设备与接入节点之间多跳可达;传感节点、接入节点以及用户设备具有唯一的坐标,并配置一个无线接口;
网络中的一种数据由名称唯一标识,一个名称由坐标和名称ID构成;一个传感网络包括两个以上的接入节点,一个用户网络包含两个以上的接入节点;
用户设备通过消息与传感节点实现通信,一个消息包含名称、版本号、消息类型、源坐标集合、目的坐标集合和负载;一个接入节点维护一个接入节点表,每个接入节点表项包含坐标域,坐标集合和生命周期;
消息类型如下表所示:
接入节点启动后,定期执行下述操作更新接入节点表:
步骤101:开始;
步骤102:接入节点发送外部发布消息,该外部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为1,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;由于接入节点表项中没有节点ID和版本号域,因此节点ID和名称ID可以取任意值,本发明中取值为0;
步骤103:如果一个传感节点或者用户设备接收到该外部发布消息,则执行步骤104,否则执行步骤105;
步骤104:接收到该外部发布消息的传感节点或者用户设备丢弃该外部发布消息,执行步骤111;
步骤105:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期大于预定值T0,例如500ms,则执行步骤111,否则执行步骤106;
步骤106:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期等于或者小于预定值T0,则将该接入节点表项的生命周期设置为最大值,例如1s,并执行步骤110,否则执行步骤107;
步骤107:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数小于或者等于该外部发布消息的源坐标集合的元素个数,则执行步骤111,否则执行步骤108;
步骤108:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数大于该外部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该外部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤110,否则执行步骤109;
步骤109:接入节点创建一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,生命周期设置为最大值;
步骤110:接收到外部发布消息的接入节点将自己的坐标加入到该外部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该外部发布消息,执行步骤103;
步骤111:结束。
上述过程更新接入节点表从而确保正确通信。
本发明所述方法中,传感节点和用户节点各自维护一个接入节点表,每个接入节点表项包含坐标域、坐标集合和生命周期;接入节点启动后,定期执行下述操作更新接入节点表:
步骤201:开始;
步骤202:接入节点发送内部发布消息,该内部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为2,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;
步骤203:判断是否接入节点接收到该内部发布消息,是则执行步骤204,否则执行步骤205;
步骤204:接收到该内部发布消息的接入节点丢弃该内部发布消息,执行步骤211;
步骤205:传感节点或者用户设备接收到该内部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期大于预定值T1,例如500ms,则执行步骤211,否则执行步骤206;
步骤206:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期小于等于预定值T1,则将该接入节点表项的生命周期设置为最大值,并执行步骤210,否则执行步骤207;
步骤207:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数小于等于该内部发布消息的源坐标集合的元素个数,则执行步骤211,否则执行步骤208;
步骤208:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数大于该内部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该内部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤210,否则执行步骤209;
步骤209:传感节点或者用户设备创建一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,生命周期设置为最大值;
步骤210:接收到内部发布消息的传感节点或者用户设备将自己的坐标加入到该内部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该内部发布消息,执行步骤203;
步骤211:结束。
上述过程更新接入节点表从而确保正确通信。
本发明所述方法中,每一种数据具有一个版本号,最新的版本号数值大于上一个版本号数值;
一个传感节点维护一个数据表,每个数据表项包含名称、版本号和数据值;
一个接入节点保存一个索引表,一个索引表项包含名称、版本号和坐标集合;
在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果传感节点SN1产生了数据C1,则创建一个数据表项,该数据表项的名称为NA1,版本号为V1,数据值为数据C1,然后传感节点SN1执行下述操作建立索引表:
步骤301:开始;
步骤302:传感节点SN1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与传感节点SN1的坐标距离最近,传感节点SN1发送一个发布消息,该发布消息的名称域值为NA1,版本号为V1,消息类型为3,源坐标集合包含一个元素,该元素为该传感节点SN1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤303:判断是否接入节点接收到该发布消息,是则执行步骤307,否则执行步骤304;
步骤304:传感节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤306,否则执行步骤305;
步骤305:传感节点丢弃该发布消息,执行步骤318;
步骤306:传感节点从该发布消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该发布消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该发布消息,执行步骤303;
步骤307:接收到发布消息的接入节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤309,否则执行步骤308;
步骤308:接入节点丢弃该发布消息,执行步骤318;
步骤309:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,执行步骤310,否则执行步骤311;
步骤310:接入节点选择该索引表项并将该索引表项的生命周期设置为最大值,执行步骤318;
步骤311:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数大于该发布消息的源坐标集合中的元素个数,执行步骤312,否则执行步骤313;
步骤312:接入节点选择该索引表项并将该索引表项的坐标集合更新为该发布消息的源坐标集合,将该索引坐标的生命周期设置为最大值,执行步骤318;
步骤313:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数小于或者等于该发布消息的源坐标集合中的元素个数,则执行步骤308,否则执行步骤314;
步骤314:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号小于该发布消息的版本号,则执行步骤315,否则执行步骤316;
步骤315:接入节点选择该索引表项并将该索引表项的版本号更新为该发布消息的版本号,坐标集合更新为该发布消息的源坐标集合,生命周期设置为最大值,执行步骤318;
步骤316:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号大于该发布消息的版本号,则执行步骤308,否则执行步骤317;
步骤317:接入节点创建一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,生命周期设置为最大值;
步骤318:结束。
上述过程能够快速建立索引表从而确保正确通信。
本发明所述方法中,在数据C1由名称NA1唯一标识,版本号为V1,接入节点维护一个消息表,一个消息表项包含名称,版本号和坐标集合的条件下,用户设备D1执行下述过程获取数据C1:
步骤401:开始;
步骤402:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,发送一个请求消息,该请求消息的名称域值为NA1,版本号为V1,消息类型为4,源坐标集合包含一个元素,该元素为该用户设备D1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤403:判断是否接入节点接收到该请求消息,是则执行步骤407,否则执行步骤404;
步骤404:接收到请求消息的用户设备判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤406,否则执行步骤405;
步骤405:用户设备丢弃该请求消息,执行步骤432;
步骤406:用户设备从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤403;
步骤407:接收到请求消息的接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤409,否则执行步骤408;
步骤408:接入节点丢弃该请求消息,执行步骤432;
步骤409:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤410;
步骤410:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤411,否则执行步骤423;
步骤411:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,该接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该请求消息名称中的坐标距离最近,将该请求消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该请求消息;
步骤412:接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤413,否则执行步骤408;
步骤413:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤414;
步骤414:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤415,否则执行步骤423;
步骤415:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤417,否则执行步骤416;
步骤416:接入节点转发该请求消息,执行步骤412;
步骤417:接入节点选择一个索引表项,该索引表项的名称和版本号分别等于该请求消息的名称和版本号,将该请求消息的目的坐标集合更新为该索引表项的坐标集合,转发该请求消息;
步骤418:接收到请求消息的传感节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤420,否则执行步骤419;
步骤419:传感节点丢弃该请求消息,执行步骤432;
步骤420:传感节点从该请求消息的目的坐标集合中删除第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤422,否则执行步骤421;
步骤421:传感节点将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤418;
步骤422:传感节点查看数据表,选择一个数据表项,该数据表项的名称和版本号等于该请求消息的名称和版本号,发送一个响应消息,该响应消息的名称和版本号等于接收到的请求消息的名称和版本号,消息类型为5,源坐标集合为空,目的坐标集合等于接收到的请求消息的源坐标集合,负载为该数据表项的数据值;
步骤423:传感节点、接入节点或者用户设备接收到该响应消息后,判断自己的坐标是否等于该响应消息目的坐标集合中的第一个元素,如果等于,则执行步骤425,否则执行步骤424;
步骤424:接收到请求消息的传感节点、接入节点或者用户设备丢弃该响应消息,执行步骤432;
步骤425:判断是否传感节点接收到该响应消息,是则执行步骤426,否则执行步骤427;
步骤426:接收到响应消息的传感节点从该响应消息的目的坐标集合中删除第一个元素,转发该请求消息,执行步骤423;
步骤427:判断是否接入节点接收到该响应消息,是则执行步骤428,否则执行步骤429;
步骤428:接收到响应消息的接入节点选择所有名称和版本号等于该响应消息名称和版本号的消息表项,对于每个选中的消息表项执行下述操作:该接入节点将该响应消息的目的坐标集合更新为该消息表项的坐标集合,转发该响应消息,执行步骤423;
步骤429:接收到响应消息的用户设备从该响应消息的目的坐标集合中删除第一个元素,如果该响应消息的目的坐标集合为空,则执行步骤431,否则执行步骤430;
步骤430:接收到响应消息的用户设备转发该响应消息,则执行步骤423;
步骤431:用户设备D1接收到响应消息后,保存响应消息负载中的数据;
步骤432:结束。
用户设备通过上述过程能够快速获取数据。
本发明所述方法中,在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果用户设备D1获取数据C1后将数据C1更新为数据C2,版本号为V2,则执行下述更新过程:
步骤501:开始;
步骤502:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,用户设备D1发送一个更新消息,该更新消息的名称域值为NA1,版本号为V2,消息类型为6,源坐标集合为空,目的坐标集合等于选中的接入节点表项的坐标集合,负载为数据C2;
步骤503:如果接入节点接收到该更新消息,则执行步骤507,否则执行步骤504;
步骤504:接收到更新消息的用户设备判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤506,否则执行步骤505;
步骤505:用户设备丢弃该更新消息,执行步骤519;
步骤506:用户设备从该更新消息的目的坐标集合中删除第一个元素,转发该更新消息,执行步骤503;
步骤507:接收到更新消息的接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤509,否则执行步骤508;
步骤508:接入节点丢弃该更新消息,执行步骤519;
步骤509:接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该更新消息名称中的坐标距离最近,将该更新消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该更新消息;
步骤510:接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤511,否则执行步骤508;
步骤511:接入节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤513,否则执行步骤512;
步骤512:接入节点转发该更新消息,执行步骤510;
步骤513:接入节点选择一个索引表项,该索引表项的名称等于该更新消息的名称,将该索引表项的版本号更新为该更新消息的版本号,将该更新消息的目的坐标集合更新为该索引表项的坐标集合,转发该更新消息;
步骤514:接收到更新消息的传感节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤516,否则执行步骤515;
步骤515:传感节点丢弃该更新消息,执行步骤519;
步骤516:传感节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤518,否则执行步骤517;
步骤517:传感节点转发该更新消息,执行步骤514;
步骤518:传感节点查看数据表,选择一个数据表项,该数据表项的名称等于该更新消息的名称,将该数据表项的版本号更新为该更新消息的版本号,将该数据表项的数据值更新为该更新消息负载中的数据;
步骤519:结束。
用户设备通过上述过程能够快速获取数据。
有益效果:本发明提供了一种高效的传感网络地址配置方法,用户设备通过本发明提供的方法能够快速配置地址从而快速获取数据,从而提高了服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明所述的建立接入节点表流程示意图。
图2为本发明所述的更新接入节点表流程示意图。
图3为本发明所述的建立索引表流程示意图。
图4为本发明所述的获取数据流程示意图。
图5为本发明所述的数据通信流程示意图。
具体实施方式:
本发明提供了一种高效的传感网络地址配置方法,用户设备通过本发明提供的方法能够快速配置地址从而快速获取数据,从而提高了服务质量。本发明可应用于农业工程化、智能医疗等诸多领域,具有广泛的应用前景。
图1为本发明所述的建立接入节点表流程示意图。所述网络包括传感网络和用户网络,传感网络包括接入节点和传感节点,用户网络包括接入节点和用户设备;传感节点与接入节点之间多跳可达,用户设备与接入节点之间多跳可达;传感节点、接入节点以及用户设备具有唯一的坐标,并配置一个无线接口;
网络中的一种数据由名称唯一标识,一个名称由坐标和名称ID构成;一个传感网络包括两个以上的接入节点,一个用户网络包含两个以上的接入节点;
用户设备通过消息与传感节点实现通信,一个消息包含名称、版本号、消息类型、源坐标集合、目的坐标集合和负载;一个接入节点维护一个接入节点表,每个接入节点表项包含坐标域,坐标集合和生命周期;
消息类型如下表所示:
消息类型值 | 消息名称 |
1 | 外部发布消息 |
2 | 内部发布消息 |
3 | 发布消息 |
4 | 请求消息 |
5 | 响应消息 |
6 | 更新消息 |
接入节点启动后,定期执行下述操作更新接入节点表:
步骤101:开始;
步骤102:接入节点发送外部发布消息,该外部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为1,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;
步骤103:如果一个传感节点或者用户设备接收到该外部发布消息,则执行步骤104,否则执行步骤105;
步骤104:接收到该外部发布消息的传感节点或者用户设备丢弃该外部发布消息,执行步骤111;
步骤105:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期大于预定值T0,例如500ms,则执行步骤111,否则执行步骤106;
步骤106:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期等于或者小于预定值T0,则将该接入节点表项的生命周期设置为最大值,例如1s,并执行步骤110,否则执行步骤107;
步骤107:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数小于或者等于该外部发布消息的源坐标集合的元素个数,则执行步骤111,否则执行步骤108;
步骤108:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数大于该外部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该外部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤110,否则执行步骤109;
步骤109:接入节点创建一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,生命周期设置为最大值;
步骤110:接收到外部发布消息的接入节点将自己的坐标加入到该外部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该外部发布消息,执行步骤103;
步骤111:结束。
图2为本发明所述的更新接入节点表流程示意图。传感节点和用户节点各自维护一个接入节点表,每个接入节点表项包含坐标域、坐标集合和生命周期;接入节点启动后,定期执行下述操作更新接入节点表:
步骤201:开始;
步骤202:接入节点发送内部发布消息,该内部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为2,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;
步骤203:判断是否接入节点接收到该内部发布消息,是则执行步骤204,否则执行步骤205;
步骤204:接收到该内部发布消息的接入节点丢弃该内部发布消息,执行步骤211;
步骤205:传感节点或者用户设备接收到该内部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期大于预定值T1,例如500ms,则执行步骤211,否则执行步骤206;
步骤206:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期小于等于预定值T1,则将该接入节点表项的生命周期设置为最大值,并执行步骤210,否则执行步骤207;
步骤207:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数小于等于该内部发布消息的源坐标集合的元素个数,则执行步骤211,否则执行步骤208;
步骤208:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数大于该内部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该内部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤210,否则执行步骤209;
步骤209:传感节点或者用户设备创建一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,生命周期设置为最大值;
步骤210:接收到内部发布消息的传感节点或者用户设备将自己的坐标加入到该内部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该内部发布消息,执行步骤203;
步骤211:结束。
图3为本发明所述的建立索引表流程示意图。每一种数据具有一个版本号,最新的版本号数值大于上一个版本号数值;
一个传感节点维护一个数据表,每个数据表项包含名称、版本号和数据值;
一个接入节点保存一个索引表,一个索引表项包含名称、版本号和坐标集合;
在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果传感节点SN1产生了数据C1,则创建一个数据表项,该数据表项的名称为NA1,版本号为V1,数据值为数据C1,然后传感节点SN1执行下述操作建立索引表:
步骤301:开始;
步骤302:传感节点SN1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与传感节点SN1的坐标距离最近,传感节点SN1发送一个发布消息,该发布消息的名称域值为NA1,版本号为V1,消息类型为3,源坐标集合包含一个元素,该元素为该传感节点SN1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤303:判断是否接入节点接收到该发布消息,是则执行步骤307,否则执行步骤304;
步骤304:传感节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤306,否则执行步骤305;
步骤305:传感节点丢弃该发布消息,执行步骤318;
步骤306:传感节点从该发布消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该发布消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该发布消息,执行步骤303;
步骤307:接收到发布消息的接入节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤309,否则执行步骤308;
步骤308:接入节点丢弃该发布消息,执行步骤318;
步骤309:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,执行步骤310,否则执行步骤311;
步骤310:接入节点选择该索引表项并将该索引表项的生命周期设置为最大值,执行步骤318;
步骤311:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数大于该发布消息的源坐标集合中的元素个数,执行步骤312,否则执行步骤313;
步骤312:接入节点选择该索引表项并将该索引表项的坐标集合更新为该发布消息的源坐标集合,将该索引坐标的生命周期设置为最大值,执行步骤318;
步骤313:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数小于或者等于该发布消息的源坐标集合中的元素个数,则执行步骤308,否则执行步骤314;
步骤314:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号小于该发布消息的版本号,则执行步骤315,否则执行步骤316;
步骤315:接入节点选择该索引表项并将该索引表项的版本号更新为该发布消息的版本号,坐标集合更新为该发布消息的源坐标集合,生命周期设置为最大值,执行步骤318;
步骤316:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号大于该发布消息的版本号,则执行步骤308,否则执行步骤317;
步骤317:接入节点创建一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,生命周期设置为最大值;
步骤318:结束。
图4为本发明所述的获取数据流程示意图。在数据C1由名称NA1唯一标识,版本号为V1,接入节点维护一个消息表,一个消息表项包含名称,版本号和坐标集合的条件下,用户设备D1执行下述过程获取数据C1:
步骤401:开始;
步骤402:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,发送一个请求消息,该请求消息的名称域值为NA1,版本号为V1,消息类型为4,源坐标集合包含一个元素,该元素为该用户设备D1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤403:判断是否接入节点接收到该请求消息,是则执行步骤407,否则执行步骤404;
步骤404:接收到请求消息的用户设备判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤406,否则执行步骤405;
步骤405:用户设备丢弃该请求消息,执行步骤432;
步骤406:用户设备从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤403;
步骤407:接收到请求消息的接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤409,否则执行步骤408;
步骤408:接入节点丢弃该请求消息,执行步骤432;
步骤409:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤410;
步骤410:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤411,否则执行步骤423;
步骤411:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,该接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该请求消息名称中的坐标距离最近,将该请求消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该请求消息;
步骤412:接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤413,否则执行步骤408;
步骤413:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤414;
步骤414:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤415,否则执行步骤423;
步骤415:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤417,否则执行步骤416;
步骤416:接入节点转发该请求消息,执行步骤412;
步骤417:接入节点选择一个索引表项,该索引表项的名称和版本号分别等于该请求消息的名称和版本号,将该请求消息的目的坐标集合更新为该索引表项的坐标集合,转发该请求消息;
步骤418:接收到请求消息的传感节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤420,否则执行步骤419;
步骤419:传感节点丢弃该请求消息,执行步骤432;
步骤420:传感节点从该请求消息的目的坐标集合中删除第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤422,否则执行步骤421;
步骤421:传感节点将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤418;
步骤422:传感节点查看数据表,选择一个数据表项,该数据表项的名称和版本号等于该请求消息的名称和版本号,发送一个响应消息,该响应消息的名称和版本号等于接收到的请求消息的名称和版本号,消息类型为5,源坐标集合为空,目的坐标集合等于接收到的请求消息的源坐标集合,负载为该数据表项的数据值;
步骤423:传感节点、接入节点或者用户设备接收到该响应消息后,判断自己的坐标是否等于该响应消息目的坐标集合中的第一个元素,如果等于,则执行步骤425,否则执行步骤424;
步骤424:接收到请求消息的传感节点、接入节点或者用户设备丢弃该响应消息,执行步骤432;
步骤425:判断是否传感节点接收到该响应消息,是则执行步骤426,否则执行步骤427;
步骤426:接收到响应消息的传感节点从该响应消息的目的坐标集合中删除第一个元素,转发该请求消息,执行步骤423;
步骤427:判断是否接入节点接收到该响应消息,是则执行步骤428,否则执行步骤429;
步骤428:接收到响应消息的接入节点选择所有名称和版本号等于该响应消息名称和版本号的消息表项,对于每个选中的消息表项执行下述操作:该接入节点将该响应消息的目的坐标集合更新为该消息表项的坐标集合,转发该响应消息,执行步骤423;
步骤429:接收到响应消息的用户设备从该响应消息的目的坐标集合中删除第一个元素,如果该响应消息的目的坐标集合为空,则执行步骤431,否则执行步骤430;
步骤430:接收到响应消息的用户设备转发该响应消息,则执行步骤423;
步骤431:用户设备D1接收到响应消息后,保存响应消息负载中的数据;
步骤432:结束。
图5为本发明所述的数据通信流程示意图。在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果用户设备D1获取数据C1后将数据C1更新为数据C2,版本号为V2,则执行下述更新过程:
步骤501:开始;
步骤502:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,用户设备D1发送一个更新消息,该更新消息的名称域值为NA1,版本号为V2,消息类型为6,源坐标集合为空,目的坐标集合等于选中的接入节点表项的坐标集合,负载为数据C2;
步骤503:如果接入节点接收到该更新消息,则执行步骤507,否则执行步骤504;
步骤504:接收到更新消息的用户设备判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤506,否则执行步骤505;
步骤505:用户设备丢弃该更新消息,执行步骤519;
步骤506:用户设备从该更新消息的目的坐标集合中删除第一个元素,转发该更新消息,执行步骤503;
步骤507:接收到更新消息的接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤509,否则执行步骤508;
步骤508:接入节点丢弃该更新消息,执行步骤519;
步骤509:接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该更新消息名称中的坐标距离最近,将该更新消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该更新消息;
步骤510:接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤511,否则执行步骤508;
步骤511:接入节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤513,否则执行步骤512;
步骤512:接入节点转发该更新消息,执行步骤510;
步骤513:接入节点选择一个索引表项,该索引表项的名称等于该更新消息的名称,将该索引表项的版本号更新为该更新消息的版本号,将该更新消息的目的坐标集合更新为该索引表项的坐标集合,转发该更新消息;
步骤514:接收到更新消息的传感节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤516,否则执行步骤515;
步骤515:传感节点丢弃该更新消息,执行步骤519;
步骤516:传感节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤518,否则执行步骤517;
步骤517:传感节点转发该更新消息,执行步骤514;
步骤518:传感节点查看数据表,选择一个数据表项,该数据表项的名称等于该更新消息的名称,将该数据表项的版本号更新为该更新消息的版本号,将该数据表项的数据值更新为该更新消息负载中的数据;
步骤519:结束。
实施例1
基于表1的仿真参数,本实施例模拟了本发明中的一种高效的传感网络地址配置方法,性能分析如下:当传输数据量增加时,网络性能下降,数据获取延迟有所增加,数据获取的平均延迟为750ms。
表1仿真参数
本发明提供了一种高效的传感网络地址配置方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
Claims (2)
1.一种高效的传感网络地址配置方法,其特征在于,所述网络包括传感网络和用户网络,传感网络包括接入节点和传感节点,用户网络包括接入节点和用户设备;传感节点与接入节点之间多跳可达,用户设备与接入节点之间多跳可达;传感节点、接入节点以及用户设备各自具有唯一的坐标,并各自配置一个无线接口;
网络中的一种数据由名称唯一标识,一个名称由坐标和名称ID构成;一个传感网络包括两个以上的接入节点,一个用户网络包含两个以上的接入节点;
用户设备通过消息与传感节点实现通信,一个消息包含名称、版本号、消息类型、源坐标集合、目的坐标集合和负载;一个接入节点维护一个接入节点表,每个接入节点表项包含坐标域,坐标集合和生命周期;
消息类型如下表所示:
接入节点启动后,定期执行下述操作更新接入节点表:
步骤101:开始;
步骤102:接入节点发送外部发布消息,该外部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为1,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;
步骤103:如果一个传感节点或者用户设备接收到该外部发布消息,则执行步骤104,否则执行步骤105;
步骤104:接收到该外部发布消息的传感节点或者用户设备丢弃该外部发布消息,执行步骤111;
步骤105:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期大于预定值T0,则执行步骤111,否则执行步骤106;
步骤106:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,且生命周期等于或者小于预定值T0,则将该接入节点表项的生命周期设置为最大值,并执行步骤110,否则执行步骤107;
步骤107:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数小于或者等于该外部发布消息的源坐标集合的元素个数,则执行步骤111,否则执行步骤108;
步骤108:接入节点接收到该外部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,且坐标集合的元素个数大于该外部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该外部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤110,否则执行步骤109;
步骤109:接入节点创建一个接入节点表项,该接入节点表项的坐标等于该外部发布消息名称中的坐标,坐标集合等于该外部发布消息的源坐标集合,生命周期设置为最大值;
步骤110:接收到外部发布消息的接入节点将自己的坐标加入到该外部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该外部发布消息,执行步骤103;
步骤111:结束;
传感节点和用户节点各自维护一个接入节点表,每个接入节点表项包含坐标域、坐标集合和生命周期;接入节点启动后,定期执行下述操作更新接入节点表:
步骤201:开始;
步骤202:接入节点发送内部发布消息,该内部发布消息中,名称域值中的坐标等于该接入节点的坐标,名称域值中的名称ID为0,版本号为0,消息类型为2,源坐标集合包含一个元素,该元素为该接入节点的坐标,目的坐标集合为空,负载为空;
步骤203:判断是否接入节点接收到该内部发布消息,是则执行步骤204,否则执行步骤205;
步骤204:接收到该内部发布消息的接入节点丢弃该内部发布消息,执行步骤211;
步骤205:传感节点或者用户设备接收到该内部发布消息后,查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期大于预定值T1,则执行步骤211,否则执行步骤206;
步骤206:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,且生命周期小于等于预定值T1,则将该接入节点表项的生命周期设置为最大值,并执行步骤210,否则执行步骤207;
步骤207:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数小于等于该内部发布消息的源坐标集合的元素个数,则执行步骤211,否则执行步骤208;
步骤208:传感节点或者用户设备查看接入节点表,如果存在一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,且坐标集合的元素个数大于该内部发布消息的源坐标集合的元素个数,则将该接入节点表项的坐标集合更新为该内部发布消息的源坐标集合,将该接入节点表项的生命周期设置为最大值,执行步骤210,否则执行步骤209;
步骤209:传感节点或者用户设备创建一个接入节点表项,该接入节点表项的坐标等于该内部发布消息名称中的坐标,坐标集合等于该内部发布消息的源坐标集合,生命周期设置为最大值;
步骤210:接收到内部发布消息的传感节点或者用户设备将自己的坐标加入到该内部发布消息的源坐标集合中,且该坐标作为源坐标集合的第一个元素,转发该内部发布消息,执行步骤203;
步骤211:结束;
每一种数据具有一个版本号,最新的版本号数值大于上一个版本号数值;
一个传感节点维护一个数据表,每个数据表项包含名称、版本号和数据值;
一个接入节点保存一个索引表,一个索引表项包含名称、版本号和坐标集合;
在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果传感节点SN1产生了数据C1,则创建一个数据表项,该数据表项的名称为NA1,版本号为V1,数据值为数据C1,然后传感节点SN1执行下述操作建立索引表:
步骤301:开始;
步骤302:传感节点SN1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与传感节点SN1的坐标距离最近,传感节点SN1发送一个发布消息,该发布消息的名称域值为NA1,版本号为V1,消息类型为3,源坐标集合包含一个元素,该元素为该传感节点SN1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤303:判断是否接入节点接收到该发布消息,是则执行步骤307,否则执行步骤304;
步骤304:传感节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤306,否则执行步骤305;
步骤305:传感节点丢弃该发布消息,执行步骤318;
步骤306:传感节点从该发布消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该发布消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该发布消息,执行步骤303;
步骤307:接收到发布消息的接入节点判断自己的坐标是否等于该发布消息目的坐标集合中的第一个元素,如果等于,则执行步骤309,否则执行步骤308;
步骤308:接入节点丢弃该发布消息,执行步骤318;
步骤309:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,执行步骤310,否则执行步骤311;
步骤310:接入节点选择该索引表项并将该索引表项的生命周期设置为最大值,执行步骤318;
步骤311:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数大于该发布消息的源坐标集合中的元素个数,执行步骤312,否则执行步骤313;
步骤312:接入节点选择该索引表项并将该索引表项的坐标集合更新为该发布消息的源坐标集合,将该索引坐标的生命周期设置为最大值,执行步骤318;
步骤313:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合中的元素个数小于或者等于该发布消息的源坐标集合中的元素个数,则执行步骤308,否则执行步骤314;
步骤314:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号小于该发布消息的版本号,则执行步骤315,否则执行步骤316;
步骤315:接入节点选择该索引表项并将该索引表项的版本号更新为该发布消息的版本号,坐标集合更新为该发布消息的源坐标集合,生命周期设置为最大值,执行步骤318;
步骤316:接入节点查看索引表,如果存在一个索引表项,该索引表项的名称等于该发布消息的名称且该索引表项的版本号大于该发布消息的版本号,则执行步骤308,否则执行步骤317;
步骤317:接入节点创建一个索引表项,该索引表项的名称和版本号等于该发布消息的名称和版本号,且坐标集合等于该发布消息的源坐标集合,生命周期设置为最大值;
步骤318:结束;
在数据C1由名称NA1唯一标识,版本号为V1,接入节点维护一个消息表,一个消息表项包含名称,版本号和坐标集合的条件下,用户设备D1执行下述过程获取数据C1:
步骤401:开始;
步骤402:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,发送一个请求消息,该请求消息的名称域值为NA1,版本号为V1,消息类型为4,源坐标集合包含一个元素,该元素为该用户设备D1的坐标,目的坐标集合等于选中的接入节点表项的坐标集合,负载为空;
步骤403:判断是否接入节点接收到该请求消息,是则执行步骤407,否则执行步骤404;
步骤404:接收到请求消息的用户设备判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤406,否则执行步骤405;
步骤405:用户设备丢弃该请求消息,执行步骤432;
步骤406:用户设备从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤403;
步骤407:接收到请求消息的接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤409,否则执行步骤408;
步骤408:接入节点丢弃该请求消息,执行步骤432;
步骤409:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤410;
步骤410:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤411,否则执行步骤423;
步骤411:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,该接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该请求消息名称中的坐标距离最近,将该请求消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该请求消息;
步骤412:接入节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤413,否则执行步骤408;
步骤413:接入节点查看消息表,如果存在一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合,则执行步骤423;否则执行步骤414;
步骤414:接入节点创建一个消息表项,该消息表项的名称和版本号等于该请求消息的名称和版本号,且坐标集合等于该请求消息的源坐标集合;如果只有一个消息表项的名称和版本号等于该请求消息的名称和版本号,则执行步骤415,否则执行步骤423;
步骤415:接入节点从该请求消息的目的坐标集合中删除第一个元素,将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤417,否则执行步骤416;
步骤416:接入节点转发该请求消息,执行步骤412;
步骤417:接入节点选择一个索引表项,该索引表项的名称和版本号分别等于该请求消息的名称和版本号,将该请求消息的目的坐标集合更新为该索引表项的坐标集合,转发该请求消息;
步骤418:接收到请求消息的传感节点判断自己的坐标是否等于该请求消息目的坐标集合中的第一个元素,如果等于,则执行步骤420,否则执行步骤419;
步骤419:传感节点丢弃该请求消息,执行步骤432;
步骤420:传感节点从该请求消息的目的坐标集合中删除第一个元素,如果该请求消息的目的坐标集合为空,则执行步骤422,否则执行步骤421;
步骤421:传感节点将自己的坐标加入到该请求消息的源坐标集合中且作为该源坐标集合的第一个元素,转发该请求消息,执行步骤418;
步骤422:传感节点查看数据表,选择一个数据表项,该数据表项的名称和版本号等于该请求消息的名称和版本号,发送一个响应消息,该响应消息的名称和版本号等于接收到的请求消息的名称和版本号,消息类型为5,源坐标集合为空,目的坐标集合等于接收到的请求消息的源坐标集合,负载为该数据表项的数据值;
步骤423:传感节点、接入节点或者用户设备接收到该响应消息后,判断自己的坐标是否等于该响应消息目的坐标集合中的第一个元素,如果等于,则执行步骤425,否则执行步骤424;
步骤424:接收到请求消息的传感节点、接入节点或者用户设备丢弃该响应消息,执行步骤432;
步骤425:判断是否传感节点接收到该响应消息,是则执行步骤426,否则执行步骤427;
步骤426:接收到响应消息的传感节点从该响应消息的目的坐标集合中删除第一个元素,转发该请求消息,执行步骤423;
步骤427:判断是否接入节点接收到该响应消息,是则执行步骤428,否则执行步骤429;
步骤428:接收到响应消息的接入节点选择所有名称和版本号等于该响应消息名称和版本号的消息表项,对于每个选中的消息表项执行下述操作:该接入节点将该响应消息的目的坐标集合更新为该消息表项的坐标集合,转发该响应消息,执行步骤423;
步骤429:接收到响应消息的用户设备从该响应消息的目的坐标集合中删除第一个元素,如果该响应消息的目的坐标集合为空,则执行步骤431,否则执行步骤430;
步骤430:接收到响应消息的用户设备转发该响应消息,则执行步骤423;
步骤431:用户设备D1接收到响应消息后,保存响应消息负载中的数据;
步骤432:结束。
2.根据权利要求1所述的一种高效的传感网络地址配置方法,其特征在于,在数据C1由名称NA1唯一标识,版本号为V1的条件下,如果用户设备D1获取数据C1后将数据C1更新为数据C2,版本号为V2,则执行下述更新过程:
步骤501:开始;
步骤502:用户设备D1查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与自己的坐标距离最近,用户设备D1发送一个更新消息,该更新消息的名称域值为NA1,版本号为V2,消息类型为6,源坐标集合为空,目的坐标集合等于选中的接入节点表项的坐标集合,负载为数据C2;
步骤503:如果接入节点接收到该更新消息,则执行步骤507,否则执行步骤504;
步骤504:接收到更新消息的用户设备判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤506,否则执行步骤505;
步骤505:用户设备丢弃该更新消息,执行步骤519;
步骤506:用户设备从该更新消息的目的坐标集合中删除第一个元素,转发该更新消息,执行步骤503;
步骤507:接收到更新消息的接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤509,否则执行步骤508;
步骤508:接入节点丢弃该更新消息,执行步骤519;
步骤509:接入节点查看接入节点表,选择一个接入节点表项,该接入节点表项的坐标与该更新消息名称中的坐标距离最近,将该更新消息的目的坐标集合更新为该接入节点表项的坐标集合,转发该更新消息;
步骤510:接入节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤511,否则执行步骤508;
步骤511:接入节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤513,否则执行步骤512;
步骤512:接入节点转发该更新消息,执行步骤510;
步骤513:接入节点选择一个索引表项,该索引表项的名称等于该更新消息的名称,将该索引表项的版本号更新为该更新消息的版本号,将该更新消息的目的坐标集合更新为该索引表项的坐标集合,转发该更新消息;
步骤514:接收到更新消息的传感节点判断自己的坐标是否等于该更新消息目的坐标集合中的第一个元素,如果等于,则执行步骤516,否则执行步骤515;
步骤515:传感节点丢弃该更新消息,执行步骤519;
步骤516:传感节点从该更新消息的目的坐标集合中删除第一个元素,如果该更新消息的目的坐标集合为空,则执行步骤518,否则执行步骤517;
步骤517:传感节点转发该更新消息,执行步骤514;
步骤518:传感节点查看数据表,选择一个数据表项,该数据表项的名称等于该更新消息的名称,将该数据表项的版本号更新为该更新消息的版本号,将该数据表项的数据值更新为该更新消息负载中的数据;
步骤519:结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235131.6A CN108462761B (zh) | 2018-03-21 | 2018-03-21 | 一种高效的传感网络地址配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235131.6A CN108462761B (zh) | 2018-03-21 | 2018-03-21 | 一种高效的传感网络地址配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108462761A CN108462761A (zh) | 2018-08-28 |
CN108462761B true CN108462761B (zh) | 2020-11-20 |
Family
ID=63236690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810235131.6A Active CN108462761B (zh) | 2018-03-21 | 2018-03-21 | 一种高效的传感网络地址配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108462761B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951843B (zh) * | 2019-02-01 | 2021-08-20 | 常熟理工学院 | 下一代无线传感网地址配置实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707763A (zh) * | 2009-12-03 | 2010-05-12 | 王晓喃 | 一种无线传感器网络IPv6地址自动配置的实现方法 |
CN102158983A (zh) * | 2011-05-04 | 2011-08-17 | 常熟理工学院 | 一种构建6LoWPAN无线传感器网络的实现方法 |
CN102694884A (zh) * | 2012-06-25 | 2012-09-26 | 常熟理工学院 | 一种无线传感器网络IPv6地址配置及管理方法 |
CN103167042A (zh) * | 2013-04-07 | 2013-06-19 | 常熟理工学院 | 一种基于全ip无线传感器网络的医疗实时监控系统 |
CN103986799A (zh) * | 2014-05-14 | 2014-08-13 | 常熟理工学院 | 一种可穿戴无线传感网通信方法 |
WO2015131943A1 (en) * | 2014-03-05 | 2015-09-11 | Huawei Technologies Co., Ltd. | Access node device for forwarding data packets |
-
2018
- 2018-03-21 CN CN201810235131.6A patent/CN108462761B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707763A (zh) * | 2009-12-03 | 2010-05-12 | 王晓喃 | 一种无线传感器网络IPv6地址自动配置的实现方法 |
CN102158983A (zh) * | 2011-05-04 | 2011-08-17 | 常熟理工学院 | 一种构建6LoWPAN无线传感器网络的实现方法 |
CN102694884A (zh) * | 2012-06-25 | 2012-09-26 | 常熟理工学院 | 一种无线传感器网络IPv6地址配置及管理方法 |
CN103167042A (zh) * | 2013-04-07 | 2013-06-19 | 常熟理工学院 | 一种基于全ip无线传感器网络的医疗实时监控系统 |
WO2015131943A1 (en) * | 2014-03-05 | 2015-09-11 | Huawei Technologies Co., Ltd. | Access node device for forwarding data packets |
CN103986799A (zh) * | 2014-05-14 | 2014-08-13 | 常熟理工学院 | 一种可穿戴无线传感网通信方法 |
Non-Patent Citations (2)
Title |
---|
FRICTION AND WEAR TEST DEVICE OF LINEAR ULTRASONIC;Wen-tao ZHAO, Zhi-yuan YAO, Xiao-nan WANG, Zhao-feng GE,;《2011 Symposium on Piezoelectricity, Acoustic Waves and Device Applications 》;20111231;全文 * |
基于定位信息的下一代全IP无线传感器网络研究;王晓喃,钱焕延;《电 子 科 技 大 学 学 报》;20120930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108462761A (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246785B (zh) | 一种未来移动网络的实现方法 | |
CN110113264B (zh) | 一种命名数据网络的缓存和路由实现方法 | |
CN109088778B (zh) | 一种未来移动网络的数据通信实现方法 | |
CN109257789B (zh) | 一种基于多跳簇的车载网数据通信方法 | |
CN109150723B (zh) | 一种物联网的路由通信实现方法 | |
US20160241635A1 (en) | M2m data querying and invoking methods, querying and invoking devices, and system | |
CN107979645B (zh) | 一种物联网实现方法 | |
CN105282682B (zh) | 一种实现资源属性通告的方法和公共业务实体 | |
EP3358786A1 (en) | Information processing method in m2m and apparatus | |
CN112073531A (zh) | 一种基于边缘计算的物联网实时监测系统的实现方法 | |
CN107317890B (zh) | 一种智能车载网的数据传输实现方法 | |
US20170085673A1 (en) | Attribute Operating Method and Apparatus | |
CN105744593A (zh) | 一种节点入网方法及装置 | |
CN108462761B (zh) | 一种高效的传感网络地址配置方法 | |
CN108449443B (zh) | 一种全ip无线网络地址配置实现方法 | |
CN109768893B (zh) | 一种高效的大数据网络数据通信实现方法 | |
CN108566337B (zh) | 一种基于大数据的新一代信息网络实现方法 | |
CN110768939B (zh) | 数据帧的配置方法、设备控制方法和设备控制系统 | |
CN110888892B (zh) | 一种区块同步方法、装置及存储介质 | |
CN111245725A (zh) | 一种基于分布式的未来网络实现方法 | |
CN108494595B (zh) | 一种高效的新一代大数据网络实现方法 | |
CN109089293B (zh) | 一种未来移动网络的路由通信实现方法 | |
CN109391980B (zh) | 一种基于NB-IoT网络下行流量控制的方法及系统 | |
CN108429673B (zh) | 一种快速的未来数据网络实现方法 | |
CN108418749B (zh) | 一种高效的网络通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |