一种下一代传感网通信系统的实现方法与流程

文档序号:15878839发布日期:2018-11-09 17:30阅读:141来源:国知局
一种下一代传感网通信系统的实现方法与流程

本发明涉及一种实现方法,尤其涉及的是一种下一代传感网通信系统的实现方法。

背景技术

下一代传感网作为一种新型通信网络,能够实现节点之间的多跳无线通信。随着网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高网络性能。

目前,研究人员提出了通过下一代传感网获取网络服务的模式并定义了相应的协议栈,但是由于下一代传感网的体系结构与传统网络的体系结构不同,现有的网络获取服务的方法具有一些局限性。因此需要提出一种低延迟的下一代传感网实现方法,从而提高服务质量。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供了一种下一代传感网通信系统的实现方法。

技术方案:本发明公开了一种下一代传感网通信系统的实现方法,所述下一代传感网包括一个中心控制器,两个以上的本地控制器以及传感节点;所属传感节点分为固定传感节点和移动传感节点;中心控制器和本地控制器是路由器,中心控制器用于管理本地控制器,本地控制器用于管理传感节点;

所属中心控制器配置两个以上的有线接口,一个有线接口由一个接口id唯一标识,每个有线接口与一个本地控制器链路相连;一个本地控制器配置一个有线接口和一个无线接口,有线接口与中心控制器链路相连,无线接口与固定传感节点链路相连;固定传感节点和移动传感节点配置一个无线接口;

传感节点或者本地控制器由地址唯一标识,地址由本地前缀、固定前缀和移动前缀构成;本地控制器地址的固定前缀和移动前缀均为0,固定传感节点地址的移动前缀为0;

每个固定传感节点保存一个上游表,每个上游表项包含本地地址域、上游地址域、距离域和生命周期域;其中本地地址域保存本地控制器的地址,上游地址域保存上游节点的地址,距离域值为到达本地控制器的跳数,生命周期为该上游表项的有效时间;

本地控制器lc1启动后,定期执行下述操作建立上游表:

步骤101:开始;

步骤102:本地控制器lc1构建一个地址,该地址的本地前缀为本地控制器lc1的硬件id,例如mac地址,固定前缀和移动前缀均为0,设置参数d1,参数d1的初始值为0,从无线接口发送一个发布消息,该发布消息的源地址为构建的地址,目的地址为广播地址,即每个比特位均为1的地址,负载为参数d1和构建的地址;

步骤103:判断是移动传感节点还是固定移动节点接收到发布消息,如果是移动传感节点则执行步骤104,否则执行步骤105;

步骤104:接收到发布消息的移动传感节点丢弃该发布消息,执行步骤112;

步骤105:固定移动节点接收到发布消息后,将发布消息负载中的参数d1递增1并查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址且距离域值小于发布消息负载中的参数d1,是则执行步骤106,否则执行步骤107;

步骤106:接收到发布消息的固定传感节点丢弃该发布消息,执行步骤112;

步骤107:固定移动节点接收到发布消息后,查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1且上游地址域值等于该发布消息的源地址,是则执行步骤106,否则执行步骤108;

步骤108:固定移动节点接收到发布消息后,查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1且上游地址域值不等于该发布消息的源地址,是则执行步骤109,否则执行步骤110;

步骤109:接收到发布消息的固定移动节点创建一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1,上游地址域值等于该发布消息的源地址,生命周期设置为最大值,例如500ms;所述固定移动节点构建一个地址,该地址的本地前缀和移动前缀为0,固定前缀等于定移动节点自己的硬件id,将接收到的发布消息的源地址更新为构建的地址,转发该发布消息,执行步骤103;

步骤110:接收到发布消息的固定移动节点查看上游表;判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值大于发布消息负载中的参数d1,是则执行步骤111,否则执行步骤109;

步骤111:接收到发布消息的固定移动节点选择一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址且距离域值大于发布消息负载中的参数d1,将该上游表项的上游地址更新为该发布消息的源地址,距离域值更新为发布消息负载中的参数d1,生命周期设置为最大值;所述固定移动节点构建一个地址,该地址的本地前缀和移动前缀为0,固定前缀等于固定移动节点自己的硬件id,将接收到的发布消息的源地址更新为构建的地址,转发该发布消息,执行步骤103;

步骤112:结束;

如果固定传感节点检测到一个上游表项的生命周期衰减为0,则删除该上游表项。

本地控制器通过上述过程在每个固定传感节点建立上游表,这样每个固定传感节点能够获取自己本地控制器的地址从而实现与本地控制器的通信,同时固定传感节点也获取了距离本地控制器的距离以及上游节点的地址,这样固定传感节点可以选择选择最优路径通过上游节点实现与本地控制器的通信,从而大幅度降低通信延迟。

本发明所述方法中,中心控制器保存一个本地表,一个本地表项包含接口id域、本地地址域和生命周期域;

本地控制器lc1启动后,定期执行下述操作建立本地表:

步骤201:开始;

步骤202:本地控制器lc1创建一个地址,该地址的本地前缀为自己的硬件id,固定前缀和移动前缀均为0,本地控制器lc1从自己的有线接口发送一个本地发布消息,该本地发布消息的源地址为构建的地址,目的地址为空,负载为空;

步骤203:中心控制器从接口f1接收到本地发布消息后,查看本地表,判断是否存在一个本地表项,该本地表项的接口id等于f1,是则将该本地表项的本地地址更新为该本地发布消息的源地址,将生命周期设置为最大值;否则,中心控制器创建一个本地表项,该本地表项的接口id等于f1,本地地址为该本地发布消息的源地址,将生命周期设置为最大值;

步骤204:结束;

如果中心控制器检测到一个本地表项的生命周期衰减为0,则删除该本地表项。

本地控制器通过上述过程建立在中心控制器的本地表项,这样,中心控制器可以获取每个本地控制器的地址以及接口信息,从而实现消息的正确转发,由于本地表项通过生命周期来实现每个本地表项的实时性和有效性,因此上述过程确保了通信的正确性和有效性。

本发明所述方法中,固定传感节点定期发送信标消息,该信标消息的源地址为自己的地址,该地址的本地前缀和移动前缀均为0,固定前缀为自己的硬件id,该信标消息的目的地址为广播地址,负载为该固定传感节点的上游表;

每个本地控制器保存一个路径表,每个路径表项包含一个地址集合域和生命周期域;

如果固定传感节点fn1接收到所有邻居固定传感节点的信标消息,则将自己的上游表与所有信标消息负载中的上游表进行对比;如果固定传感节点fn1存在一个上游表项e1,该上游表项的本地地址域值为la1且距离域值不大于所有其他上游表中本地地址域值为la1的上游表项的距离域值,则固定传感节点fn1执行下述操作建立路径表:

步骤301:开始;

步骤302:固定传感节点fn1从自己的上游表选择所有本地地址域值为la1的上游表项;针对每个选中的上游表项,固定传感节点fn1构建一个地址fa1,地址fa1中的本地前缀等于地址la1中的本地前缀,固定前缀为自己的硬件id,移动前缀为0,设置一个地址集合变量a1,地址集合变量a1的初始值为{fa1};固定传感节点fn1发送一个路径消息,该路径消息的源地址为地址fa1,目的地址为选中的上游表项的上游地址,负载为地址la1和地址集合参数a1;

步骤303:判断是目的本地控制器还是目的固定传感节点接收到该路径消息,即地址等于la1的本地控制器,如果是目的本地控制器则执行步骤305,否则执行步骤304;

步骤304:硬件id等于该路径消息目的地址的固定前缀的目的固定传感节点接收到该路径消息后,构建一个地址,该地址的本地前缀为地址la1的本地前缀,固定前缀等于自己的硬件id,移动前缀为0;将构建的地址加入到路径消息负载中的参数a1中并作为最后一个元素;目的固定传感节点从自己的上游表选择所有本地地址域值为la1的上游表项,针对每个选中的上游表项,目的固定传感节点将该路径消息的目的地址更新为该上游表项的上游地址,转发该路径消息,执行步骤303;

步骤305:目的本地控制器接收到该路径消息后,将自己的地址加入到路径消息负载中的参数a1中并作为最后一个元素;目的本地控制器查看路径表,判断是否存在一个路径表项,该路径表项的地址集合域值等于该路径消息负载中的参数a1,是则将该路径表项的生命周期设置为最大值;否则,目的本地控制器创建一个路径表项,该路径表项的地址集合域值等于该路径消息负载中的参数a1,将生命周期设置为最大值;

步骤306:结束。

固定传感节点通过上述过程建立到达本地控制器的路由路径,这样,固定传感节点无需建立路由即可实现与本地控制器的通信,从而大幅度降低了数据通信延迟的代价和延迟。由于上述过程通过上游表来实现,因此固定传感节点到达本地控制器的路由路径为最优,从而进一步降低了数据通信延迟和代价。

本发明所述方法中,在移动传感节点mn1与固定传感节点fn1链路相连,地址为ma1,地址ma1的本地前缀为本地控制器lc1的硬件id,本地控制器lc1的地址为la1,固定前缀等于固定传感节点fn1的硬件id,移动传感节点mn2与固定传感节点fn2链路相连,地址为ma2,地址ma2的本地前缀为本地控制器lc2的硬件id,本地控制器lc2的地址为la2,地址ma2的固定前缀为固定传感节点fn2的硬件id的条件下,如果满足条件1,移动传感节点mn1执行下述过程实现与移动传感节点mn2的通信;条件1:在固定传感节点fn1的上游表中,至少存在一个上游表项,该上游表项的本地地址为la2,且在固定传感节点fn2的上游表中,至少存在一个上游表项,该上游表项的本地地址为la1;

步骤401:开始;

步骤402:移动传感节点mn1发送一个请求消息,该请求消息的源地址为ma1,目的地址为固定传感节点fn1的地址,固定传感节点fn1地址的本地前缀为0,固定前缀为固定传感节点fn1的硬件id,移动前缀为0,该请求消息的负载为地址ma2;固定传感节点fn1接收到请求消息后,选择所有本地地址的本地前缀等于地址ma2的本地前缀的上游表项,针对每个选中的上游表项,固定传感节点fn1将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息;

步骤403:如果目的本地控制器接收到该请求消息,则执行步骤405,否则执行步骤404;其中,目的本地控制器为硬件id等于该请求消息目的地址的本地前缀的本地控制器;

步骤404:目的固定传感节点接收到请求消息后,目的固定传感节点的硬件id等于该请求消息的目的地址的固定前缀,选择所有本地地址的本地前缀等于地址ma2的本地前缀的上游表项,针对每个选中的上游表项,目的固定传感节点将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息,执行步骤403;

步骤405:目的本地控制器从无线接口接收到该请求消息后,选择所有满足条件2的路径表项;对于每个选中的路径表项,目的本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca1到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,目的本地控制器将提取的地址子集加入到该请求消息负载中,将该请求消息的目的地址更新为该地址子集的最后一个元素,从该请求消息负载中的地址子集中删除最后一个元素,转发该请求消息;

条件2:地址集合域值包含地址ca1,地址ca1的本地前缀和固定前缀等于地址ma2的本地前缀和固定前缀,移动前缀为0;

步骤406:判断是移动传感节点mn2还是目的固定传感节点接收到请求消息,如果是移动传感节点mn2则执行步骤408,否则执行步骤407;

步骤407:目的固定传感节点判断该请求消息负载中的子集是否为空,如果是,该目的固定传感节点将该请求消息的目的地址更新为地址ma2,转发该请求消息;否则,该目的固定传感节点将该请求消息的目的地址更新为该请求消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该请求消息,执行步骤406;

步骤408:移动传感节点mn2发送一个响应消息,该响应消息的源地址为地址ma2,目的地址为固定传感节点fn2的地址,该地址的本地前缀和移动前缀为0,固定前缀为固定传感节点fn2的硬件id,负载为地址ma1和响应数据;固定传感节点fn2接收到响应消息后,选择所有本地地址的本地前缀等于地址ma1的本地前缀的上游表项,针对每个选中的上游表项,固定传感节点fn2将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息;

步骤409:如果目的本地控制器接收到该响应消息,则执行步骤411,否则执行步骤410;其中,目的本地控制器的硬件id等于该响应消息目的地址的本地前缀;

步骤410:目的固定传感节点接收到响应消息后,选择所有本地地址的本地前缀等于地址ma1的本地前缀的上游表项,针对每个选中的上游表项,目的固定传感节点将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息,执行步骤409;其中,目的固定传感节点的硬件id等于该响应消息的目的地址的固定前缀;

步骤411:目的本地控制器从无线接口接收到该响应消息后,选择所有满足条件3的路径表项;对于每个选中的路径表项,目的本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca2到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,目的本地控制器将提取的地址子集加入到该响应消息负载中,将该响应消息的目的地址更新为该地址子集的最后一个元素,从该响应消息负载中的地址子集中删除最后一个元素,从无线接口转发该响应消息;

条件3:地址集合域值包含地址ca2,地址ca2的本地前缀和固定前缀等于地址ma1的本地前缀和固定前缀,移动前缀为0;

步骤412:判断是移动传感节点mn1还是目的固定传感节点接收到响应消息,是移动传感节点mn1则执行步骤414,否则执行步骤413;

步骤413:目的固定传感节点接收到响应消息后,判断该响应消息负载中的子集是否为空,如果是,该目的固定传感节点将该响应消息的目的地址更新为地址ma1,转发该响应消息;否则,该目的固定传感节点将该响应消息的目的地址更新为该响应消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该响应消息,执行步骤412;

步骤414:移动传感节点mn1接收到响应消息后,保存该响应消息负载中的数据;

步骤415:结束。

在满足条件1的情况下,两个移动传感节点通过上述过程实现通信,由于上述过程通过路径表和上游表来实现通信,无需建立路由路径,由于路径表建立了从固定传感节点到达本地控制器的最优路由路径,因此大幅度降低了数据延迟和代价。

本发明所述方法中,在移动传感节点mn1与固定传感节点fn1链路相连,地址为ma1,地址ma1的本地前缀为本地控制器lc1的硬件id,本地控制器lc1的地址为la1,固定前缀等于固定传感节点fn1的硬件id,移动传感节点mn2与固定传感节点fn2链路相连,地址为ma2,地址ma2的本地前缀为本地控制器lc2的硬件id,本地控制器lc2的地址为la2,地址ma2的固定前缀为固定传感节点fn2的硬件id的条件下,如果不满足条件1,移动传感节点mn1执行下述过程实现与移动传感节点mn2的通信:

步骤501:开始;

步骤502:移动传感节点mn1发送一个请求消息,该请求消息的源地址为ma1,目的地址为固定传感节点fn1的地址,固定传感节点fn1地址的本地前缀为0,固定前缀为固定传感节点fn1的硬件id,移动前缀为0,该请求消息的负载为地址ma2;固定传感节点fn1接收到请求消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,固定传感节点fn1将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息;

步骤503:如果目的本地控制器接收到该请求消息,则执行步骤505,否则执行步骤504;其中,目的本地控制器为硬件id等于该请求消息目的地址的本地前缀的本地控制器;

步骤504:目的固定传感节点接收到请求消息后,目的固定传感节点的硬件id等于该请求消息的目的地址的固定前缀,选择所有距离域值最小的上游表项,针对每个选中的上游表项,目的固定传感节点将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息,执行步骤503;

步骤505:目的本地控制器从无线接口接收到该请求消息后,从有线接口转发该请求消息,中心控制器接收到该请求消息后,选择一个本地表项,该本地表项的本地地址的本地前缀等于地址ma2的本地前缀,从该本地表项的接口id域值所标识的接口转发该请求消息;本地控制器从有线接口接收到该请求消息后,选择所有满足条件2的路径表项;对于每个选中的路径表项,该本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca1到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,该本地控制器将提取的地址子集加入到该请求消息负载中,将该请求消息的目的地址更新为该地址子集的最后一个元素,从该请求消息负载中的地址子集中删除最后一个元素,转发该请求消息;

步骤506:判断是移动传感节点mn2还是目的固定传感节点接收到请求消息,如果是移动传感节点mn2则执行步骤508,否则执行步骤507;

步骤507:目的固定传感节点判断该请求消息负载中的子集是否为空,如果是,该目的固定传感节点将该请求消息的目的地址更新为地址ma2,转发该请求消息;否则,该目的固定传感节点将该请求消息的目的地址更新为该请求消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该请求消息,执行步骤506;

步骤508:移动传感节点mn2发送一个响应消息,该响应消息的源地址为地址ma2,目的地址为固定传感节点fn2的地址,该地址的本地前缀和移动前缀为0,固定前缀为固定传感节点fn2的硬件id,负载为地址ma1和响应数据;固定传感节点fn2接收到响应消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,固定传感节点fn2将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息;

步骤509:如果目的本地控制器接收到该响应消息,则执行步骤511,否则执行步骤510;

步骤510:目的固定传感节点接收到响应消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,目的固定传感节点将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息,执行步骤509;其中,目的固定传感节点为硬件id等于该响应消息的目的地址的固定前缀的固定传感器,

步骤511:目的本地控制器从无线接口接收到该响应消息后,从有线接口转发该响应消息,中心控制器接收到该响应消息后,选择一个本地表项,该本地表项的本地地址的本地前缀等于地址ma1的本地前缀,从该本地表项的接口id域值所标识的接口转发该请求消息;本地控制器从有线接口接收到该请求消息后,选择所有满足条件3的路径表项;对于每个选中的路径表项,该本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca2到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,该本地控制器将提取的地址子集加入到该响应消息负载中,将该响应消息的目的地址更新为该地址子集的最后一个元素,从该响应消息负载中的地址子集中删除最后一个元素,从无线接口转发该响应消息;

步骤512:判断是移动传感节点mn1还是目的固定传感节点接收到响应消息,如果是移动传感节点mn1则执行步骤514,否则执行步骤513;

步骤513:目的固定传感节点接收到响应消息后,判断该响应消息负载中的子集是否为空,如果是,该目的固定传感节点将该响应消息的目的地址更新为地址ma1,转发该响应消息;否则,该目的固定传感节点将该响应消息的目的地址更新为该响应消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该响应消息,执行步骤512;

步骤514:移动传感节点mn1接收到响应消息后,保存该响应消息负载中的数据;

步骤515:结束。

在不满足条件1的情况下,两个移动传感节点通过上述过程实现通信,上述过程通过本地表、路径表和上游表来实现通信,无需建立路由路径,由于本地表和上游表通过生命周期确保了转发接口的有效性,而路径表建立了从固定传感节点到达本地控制器的最优路由路径,因此大幅度降低了数据延迟和代价。

有益效果:本发明提供了一种下一代传感网通信系统的实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的建立上游表流程示意图。

图2为本发明所述的建立本地表流程示意图。

图3为本发明所述的建立路径表流程示意图。

图4为本发明所述的本地数据通信流程示意图。

图5为本发明所述的获取数据流程示意图。

具体实施方式:

本发明提供了一种下一代传感网通信系统的实现方法,所述网络通过本发明所提供的实现方法可快速获取网络数据,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、环境监测等领域,具有广泛的应用前景。

图1为本发明所述的建立上游表流程示意图。所述下一代传感网包括一个中心控制器,两个以上的本地控制器以及传感节点;所属传感节点分为固定传感节点和移动传感节点;中心控制器和本地控制器是路由器,中心控制器用于管理本地控制器,本地控制器用于管理传感节点;

所属中心控制器配置两个以上的有线接口,一个有线接口由一个接口id唯一标识,每个有线接口与一个本地控制器链路相连;一个本地控制器配置一个有线接口和一个无线接口,有线接口与中心控制器链路相连,无线接口与固定传感节点链路相连;固定传感节点和移动传感节点配置一个无线接口;

传感节点或者本地控制器由地址唯一标识,地址由本地前缀、固定前缀和移动前缀构成;本地控制器地址的固定前缀和移动前缀均为0,固定传感节点地址的移动前缀为0;

每个固定传感节点保存一个上游表,每个上游表项包含本地地址域、上游地址域、距离域和生命周期域;其中本地地址域保存本地控制器的地址,上游地址域保存上游节点的地址,距离域值为到达本地控制器的跳数,生命周期为该上游表项的有效时间;

本地控制器lc1启动后,定期执行下述操作建立上游表:

步骤101:开始;

步骤102:本地控制器lc1构建一个地址,该地址的本地前缀为本地控制器lc1的硬件id,固定前缀和移动前缀均为0,设置参数d1,参数d1的初始值为0,从无线接口发送一个发布消息,该发布消息的源地址为构建的地址,目的地址为广播地址,即每个比特位均为1的地址,负载为参数d1和构建的地址;

步骤103:判断是移动传感节点还是固定移动节点接收到发布消息,如果是移动传感节点则执行步骤104,否则执行步骤105;

步骤104:接收到发布消息的移动传感节点丢弃该发布消息,执行步骤112;

步骤105:固定移动节点接收到发布消息后,将发布消息负载中的参数d1递增1并查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址且距离域值小于发布消息负载中的参数d1,是则执行步骤106,否则执行步骤107;

步骤106:接收到发布消息的固定传感节点丢弃该发布消息,执行步骤112;

步骤107:固定移动节点接收到发布消息后,查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1且上游地址域值等于该发布消息的源地址,是则执行步骤106,否则执行步骤108;

步骤108:固定移动节点接收到发布消息后,查看上游表,判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1且上游地址域值不等于该发布消息的源地址,是则执行步骤109,否则执行步骤110;

步骤109:接收到发布消息的固定移动节点创建一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值等于发布消息负载中的参数d1,上游地址域值等于该发布消息的源地址,生命周期设置为最大值;所述固定移动节点构建一个地址,该地址的本地前缀和移动前缀为0,固定前缀等于定移动节点自己的硬件id,将接收到的发布消息的源地址更新为构建的地址,转发该发布消息,执行步骤103;

步骤110:接收到发布消息的固定移动节点查看上游表;判断是否存在一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址,距离域值大于发布消息负载中的参数d1,是则执行步骤111,否则执行步骤109;

步骤111:接收到发布消息的固定移动节点选择一个上游表项,该上游表项的本地地址等于该发布消息负载中的地址且距离域值大于发布消息负载中的参数d1,将该上游表项的上游地址更新为该发布消息的源地址,距离域值更新为发布消息负载中的参数d1,生命周期设置为最大值;所述固定移动节点构建一个地址,该地址的本地前缀和移动前缀为0,固定前缀等于固定移动节点自己的硬件id,将接收到的发布消息的源地址更新为构建的地址,转发该发布消息,执行步骤103;

步骤112:结束;

如果固定传感节点检测到一个上游表项的生命周期衰减为0,则删除该上游表项。

图2为本发明所述的建立本地表流程示意图。中心控制器保存一个本地表,一个本地表项包含接口id域、本地地址域和生命周期域;

本地控制器lc1启动后,定期执行下述操作建立本地表:

步骤201:开始;

步骤202:本地控制器lc1创建一个地址,该地址的本地前缀为自己的硬件id,固定前缀和移动前缀均为0,本地控制器lc1从自己的有线接口发送一个本地发布消息,该本地发布消息的源地址为构建的地址,目的地址为空,负载为空;

步骤203:中心控制器从接口f1接收到本地发布消息后,查看本地表,判断是否存在一个本地表项,该本地表项的接口id等于f1,是则将该本地表项的本地地址更新为该本地发布消息的源地址,将生命周期设置为最大值;否则,中心控制器创建一个本地表项,该本地表项的接口id等于f1,本地地址为该本地发布消息的源地址,将生命周期设置为最大值;

步骤204:结束;

如果中心控制器检测到一个本地表项的生命周期衰减为0,则删除该本地表项。

图3为本发明所述的建立路径表流程示意图。固定传感节点定期发送信标消息,该信标消息的源地址为自己的地址,该地址的本地前缀和移动前缀均为0,固定前缀为自己的硬件id,该信标消息的目的地址为广播地址,负载为该固定传感节点的上游表;

每个本地控制器保存一个路径表,每个路径表项包含一个地址集合域和生命周期域;

如果固定传感节点fn1接收到所有邻居固定传感节点的信标消息,则将自己的上游表与所有信标消息负载中的上游表进行对比;如果固定传感节点fn1存在一个上游表项e1,该上游表项的本地地址域值为la1且距离域值不大于所有其他上游表中本地地址域值为la1的上游表项的距离域值,则固定传感节点fn1执行下述操作建立路径表:

步骤301:开始;

步骤302:固定传感节点fn1从自己的上游表选择所有本地地址域值为la1的上游表项;针对每个选中的上游表项,固定传感节点fn1构建一个地址fa1,地址fa1中的本地前缀等于地址la1中的本地前缀,固定前缀为自己的硬件id,移动前缀为0,设置一个地址集合变量a1,地址集合变量a1的初始值为{fa1};固定传感节点fn1发送一个路径消息,该路径消息的源地址为地址fa1,目的地址为选中的上游表项的上游地址,负载为地址la1和地址集合参数a1;

步骤303:判断是目的本地控制器还是目的固定传感节点接收到该路径消息,即地址等于la1的本地控制器,如果是目的本地控制器则执行步骤305,否则执行步骤304;

步骤304:硬件id等于该路径消息目的地址的固定前缀的目的固定传感节点接收到该路径消息后,构建一个地址,该地址的本地前缀为地址la1的本地前缀,固定前缀等于自己的硬件id,移动前缀为0;将构建的地址加入到路径消息负载中的参数a1中并作为最后一个元素;目的固定传感节点从自己的上游表选择所有本地地址域值为la1的上游表项,针对每个选中的上游表项,目的固定传感节点将该路径消息的目的地址更新为该上游表项的上游地址,转发该路径消息,执行步骤303;

步骤305:目的本地控制器接收到该路径消息后,将自己的地址加入到路径消息负载中的参数a1中并作为最后一个元素;目的本地控制器查看路径表,判断是否存在一个路径表项,该路径表项的地址集合域值等于该路径消息负载中的参数a1,是则将该路径表项的生命周期设置为最大值;否则,目的本地控制器创建一个路径表项,该路径表项的地址集合域值等于该路径消息负载中的参数a1,将生命周期设置为最大值;

步骤306:结束。

图4为本发明所述的本地数据通信流程示意图。在移动传感节点mn1与固定传感节点fn1链路相连,地址为ma1,地址ma1的本地前缀为本地控制器lc1的硬件id,本地控制器lc1的地址为la1,固定前缀等于固定传感节点fn1的硬件id,移动传感节点mn2与固定传感节点fn2链路相连,地址为ma2,地址ma2的本地前缀为本地控制器lc2的硬件id,本地控制器lc2的地址为la2,地址ma2的固定前缀为固定传感节点fn2的硬件id的条件下,如果满足条件1,移动传感节点mn1执行下述过程实现与移动传感节点mn2的通信;条件1:在固定传感节点fn1的上游表中,至少存在一个上游表项,该上游表项的本地地址为la2,且在固定传感节点fn2的上游表中,至少存在一个上游表项,该上游表项的本地地址为la1;

步骤401:开始;

步骤402:移动传感节点mn1发送一个请求消息,该请求消息的源地址为ma1,目的地址为固定传感节点fn1的地址,固定传感节点fn1地址的本地前缀为0,固定前缀为固定传感节点fn1的硬件id,移动前缀为0,该请求消息的负载为地址ma2;固定传感节点fn1接收到请求消息后,选择所有本地地址的本地前缀等于地址ma2的本地前缀的上游表项,针对每个选中的上游表项,固定传感节点fn1将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息;

步骤403:如果目的本地控制器接收到该请求消息,则执行步骤405,否则执行步骤404;其中,目的本地控制器为硬件id等于该请求消息目的地址的本地前缀的本地控制器;

步骤404:目的固定传感节点接收到请求消息后,目的固定传感节点的硬件id等于该请求消息的目的地址的固定前缀,选择所有本地地址的本地前缀等于地址ma2的本地前缀的上游表项,针对每个选中的上游表项,目的固定传感节点将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息,执行步骤403;

步骤405:目的本地控制器从无线接口接收到该请求消息后,选择所有满足条件2的路径表项;对于每个选中的路径表项,目的本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca1到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,目的本地控制器将提取的地址子集加入到该请求消息负载中,将该请求消息的目的地址更新为该地址子集的最后一个元素,从该请求消息负载中的地址子集中删除最后一个元素,转发该请求消息;

条件2:地址集合域值包含地址ca1,地址ca1的本地前缀和固定前缀等于地址ma2的本地前缀和固定前缀,移动前缀为0;

步骤406:判断是移动传感节点mn2还是目的固定传感节点接收到请求消息,如果是移动传感节点mn2则执行步骤408,否则执行步骤407;

步骤407:目的固定传感节点判断该请求消息负载中的子集是否为空,如果是,该目的固定传感节点将该请求消息的目的地址更新为地址ma2,转发该请求消息;否则,该目的固定传感节点将该请求消息的目的地址更新为该请求消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该请求消息,执行步骤406;

步骤408:移动传感节点mn2发送一个响应消息,该响应消息的源地址为地址ma2,目的地址为固定传感节点fn2的地址,该地址的本地前缀和移动前缀为0,固定前缀为固定传感节点fn2的硬件id,负载为地址ma1和响应数据;固定传感节点fn2接收到响应消息后,选择所有本地地址的本地前缀等于地址ma1的本地前缀的上游表项,针对每个选中的上游表项,固定传感节点fn2将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息;

步骤409:如果目的本地控制器接收到该响应消息,则执行步骤411,否则执行步骤410;其中,目的本地控制器的硬件id等于该响应消息目的地址的本地前缀;

步骤410:目的固定传感节点接收到响应消息后,选择所有本地地址的本地前缀等于地址ma1的本地前缀的上游表项,针对每个选中的上游表项,目的固定传感节点将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息,执行步骤409;其中,目的固定传感节点的硬件id等于该响应消息的目的地址的固定前缀;

步骤411:目的本地控制器从无线接口接收到该响应消息后,选择所有满足条件3的路径表项;对于每个选中的路径表项,目的本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca2到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,目的本地控制器将提取的地址子集加入到该响应消息负载中,将该响应消息的目的地址更新为该地址子集的最后一个元素,从该响应消息负载中的地址子集中删除最后一个元素,从无线接口转发该响应消息;

条件3:地址集合域值包含地址ca2,地址ca2的本地前缀和固定前缀等于地址ma1的本地前缀和固定前缀,移动前缀为0;

步骤412:判断是移动传感节点mn1还是目的固定传感节点接收到响应消息,是移动传感节点mn1则执行步骤414,否则执行步骤413;

步骤413:目的固定传感节点接收到响应消息后,判断该响应消息负载中的子集是否为空,如果是,该目的固定传感节点将该响应消息的目的地址更新为地址ma1,转发该响应消息;否则,该目的固定传感节点将该响应消息的目的地址更新为该响应消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该响应消息,执行步骤412;

步骤414:移动传感节点mn1接收到响应消息后,保存该响应消息负载中的数据;

步骤415:结束。

图5为本发明所述的获取数据流程示意图。在移动传感节点mn1与固定传感节点fn1链路相连,地址为ma1,地址ma1的本地前缀为本地控制器lc1的硬件id,本地控制器lc1的地址为la1,固定前缀等于固定传感节点fn1的硬件id,移动传感节点mn2与固定传感节点fn2链路相连,地址为ma2,地址ma2的本地前缀为本地控制器lc2的硬件id,本地控制器lc2的地址为la2,地址ma2的固定前缀为固定传感节点fn2的硬件id的条件下,如果不满足条件1,移动传感节点mn1执行下述过程实现与移动传感节点mn2的通信:

步骤501:开始;

步骤502:移动传感节点mn1发送一个请求消息,该请求消息的源地址为ma1,目的地址为固定传感节点fn1的地址,固定传感节点fn1地址的本地前缀为0,固定前缀为固定传感节点fn1的硬件id,移动前缀为0,该请求消息的负载为地址ma2;固定传感节点fn1接收到请求消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,固定传感节点fn1将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息;

步骤503:如果目的本地控制器接收到该请求消息,则执行步骤505,否则执行步骤504;其中,目的本地控制器为硬件id等于该请求消息目的地址的本地前缀的本地控制器;

步骤504:目的固定传感节点接收到请求消息后,目的固定传感节点的硬件id等于该请求消息的目的地址的固定前缀,选择所有距离域值最小的上游表项,针对每个选中的上游表项,目的固定传感节点将该请求消息的目的地址更新为该上游表项的上游地址,转发该请求消息,执行步骤503;

步骤505:目的本地控制器从无线接口接收到该请求消息后,从有线接口转发该请求消息,中心控制器接收到该请求消息后,选择一个本地表项,该本地表项的本地地址的本地前缀等于地址ma2的本地前缀,从该本地表项的接口id域值所标识的接口转发该请求消息;本地控制器从有线接口接收到该请求消息后,选择所有满足条件2的路径表项;对于每个选中的路径表项,该本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca1到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,该本地控制器将提取的地址子集加入到该请求消息负载中,将该请求消息的目的地址更新为该地址子集的最后一个元素,从该请求消息负载中的地址子集中删除最后一个元素,转发该请求消息;

步骤506:判断是移动传感节点mn2还是目的固定传感节点接收到请求消息,如果是移动传感节点mn2则执行步骤508,否则执行步骤507;

步骤507:目的固定传感节点判断该请求消息负载中的子集是否为空,如果是,该目的固定传感节点将该请求消息的目的地址更新为地址ma2,转发该请求消息;否则,该目的固定传感节点将该请求消息的目的地址更新为该请求消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该请求消息,执行步骤506;

步骤508:移动传感节点mn2发送一个响应消息,该响应消息的源地址为地址ma2,目的地址为固定传感节点fn2的地址,该地址的本地前缀和移动前缀为0,固定前缀为固定传感节点fn2的硬件id,负载为地址ma1和响应数据;固定传感节点fn2接收到响应消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,固定传感节点fn2将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息;

步骤509:如果目的本地控制器接收到该响应消息,则执行步骤511,否则执行步骤510;

步骤510:目的固定传感节点接收到响应消息后,选择所有距离域值最小的上游表项,针对每个选中的上游表项,目的固定传感节点将该响应消息的目的地址更新为该上游表项的上游地址,转发该响应消息,执行步骤509;其中,目的固定传感节点为硬件id等于该响应消息的目的地址的固定前缀的固定传感器,

步骤511:目的本地控制器从无线接口接收到该响应消息后,从有线接口转发该响应消息,中心控制器接收到该响应消息后,选择一个本地表项,该本地表项的本地地址的本地前缀等于地址ma1的本地前缀,从该本地表项的接口id域值所标识的接口转发该请求消息;本地控制器从有线接口接收到该请求消息后,选择所有满足条件3的路径表项;对于每个选中的路径表项,该本地控制器提取一个地址子集,该地址子集等于该路径表项的地址集合中从地址ca2到最后一个元素之间的所有元素,地址子集的元素顺序与该路径表项的地址集合的元素顺序相同,该本地控制器将提取的地址子集加入到该响应消息负载中,将该响应消息的目的地址更新为该地址子集的最后一个元素,从该响应消息负载中的地址子集中删除最后一个元素,从无线接口转发该响应消息;

步骤512:判断是移动传感节点mn1还是目的固定传感节点接收到响应消息,如果是移动传感节点mn1则执行步骤514,否则执行步骤513;

步骤513:目的固定传感节点接收到响应消息后,判断该响应消息负载中的子集是否为空,如果是,该目的固定传感节点将该响应消息的目的地址更新为地址ma1,转发该响应消息;否则,该目的固定传感节点将该响应消息的目的地址更新为该响应消息负载中的地址子集的最后一个元素,从该地址子集中删除最后一个元素,转发该响应消息,执行步骤512;

步骤514:移动传感节点mn1接收到响应消息后,保存该响应消息负载中的数据;

步骤515:结束。

实施例1

基于表1的仿真参数,本实施例模拟了本发明中的一种下一代传感网通信系统的实现方法,性能分析如下:当网络数据传输量较小时,传感节点获取数据的延迟较低,当网络数据传输量较大时,移动节点获取数据的延迟较高;网络获取数据的平均延迟为273ms。

表1仿真参数

本发明提供了一种下一代传感网通信系统的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1