基于節點緩存長度公平分配速率的擁塞控制方法
【技術領域】
[0001] 本發明涉及通信領域,更具體的涉及一種基于節點緩存長度公平分配速率的擁塞 控制方法。
【背景技術】
[0002] 無線傳感器網絡(Wireless Sensor Network, WSN)是由一個或多個匯聚節點和 大量的傳感器節點通過無線通信方式組成的多跳自組織網絡。在WSN中,多對一的通信方 式、無線帶寬資源受限和無線鏈路的相互干擾等特點,導致無線傳感器節點極易出現擁塞。 網絡中節點的擁塞容易引起緩存溢出,導致大量數據包丟失,增加數據的排隊延遲,并消耗 大量的額外能量。同時,節點的擁塞還會引發訪問沖突,降低鏈路的利用率和網絡的吞吐 量。因此,如何高效實時地檢測和控制擁塞是無線傳感器網絡所面臨的挑戰。
[0003] 擁塞控制可以分為網絡資源管理和流量控制兩種方法。網絡資源管理是指當網絡 出現擁塞時通過增加無線傳感器網絡的帶寬資源來控制擁塞。然而在無線網絡中如何保障 精確的網絡資源調節,以避免帶寬資源供應不足或供應過量的問題,目前還很難實現。流量 控制主要是通過減小源節點或轉發節點的發送速率來控制擁塞,以防止擁塞繼續向下游節 點擴散,并向上游節點發送通告消息,以避免加重現有的擁塞程度。現有的流量擁塞控制方 法主要有 CODA、ESRT、CCF、DCCF 等。
[0004] CODA (Congestion Detection and Avoidance)協議利用信道利用率和緩存長度 來檢測擁塞。通過兩種機制來控制擁塞,一種是開環逐跳反壓機制,當節點檢測到擁塞時, 就向上游方向廣播通告消息,源節點接收到消息之后采用分組丟失或加性增乘性減(AMD) 方式調節節點的發送速率,直到擁塞消除。這種方法容易造成遠離sink節點的信道分配公 平性差。另一種是閉環多源調節機制,是根據源節點是否實時收到sink節點反饋的ACK來 判斷網絡的擁塞狀況。若源節點發送的數據量已超過閾值,仍未收到sink節點反饋的ACK, 則認為網絡出現了擁塞。開環機制適用于解除瞬時擁塞,閉環機制則適用于解除持久擁塞。
[0005] ESRT (Event_t〇-Sink Reliable Transport Protocol)協議基于緩存長度及其增 長情況來檢測擁塞。當節點檢測到擁塞時,在發送數據的包頭中設置一個CN位來通知sink 節點發生了擁塞;sink節點接收到擁塞消息之后,根據接收數據的速率和擁塞程度,計算 下一個周期內的節點發送速率,然后廣播給所有的節點。此協議的有效性依賴于擁塞的時 長和反饋延時,并且協議沒有考慮公平性。
[0006] CCF (Congestion Control and Fairness)是樹形網絡中基于反饋方式的MAC層 擁塞控制協議。它通過包的服務時間來調節包的發送速率,但節點的速率調節僅依賴于數 據的發送時間。當某些節點的業務量不足時,會導致信道利用率降低。同時,該協議中每個 節點允許的最大業務速率相等,僅維持了簡單的公平性。
[0007] DCCF (Decoupling Congestion Control and Fairness)是一種分布式流量管理 的擁塞控制協議。該協議中,每個節點跟蹤輸入速率和輸出速率,基于兩者之間的差異來決 定增大或減小數據包的產生速率,并根據數據流的帶寬分配,自適應調節包的傳輸速率。該 協議能自適應網絡拓撲變化,但引進了包的反饋延時,增加了大量的處理開銷。
[0008] 綜上可知,現有擁塞檢測方法主要是基于單個節點的緩存長度信息和信道狀 態來實現的,然后通過廣播擁塞消息來通知鄰居節點進行擁塞控制。當單個節點長期未 競爭到信道,容易導致緩存急劇增大且擁塞控制消息無法及時廣播給鄰居節點,可能導 致擁塞的誤判現象。另外采用查詢的方式獲取節點的實時緩存長度,會加重信道負載。 現有擁塞控制方案,主要是通過降低源節點的數據發送速率或中間節點的轉發速率,以 及增加丟包率來緩解擁塞,沒有考慮公平性或僅僅考慮了簡單的公平性。如何通過公平 的分配節點的發送速率是緩解擁塞亟需解決的關鍵技術難題,也是目前所研究的熱門 課題。
【發明內容】
[0009] 針對上述問題,本發明提出一種基于節點緩存長度公平分配速率的擁塞控制方 法。通過采用節點實時緩存長度預測的方法,解決無線傳感器網絡擁塞檢測中存在的誤判 問題。通過公平分配節點的發送速率和源速率來提高節點使用信道的公平性,從而減少碰 撞和丟包,增加吞吐量。
[0010] 本發明,根據節點包的發送速率和接收速率估算節點本身的緩存長度,如果緩存 長度溢出,則禁止上游鄰居節點發送數據。同時,上游鄰居節點根據已獲取下游轉發節點的 源速率和發送ACK的數量估算轉發節點的緩存長度。然后,根據緩存長度執行擁塞檢測;如 果發生擁塞,則將節點擁塞程度分級(即擁塞度);最后,根據擁塞度,執行速率分配算法,從 而緩解擁塞;如果沒有發生擁塞,則不做處理。
[0011] 本發明提出一種基于節點緩存長度公平分配速率的擁塞控制方法,包括以下步 驟: 步驟一、定義^為轉發節點,4為^的上游鄰居節點,節點^發送數據給節點P4 ;計算節點成功發送一個數據包所需要的時間rj ;每個節點在每次成功發送一個數據包 時計算當前包的發送速率,在每次成功接收到Λ-個數據包時計算當前包的接收速率 jW ; 步驟二、每經過周期Γ后,所有節點估算下一個Γ時刻的緩存大小;若緩存大小超過 緩存最大值,則向上游鄰居節點廣播一個擁塞通告消息;若節點j收到轉發節點Z54廣播 的擁塞通告消息,則設定節點j為禁止發送狀態; 步驟三、節點j在每次偵聽到轉發節點Z51發送的數據包時獲取或估算下游轉發節點 A的緩存長度;若節點d處于禁止發送狀態時,檢測節點A的緩存大小,若緩存大 小低于某一閾值,則設定節點d為發送狀態; 步驟四、節點j在每次成功發送個數據包后,首先節點公平度Jr,然后根據轉發 節點的緩存大小執行擁塞檢測算法;若檢測結果表明節點出現了擁塞,則轉步驟五; 否則,轉步驟七; 步驟五、節點j根據轉發節點P4的緩存大小對節點擁塞程度進行分級,即分為不同 的擁塞度; 步驟六、節點j執行速率分配算法,轉步驟三; 步驟七、結束。
[0012] 與現有MAC層的擁塞控制方法相比,本發明的優勢在于: 1、本發明提出的節點通過估算下一個Γ時刻節點本身的緩存長度來檢測擁塞和通過 估算轉發節點的緩存長度來檢測轉發節點的擁塞,節點不僅能夠檢測本身的擁塞還可以檢 測轉發節點的擁塞,能夠防止擁塞的虛檢和漏檢問題,由于轉發節點的緩存大小的測量僅 需要上游鄰居節點通過已收到的數據包的信息計算,不需要額外的通信開銷。
[0013] 2、本發明根據公平度來執行速率分配算法,提高了信道使用的公平性,有效減少 了碰撞和丟包,并提高了吞吐量。
【附圖說明】
[0014] 圖1是實現本發明擁塞控制的流程圖; 圖2是網絡拓撲結構意圖; 圖3是ACK幀格式圖。
【具體實施方式】
[0015