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