1、每個接近開關傳感器節點維護一個鄰居列表和一個事件列表。事件列表的每個表項都記錄事件相關的信息,包括事件名稱、到事件區域的跳數和到事件區域的下一跳鄰居等信息。當接近開關傳感器節點在本地監測到一個事件發生時,在事件列表中增加一個表項,設置事件名稱、跳數等,同時根據一定的概率產生一個代理消息。
2、代理消息是一個包含生命期等事件相關信息的分組,用來將攜帶的事件信息通告給它傳輸經過的每一個接近開關傳感器節點。對于收到代理消息的節點,首先檢查事件列表中是否有該事件相關的表項,列表中存在相關表項就比較代理消息和表項中的跳數值,如代理中的跳數小,就更新表項中的跳數值,否則更新代理消息中的跳數值。如果事件列表中沒有該事件相關的表項,就增加一個表項來記錄代理消息攜帶的事件信息。然后,節點將代理消息中的生存值減1,在網絡中隨機選擇鄰居節點轉發代理消息,直到其生存值減少為零。通過代理消息在其有限生存期的傳輸過程,形成一段到達事件區域的路徑。
3、網絡中的任何節點都可能生成一個對特定事件的查詢消息。如果節點的事件列表中保存有該事件的相關表項,說明該節點在到達事件區域的路徑上,它沿著這條路徑轉發查詢消息;否則,節點隨機選擇鄰居節點轉發查詢消息。查詢消息經過的節點按照同樣方式轉發,并記錄查詢消息中的相關信息,形成查詢消息的路徑。查詢消息也具有一定的生存期,以解決環路問題。
4、如果查詢消息和代理消息的路徑交叉,交充滿節點會沿查詢消息的反向路徑交事件信息傳送到查詢節點。如果查詢節點在一段時間沒有收到事件消息,就認為查詢消息沒有到達事件區域,可以選擇重傳、放棄或者洪泛查詢消息的方法。由于洪泛查詢機制的代價過高,一般作為最后的選擇。
與定向擴散路由相比,接近開關傳感器的謠傳路由技術可以有效地減少路由建立的開銷。但是,由于謠傳路由使用隨機方式生成路徑,所以數據傳輸路徑不是最優路徑,并且可能存在路由環路問題。 |