PAMR(Cayirci et al.,2005)是为了传感器和执行器网络设计的,在该网络中,传感器把它们的数据直接发给感兴趣的执行器,在选择路由时,会考虑到能量和延迟。在PAMR,执行器通过广播一个注册消息,在传感器网络中的节点注册兴趣数据。一个注册消息包括节点标识字段(node_id)、执行器标识字段(actuator_id)、等级字段(echelon)、最小可用能量字段(minPA)、全部可用能量字段(to-talPA)以及任务字段。node_id是发送节点的身份标识。当执行器广播一个注册消息时,它用自己的id初始化node_id字段,重发此消息的节点也会更新此字段。每个重发注册消息的节点用它们自己的id替换node_id。echelon表示从一个执行器到一个节点需要的最小跳数。totalPA是把路由上每个节点的可用能量加起来得到的。minPA是在路由上,有最少能量节点的可用能量值。转发注册消息的节点会把它的可用能量(ownPA)加到totalPA上。如果ownPA低于minPA值,它也会用节点自己的ownPA替换掉minPA字段。在发送注册消息之前,执行器会把echelon和total-PA初始化为0,把minPA的值设为PA的最大可能值。
传感器节点不会重发已经接收到的所有注册消息。它们首先检查这是否是一个新路由的注册消息。满足以下标准之一的路由即为新路由:
1)在注册消息中,注册表没有执行器的任何条目;
2)注册表至少有一个执行器条目,但执行器的条目都不是来自注册消息的上行链路节点;
3)注册表有一个注册消息中执行器和上行链路节点条目。
然而,消息中至少有一项任务不是在相关注册表条目指明的。
如果这不是新路由的注册消息,它将被检查是否是一个基于echelon、minPA和totalPA字段的更好的路由。为此,将使用一个由下式表示的参数化的选择函数:
假定有一个传感器节点s,N={n1,n2,...,nn}是s的路由表上的上行链路节点的集合。选择函数的一般公式如下:
fi=(w1×αi)+(w2×βi)+(w3×ϕi) (5-2)(www.xing528.com)
式中,w1、w2、w3是加权参数,满足w1+w2+w3=1,0≤w1、w2、w3≤1,且
式中,ei是上行链路节点i的等级;mi是通过上行链路节点i的路由上最小可用能量值;ti是经过上行链路节点i的路由上可用的总能量值。计算完所有邻居节点的f值之后,有最大f值的节点会被选出来作为上行链路节点,把新收到的数据包发送到指定执行器上。
当一个注册消息在网络中传播时,节点要维护两个表:注册表和路由表。图5-11给出了注册表和路由表的例子。一个节点的注册表是执行器的列表,这些执行器已经在网络中至少注册了一个任务。路由表列出的是每个任务的最佳上行链路节点和注册表中可用的执行器对。当收到一个新的感知数据时,将为上行节点(例如下一跳)检查该表。数据包将被转发给此任务(比如传感器类型)的每一个上行节点。相同类型的感知数据将转发给多个节点。因此,在路由表中有对同一个任务的多个记录。然而,每一个单独的上行链路节点和感知任务对只有一个记录。
图5-11 传感器网络和执行器网络范例
a)拓扑结构范例 b)节点c的注册表 c)节点c的路由表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。