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