無(wú)線(xiàn)傳感器網(wǎng)絡(luò )拓撲的監控與維護
本文采用延時(shí)判斷的方式,即當檢測到失步現象發(fā)生后,先定時(shí)一段時(shí)間,冉做判斷:如果定時(shí)一段時(shí)間后,節點(diǎn)仍舊失去聯(lián)系,則判定是真的丟失了節點(diǎn),此時(shí)可通過(guò)NLMELeaveReq移除子節點(diǎn),同時(shí)上報網(wǎng)關(guān)節點(diǎn)丟失的消息;否則認為只是暫時(shí)的節點(diǎn)失步。節點(diǎn)退出情況的處理流程如圖6所示。
由網(wǎng)絡(luò )各個(gè)路由上報的節點(diǎn)加入或退出的信息最終將存網(wǎng)關(guān)匯集,網(wǎng)關(guān)按照上報的節電加入、退出信息對網(wǎng)絡(luò )拓撲存儲關(guān)聯(lián)表進(jìn)行添加、刪除、更新,以維護當前網(wǎng)絡(luò )拓撲狀態(tài)。其具體方法是先判斷接收信息的種類(lèi),然后對節點(diǎn)加入信息和節點(diǎn)退出信息分別處理。對于加入信息,可核查是否是已經(jīng)存在于網(wǎng)絡(luò )中的點(diǎn),如果是已經(jīng)存在的,則更新存儲的節點(diǎn)信息;如果是一個(gè)全新的點(diǎn),則為該節點(diǎn)分配存儲空間,并在對應的父節點(diǎn)下增添子節點(diǎn)分支。對于退出信息,同樣核查是否是存在于網(wǎng)絡(luò )中的點(diǎn),如果該節點(diǎn)已經(jīng)不存在了,則報錯處理;
如果是存在的點(diǎn),則將該節點(diǎn)信息刪除,并解除與其父節點(diǎn)的父子聯(lián)系。
網(wǎng)關(guān)在接收到由父節點(diǎn)上報的節點(diǎn)加入消息時(shí),還需要對加入子節點(diǎn)類(lèi)型進(jìn)行判斷;如果是終端節點(diǎn),則在其父節點(diǎn)的鏈表中更新或加入該子節點(diǎn)的相關(guān)信息;如果加入節點(diǎn)是路由節點(diǎn),除了在該路由節點(diǎn)父節點(diǎn)的鏈表中加入該子節點(diǎn)信息外,還要添加該子路由關(guān)聯(lián)頭信息。圖7所示是實(shí)現網(wǎng)絡(luò )拓撲維護管理的示意圖。
評論