曹文靜,徐勝紅,施建洪
(海軍航空工程學院控制工程系,山東 煙臺 264001)
由于電磁波的傳播特性,無線通信的傳輸媒介屬于廣播信道類型。當一個節點發送無線電信號時,鄰近的節點都將接收到這個信號。如果在一個小的空間范圍內,有2個或多個節點同時發送無線信號,將會在它們的接收節點處產生信號的相互疊加,造成相互干擾,嚴重時將使接收節點無法正確接收所需要的信息,即發生信道使用上的沖突。在通信協議棧中,如何在多個節點間分配無線信道資源屬于MAC層要解決的問題。MAC層控制著節點在合適的時候接入無線信道,是分組在信道上發送和接收的直接控制者。MAC層協議能否有效地使用無線信道的有限帶寬,直接關系到信道的利用效率和整個網絡的性能。這也是自從無線自組織網絡出現至今,對MAC層協議的研究經久不衰的根本原因。如何分配信道使得信道利用率高?如何分配使得節點有數據要發送時等待的時間短?如何使分配后不發生沖突,避免信道資源浪費?這些就是MAC層協議所面臨的問題??傊?,無線自組網中MAC層協議設計的主要目標是:能夠保證信道資源的高效率使用;能夠保證業務快速接入信道。
ALOHA[1]是第一個用于無線傳輸的MAC層協議。ALOHA協議基于隨機訪問機制:當一個節點有數據要發送時,立即發送數據;如果發生了沖突,該節點等待一個隨機的時間段后,再次發送數據。ALOHA協議傳輸固定長度的分組時,最大吞吐量僅能達到信道容量的18.4%[2]。
很顯然,節點首先偵聽其他節點是否正在發送,然后再決定自己是否要發送,可以有效地提高信道利用率,這就是CSMA協議的基本思想。
ALOHA和CSMA協議都是一種競爭類的MAC層協議。競爭方式是自組網MAC層協議的主流,而CSMA協議又是MAC層協議中的基本協議。因此,研究其在不同網絡條件下的通信性能,對于指導該協議在實際中的具體應用具有重要作用。本文基于OPNET仿真軟件,設計實現了CSMA協議,研究了無線自組織網絡的發送分組頻率、分組大小等參數對CSMA協議性能的影響。
目前,對CSMA協議的定義及分類多種多樣。根據信道劃分方式的不同,有時隙CSMA和非時隙CSMA;根據節點偵聽到信道為忙時處理方式的不同,有堅持CSMA和非堅持CSMA;根據節點偵聽到信道為空閑時處理方式的不同,有1堅持CSMA和p堅持CSMA。以上各類的組合就構成了CSMA協議簇所有可能的情況,如圖1所示[3]。
堅持CSMA協議是指節點在偵聽到信道為忙時繼續偵聽信道,一直偵聽到信道為閑停止。1堅持CSMA就是:一旦節點偵聽到信道空閑,就立即發送數據,這種策略的出發點是抓緊一切有利時機發送數據;p堅持CSMA就是:如果節點偵聽到信道空閑了,就以概率p發送。p堅持CSMA也可以不采用以發送概率控制節點的發送,而是采用隨機退避的方法,節點在偵聽到信道為空閑時,在(0,MAX)之間選擇一個隨機時間長度進行退避,同樣可以達到避免沖突的效果,且其效果還會優于發送概率的方式[3]。

圖1 CSMA協議簇
總之,堅持CSMA的缺點通常是過于“貪婪自私”,如果有多個節點要同時發送,將必然導致沖突。而p 堅持CSMA 則是堅持CSMA中較為折中的策略。本文以p堅持CSMA為研究對象,在OPNET軟件平臺下,設計與實現p堅持CSMA協議,并基于仿真實驗,分析其在不同網絡條件下的性能。
OPNET采用了層次化的建模機制,它將建模工作劃分為網絡層、節點層和進程層3個層次。網絡模型反映網絡的拓撲結構、地理布局、以及移動性等;節點模型對應著實際網絡中的各種計算和通信設備;而進程模型則以有限狀態機構成的狀態轉移圖來描述節點所含進程的行為,如協議和算法等。因此,對無線自組網建模與仿真的主要任務就是設計相應的網絡、節點和進程模型[4-7],CSMA協議的設計與實現就是設計節點模型與進程模型。
節點模型用于定義每一個節點的行為,一個節點通常由多個模塊組成,每個模塊完成一部分節點的行為,如數據的產生、存儲等。為實現CSMA協議,節點完成如下主要內容:
1)產生數據分組;
2)數據分組將以廣播方式傳播;
3)僅在鏈路空閑時發送分組;
4)如果鏈路處于繁忙狀態,則到達分組將按FIFO排隊;
5)排隊的分組在鏈路空閑時,退避隨機時間段后,且鏈路仍然空閑時,進行廣播發送。
如圖2所示,節點模塊包括6個模塊,其中:gen代表數據源產生模塊,其processor module屬性設置為simple_source;radio_tx代表無線發送機;radio_rx代表無線接收機;tx_pro代表CSMA協議實現模塊,它接收來自gen的數據,處理后發送到radio_tx中;sink代表接收和銷毀radio_rx接收分組的模塊;a_0代表天線。radio_rx要通過統計線與tx_pro相連以監督鏈路的busy狀態變化,并設置falling edge trigger為enabled,表示下降沿觸發。

圖2 節點的模塊組成結構
節點模型中每個模塊是由一個進程模型實現。這里主要設計tx_pro模塊的進程——CSMA協議。
1)確定邏輯事件及狀態分解。
邏輯事件是調用進程所需要的事件。由于事件本身只是仿真內核管理的一個調度表,仿真核心必須通過中斷的形式將仿真控制權交給進程,所以,每個邏輯事件需要選擇一個合適的中斷類型。CSMA對應的邏輯事件有分組到達、介質空閑和退避結束,如表1所示。

表1 CSMA邏輯事件與中斷類型
狀態代表一個進程的模塊,是對發生事件的反應。狀態之間是互斥和互補的,進程在某一時刻只能處于一個狀態中,而所有的狀態則構成了進程狀態空間的全集。隨著仿真的進行,進程在狀態之間不斷轉移。根據表1,進程應當有3個狀態:空閑、介質忙、退避,如表2所示。

表2 CSMA狀態分解
2)建立事件應答表及狀態圖。
根據CSMA的運行機制,可建立如表3的事件應答表,該表描述了進程在當前狀態下,當發生了某個事件,所應采取的行動以及轉移到的下一個狀態。

表3 CSMA事件應答表
根據表3,進一步得到狀態圖如圖3所示。

圖3 CSMA進程狀態圖
后面的仿真實驗中,統計了2個性能度量參數:點到點時延和接收數據量[8-9]。
1)點到點時延(單位:s):表示分組到達接收隊列的時刻與分組被目的方成功接收的時刻之間的時間差。
2)接收數據量(單位:packet):表示單位時間內網絡中所有節點接收分組的總量。
本仿真中涉及到的環境參數有:網絡范圍、網絡節點數目、單節點通信覆蓋范圍、信道傳輸速率、仿真時間、分組產生頻率、分組長度。其中網絡節點數目、分組產生頻率和分組長度 3個參數隨仿真場景的不同而不同。環境參數的設置如下:
1)網絡范圍為10 km×10 km;
2)網絡節點數目為可在{2,20,55}中任選;
3)單節點通信覆蓋范圍為5 km;
4)信道傳輸速率為1 024 bps;
5)仿真時間為1 h;
6)分組產生時間間隔概率為可在{exponential(2.0),exponential (10.0),exponential (100)}中任選;
7)分組長度為可在{const(10),const(100),const(1024)}中任選。
下面設置了7個場景,這些場景的網絡節點數目、分組產生頻率和分組長度設置不同,見表4。通過對這些場景的仿真來研究網絡節點數目、分組產生頻率和分組長度這 3個參數對網絡性能的影響。

表4 場景仿真參數設置
場景1、場景2和場景3中的點到點時延和接收數據量統計結果如圖4和5所示。

圖4 場景1、場景2、場景3的點到點時延仿真結果

圖5 場景1、場景2、場景3的接收數據量仿真結果
由圖4和圖5可見,在節點數目和分組產生時間間隔概率不變的情況下,分組越大,則延時越大,接收數據分組量越少。
場景1、場景4和場景5中的點到點時延和接收數據量統計結果如圖6和7所示。
由圖6和圖7可見,在節點數目和分組長度不變的情況下,分組產生頻率越低,則網絡延時越小,接收數據分組量越少。
場景5、場景6和場景7中的點到點時延和接收數據量統計結果如圖8和9所示。

圖6 場景1、場景4、場景5的點到點時延仿真結果

圖7 場景1、場景4、場景5的接收數據量仿真結果

圖8 場景5、場景6、場景7的點到點時延仿真結果

圖9 場景5、場景6、場景7的接收數據量仿真結果
由圖8和圖9可見,在分組產生頻率和分組長度不變的情況下,網絡節點越多,則網絡延時越大,甚至出現不穩定的振蕩,接收數據分組量越多。
以上仿真結果反映了CSMA協議性能與節點數目、分組產生頻率和分組長度等網絡參數的關系,該結果與理論分析結果是一致的。
本文基于OPNET,實現了CSMA協議,設計了不同網絡條件下的仿真實驗,研究了幾個主要的網絡參數對CSMA協議通信性能的影響。仿真結果表明:CSMA協議的通信性能和多種網絡參數緊密相關,在實際應用中,應根據具體的網絡特點和網絡通信性能要求,來確定是否選用CSMA信道接入協議。
[1]鄧曉燕,李紅信,童圣潔.基于OPNET的隨機接入協議網絡性能研究[J].微計算機信息,2008,24(33):94-96.
[2]魏鴻毅,慕曉冬,夏薇.基于OPNET的無線通信網絡性能研究[J].微計算機信息,2008,24(18):115-117.
[3]于宏毅.無線移動自組織網[M].北京:人民郵電出版社,2004:32-35.
[4]馮言志,馮元,李金.基于OPNET的Ad Hoc網絡建模與仿真[J].四川兵工學報,2009,30(3):97-99.
[5]李秀全,武斌,張青春.基于OPNET的無線局域網MAC協議仿真研究[J].艦船電子工程,2006,26(6):137-139.
[6]李豐.基于OPNET的無線局域網MAC層協議的仿真設計與研究[D].哈爾濱:哈爾濱理工大學,2007.
[7]龍華.OPNET Modeler與計算機網絡仿真[M].西安:西安電子科技大學出版社,2006:31-57.
[8]范奕.基于CSMA/CA 改進的Ad Hoc網MAC協議設計[D].西安:西安電子科技大學,2007.
[9]秦耀文.Ad Hoc網絡中MAC協議的研究與改進[D].長沙:中南大學,2007.