一种高效的传感网络地址配置方法与流程

文档序号:15282000发布日期:2018-08-28 23:38阅读:146来源:国知局
本发明涉及一种配置方法,尤其涉及的是一种高效的传感网络地址配置方法。
背景技术
:传感网络作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高传感网地址配置性能。目前,研究人员提出了通过传感网络获取网络服务的模式并定义了相应的协议栈,但是由于传感网的体系结构与传统网络的体系结构不同,现有的地址配置方法具有一些局限性。因此需要提出一种低延迟的传感网络地址配置实现方法,从而提高服务质量。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种高效的传感网络地址配置方法。技术方案:本发明公开了一种高效的传感网络地址配置方法,所述网络包括传感网络和用户网络,传感网络包括接入节点和传感节点,用户网络包括接入节点和用户设备;传感节点与接入节点之间多跳可达,用户设备与接入节点之间多跳可达;传感节点、接入节点以及用户设备具有唯一的坐标,并配置一个无线接口;网络中的一种数据由名称唯一标识,一个名称由坐标和名称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仿真参数本发明提供了一种高效的传感网络地址配置方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1