• 沒有找到結果。

擁塞控制(Congestion Control)

第二章 文獻探討

2.3 擁塞控制(Congestion Control)

在無線感應器網路中,由於節點的體積小,因此在傳輸上受限於資源的分配,也因

此如何去解決擁塞的問題,成了重要的項目之一。擁塞控制分為兩大類的控制方法,一

種為資源控制,另一種則為速率控制。

資源控制:在現有的文獻中,如[27][28][29],在[30]中,作者提出利用real-time 以

及 non-real-time 的方式來紓解擁塞的情況,在[3]中,當發生congestion時,群集裡

的Head node會把過多的資料往群集裡的Data Buffer node傳送,作為一個暫時的存

放地點,等到congestion狀況解除後,再把資料傳回去

head node,之後再傳回sink端,此種方式可以在發生congestion時能保有資料的完 整性但相對於需要即時性的資料而言(例如:即時影像傳輸)此種方式無法達到即時

性傳輸的要求。圖2.1為In-Network Storage的模型,在圖2.1(a)中我們可以看到當發

生congestion時,head node會去喚醒正在睡眠狀態的Data buffer node,圖2.1(b)為在

head node中控制Data buffer node是否啟動的列表圖。

圖 2.1 Clustered sensor field with data congestion at node N

速率控制:在無線感應器網路中,速率控制是能夠在短時間內降低網路流量的一種

機制,藉以達到緩和擁塞的效果,如[15][21][22][23],在HCCP中,作者將過去其他

論文中所提出的Buffer-control和rate-control加以混和利用,利用兩種不同的數據去

推算sensor裡的擁塞程度(Congestion Degree),然後藉著CD值去演算出偏差擁塞指

標,在得出此一指標之後便可以依據這項指標,去做調整節點 i 之上游節點送到節

點 i 的資料速率,此一作法,確實可以改善節點間擁塞的情況,也解決當初PCCP所

存在的缺點,就是如果假設節點本身產生資料速率是不能變動的,那對於PCCP的

控制方法而言是一個致命傷,但是HCCP的做法剛好解決了在PCCP的問題,就是即

使在產生資料的速率不變的情況下,透過改變整體網路流量的調整,還是可以進行

擁塞的控制;但是HCCP和PCCP都有一個相同的缺點,就是即使去調整網路流量,

但萬一網路流量還是過大的話,則sensor內部的buffer還是無法減少儲存封包的數目

時,此一方式還是無法解決sensor的擁塞情況,尤其是有一些封包是具有時效性的,

如果發生擁塞時把它存在buffer過久的話,就會造成封包逾時,以至於封包無法傳

輸。

第三章

適應式擁塞控制(ACCP)

3.1 背景

在這一章中,我們將會介紹我們所提出的擁塞控制方法-Adaptive Congestion

Control Protocol (ACCP)。在[6]中,作者認為會發生擁塞的原因有兩種,如圖3-1所示,

第一種是因為節點層級裡的暫存器空間用盡,而造成過多的封包就會被丟棄,如圖

3-1(a),第二種就是由於傳送層級裡的無線電互相干擾,而造成彼此需要傳送的封包無 法到達目標節點,而使得封包遺失,進而會讓能源的消耗變多,如圖3-1(b)。在本文中,

我們就圖3-1(a)造成的擁塞,來提出我們的解決方式,在我們所提出的方法中,我們把

ACCP分為兩大調節方式,第一種為In-network Buffer (InB),第二種為Rate Adjustment (RA)。以下我們就說明這兩種調節方式。

首先說明在本論文中所使用的符號如下:

 網內儲存管理:

圖3-1 Congestion in wireless sensor network

h:群集裡的中心節點(Head node)

si

n :在群集裡感應節點的總數(Number of sensing nodes)

bi

n :在群集裡暫存器節點的總數(Number of buffer nodes)

RB :在群集中所剩餘的暫存容量(Remaining buffer of cluster)c

RB :在群集中,中心節點所剩餘的暫存容量(Remaining buffer of head node)h

C :群集(Cluster)i

t:每單位時間(Time unit)

x:回報資料的單位時間(Time period for data reporting)

NS :群集中的網路淨流量(Net flows of cluster)c

h

rs :中心節點產生資料速率(Data rate generated by head node) CD :群集擁塞指標(Congestion degree of cluster)c

CD :中心節點擁塞指標(Congestion degree at head node)h

 速率調整:

i( )x

:傾向擁塞指標(Degree of congestion occurrence)

SUMii( )x 的總和(Sum of i( )x )

PPCi:潛在可能容量(Potential capacity)

Ui

N :上游群集總數(Number of upstream clusters for node i )

3.2 網內儲存管理(In-network Buffer Management)

在這一節中,我們將會介紹ACCP中的In-network Buffer (InB)的部分,當擁塞發生

時,如果我們就立即去啟動速率控制,雖然會立即將傳送速率降低下來,但是會造成在

上游的節點發生back pressure的現象,如圖3-2,進而演變成整體上游都會發生擁塞,因

此,我們再執行速率控制前,我們先使用In-network Buffer的方式來容納節點裡過多的

封包,藉以減少使用速率控制。我們把分散在四處的node依照指定的Head node傳送半徑

範圍,將node分為一個群體,群體裡面有三種性質的節點:head node、buffer node、sensing

node,如圖3-3,其群體的組成為:

i i

i i b s

C  h nn (3.1)

Head node是整個群集的中心,也是負責把資料分送至buffer nodes的控制中心,同

圖3-3 InB模型

圖3-4 Cluster buffer node list

圖3-2 限制流量後對於節點i及其上游造成擁塞示意圖

時也負責把資料傳送至下一個群集的 head node;而Sensing nodes是負責感應事件的發

生,然後再把資料傳送給Head node;Buffer nodes則是整個群集裡暫存資料的地方。在

平時,Head node就必須在每個周期時間t中,去計算整個群體的Buffer的空間,其計算公

因此,我們便需要在周期t中,得知每一個在群集裡的buffer node的暫存器容量還有多

少,在回報容量的機制上,首先,我們對每一個在群集裡的Buffer node編號,我們利用

Head node在單位時間內向群集內的每一個Buffer node發出query的廣播,根據buffer node list上的buffer node編號來確定每一個群集裡的buffer node是否有回報容量,如圖 3-4,我們設定Buffer node向Head node回報buffer容量的時間為x,假設有n個Buffer nodes,假設開始時間為 t ,則n 回報的時間為 t1xn 的時間則為2 t2x,如此類推,

NS ,我們可以計算出整體群集的擁塞指標Congestion Degree (CD),在擁

塞指標中,我們將CD值分為兩大指標,一種是整體擁塞指標Congestion Degree of

cluster (CD );另外一種則是Head node的擁塞指標Congestion Degree of Head nodec

(CD );其中h CDcNScRBc,如果CDc 0則群集會發生擁塞,如果 CDc0則不會 發生擁塞,另外,在計算Head node的擁塞指標上,其計算方式為CDhNScRBh,如

 

塞。在InB中,我們把InB定位是預防發生Congestion,因為啟動InB的速度比較快,而且

成本較低。我們依據CD 的值,作為啟動InB的依據,其計算方式為:,當h CDh 0時,

表示Head node所殘餘的Buffer空間是安全的,但若CDh 0,表示在Head node的buffer 量已經不足,需要啟動InB。在InB中,Head node把過多的封包傳輸給buffer node的方式

是採用輪盤法,在平時buffer node回報容量時,就在Head node裡面建立一個buffer node

list,當啟動InB時,Head node會根據buffer node list裡所提供每個buffer node的容量,由 剩餘容量最多的來進行存放,當存放容量超過90%以上則抓取下一個buffer node來進行

存放資料,如圖3-4所示。

3.3 速率調整(Rate Adjustment Management)

在這一節中,我們將介紹我們所提出的方法中速率控制的部分,當我們已經啟動InB

之後,如果擁塞的情況來是沒有減緩下來,我們就要進行第二階段的擁塞控制-速率控

制(Ra)。首先,我們要先計算從群集 i 的上游-即群集x到群集 i 的傳輸容量,由於當發

生congestion時,封包會把節點裡的剩餘的Buffer填滿,所以在群集 i 的Head node就必須

要估算當發生擁塞時,上游的群集x的Buffer量是否可以去應付無法傳送出去的封包

另外,我們要去計算在群集 i 中潛在可能的容量,原因是因為我們要知道在群集 i

Remaining potential capacity (PPC ):i'

i' i i

圖3-5 ACCP控制流程圖(1)

圖3-6 ACCP控制流程圖(2)

第四章 模擬研究

4.1 模擬環境

在這一節中,我們將會說明我們的模擬環境,我們的模擬程式是使用Matlab來撰

寫;在傳送速率和Buffer容量的不同下,我們想觀察封包的遺失率,並比較某一節點若

使用了InB 及Ra以及把上述兩種方式結合的ACCP的效果,最後我們再把我們所提出的

方法與InS和HCCP比較。在傳送速率不同的模擬中,我們設定最高和最低的資料速率分

別為每秒11個和每秒3個封包,傳出時間則為每秒間5個封包,Buffer容量為5個封包,模

擬時間為三百秒。而在Buffer容量不同的情況下,我們設定最高和最低的Buffer容量分別

為12和6個封包,傳入的資料速率為每秒11個封包,傳出的資料速率則為每秒5個封包,

模擬時間為三百秒,圖4-1為我們的模擬網路拓樸。

圖4-1 模擬環境網路拓樸

4.2 網內儲存模擬結果

在這一節中,我們將探討我所提出的擁塞控制-ACCP的方法中,InB的部分,在圖

4-2中,我們可以明顯的看到雖然InB可以幫助我們暫時延緩擁塞的情形,但是只要傳入 和傳出的速率差距很大時,便會開始丟棄大量的封包,以至於無法將封包遺失率壓低;

而在圖4-3中,我們可以看到雖然增加Buffer容量可以降低,但是在節點中是無法一直增 圖4-2 InB傳入速率不同封包遺失率比較圖

圖4-3 InB Buffer容量不同封包遺失率比較圖

加Buffer容量的,所以我們需要用速率控制來再降低封包遺失率。

4.3 速率控制模擬結果

在圖4-4和圖4-5中,我們可以看到採用速率控制在封包遺失率上可以降低許多,但

是這樣的做法會使得上游節點的傳出速率被迫降低,將會使得擁塞的情形會一直往上游

節點蔓延,而導致到最後可能整個無線感應器網路都會陷入擁塞的情況,所以我們需要

InB在發生擁塞之前就能夠先儲存傳送節點裡過多的封包,讓使用速率控制後的上游節 點的擁塞情形不會太過於嚴重。我們依照BufferSize的不同,把Ra依照Buffer Size量為5、

8、11三組不同的容量,在傳入速率不同的條件下去比較,其結果如圖4-6。

圖4-4 Ra傳入速率不同封包遺失率比較圖

在圖4-6中,我們可以看出在Buffer Size量為5、8、11時,封包的遺失率其實差異不

大,其原因是在速率控制中,只要節點裡的容量一旦發生不足時,即會通知上游節點把

網路流量降低,以減少封包的遺失。

我們把節點的buffer容量分別調整為5、8、11去分別執行模擬,其結果顯示於圖4-7、

4-8、4-9,我們可以看出,在節點的buffer容量為5的時候,其封包的遺失率大約在1.9到 2之間,而在節點的buffer容量為8、11時,我們可以看出封包遺失率只有稍微的差異,

是因為在節點的buffer容量調整為8之後,節點裡面的buffer就比較可以去容納過多的封

包,因此,在節點的buffer容量為8、11時,封包遺失的現象差距不大。

圖4-5 Ra Buffer Size容量不同下封包遺失率比較圖

相關文件