1.本发明涉及一种实现方法,尤其涉及的是一种基于缓存机制的水下传感网数据监测系统实现方法。
背景技术:
2.近年来,很多研究工作致力于水下传感网,以便通过水下传感网能够快速获取各种监测网络服务。随着水下传感网的发展,水下传感网会成为未来提供监测服务的一种模式。
3.目前,水下传感网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了环境监测服务性能。因此,如何降低水下传感网提供监测数据的延迟和代价成为近年来研究的热点问题。
技术实现要素:
4.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于缓存机制的水下传感网数据监测系统实现方法。
5.技术方案:本发明公开了一种基于缓存机制的水下传感网数据监测系统实现方法,所述系统由感知节点和监测节点构成,所述水下传感网为三维空间,感知节点均匀分布在水下传感网的三维空间中,用于收集数据,例如温度,压力等,监测节点位于水面,例如船只,用于获取并监测感知节点采集的数据;
6.监测节点能够移动,感知节点为固定节点;
7.每个感知节点或者监测节点由三维坐标唯一标识,三维坐标包含横坐标、纵坐标和水深,三维坐标简称为坐标;监测节点的水深为0;
8.每个感知节点能够产生一种以上类型的数据;
9.每个感知节点保存一个以上的数据表,每个数据表的表名为坐标,一个数据表项包含数据和生命周期,每个感知节点保存一个点击参数,该点击参数的初始值为0;
10.感知节点产生数据后,判断是否存在一个数据表,该数据表的表名等于自己的坐标,如果不存在,则创建一个数据表,该表的表名等于自己的坐标,否则,选择表名等于自己坐标的数据表,清空该数据表,针对产生的每一种数据,该感知节点在该数据表中创建一个数据表项,该数据表项的数据等于最新产生的数据,将生命周期设置为最大值;
11.系统中每个消息由消息id唯一标识;
12.每个感知节点或者监测节点保存一个节点表,一个节点表项包含坐标、能量值和生命周期;
13.系统中传送的节点消息包含消息id、坐标和能量值;
14.系统中的一感知节点nd1定期执行下述操作:
15.步骤101:开始;
16.步骤102:感知节点nd1发送一个节点消息,该节点消息的消息id为1,坐标等于自
己的坐标,能量为当前剩余的能量;
17.步骤103:接收到节点消息的感知节点判断是否存在一个节点表项,该表项的坐标等于该节点消息中的坐标,如果存在,则将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值,否则,创建一个节点表项,该表项的坐标等于该节点消息中的坐标,将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值;
18.步骤104:结束。
19.感知节点通过上述过程发送节点消息向所有邻居感知节点或者监测节点发布自己的信息以便在这些邻居感知节点或者监测节点建立自己的节点表项,感知节点或者监测节点通过节点表项中能量值和坐标可以建立到达目标节点的路由路径,同时增强路径的稳定性,进而降低数据通延迟和代价,提高数据通信成功率。
20.本发明所述方法中,
21.系统中的发布消息包含消息id、数据坐标、目的坐标、点击参数和数据表;
22.感知节点nd1定期执行下述操作:
23.步骤201:开始;
24.步骤202:感知节点nd1选择所有能量值大于阈值et0的节点表项,阈值et0的取值范围为感知节点最大能量值的60%-70%,从所述节点表项中选择一个坐标水深值最小的节点表项,感知节点nd1发送一个发布消息,该发布消息的消息id为2,数据坐标为自己的坐标,目的坐标为该节点表项中的坐标,点击参数值等于自己的点击参数值,数据表等于自己的数据表;
25.步骤203:接收到该发布消息的感知节点判断自己的能量值是否大于阈值et0,如果大于,则执行步骤204,否则执行步骤207;
26.步骤204:接收到该发布消息的感知节点判断是否存在一个数据表,该数据表的表名等于该发布消息中的数据坐标,如果存在,则执行步骤206,否则执行步骤205;
27.步骤205:接收到该发布消息的感知节点创建一个数据表,该数据表的表名等于该发布消息中的数据坐标;
28.步骤206:接收到该发布消息的感知节点选择一个数据表dt1,该数据表dt1的表名等于该发布消息中的数据坐标,清空该数据表dt1,将该发布消息中每个数据表项加入到数据表dt1中;
29.步骤207:接收到该发布消息的感知节点判断自己的坐标是否等于该发布消息中的目的坐标,如果等于,则执行步骤208,否则执行步骤212;
30.步骤208:接收到该发布消息的感知节点根据公式(1)和公式(2)计算自己的权值nw1,公式(1)和公式(2)中,w1,w2和w2分别为能量系数、点击系数和水深系数,w1,w2和w2之和等于1,如公式(2)所示,ne1为该感知节点当前的能量,te1为最大能量值,即每个感知节点的初始能量值,p1等于该发布消息中的点击参数值,tp1为最大点击参数值,例如100,dt1为该感知节点坐标的水深值,dp1为该水下传感网的最大水深值,如果权值nw1大于阈值th0,则执行步骤209,否则执行步骤212;
31.nw1=w1
·
ne1/te1+w2
·
p1/tp1+w3
·
dt1/dp1
ꢀꢀꢀꢀꢀ
(1)
32.w1+w2+w3=1
ꢀꢀꢀꢀ
(2)
33.步骤209:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,判断选中的节点表项数量是否大于0,如果是,则执行步骤210,否则执行步骤212;
34.步骤210:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,从这些节点表项中选择一个坐标水深值最小的节点表项ne1,判断该节点表项坐标的水深值是否小于自己坐标的水深值,如果是,则执行步骤211,否则执行步骤212;
35.步骤211:接收到该发布消息的感知节点将该发布消息中的目的坐标设置为节点表项ne1的坐标,发送该发布消息,执行步骤203;
36.步骤212:结束。
37.感知节点通过上述过程发送发布消息将深水区的数据推送到浅水区,这样,监测节点可以从浅水区获取数据,从而有效降低数据通信延迟和代价,并提高数据通信成功率。上述过程中,数据表通过生命周期来确保数据的实时性和有效性,从而有效提高了数据通信的实时性和有效性。
38.本发明所述方法中,
39.每个感知节点包括等待表,一个等待表项包含坐标和生命周期;
40.系统中的兴趣消息包含消息id、数据标识符,数据坐标和目的坐标;
41.系统中的数据消息包含消息id、数据坐标和数据表;
42.监测节点u1通过下述过程获取在坐标co1所采集的数据:
43.步骤301:开始;
44.步骤302:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标co1距离最近,监测节点u1发送一个兴趣消息,该兴趣消息的消息id为3,数据标识符为0,数据坐标为co1,目的坐标为该节点表项的坐标;
45.步骤303:接收到该兴趣消息的感知节点判断该兴趣消息的数据标识符是否为0,如果是,则执行步骤304,否则执行步骤307;
46.步骤304:接收到该兴趣消息的感知节点判断是否存在一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,如果存在,则执行步骤305,否则执行步骤307;
47.步骤305:接收到该兴趣消息的感知节点将该兴趣消息中的数据标识符设置为1,选择一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,接收到该兴趣消息的感知节点发送一个数据消息,该数据消息的消息id为4,数据坐标等于该兴趣消息中的数据坐标,数据表为选择的数据表,该感知节点判断自己的坐标是否等于该兴趣消息的数据坐标,如果等于,则执行步骤306,否则执行步骤307;
48.步骤306:接收到该兴趣消息的感知节点将自己的点击参数递增1,执行步骤310;
49.步骤307:接收到该兴趣消息的感知节点判断自己的坐标是否等于该兴趣消息中的目的坐标,如果等于,则执行步骤308,否则执行步骤313;
50.步骤308:接收到该兴趣消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该兴趣消息中的数据坐标,如果存在,则将该等待表项的生命周期设置为最大值,将该兴趣表项的数据标识符设置为1,否则创建一个等待表项,该表项的坐标等于该兴趣消息中的数据坐标,将该等待表项的生命周期设置为最大值;
51.步骤309:接收到该兴趣消息的感知节点选择所有能量值大于阈值et0的节点表
项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该兴趣消息中数据坐标距离最近,将该兴趣消息中的目的坐标设置为该节点表项的坐标,发送该兴趣消息,执行步骤303;
52.步骤310:如果监测节点接收到该数据消息,则执行步骤313,否则执行步骤311;
53.步骤311:接收到数据消息的感知节点判断是否存在坐标等于该数据消息中数据坐标的等待表项,如果存在,则执行步骤312,否则执行步骤313;
54.步骤312:接收到数据消息的感知节点选择坐标等于该数据消息中数据坐标的等待表项,删除该等待表项,转发该数据消息,执行步骤310;
55.步骤313:结束。
56.监测节点通过上述过程发送兴趣消息和数据消息从距离最近的感知节点获取目标数据,由于目标数据由位于浅水区的感知节点提供,因此有效降低了数据通信延迟和代价,同时也降低了感知节点的功耗,提高了数据通信成功率。上述过程中,多个监测节点能够通过等待表通过一次数据通信过程分享数据,进一步降低了数据通信延迟和代价。
57.本发明所述方法中,
58.系统中的切换消息包含消息id、数据坐标、目的坐标和最终坐标;
59.系统中的失败消息包含消息id和数据坐标;
60.监测节点u1发送了一个兴趣消息,该兴趣消息的数据坐标为co1,目的坐标为dc1,如果监测节点u1在接收到数据坐标为co1的数据消息之前发生了移动且与坐标dc1的距离大于阈值th2,阈值th2的取值范围为通信半径的80%-90%,监测节点u1则执行下述操作:
61.步骤401:开始;
62.步骤402:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标dc1距离最近,监测节点u1发送一个切换消息,该切换消息的消息id为5,数据坐标等于co1,目的坐标为该节点表项中的坐标,最终坐标为dc1;
63.步骤403:接收到该切换消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,如果存在,则执行步骤411,否则执行步骤404;
64.步骤404:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的最终坐标,如果等于,则执行步骤407,否则执行步骤405;
65.步骤405:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的目的坐标,如果等于,则执行步骤406,否则执行步骤411;
66.步骤406:接收到该切换消息的感知节点创建一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,将生命周期设置为最大值,选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该切换消息的最终坐标距离最近,将该切换消息中的目的坐标设置为该节点表项中的坐标,转发该切换消息,执行步骤403;
67.步骤407:接收到该切换消息的感知节点发送一个失败消息,该失败消息的消息id为6,数据坐标为切换消息中的数据坐标;
68.步骤408:如果监测节点u1接收到该失败消息,则执行步骤411,否则执行步骤409;
69.步骤409:接收到失败消息的感知节点判断是否存在坐标等于该失败消息中数据
坐标的等待表项,如果存在,则执行步骤410,否则执行步骤411;
70.步骤410:接收到失败消息的感知节点选择坐标等于该失败消息中数据坐标的等待表项,删除该等待表项,转发该失败消息,执行步骤408;
71.步骤411:结束。
72.监测节点如果脱离了原来的上游感知节点,则发送切换消息来确保数据路径的连续性从而确保响应消息能够通过连续路径返回到监测节点,从而有效提高数据通信效率,降低了数据通信延迟。
73.有益效果:本发明提供了一种基于缓存机制的水下传感网数据监测系统实现方法,用户通过本发明所提供的水下传感网数据监测系统实现方法能够快速获取水下环境监测数据,从而有效缩短了获取水下环境监测服务数据的延迟和代价,提高了服务质量,本发明可应用于智能城市的水域智能安全监测以及环境监测等领域,具有广泛的应用前景。
附图说明
74.下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
75.图1为本发明所述的建立节点表流程示意图。
76.图2为本发明所述的建立数据表流程示意图。
77.图3为本发明所述的数据通信流程示意图。
78.图4为本发明所述的移动支持流程示意图。
具体实施方式:
79.本发明提供了一种基于缓存机制的水下传感网数据监测系统实现方法,用户通过本发明所提供的水下传感网数据监测系统实现方法能够快速获取水下环境监测数据,从而有效缩短了获取水下环境监测服务数据的延迟和代价,提高了服务质量,本发明可应用于智能城市的水域智能安全监测以及环境监测等领域,具有广泛的应用前景。
80.图1为本发明所述的建立节点表流程示意图。所述系统由感知节点和监测节点构成,所述水下传感网为三维空间,感知节点均匀分布在水下传感网的三维空间中,用于收集数据,例如温度,压力等,监测节点位于水面,例如船只,用于获取并监测感知节点采集的数据;
81.监测节点能够移动,感知节点为固定节点;
82.每个感知节点或者监测节点由三维坐标唯一标识,三维坐标包含横坐标、纵坐标和水深,三维坐标简称为坐标;监测节点的水深为0;
83.每个感知节点能够产生一种以上类型的数据;
84.每个感知节点保存一个以上的数据表,每个数据表的表名为坐标,一个数据表项包含数据和生命周期,每个感知节点保存一个点击参数,该点击参数的初始值为0;
85.感知节点产生数据后,判断是否存在一个数据表,该数据表的表名等于自己的坐标,如果不存在,则创建一个数据表,该表的表名等于自己的坐标,否则,选择表名等于自己坐标的数据表,清空该数据表,针对产生的每一种数据,该感知节点在该数据表中创建一个数据表项,该数据表项的数据等于最新产生的数据,将生命周期设置为最大值;
86.系统中每个消息由消息id唯一标识;
87.每个感知节点或者监测节点保存一个节点表,一个节点表项包含坐标、能量值和生命周期;
88.系统中传送的节点消息包含消息id、坐标和能量值;
89.系统中的一感知节点nd1定期执行下述操作:
90.步骤101:开始;
91.步骤102:感知节点nd1发送一个节点消息,该节点消息的消息id为1,坐标等于自己的坐标,能量为当前剩余的能量;
92.步骤103:接收到节点消息的感知节点判断是否存在一个节点表项,该表项的坐标等于该节点消息中的坐标,如果存在,则将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值,否则,创建一个节点表项,该表项的坐标等于该节点消息中的坐标,将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值;
93.步骤104:结束。
94.感知节点通过上述过程发送节点消息向所有邻居感知节点或者监测节点发布自己的信息以便在这些邻居感知节点或者监测节点建立自己的节点表项,感知节点或者监测节点通过节点表项中能量值和坐标可以建立到达目标节点的路由路径,同时增强路径的稳定性,进而降低数据通延迟和代价,提高数据通信成功率。
95.图2为本发明所述的建立数据表流程示意图。系统中的发布消息包含消息id、数据坐标、目的坐标、点击参数和数据表;
96.感知节点nd1定期执行下述操作:
97.步骤201:开始;
98.步骤202:感知节点nd1选择所有能量值大于阈值et0的节点表项,阈值et0的取值范围为感知节点最大能量值的60%-70%,从所述节点表项中选择一个坐标水深值最小的节点表项,感知节点nd1发送一个发布消息,该发布消息的消息id为2,数据坐标为自己的坐标,目的坐标为该节点表项中的坐标,点击参数值等于自己的点击参数值,数据表等于自己的数据表;
99.步骤203:接收到该发布消息的感知节点判断自己的能量值是否大于阈值et0,如果大于,则执行步骤204,否则执行步骤207;
100.步骤204:接收到该发布消息的感知节点判断是否存在一个数据表,该数据表的表名等于该发布消息中的数据坐标,如果存在,则执行步骤206,否则执行步骤205;
101.步骤205:接收到该发布消息的感知节点创建一个数据表,该数据表的表名等于该发布消息中的数据坐标;
102.步骤206:接收到该发布消息的感知节点选择一个数据表dt1,该数据表dt1的表名等于该发布消息中的数据坐标,清空该数据表dt1,将该发布消息中每个数据表项加入到数据表dt1中;
103.步骤207:接收到该发布消息的感知节点判断自己的坐标是否等于该发布消息中的目的坐标,如果等于,则执行步骤208,否则执行步骤212;
104.步骤208:接收到该发布消息的感知节点根据公式(1)和公式(2)计算自己的权值
nw1,公式(1)和公式(2)中,w1,w2和w2分别为能量系数、点击系数和水深系数,w1,w2和w2之和等于1,如公式(2)所示,ne1为该感知节点当前的能量,te1为最大能量值,即每个感知节点的初始能量值,p1等于该发布消息中的点击参数值,tp1为最大点击参数值,例如100,dt1为该感知节点坐标的水深值,dp1为该水下传感网的最大水深值,如果权值nw1大于阈值th0,则执行步骤209,否则执行步骤212;
105.nw1=w1
·
ne1/te1+w2
·
p1/tp1+w3
·
dt1/dp1
ꢀꢀꢀꢀꢀ
(1)
106.w1+w2+w3=1
ꢀꢀꢀꢀ
(2)
107.步骤209:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,判断选中的节点表项数量是否大于0,如果是,则执行步骤210,否则执行步骤212;
108.步骤210:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,从这些节点表项中选择一个坐标水深值最小的节点表项ne1,判断该节点表项坐标的水深值是否小于自己坐标的水深值,如果是,则执行步骤211,否则执行步骤212;
109.步骤211:接收到该发布消息的感知节点将该发布消息中的目的坐标设置为节点表项ne1的坐标,发送该发布消息,执行步骤203;
110.步骤212:结束。
111.感知节点通过上述过程发送发布消息将深水区的数据推送到浅水区,这样,监测节点可以从浅水区获取数据,从而有效降低数据通信延迟和代价,并提高数据通信成功率。上述过程中,数据表通过生命周期来确保数据的实时性和有效性,从而有效提高了数据通信的实时性和有效性。
112.图3为本发明所述的数据通信流程示意图。每个感知节点包括等待表,一个等待表项包含坐标和生命周期;
113.系统中的兴趣消息包含消息id、数据标识符,数据坐标和目的坐标;
114.系统中的数据消息包含消息id、数据坐标和数据表;
115.监测节点u1通过下述过程获取在坐标co1所采集的数据:
116.步骤301:开始;
117.步骤302:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标co1距离最近,监测节点u1发送一个兴趣消息,该兴趣消息的消息id为3,数据标识符为0,数据坐标为co1,目的坐标为该节点表项的坐标;
118.步骤303:接收到该兴趣消息的感知节点判断该兴趣消息的数据标识符是否为0,如果是,则执行步骤304,否则执行步骤307;
119.步骤304:接收到该兴趣消息的感知节点判断是否存在一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,如果存在,则执行步骤305,否则执行步骤307;
120.步骤305:接收到该兴趣消息的感知节点将该兴趣消息中的数据标识符设置为1,选择一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,接收到该兴趣消息的感知节点发送一个数据消息,该数据消息的消息id为4,数据坐标等于该兴趣消息中的数据坐标,数据表为选择的数据表,该感知节点判断自己的坐标是否等于该兴趣消息的数据坐标,如果等于,则执行步骤306,否则执行步骤307;
121.步骤306:接收到该兴趣消息的感知节点将自己的点击参数递增1,执行步骤310;
122.步骤307:接收到该兴趣消息的感知节点判断自己的坐标是否等于该兴趣消息中的目的坐标,如果等于,则执行步骤308,否则执行步骤313;
123.步骤308:接收到该兴趣消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该兴趣消息中的数据坐标,如果存在,则将该等待表项的生命周期设置为最大值,将该兴趣表项的数据标识符设置为1,否则创建一个等待表项,该表项的坐标等于该兴趣消息中的数据坐标,将该等待表项的生命周期设置为最大值;
124.步骤309:接收到该兴趣消息的感知节点选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该兴趣消息中数据坐标距离最近,将该兴趣消息中的目的坐标设置为该节点表项的坐标,发送该兴趣消息,执行步骤303;
125.步骤310:如果监测节点接收到该数据消息,则执行步骤313,否则执行步骤311;
126.步骤311:接收到数据消息的感知节点判断是否存在坐标等于该数据消息中数据坐标的等待表项,如果存在,则执行步骤312,否则执行步骤313;
127.步骤312:接收到数据消息的感知节点选择坐标等于该数据消息中数据坐标的等待表项,删除该等待表项,转发该数据消息,执行步骤310;
128.步骤313:结束。
129.监测节点通过上述过程发送兴趣消息和数据消息从距离最近的感知节点获取目标数据,由于目标数据由位于浅水区的感知节点提供,因此有效降低了数据通信延迟和代价,同时也降低了感知节点的功耗,提高了数据通信成功率。上述过程中,多个监测节点能够通过等待表通过一次数据通信过程分享数据,进一步降低了数据通信延迟和代价。
130.图4为本发明所述的移动支持流程示意图。系统中的切换消息包含消息id、数据坐标、目的坐标和最终坐标;
131.系统中的失败消息包含消息id和数据坐标;
132.监测节点u1发送了一个兴趣消息,该兴趣消息的数据坐标为co1,目的坐标为dc1,如果监测节点u1在接收到数据坐标为co1的数据消息之前发生了移动且与坐标dc1的距离大于阈值th2,阈值th2的取值范围为通信半径的80%-90%,监测节点u1则执行下述操作:
133.步骤401:开始;
134.步骤402:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标dc1距离最近,监测节点u1发送一个切换消息,该切换消息的消息id为5,数据坐标等于co1,目的坐标为该节点表项中的坐标,最终坐标为dc1;
135.步骤403:接收到该切换消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,如果存在,则执行步骤411,否则执行步骤404;
136.步骤404:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的最终坐标,如果等于,则执行步骤407,否则执行步骤405;
137.步骤405:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的目的坐标,如果等于,则执行步骤406,否则执行步骤411;
138.步骤406:接收到该切换消息的感知节点创建一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,将生命周期设置为最大值,选择所有能量值大于阈值et0的节
点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该切换消息的最终坐标距离最近,将该切换消息中的目的坐标设置为该节点表项中的坐标,转发该切换消息,执行步骤403;
139.步骤407:接收到该切换消息的感知节点发送一个失败消息,该失败消息的消息id为6,数据坐标为切换消息中的数据坐标;
140.步骤408:如果监测节点u1接收到该失败消息,则执行步骤411,否则执行步骤409;
141.步骤409:接收到失败消息的感知节点判断是否存在坐标等于该失败消息中数据坐标的等待表项,如果存在,则执行步骤410,否则执行步骤411;
142.步骤410:接收到失败消息的感知节点选择坐标等于该失败消息中数据坐标的等待表项,删除该等待表项,转发该失败消息,执行步骤408;
143.步骤411:结束。
144.监测节点如果脱离了原来的上游感知节点,则发送切换消息来确保数据路径的连续性从而确保响应消息能够通过连续路径返回到监测节点,从而有效提高数据通信效率,降低了数据通信延迟。
145.实施例1
146.基于表1的仿真参数,本实施例模拟了本发明中的一种基于缓存机制的水下传感网数据监测系统实现方法。感知节点nd1启动后,定期执行步骤101-104发送节点消息建立节点表,例如该节点表项的坐标为(10,11)、能量值为10kj,生命周期为500ms。感知节点通过上述过程发送节点消息向所有邻居感知节点或者监测节点发布自己的信息以便在这些邻居感知节点或者监测节点建立自己的节点表项,感知节点或者监测节点通过节点表项中能量值和坐标可以建立到达目标节点的路由路径,同时增强路径的稳定性,进而降低数据通延迟和代价,提高数据通信成功率。然后,感知节点nd1执行步骤201-212通过发送发布消息建立数据表,感知节点通过发送发布消息将深水区的数据推送到浅水区,这样,监测节点可以从浅水区获取数据,从而有效降低数据通信延迟和代价,并提高数据通信成功率。上述过程中,数据表通过生命周期来确保数据的实时性和有效性,从而有效提高了数据通信的实时性和有效性。监测节点u1通过步骤301-313发送兴趣消息和数据消息获取在坐标co1所采集的数据,监测节点通过上述过程发送兴趣消息和数据消息从距离最近的感知节点获取目标数据,由于目标数据由位于浅水区的感知节点提供,因此有效降低了数据通信延迟和代价,同时也降低了感知节点的功耗,提高了数据通信成功率。上述过程中,多个监测节点能够通过等待表通过一次数据通信过程分享数据,进一步降低了数据通信延迟和代价。如果监测节点u1在接收到数据坐标为co1的数据消息之前发生了移动且与坐标dc1的距离大于阈值th2,则执行步骤401-411发送切换消息和失败消息确保监测节点u1接收到目标数据。监测节点如果脱离了原来的上游感知节点,则发送切换消息来确保数据路径的连续性从而确保响应消息能够通过连续路径返回到监测节点,从而有效提高数据通信效率,降低了数据通信延迟。一种基于缓存机制的水下传感网数据监测系统实现方法性能分析如下:当监测节点与目标数据距离较远时,监测节点获取目标数据的成功率有所下降,当监测节点与目标数据距离较近时,监测节点获取目标数据的成功率有所提高,监测节点获取数据的平均成功率为96.3%。
147.表1仿真参数
[0148][0149]
本发明提供了一种基于缓存机制的水下传感网数据监测系统实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
技术特征:
1.一种基于缓存机制的水下传感网数据监测系统实现方法,其特征在于,所述系统由感知节点和监测节点构成,所述水下传感网为三维空间,感知节点均匀分布在水下传感网的三维空间中,用于收集数据,监测节点位于水面,用于获取并监测感知节点采集的数据;监测节点能够移动,感知节点为固定节点;每个感知节点或者监测节点由三维坐标唯一标识,三维坐标包含横坐标、纵坐标和水深,三维坐标简称为坐标;监测节点的水深为0;每个感知节点能够产生一种以上类型的数据;每个感知节点保存一个以上的数据表,每个数据表的表名为坐标,一个数据表项包含数据和生命周期,每个感知节点保存一个点击参数,该点击参数的初始值为0;感知节点产生数据后,判断是否存在一个数据表,该数据表的表名等于自己的坐标,如果不存在,则创建一个数据表,该表的表名等于自己的坐标,否则,选择表名等于自己坐标的数据表,清空该数据表,针对产生的每一种数据,该感知节点在该数据表中创建一个数据表项,该数据表项的数据等于最新产生的数据,将生命周期设置为最大值;系统中每个消息由消息id唯一标识;每个感知节点或者监测节点保存一个节点表,一个节点表项包含坐标、能量值和生命周期;系统中传送的节点消息包含消息id、坐标和能量值;系统中的一感知节点nd1定期执行下述操作:步骤101:开始;步骤102:感知节点nd1发送一个节点消息,该节点消息的消息id为1,坐标等于自己的坐标,能量为当前剩余的能量;步骤103:接收到节点消息的感知节点判断是否存在一个节点表项,该表项的坐标等于该节点消息中的坐标,如果存在,则将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值,否则,创建一个节点表项,该表项的坐标等于该节点消息中的坐标,将该节点表项的能量值设置为该节点消息中的能量值,将生命周期设置为最大值;步骤104:结束。2.根据权利要求1所述的一种基于缓存机制的水下传感网数据监测系统实现方法,其特征在于,系统中的发布消息包含消息id、数据坐标、目的坐标、点击参数和数据表;感知节点nd1定期执行下述操作:步骤201:开始;步骤202:感知节点nd1选择所有能量值大于阈值et0的节点表项,阈值et0的取值范围为感知节点最大能量值的60%-70%,从所述节点表项中选择一个坐标水深值最小的节点表项,感知节点nd1发送一个发布消息,该发布消息的消息id为2,数据坐标为自己的坐标,目的坐标为该节点表项中的坐标,点击参数值等于自己的点击参数值,数据表等于自己的数据表;步骤203:接收到该发布消息的感知节点判断自己的能量值是否大于阈值et0,如果大于,则执行步骤204,否则执行步骤207;步骤204:接收到该发布消息的感知节点判断是否存在一个数据表,该数据表的表名等
于该发布消息中的数据坐标,如果存在,则执行步骤206,否则执行步骤205;步骤205:接收到该发布消息的感知节点创建一个数据表,该数据表的表名等于该发布消息中的数据坐标;步骤206:接收到该发布消息的感知节点选择一个数据表dt1,该数据表dt1的表名等于该发布消息中的数据坐标,清空该数据表dt1,将该发布消息中每个数据表项加入到数据表dt1中;步骤207:接收到该发布消息的感知节点判断自己的坐标是否等于该发布消息中的目的坐标,如果等于,则执行步骤208,否则执行步骤212;步骤208:接收到该发布消息的感知节点根据公式(1)和公式(2)计算自己的权值nw1,公式(1)和公式(2)中,w1,w2和w2分别为能量系数、点击系数和水深系数,w1,w2和w2之和等于1,如公式(2)所示,ne1为该感知节点当前的能量,te1为最大能量值,即每个感知节点的初始能量值,p1等于该发布消息中的点击参数值,tp1为最大点击参数值,dt1为该感知节点坐标的水深值,dp1为该水下传感网的最大水深值,如果权值nw1大于阈值th0,则执行步骤209,否则执行步骤212;nw1=w1
·
ne1/te1+w2
·
p1/tp1+w3
·
dt1/dp1
ꢀꢀꢀꢀꢀ
(1)w1+w2+w3=1
ꢀꢀꢀꢀ
(2)步骤209:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,判断选中的节点表项数量是否大于0,如果是,则执行步骤210,否则执行步骤212;步骤210:接收到该发布消息的感知节点选择所有能量值大于阈值et0的节点表项,从这些节点表项中选择一个坐标水深值最小的节点表项ne1,判断该节点表项坐标的水深值是否小于自己坐标的水深值,如果是,则执行步骤211,否则执行步骤212;步骤211:接收到该发布消息的感知节点将该发布消息中的目的坐标设置为节点表项ne1的坐标,发送该发布消息,执行步骤203;步骤212:结束。3.根据权利要求1所述的一种基于缓存机制的水下传感网数据监测系统实现方法,其特征在于,每个感知节点包括等待表,一个等待表项包含坐标和生命周期;系统中的兴趣消息包含消息id、数据标识符,数据坐标和目的坐标;系统中的数据消息包含消息id、数据坐标和数据表;监测节点u1通过下述过程获取在坐标co1所采集的数据:步骤301:开始;步骤302:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标co1距离最近,监测节点u1发送一个兴趣消息,该兴趣消息的消息id为3,数据标识符为0,数据坐标为co1,目的坐标为该节点表项的坐标;步骤303:接收到该兴趣消息的感知节点判断该兴趣消息的数据标识符是否为0,如果是,则执行步骤304,否则执行步骤307;步骤304:接收到该兴趣消息的感知节点判断是否存在一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,如果存在,则执行步骤305,否则执行步骤307;步骤305:接收到该兴趣消息的感知节点将该兴趣消息中的数据标识符设置为1,选择
一个数据表,该数据表的表名等于该兴趣消息中的数据坐标,接收到该兴趣消息的感知节点发送一个数据消息,该数据消息的消息id为4,数据坐标等于该兴趣消息中的数据坐标,数据表为选择的数据表,该感知节点判断自己的坐标是否等于该兴趣消息的数据坐标,如果等于,则执行步骤306,否则执行步骤307;步骤306:接收到该兴趣消息的感知节点将自己的点击参数递增1,执行步骤310;步骤307:接收到该兴趣消息的感知节点判断自己的坐标是否等于该兴趣消息中的目的坐标,如果等于,则执行步骤308,否则执行步骤313;步骤308:接收到该兴趣消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该兴趣消息中的数据坐标,如果存在,则将该等待表项的生命周期设置为最大值,将该兴趣表项的数据标识符设置为1,否则创建一个等待表项,该表项的坐标等于该兴趣消息中的数据坐标,将该等待表项的生命周期设置为最大值;步骤309:接收到该兴趣消息的感知节点选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该兴趣消息中数据坐标距离最近,将该兴趣消息中的目的坐标设置为该节点表项的坐标,发送该兴趣消息,执行步骤303;步骤310:如果监测节点接收到该数据消息,则执行步骤313,否则执行步骤311;步骤311:接收到数据消息的感知节点判断是否存在坐标等于该数据消息中数据坐标的等待表项,如果存在,则执行步骤312,否则执行步骤313;步骤312:接收到数据消息的感知节点选择坐标等于该数据消息中数据坐标的等待表项,删除该等待表项,转发该数据消息,执行步骤310;步骤313:结束。4.根据权利要求1所述的一种基于缓存机制的水下传感网数据监测系统实现方法,其特征在于,系统中的切换消息包含消息id、数据坐标、目的坐标和最终坐标;系统中的失败消息包含消息id和数据坐标;监测节点u1发送了一个兴趣消息,该兴趣消息的数据坐标为co1,目的坐标为dc1,如果监测节点u1在接收到数据坐标为co1的数据消息之前发生了移动且与坐标dc1的距离大于阈值th2,阈值th2的取值范围为通信半径的80%-90%,监测节点u1则执行下述操作:步骤401:开始;步骤402:监测节点u1选择所有能量值大于阈值et0的节点表项,从所述节点表项中选择一个节点表项,该节点表项的坐标与坐标dc1距离最近,监测节点u1发送一个切换消息,该切换消息的消息id为5,数据坐标等于co1,目的坐标为该节点表项中的坐标,最终坐标为dc1;步骤403:接收到该切换消息的感知节点判断是否存在一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,如果存在,则执行步骤411,否则执行步骤404;步骤404:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的最终坐标,如果等于,则执行步骤407,否则执行步骤405;步骤405:接收到该切换消息的感知节点判断自己的坐标是否等于该切换消息中的目的坐标,如果等于,则执行步骤406,否则执行步骤411;步骤406:接收到该切换消息的感知节点创建一个等待表项,该等待表项的坐标等于该切换消息中的数据坐标,将生命周期设置为最大值,选择所有能量值大于阈值et0的节点表
项,从所述节点表项中选择一个节点表项,该节点表项的坐标与该切换消息的最终坐标距离最近,将该切换消息中的目的坐标设置为该节点表项中的坐标,转发该切换消息,执行步骤403;步骤407:接收到该切换消息的感知节点发送一个失败消息,该失败消息的消息id为6,数据坐标为切换消息中的数据坐标;步骤408:如果监测节点u1接收到该失败消息,则执行步骤411,否则执行步骤409;步骤409:接收到失败消息的感知节点判断是否存在坐标等于该失败消息中数据坐标的等待表项,如果存在,则执行步骤410,否则执行步骤411;步骤410:接收到失败消息的感知节点选择坐标等于该失败消息中数据坐标的等待表项,删除该等待表项,转发该失败消息,执行步骤408;步骤411:结束。
技术总结
本发明提供了一种基于缓存机制的水下传感网数据监测系统实现方法,所述系统由感知节点和监测节点构成,所述水下传感网为三维空间,感知节点均匀分布在水下传感网的三维空间中,用于收集数据,监测节点位于水面,用于获取并监测感知节点采集的数据。用户通过本发明所提供的水下传感网数据监测系统实现方法能够快速获取水下环境监测数据,从而有效缩短了获取水下环境监测服务数据的延迟和代价,提高了服务质量,本发明可应用于智能城市的水域智能安全监测以及环境监测等领域,具有广泛的应用前景。前景。前景。
技术研发人员:王晓喃 王兴伟 罗玉峰
受保护的技术使用者:常熟理工学院
技术研发日:2021.12.09
技术公布日:2022/3/8