馬鐵英
(同濟大學軟件學院,上海 200031)
隨著因特網的高速發展,網絡承載的信息流量越來越大,網絡擁塞時有發生,給讀者利用網絡信息資源帶來了障礙。圖書館可采用一種簡單的自適應無線傳感器網絡信息流量控制方法,加強網絡信息流量控制,為讀者快捷利用網絡信息資源提供技術支持。
無線傳感器網絡是由一定的監測區域內的諸多微型傳感器節點組成,通過無線通信的方式形成一個多跳自組織網絡。一組功能有限的傳感器節點協作地完成大的感知任務是傳感器網絡的重要特點[1]。
無線傳感器網絡中的每個節點都具備路由的功能和計算功能。盡管無線傳感器網絡中存在諸多傳感器節點,但是會有某些節點負荷很大,需要轉發大量數據。當待發送數據到達速率超過節點本身的處理速率時,數據會在此出現阻塞。長時間的阻塞會導致緩沖區快速溢出,這就造成數據分組丟失。為了不讓這些擁塞節點成為影響整個網絡工作效率的瓶頸,必需對這些瓶頸節點做好流量控制。無線傳感器網絡流量控制,是將網絡流量控制機制引入無線傳感器網絡,達到改善無線傳感器網絡性能的目的。
基于無線多跳Ad Hoc網的流量控制機制,是網絡中的節點根據隊列長度計算出個虛擬代價,然后將一條路由上所有的虛擬代價求和,將該和值發送到源節點,源節點再根據所獲得的值控制流量[2]。擁塞節點,通過計算傳輸隊列的長度,來判斷該節點的擁塞代價,然后不斷地向正在向該擁塞節點發送數據包的前跳節點反饋。前跳節點根據反饋信息決定數據包的速率[3]。
本文提出的一種簡單的自適應無線傳感器網絡流量控制方法,僅通過對擁塞節點的前跳節點進行流量控制,可實現控制流入擁塞節點的流量大小,平衡經過擁塞節點的流入和流出速率,而不需要關注其他相鄰節點或者其他上游節點。
在自適應無線傳感器網絡流量控制方法中,流量控制的關鍵在于對計算節點虛擬代價。虛擬代價標志這一個節點的擁塞程度。
假設一個節點p只對它的后節點q負責,而這個節點q只需考慮來自前跳節點p的流量,即p節點只控制流入它的后節點的流量大小,q的虛擬代價只提供給它的前跳節點p。只有在q節點發生了擁塞的前提下,p節點才會需要q節點提供它的虛擬代價。P將會根據q節點了的虛擬代價調節流向q的流量大小,如果一段時間后前跳節點p也發生了擁塞,那么p的前節點o也會根據節點p的虛擬代價對其進行流量控制。如果網絡內部在一定時限,自己消化了擁塞,反而不需要驚動源節點,這樣網絡能對我保持一定的封閉性和獨立性。
每一個節點都可能會有多個前跳節點,也可能會有多個后節點,沒有前跳節點的節點稱為源節點,沒有后節點的節點稱為目標節點。
在自適應無線傳感器網絡的流量控制機制中,每個節點都有一個虛擬代價表示節點的擁塞程度,這個虛擬代價值隨著隊列長度變化而不斷變化。當一定流量通過某節點時,該節點就會判斷當前是否處于擁塞狀態,一旦確定發生了擁塞,就會根據當前隊列長度計算虛擬代價,再將虛擬代價反饋至它的前跳節點p,節點p根據所獲得的虛擬代價及時調整發送給節點q的數據的流量值f的大小,這個過程簡單及時。
如圖1所示,當目標節點E發生擁塞時,就會生成虛擬代價C1,然后將C1發送到節點Q,而Q節點會減少給E的流入流量,這樣Q的流量平衡就會打破,一定時間Q就有可能發生擁塞;同樣,如果節點Q發生擁塞時,就會生成虛擬代價C2,然后將C2發送到節點P;如此,就可以將擁塞的情況反饋至初始節點S。

圖1 無線傳感器網絡流量示意圖
問題一般化,定義一個有N個靜態節點的無線ad hoc網絡W={1,2,…,N},網絡中一個數據源節點s∈W沿著路由 R={s,i1,i2,…,ij,e}發送數據到目標節點e∈W,其中ij∈W,源節點到目標節點的跳數為j+1。
假設有Mk個流量通過節點k,其中流量fl(l∈1,…,Mk)并且流量fl的速率為rl(l∈1,…,Mk),那么節點k的總流量為
無線傳感器網絡中的虛擬代價是網絡資源的需求。在自適應的流量控制機制中,每個無線傳感節點k都有一個不斷變化的虛擬代價Ck。當一個流量f通過節點k,那么Ck就等于原來的值加上流量f的代價。當然不是直接加上流量,而是通過流量f產生的隊列長度進行計算新的虛擬代價。
隊列長度反映了網絡負載和網絡計算能力的差異,在一個自適應的無線傳感器網絡流量控制機制中,當一個路由節點的隊列長度超過了所規定的上限,虛擬代價將會增加,反之會降低。而節點的吞吐率反映了該節點處理擁塞的能力。吞吐率越大,節點的處理擁塞的能力越強,隊列的長度就越短;相反,如果吞吐率越小,隊列的長度就越長。所以一個節點中的隊列長度反映了該節點的擁塞程度[4]。
由于網絡中流量發送的不確定性,每個節點中的隊列都在隨著時間不斷地變化,好在我們的方法只需計算擁塞節點的隊列長度。節點的隊列長度為單位時間內該節點的流入量和流出量的差值,再加上該節點原有的隊列長度,當流入量大于流出量時,節點隊列長度增大,想反,當流入量小于流出量時,流量隊列長度變小。
k節點的隊列長度計算如下:

其中,Σfin、Σfout分別表示為k節點的流入流量和流出流量,T表示單位時間,即計算虛擬代價的時間間隔。
無線傳感器網絡中,每個無線節點都有一個隊列存儲待發送的數據包。隊列的最大長度等于傳感器中緩沖區的大小。假設節點的緩沖區的容量為V,那么節點所能緩存數據包的最大隊列長度也為V。根據傳感器節點中的隊列長度,使用下列的公式來計算節點k的虛擬代價:

其中,Qk(t)表示節點k在t時刻的隊列長度。
這樣,通過計算流量和隊列長度,就計算出來了節點的虛擬代價,然后將虛擬代價提交給上跳節點,由上跳節點來控制擁塞節點的流入流量。
如圖2,四節點組成的無線傳感器網絡,其中源節點S1和S2,一起流向節點B,然后經由B流到目標節點E,所以這里S1、S2為B的上跳節點,B為E的上跳節點。

圖2 四節點網絡圖
假設所有節點處理數據的能力相同,最大隊列長度都為100個數據包。如圖2所示,節點S1和S2同時向該節點B發送數據,如果不做控制,由于節點處理數據的能力和存儲數據的緩沖有限,B的緩沖區很快會用完,而處理數據的速度也不如數據的流入,B勢必會成為擁塞節點,從而成為整個網絡的瓶頸。設定不考慮無線傳輸的最大傳輸速率限制,即帶寬限制,每個節點發送數據包的初始速率都為5個數據包/秒,t=0時,所有節點的隊列長度Qk(0)=0。通過仿真,得到仿真結果圖3、圖4和圖5。圖3、圖4和圖5分別是流入擁塞節點B的流量、隊列長度和虛擬代價隨時間的變化圖。圖3中,在t>3后,流量f1和f2出現小幅度波動,這時顯然是由于B發生了擁塞,源節點S1和S2作出了流量控制,在t>8后,趨于穩定。

圖3 流量速率隨時間變化

圖4 隊列長度隨時間變化

圖5 虛擬代價隨時間變化
本文提出的一種簡單的自適應無線傳感器網絡流量控制方法,通過僅計算擁塞節點的虛擬代價,僅對擁塞節點的前跳節點進行流量控制,就實現了整個網絡的流量控制,充分降低所占用的節點的處理能力,也達到了節約能源的目的。
[1]Ye Wei,Heidemann J,Estrin D.Medium Access Control with Coordinated Adaptive Sleeping for Wireless Sensor Networks[J].IEEE/ACM Trans.on Network,2004,12(3):493-506.
[2]GaoHong,DingWei.ABR flow control algorithm in ATM networks:A neural network approach[J].CHUPT,2005,7(4).
[3]He Wen-bo,LiuXue,NahrstedtK.A feedback control scheme for resource allocation in wireless multi-hop ad hoc networks[C]//Proc of ACM MobiQuitous Conference 2005,July,2005.
[4]WangJun,SongMin.Rate-based active queue management for TCP flows overwired and wireless networks[J].EURASIP Journal on Wireless Communications and Networking,2007.