2021-4-9 | 互聯網管理論文
1概述
無線傳感器網絡(WirelessSensorNetwork,WSN)是以自組網形式構成的無線網絡,網絡節點具有稠密布置、隨機撒播的特性,傳感器節點協同地感知、采集、處理網絡覆蓋范圍的信息,并提供給用戶。無線傳感器網絡的工作方式與傳統網絡有很大差異:通信能量消耗大于數據處理能量消耗;傳感器節點的能量有限;傳感器各節點負擔的任務量不同以致各節點能量消耗不平均;通常散布在無人值守的區域,一旦節點失效或能量耗盡也無法對它進行修復或充電[1]。因此,無線傳感器網絡的節能問題是研究的關鍵[2]。網絡管理與網絡本身息息相關,無線傳感器網絡與其他的無線網絡相比,有不同的網絡結構和需求。無線傳感器網絡是多跳的,每個節點都可以作為路由器使用,進行路徑的存儲。傳感器網絡的流量有相對靜態的特性,從傳感器節點到匯聚(Sink)節點的數據流遠大于反方向的流量。另外,傳感器網絡的主要目標在于盡量降低系統功耗,延長網絡的生命周期,它的節點通常運行在人無法接近的惡劣或者危險的遠程環境中,更換電池是非常困難的(甚至是不可能的)。因此,有效地利用無線傳感器網絡的資源,保障其提供信息服務的質量,降低能量消耗、延長網絡運行周期是無線傳感器網絡管理技術的重要目標。文獻[3]從傳統網絡管理功能角度研究了無線傳感器網絡管理技術,并對網絡管理的關鍵技術進行論述。文獻[4]綜述了無線傳感器網絡管理技術,并重點概述了現存的無線傳感器網絡管理系統和方法。文獻[5]重點描述了無線傳感器網絡管理的協議框架,建立層次型管理體系。目前眾多的研究者開展了無線傳感器網絡管理技術的研究,但這些研究中并沒有針對無線傳感器網絡的節能需要研究網絡管理技術。為此,本文通過虛擬對象標示符(VirtualObjectIdentifier,VOID)技術,研究無線傳感器網管理協議,通過減少管理站與被管節點的通信,降低網絡管理給無線傳感器網絡帶來的能耗。
2管理信息庫設計
管理信息庫(ManagementInformationBase,MIB)是在代理端存放被管對象數據的一個數據庫。MIB的結構見圖1。在MIB中用OID標記被管理對象的參數,在管理協議中對它的使用是最頻繁的,所以,可以通過減少OID的長度來減小通信量。為了減少MIB中OID的長度,該管理協議把MIB的OID分成對象監控OID表、原始OID和虛擬OID表3個部分。在WSN(29647)節點下的OID編號為1~127表示原始的OID,128編號表示對象監控OID表,129~255表示虛擬的OID表。為了減少管理站的查詢請求,傳感器代理中提供了間隔某個時間的本地輪詢功能。本地輪詢功能是在MIB中特定的表中定義的,通過修改相應表中的值就可方便地修改論詢的值。輪詢功能是在間隔時間到達時,判斷相應的監測參數的值是否觸發某個事件。與RMON相比,RMON是監視一個網段的功能,本地輪詢功能是監視本代理的一些變量,在一定情況下向管理站發送報告。在傳感器代理中,監測的參數能夠觸發的條件有2個,一個是大于某個值monHighVal,另一個是小于某個值monLowVal。如果監控表中的monLowVal(3)和monHighVal(4)的值都設置為0,則表示定時向管理站發送monOID(0)標明的數據值。通過輪詢某OID變量,就可實現網絡管理中OID的監控功能。虛擬OID變量是一種只定義其求值的方法而不在MIB中保存它的實時值的一種OID變量。它與傳統的網絡管理系統中的OID變量不同。虛擬OID在執行網絡管理過程中定義;它的變量值并不是對應于被管對象中的某個實際參數值,而是通過已有的OID變量進行運算而得到的;它并不在MIB中保存它的實際值,只保存值的一種計算方式;對虛擬OID的運算,一般都是只能進行取值運算,而不能進行設置值運算。SNMP中的OID變量,它一般都是在代理的設計和實現過程定義的;它的變量值一般都是對應于被管理對象中的某個實際參數值;它的值會隨著被管理對象中的實際參數值實時改變。另外,虛擬OID變量和傳統的網絡管理系統中的OID變量也有類似情況。首先它們都是為網絡管理服務的;其次它們都是對網絡狀態的一種表示;最后它們都能通過網絡管理協議進行訪問。本文為實現虛擬OID功能,在SNMP協議中提供AddVirtualOID和RemoveVirtualOID操作原語來管理虛擬OID變量。在虛擬OID中的值是根據表達式valExpression所表示的含義來求解。為減少存儲valExpression長度和增加求解虛擬OID速度,valExpression采用后綴表達式表示。
3虛擬OID操作原語設計
虛擬OID提供一種代理端的計算功能。虛擬OID的值把虛擬OID下的paramOID和paramValue中的參數,代入valExpression中求得。參數paramOIDsTable是代理中已經存在的OID變量,它可以是原始OID變量或者其他虛擬OID變量。參數paramValuesTable是計算虛擬OID值時用到的常量。valExpression是計算虛擬OID值的表達式,為減少表達式的長度和計算的速度,valExpression用后輟表達式表示計算方式。valExpression中的4位段格式如圖2所示。valExpression可以為多個字節,valExpression被分成多個4位段,每個4位段表示一個操作數或一個運算符,每段開始的第1位為0表示運算符,為1表示操作數。運算符的第2位~第4位表示運算符的類型代碼,0000表示valExpression結束,共有321種運算符,運算符代碼見表1。valExpression中的操作數的第2位表示操作數類別標志位,為0表示后面剩下的2位為常量參數的序號,為1表示后面剩下的2位為OID參數的序號。后綴表達式中沒有括號,只需從左向右掃描一遍表達式就可計算其值。它的計算流程如圖3所示。
3.1虛擬OID原語協議數據單元設計
為了實現虛擬OID功能,提供2個對虛擬OID操作的原語,分別為AddVirtualOID和RemoveVirtualOID。AddVirtualOID是向無線傳感器網絡傳感器代理中添加一個虛擬OID,RemoveVirtualOID是從傳感器代理中刪除一個虛擬OID,它們的具體定義如下:(1)AddVirtualOID操作原語。AddVirtualOID操作原語是用于向虛擬MIB表中添加虛擬的OID定義。AddVirtualOID原語的協議數據單元(PDU)定義如下:(2)RemoveVirtualOID操作原語。RemoveVirtualOID操作原語的功能正好和AddVirtualOID操作原語的功能相反,它是用于刪除虛擬MIB表中的某個虛擬OID定義。在刪除過程中,只用標識出要刪除的虛擬OID即可。RemoveVirtualOID操作原語的PDU定義如下:}