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