SPIN路由协议

来源:互联网 发布:jquery查找子元素数组 编辑:程序博客网 时间:2024/03/29 21:21

         SPIN路由协议是第一个以数据为中心的自适应路由协议,针对于泛洪算法中的“内爆”和“重叠”问题它通过协商机制来解决。由于元数据小于采集到的整个数据,能量消耗比较少,所以节点间通过发送元数据(meta-data,即描述传感器节点采集的数据的数据)而不是感应采集到的所有原数据进行协商。而且传感器节点监控各自能量的变化,若能量处于低水平状态,则必须中断操作转而充当路由器的角色,所以在一定程度上避免了资源的盲目使用。但在传输新数据的过程中,没有考虑到邻居节点由于自身能量的限制,只直接向邻近节点广播ADV数据包,不转发任何新数据,如果新数据无法传输,就会出现“数据盲点”,影响整个网络数据包信息的收集。

        SPIN中有3种数据包类型:ADV, REQ和DATA。


SPIN路由协议中的消息交换

ADV:用于新数据传播前的广播,即当一个节点要发送一个数据前,它可以用ADV数据包(包括元数据)对其他节点告知;

REQ:用于请求节点发送数据。当节点希望接收DATA数据包时,需发送REQ数据包告知能够发出数据的节点;

DATA:包括节点采集到的数据或元数据。

    SPIN-PP(Sensor Protocol for Information via Negotiation for Point-to-Point media)采用点到点的通信模式,并认为两节点功率也没有任何限制,它们之间的通信不受其他节点的干扰,分组无丢失。

    SPIN-EC是在SPIN-PP的基础上考虑到节点的功耗,能量不低于预先设定的闽值但又能完成所有任务的节点才有资格参与数据包的交换。

    SPIN-B C设计了一个广播信道,使所有位于有效半径内的节点能同时完成数据包交换。节点在接收到ADV消息后,设定一个随机定时器来控制管理REQ请求的发送,其他节点收到该请求就主动放弃请求的权利,这样就防止产生重复的REQ 。

    SPIN-RL是对SPIN-BC的改善,主要针对无线链路怎样恢复导致的分组差错和丢失。及时记录ADV消息的状态,如果在确定的时间间隔内接收不到请求的消息,就要求重新发送请求,但是次数是有限,超过一定次数,视为无效。