丁峰,趙民召,方勇
(北京航天益來電子科技有限公司,北京,100074)
海上船隊采用移動網(wǎng)絡組織形式,具有無中心、自組織,自動路由,強健壯性等特點。其除了滿足內(nèi)部成員間進行移動信息交互外還要與地面網(wǎng)絡互聯(lián),實現(xiàn)海上與岸上信息平臺間的信息交互,見圖1。
為了讓海上移動信息網(wǎng)中的節(jié)點能夠?qū)崟r訪問地面網(wǎng)絡,須解決如下問題:當某個移動節(jié)點通過衛(wèi)星鏈路與地面網(wǎng)絡相連時,它如何向網(wǎng)絡內(nèi)的所有其他節(jié)點通告它的存在;當一個新的節(jié)點加入海上移動信息網(wǎng)絡中,或者一個需要訪問地面網(wǎng)絡的節(jié)點缺乏有效的移動節(jié)點網(wǎng)關(guān)信息時,如何及時了解到當前網(wǎng)絡中有哪些移動節(jié)點可以充當網(wǎng)關(guān)。
移動節(jié)點網(wǎng)關(guān)信息通告算法的步驟描述如下:
(1)移動節(jié)點網(wǎng)關(guān)節(jié)點向所有鄰近節(jié)點發(fā)出通告消息AdMsg;(2)收到通告消息AdMsg的鄰近節(jié)點MNode(Mobile Node)向發(fā)送者(即MNode的F節(jié)點)立即回一條AdAckMsg(確認消息),同時將其F節(jié)點設(shè)為缺省網(wǎng)關(guān)DGW(default GW)。若收到多個AdMsg,MNODE則按先后順序,分別設(shè)定其第一,第二......第X DGW等等。為了減少海上移動信息網(wǎng)絡中的網(wǎng)關(guān)信息通過開銷,限定每個節(jié)點最多允許擁有DGW數(shù)量,假定設(shè)為SX。如果一個海上移動信息網(wǎng)絡節(jié)點本身已經(jīng)通過衛(wèi)星鏈路與地面信息網(wǎng)絡相連,則將其作為首選缺省。(3)MNODE向周圍節(jié)點發(fā)AdMsg,該消息包含有來源信息,告訴鄰近節(jié)點消息本身是源自GW的,因而GW節(jié)點為地面信息網(wǎng)絡接入網(wǎng)關(guān),MNODE則為中間節(jié)點;若MNODE接收到或者轉(zhuǎn)發(fā)過某一AdMsg,不再接收源于同一個移動節(jié)點網(wǎng)關(guān)的通告消息AdMsg;如果MNODE已經(jīng)接收了源自不同移動節(jié)點網(wǎng)關(guān)的AdMsg達到限制數(shù)量,則會拋棄以后所有來自其它移動節(jié)點網(wǎng)關(guān)的AdMsg。(4)重復步驟2和3;(5)一個節(jié)點在規(guī)定時間內(nèi)收不到AdAckMsg,則向其F節(jié)點(DGW)發(fā)送RtMsg;此消息中包含了節(jié)點所有路由信息;(6)收到路由消息的節(jié)點必須修改自身的路由表,并向其F節(jié)點發(fā)出RtMsg;(7)重復以上步驟5和步驟6,直到GW為止。
圖1 海上移動信息網(wǎng)示意
實例說明:以網(wǎng)絡中某節(jié)點為網(wǎng)關(guān)時路由TREE表的產(chǎn)生過程。假設(shè)海上移動信息網(wǎng)絡由6個節(jié)點組成,網(wǎng)絡拓撲結(jié)構(gòu)如圖2所示。
圖3中節(jié)點1作為移動節(jié)點網(wǎng)關(guān)構(gòu)成一條路徑的生成過程,該圖了省去網(wǎng)關(guān)通告消息的確認信息和其它路徑的AdMsg消息。表1給出了節(jié)點1為網(wǎng)關(guān)時構(gòu)成的TREE表。
圖2 海上移動信息網(wǎng)絡邏輯圖
圖3
表1 節(jié)點1為網(wǎng)關(guān)時構(gòu)成的TREE表
圖4描述了節(jié)點4作為移動節(jié)點網(wǎng)關(guān)構(gòu)成的TREE,圖中略去了網(wǎng)關(guān)通告消息的確認信息以及其它路徑的AdMsg消息。表2給出了節(jié)點4為網(wǎng)關(guān)時構(gòu)成的TREE表。
表3為全部路由信息,假設(shè)節(jié)點1先廣播AdMsg。
表2 節(jié)點4為網(wǎng)關(guān)時構(gòu)成的TREE表
表3 節(jié)點1和節(jié)點4同時為網(wǎng)關(guān)時構(gòu)成的TREE表
通過此算法,相對于移動節(jié)點網(wǎng)關(guān)而言,海上移動信息網(wǎng)絡中的所有節(jié)點就是一個TREE。在這個TREE中的每一個節(jié)點都清楚它所有子孫節(jié)點的信息(只有LEAF節(jié)點除外),同時清楚F節(jié)點(DGW)信息(ROOT節(jié)點除外)。LEAF節(jié)點僅知道它的F節(jié)點的信息,ROOT節(jié)點還知道TREE中所有其它節(jié)點的信息。
一個新加入的海上移動節(jié)點MNODE加入網(wǎng)絡之后,或包含有無效的移動節(jié)點網(wǎng)關(guān)信息的節(jié)點MNODE想通過此移動節(jié)點訪問地面網(wǎng)絡時,會執(zhí)行此發(fā)現(xiàn)算法,以可以發(fā)現(xiàn)當前可用移動節(jié)點網(wǎng)關(guān)信息和相應的路由信息。
相關(guān)步驟如下∶(1)節(jié)點先向鄰近節(jié)點發(fā)出RqstMsg,查詢可以使用的移動節(jié)點接入網(wǎng)關(guān)。(2)若鄰近節(jié)點緩存的移動節(jié)點網(wǎng)關(guān)信息有效,即將有效信息通過肯定RplMsg發(fā)送給MNODE節(jié)點。MNODE將最早收到的確認RplMsg的發(fā)送者fMNODE作為其F節(jié)點;并向fMNODE發(fā)送AckMsg,然后,fMNODE將MNODE作為其孩子節(jié)點,并將MNODE通報給其F節(jié)點あMNODE,使MNODE成為あMNODE的孫節(jié)點,向上遞歸,直到移動節(jié)點。(3)若鄰近節(jié)點緩存的移動節(jié)點網(wǎng)關(guān)信息無效,向MNODE節(jié)點發(fā)送否定的RplMsg。若MNODE沒有收到肯定的RplMsg,向最早收到的否定RplMsg的發(fā)送者fMNODE發(fā)送一個否定確認消息AckMsg。沒有收到否定AckMsg的MNODE的鄰近節(jié)點不再有任何動作;收到否定AckMsg的鄰近節(jié)點fMNODE向其F節(jié)點發(fā)送RqstMsg,請求可用的移動節(jié)點網(wǎng)關(guān)的信息,若fMNODE收到肯定的RplMsg,則轉(zhuǎn)發(fā)給MNODE,否則跳到步驟4。(4)按照步驟2、3順序向上遞歸,直到某個節(jié)點搞清楚有效移動節(jié)點網(wǎng)關(guān)消息。若RqstMsg一直發(fā)送到移動節(jié)點網(wǎng)關(guān),則移動節(jié)點網(wǎng)關(guān)將進行一次移動節(jié)點網(wǎng)關(guān)AdMsg,使整個網(wǎng)絡中所有節(jié)點獲取最新移動節(jié)點網(wǎng)關(guān)消息。
以上節(jié)的例子說明網(wǎng)絡中新加入一個節(jié)點時的路由更新情況。新加入節(jié)點7后的網(wǎng)絡拓撲結(jié)構(gòu)如圖5所示。
圖4
圖5 加入節(jié)點7的網(wǎng)絡拓撲圖
節(jié)點7加入網(wǎng)絡后的路由樹表見表4。
表4 節(jié)點7加入后節(jié)點1和節(jié)點4同時為網(wǎng)關(guān)時構(gòu)成的TREE表
當一個移動節(jié)點網(wǎng)關(guān)進遠程鏈路切換時,先發(fā)送網(wǎng)關(guān)AdMsg,啟動網(wǎng)關(guān)通告算法;然后通過外地agent向其本地agent注冊,或者直接請求本地agent注銷其以前的綁定,以提高了移動節(jié)點網(wǎng)關(guān)的切換速度。若移動節(jié)點網(wǎng)關(guān)脫離當前鏈路,并且會脫離一段時間,即該移動節(jié)點確定一定時間中不能再作為網(wǎng)關(guān),此移動節(jié)點需要立即向整個網(wǎng)絡廣播一個不可用消息(Invalid Msg ),該消息被廣播給網(wǎng)絡中所有節(jié)點,以便相關(guān)網(wǎng)關(guān)自身調(diào)整接入網(wǎng)關(guān)信息。
本文給出了一種海上移動信息網(wǎng)與地面網(wǎng)絡互聯(lián)互通的解決方法,著重研究出網(wǎng)關(guān)通告、網(wǎng)關(guān)發(fā)現(xiàn)、網(wǎng)關(guān)切換以及路由選擇等算法,使得網(wǎng)內(nèi)任意節(jié)點均可快速找到一條到達移動網(wǎng)關(guān)節(jié)點的可靠路由,從而通過網(wǎng)關(guān)節(jié)點的轉(zhuǎn)發(fā)以及衛(wèi)星鏈路的傳輸實現(xiàn)與地面網(wǎng)絡間的通信。