1、每个接近开关传感器节点维护一个邻居列表和一个事件列表。事件列表的每个表项都记录事件相关的信息,包括事件名称、到事件区域的跳数和到事件区域的下一跳邻居等信息。当接近开关传感器节点在本地监测到一个事件发生时,在事件列表中增加一个表项,设置事件名称、跳数等,同时根据一定的概率产生一个代理消息。
2、代理消息是一个包含生命期等事件相关信息的分组,用来将携带的事件信息通告给它传输经过的每一个接近开关传感器节点。对于收到代理消息的节点,首先检查事件列表中是否有该事件相关的表项,列表中存在相关表项就比较代理消息和表项中的跳数值,如代理中的跳数小,就更新表项中的跳数值,否则更新代理消息中的跳数值。如果事件列表中没有该事件相关的表项,就增加一个表项来记录代理消息携带的事件信息。然后,节点将代理消息中的生存值减1,在网络中随机选择邻居节点转发代理消息,直到其生存值减少为零。通过代理消息在其有限生存期的传输过程,形成一段到达事件区域的路径。
3、网络中的任何节点都可能生成一个对特定事件的查询消息。如果节点的事件列表中保存有该事件的相关表项,说明该节点在到达事件区域的路径上,它沿着这条路径转发查询消息;否则,节点随机选择邻居节点转发查询消息。查询消息经过的节点按照同样方式转发,并记录查询消息中的相关信息,形成查询消息的路径。查询消息也具有一定的生存期,以解决环路问题。
4、如果查询消息和代理消息的路径交叉,交充满节点会沿查询消息的反向路径交事件信息传送到查询节点。如果查询节点在一段时间没有收到事件消息,就认为查询消息没有到达事件区域,可以选择重传、放弃或者洪泛查询消息的方法。由于洪泛查询机制的代价过高,一般作为最后的选择。
与定向扩散路由相比,接近开关传感器的谣传路由技术可以有效地减少路由建立的开销。但是,由于谣传路由使用随机方式生成路径,所以数据传输路径不是最优路径,并且可能存在路由环路问题。 |