查询路由
节点通过节点数据查询消息
基于查询路由通常是指目的节点通过网络传播一个来自某个节点数据查询消息(感应任务),收到该查询数据消息的节点又将匹配该查询消息的数据发回给原来的节点。一般这些查询是以自然语言或者高级语言来描述的。
定向扩散
定向扩散(Directed Diffusion,DD)是一种基于查询的路由机制。汇聚节点通过兴趣消息(Interest Message)发出查询任务,采用洪泛方式传播兴趣消息到整个区域或部分区域内的所有传感器节点。兴趣消息用来表示查询的任务,表达网络用户对监测区域内感兴趣的信息,例如监测区域内的温度、湿度和光照等环境信息。在兴趣消息的传播过程中,协议逐跳地在每个传感器节点上建立反向的从数据源到汇聚节点的数据传输梯度(gradi-ent)。传感器节点将采集到的数据沿着梯度方向传送到汇聚节点
定向扩散阶段
定向扩散路由机制可以分为周期性的兴趣扩散、梯度建立以及路径加强三个阶段。
兴趣扩散阶段
在兴趣扩散阶段,汇聚节点周期性地向邻居节点广播兴趣消息。兴趣消息中含有任务类型、目标区域、数据发送速率、时间戳等参数。每个节点在本地保存一个兴趣列表,对于每一个兴趣列表中都有一个表项,记录发来该兴趣消息的邻居节点、数据发送速率和时间戳等任务相关信息,以建立该节点向汇聚节点传递数据的梯度关系。每个兴趣可能对应多个邻居节点,每个邻居节点对应一个梯度信息。通过定义不同的梯度相关参数,可以适应不同的应用需求。每个表项还有一个字段用来表示该表项的有效时间值,超过这个时间后,节点将删除这个表项。当节点收到邻居节点的兴趣消息时,首先检查兴趣列表中是否存有参数类型与收到兴趣相同的表项,而且对应的发送节点是该邻居节点。如果有对应的表项,就更新表项的有效时间值;如果只是参数类型相同,但不包含发送该兴趣消息的邻居节点,就在相应表项中添加这个邻居节点;对于任何其他情况,都需要建立一个新表项来记录这个新的兴趣。如果收到的兴趣消息和节点与刚刚转发的兴趣消息一样,为避免消息循环则丢弃该信息;否则,转发收到的兴趣消息。
数据传播阶段
当传感器节点采集到与兴趣匹配的数据时,把数据发送到梯度上的邻居节点,并按照梯度上的数据传输速率设定传感器模块采集数据的速率。由于可能从多个邻居节点收到兴趣消息,节点向多个邻居节点发送数据,汇聚节点可能收到经过多个路径的相同数据,中间节点收到其他节点转发的数据后,首先查询兴趣列表的表项;如果没有匹配的兴趣表项就丢弃数据;如果存在相应的兴趣表项,则检查与这个兴趣对应的数据缓冲池(DataCach),数据缓冲池用来保存最近转发的数据,如果在数据缓冲池中有与接收到的数据匹配的副本,说明已经转发过这个数据,为避免出现传输环路而丢弃这个数据;否则,检查该兴趣表项中的邻居节点信息,如果设置的邻居节点数据发送速率大于等于接收的敦据速率,则全部转发接收的数据;如果记录的邻居节点数据发送速率小于接收的数据速率,则按照比例转发。对于转发的数据,数据缓冲池保留一个副本,并记录转发时间。
路径加强阶段
定向扩散路由机制通过正向加强机制来建立优化路径,并根据网络拓扑的变化修改数据转发的梯度关系。兴趣扩散阶段是为了建立源节点到汇聚节点的数据传输路径,数据源节点以较低的速率采集和发送数据,称这个阶段建立的梯度为探测梯度(Probe Gradient)。汇聚节点在收到从源节点发来的数据后,启动建立到源节点的加强路径,后续数据将沿着加强路径以较高的数据速率进行传输。加强后的梯度称为数据梯度(Data Gradient)。假设以数据传输延迟作为路由加强的标准,汇聚节点选择首先发来最新数据的邻居节点作为加强路径的下一跳节点,向该邻居节点发送路径加强消息。路径加强消息中包含新设定的较高发送数据速率值。邻居节点收到消息后,经过分析确定该消息描述的是一个已有的兴趣,只是增加了数据发送速率,则断定这是一条路径加强消息,从而更新相应兴趣表项的到邻居节点的发送数据速率。同时,按照同样的规则选择加强路径的下一跳邻居节点。路由加强的标准不是唯一的,可以选择在一定时间内发送数据最多的节点作为路径加强的下一跳节点,也可以选择数据传输最稳定的节点作为路径加强的下一跳节点。在加强路径上的节点如果发现下一跳节点的发送数据速率明显减小,或者收到来自其他节点的新位置估计,推断加强路径的下一跳节点失效,就需要使用上述的路径加强机制重新确定下一跳节点。
参考资料
最新修订时间:2023-01-10 09:50
目录
概述
定向扩散
定向扩散阶段
参考资料