李曉艷,張 勇,陳 蕾
(西安工業(yè)大學 電子信息工程學院,西安 710021)
目前的頻譜分配政策是把無線頻譜資源分成授權頻譜和非授權頻譜,授權頻譜利用率低下,而非授權頻段上通信業(yè)務迅速增加,頻譜資源緊缺,遠遠不能滿足需求.為解決上述問題,認知無線電(Cognitive Radio,CR)技術應運而生,它可以使得未經(jīng)授權的無線通信設備(次用戶)主動地尋找無線電環(huán)境中的空閑頻譜資源,并在不對授權用戶(主用戶)產(chǎn)生干擾的情況下使用這些空閑頻譜.認知無線電是目前公認的解決頻譜資源緊張的有效途徑[1–3].
根據(jù)網(wǎng)絡的拓撲結構,認知網(wǎng)絡可以分為集中式網(wǎng)絡和分布式網(wǎng)絡[4,5].在分布式網(wǎng)絡中,由于缺少中心節(jié)點的支持,次用戶間進行數(shù)據(jù)傳輸之前需要使用公共控制信道(Common Control Channel,CCC)交換彼此的控制信息,之后再切換到協(xié)商好的信道上進行數(shù)據(jù)傳輸.分布式網(wǎng)絡架構簡單,但節(jié)點間需要額外的開銷來協(xié)調信道的使用.集中式網(wǎng)絡按照一定的準則劃分為若干個簇[6],簇內(nèi)共享一條信道作為CCC,中心(簇首)節(jié)點控制著網(wǎng)絡中所有節(jié)點,并協(xié)調網(wǎng)絡資源的分配,它的主要職責包括:功率管理、頻率管理和調度控制.這種以分簇的方式實現(xiàn)按區(qū)域共享的CCC實質是認知網(wǎng)絡MAC層頻譜共享問題.MAC層協(xié)議支持著次用戶快速高效的分配空閑頻譜資源.因此,如何設計MAC層協(xié)議是認知無線電網(wǎng)絡的核心問題之一.
針對分布式認知網(wǎng)絡已提出了多種采用跳頻序列的MAC協(xié)議[7,8].在此類MAC協(xié)議中,次用戶跟隨特定的跳頻序列接入到它的所有可用信道中,當次用戶對在相同的時間接入到相同的信道時,它們可以在此共同信道上交換彼此的控制信息并協(xié)商信道的使用.在網(wǎng)絡輕負荷的情況下,此類MAC協(xié)議具有較高的效率,但是隨著網(wǎng)絡負荷增加,次用戶間信道競爭激烈,該類協(xié)議表現(xiàn)出的性能就劣于集中式網(wǎng)絡的MAC協(xié)議.針對集中式認知網(wǎng)絡,目前也提出了多種MAC層協(xié)議[9–11].文獻[9]將系統(tǒng)時間劃分成了一系列的超幀時間,超幀時間由感知時段、握手時段、報告時段和數(shù)據(jù)傳輸時段組成.但由于在各個時段內(nèi),次用戶是相互競爭的使用信道傳遞控制信息且用戶之間時鐘不同步,因此該協(xié)議效率并不高.文獻[10]提出了一種分簇算法,稱為CogMesh算法.該算法也是將時間劃分成了一系列超幀時段,每個超幀時段由感知時間和數(shù)據(jù)傳輸時間構成.文中的分簇算法描述了鄰居節(jié)點發(fā)現(xiàn)機制、簇的形成機制以及分簇之后的網(wǎng)絡拓撲管理.
目前存在的集中式網(wǎng)絡MAC層協(xié)議僅僅只是考慮了分簇的算法,如何將簇的各項操作融入到MAC協(xié)議中卻并沒有被提及.針對這個問題,本文在次用戶時鐘同步的情況下提出了一種基于簇結構的MAC協(xié)議,該協(xié)議以超級幀作為基本的處理對象,超幀由信標時段、頻譜感知時段、簇內(nèi)通信時段、簇間-簇內(nèi)通信時段、數(shù)據(jù)傳輸時段組成.超級幀的各個時段均對應簇節(jié)點的具體操作,以此支撐簇結構穩(wěn)健地應對主用戶操作.
考慮一個帶有n={0,…,N–1}個不重疊信道的認知網(wǎng)絡[11].網(wǎng)絡中共有m={1,…,M}個次用戶,每個次用戶裝有一個半雙工的收發(fā)器,每個次用戶都有一個唯一的ID號進行標識.為簡便起見,后文中“次用戶”和“節(jié)點”交替使用.
在給定的一段時間內(nèi),認知網(wǎng)絡中第i個次用戶,記為SUi,它感知到的空閑頻譜集合為Vi={v1,v2,…,vp},其中p為節(jié)點SUi感知到的總的空閑頻譜數(shù)量.假定網(wǎng)絡中節(jié)點的移動速率都很低,且每個節(jié)點的可用信道以相對低的速率進行改變.當滿足以上兩個假設條件時,可以認為認知網(wǎng)絡的拓撲結構在分簇算法運行的過程中是保持不變的[7].假定網(wǎng)絡中的節(jié)點均配置GPS設備,則節(jié)點可以知道自身的準確位置,也可以與網(wǎng)絡中其他節(jié)點保持時鐘同步.網(wǎng)絡中的每個節(jié)點還包含一個數(shù)據(jù)庫用于存儲它在網(wǎng)絡中的傳輸行為.
設存在一個如圖1所示的分簇認知網(wǎng)絡.由于分簇算法不是本文的研究重點,因此假設次用戶在經(jīng)過頻譜感知之后,按照某一分簇算法進行簇結構的劃分.整個網(wǎng)絡被劃分為兩個簇{A,B,C,D}和{D,E,F,G},其中簇首節(jié)點(即中心節(jié)點,Clusterhead,CH)分別為節(jié)點C和節(jié)點E,簇內(nèi)的CCC分別為信道3和信道1.兩個簇的網(wǎng)關節(jié)點是節(jié)點D.
圖1 分簇的認知無線電網(wǎng)絡
簇首節(jié)點為各簇指定了備用信道(Backup Channel,BC),當簇內(nèi)的CCC變的不可用時,為維持簇結構穩(wěn)定,所有的簇內(nèi)節(jié)點均調整到備用信道上去交換控制信息.
此外,對于分簇的認知網(wǎng)絡,節(jié)點間的通信必須遵守如下的一些規(guī)則.在鄰居發(fā)現(xiàn)階段,處于相同信道的節(jié)點相互交換必要的控制信息,以幫助節(jié)點了解周圍的無線環(huán)境;而在其他時候,只有從簇首分配到信道的節(jié)點對才能進行通信.網(wǎng)關節(jié)點轉發(fā)不同簇的控制信息,并將相鄰的簇連接起來形成整個網(wǎng)絡.
為了使得分簇結構更加有效的工作以及對主用戶的行為更加穩(wěn)健,本文提出了一種針對分簇結構的MAC層協(xié)議.在協(xié)議中,信道接入時間被劃分成了一系列的超級幀,即本協(xié)議以超級幀作為基本的處理對象,超級幀的結構如圖2所示.
圖2 超級幀結構
根據(jù)分簇結構的特點以及節(jié)點間的通信類型,超級幀被劃分成了五段:信標時段、頻譜感知時段、簇內(nèi)通信時段、簇間-簇內(nèi)通信時段、數(shù)據(jù)傳輸時段.
(1)信標時段(Beacon period)
信標時段由每個簇首節(jié)點發(fā)起.簇首首先產(chǎn)生一個隨機的退避時間,如果在這段時間內(nèi)簇CCC檢測到?jīng)_突,則簇首放棄在當前CCC上發(fā)送信標,轉而調整到簇的備用信道(BC)上重復上述過程,如圖3所示.
圖3 信標時段在 BC 發(fā)送信標信息
這個沖突有可能是一個主用戶突然占用了簇內(nèi)的CCC或者是其他相鄰簇的簇首節(jié)點剛好也在這個CCC上推送了它的信標.如果在預先設定的一段時間內(nèi),簇內(nèi)的節(jié)點沒有接收到簇首發(fā)出的信標,則所有簇內(nèi)節(jié)點均調整到BC信道上去接簇首的信標.這個退避機制使得簇結構在維持它的正常操作情況下盡可能的減少對主用戶和其他相鄰簇的干擾.
如果簇的CCC在簇首的隨機退避時間結束時仍然保持空閑,則簇首接下來就開始發(fā)送它的信標,如圖4所示.簇首的信標包括以下的主要內(nèi)容:
① 時間同步信息,例如時間戳;
② 簇和簇首節(jié)點的ID;
③ 為簇內(nèi)各節(jié)點分配對應的時隙,用于交換節(jié)點的控制信息;
④ 簇內(nèi)CCC的信道安排以及其他的一些簇內(nèi)控制信息.
圖4 信標時段在 CCC 發(fā)送信標信息
(2)頻譜感知時段(Spectrum sensing period)
在頻譜感知時段,網(wǎng)絡中的所有節(jié)點均保持安靜并進行頻譜感知.網(wǎng)絡中的節(jié)點同步地進行空閑頻譜檢測可以降低虛警概率.針對簇首和簇內(nèi)節(jié)點,頻譜感知時段的設計是不同的,如圖5所示.
圖5 頻譜感知的時段結構
如果某個節(jié)點在空閑頻譜檢測過程中發(fā)現(xiàn)簇的CCC被主用戶突然占用了,它會在特定的時間調整到BC以通知簇首.如果此時繼續(xù)在CCC上傳輸消息給簇首節(jié)點,勢必會給主用戶造成干擾,而且簇首也不可能正確地接收到信息,因此選擇在BC上進行信息傳輸.在指定的時間,簇首會調整到BC去收集相關的信道信息.而如果某個節(jié)點沒有感知到CCC被主用戶占用,它將不會調整到BC上去.
(3)簇內(nèi)通信時段(Intra-communication period)
如圖6所示,簇內(nèi)通信時段被分為指定的小時隙時段和保留時隙時段兩個部分.這兩個部分又被劃分為等長的若干個時隙,每個時隙分配給簇內(nèi)的一個節(jié)點,用于傳輸節(jié)點的控制信息.指定的小時隙時段分配給簇內(nèi)活動的節(jié)點,并且將第一個時隙留給簇首節(jié)點.如果簇內(nèi)的節(jié)點在這個時隙上沒有偵聽到簇首節(jié)點的任何控制信息,可能由于主用戶在CCC上突然的出現(xiàn),簇首已經(jīng)調整到了BC上,則簇內(nèi)節(jié)點也將調整到BC上.這個機制的目的與信標時段的退避機制是一致的,都是為了保護主用戶信號免受干擾以及維護簇的穩(wěn)定.保留時隙時段分配給簇內(nèi)從休眠狀態(tài)重新蘇醒的節(jié)點以及新加入簇的節(jié)點.
在本文的MAC協(xié)議中,節(jié)點的控制信息主要包括節(jié)點的ID、所處的地理位置、感知到的可用空閑信道、該節(jié)點所收集到的其一跳鄰居節(jié)點的上述信息、節(jié)點的服務請求等.
(4)簇間-簇內(nèi)通信時段(Inter-intra-communication period)
簇間-簇內(nèi)通信時段包含了兩種類型的通信,即簇內(nèi)通信和簇間通信.兩個相鄰的簇通過網(wǎng)關節(jié)點交換簇內(nèi)的控制信息和數(shù)據(jù),這就是簇間通信.簇首節(jié)點通過網(wǎng)關節(jié)點交換完控制信息之后,將在各自的簇內(nèi)廣播如下的控制信息:(1)新的 CCC 跳頻序列.認知網(wǎng)絡的各個相鄰簇之間提供一個無競爭的信道接入機制,在簇間通信完成之后,各簇的簇首才針和新的BC;(2)針對簇內(nèi)節(jié)點的業(yè)務請求而分配的頻譜資源以及傳輸安排.這就是簇內(nèi)通信.為了在對簇內(nèi)節(jié)點的業(yè)務請求分配頻譜資源.
(5)數(shù)據(jù)傳輸時段(Data transmission period)/鄰居節(jié)點發(fā)現(xiàn)(Neighbor discovery)
在本文提出的MAC協(xié)議中,簇內(nèi)不需要一條固定的信道作為CCC,簇內(nèi)所有可用信道均可以分配給節(jié)點對進行通信.在數(shù)據(jù)傳輸階段,需要通信的節(jié)點對在分配到頻譜資源后,調整到指定的信道進行數(shù)據(jù)傳輸.此時,不同的節(jié)點對在不同的信道上進行并行的數(shù)據(jù)傳輸.在節(jié)點傳輸數(shù)據(jù)之前,發(fā)送節(jié)點首先產(chǎn)生一個隨機的退避時間,如果指定的信道在退避時間結束時仍然保持空閑,則傳輸開始.如果在此期間,發(fā)送節(jié)點檢測到了沖突,則發(fā)送和接收節(jié)點終止數(shù)據(jù)傳輸,不再另外選擇其他信道進行傳輸,直到簇首節(jié)點重新為它們分配信道,這樣可以避免對其他節(jié)點產(chǎn)生干擾.當節(jié)點間通信結束時,節(jié)點對本次通信進行評價,評價結果存儲于節(jié)點的經(jīng)驗數(shù)據(jù)庫.
如果在此時段里面,節(jié)點沒有數(shù)據(jù)需要發(fā)送或者接收,則它會在此時間段內(nèi)接入到空閑頻譜中以發(fā)現(xiàn)鄰居節(jié)點.由于節(jié)點偵聽了簇首關于信道安排的控制信息,因此它不會接入到已經(jīng)被安排用于數(shù)據(jù)傳輸?shù)男诺乐?這個機制使得本節(jié)的MAC協(xié)議不需要一個額外的時段用于鄰居節(jié)點發(fā)現(xiàn).
總結上述的超幀結構,本文提出的針對簇結構的MAC協(xié)議的工作流程可以由圖7所示.
圖7 MAC 協(xié)議流程
當一個超幀開始的時候,節(jié)點調整到CCC偵聽簇首的信標,如果偵聽成功,則在簇首的安排下進行頻譜感知.在頻譜感知階段,檢測到主用戶之后,整個簇調整到BC信道上;否則繼續(xù)在當前信道下進行操作.接下來進行簇間-簇內(nèi)通信、數(shù)據(jù)傳輸以及鄰居發(fā)現(xiàn)操作.在一個超幀開始的時候,如果節(jié)點偵聽不到簇首的信標,則調整到BC上去接收,待成功接收之后,接下來就進行頻譜感知.在頻譜感知階段,如果檢測到了主用戶,則終止所有的操作,等待下一幀的到來;如果主用戶不存在,則繼續(xù)執(zhí)行簇間-簇內(nèi)通信、數(shù)據(jù)傳輸以及鄰居發(fā)現(xiàn)操作.在下一個超幀開始的時候又重復上面的操作.在整個超幀時段,經(jīng)驗數(shù)據(jù)庫為節(jié)點的數(shù)據(jù)傳輸和鄰居節(jié)點發(fā)現(xiàn)提供評價支持.
網(wǎng)絡中的每個節(jié)點都包含一個數(shù)據(jù)庫用于存儲它在網(wǎng)絡中的傳輸行為以及對這些行為的評價,稱這個數(shù)據(jù)庫為經(jīng)驗數(shù)據(jù)庫.經(jīng)驗數(shù)據(jù)庫可以用來支持節(jié)點在網(wǎng)絡中的多個行為,例如幫助節(jié)點快速的找到鄰居節(jié)點,為節(jié)點提供經(jīng)驗值用于組建新的簇,幫助簇首選擇最佳的信道進行數(shù)據(jù)傳輸.
由于認知網(wǎng)絡的節(jié)點只是頻譜資源的使用者而非擁有者,節(jié)點的可用信道在不同的時間不同的地點是不盡相同的.然而在實際中,大多數(shù)節(jié)點的移動范圍通常會在一個固定的區(qū)域內(nèi),在此區(qū)域中節(jié)點可用信道的變化情況可以通過長時間的記錄而發(fā)現(xiàn)其中的規(guī)律值.基于上述考慮,本文的經(jīng)驗數(shù)據(jù)庫以地理位置為基本的考慮因素,數(shù)據(jù)庫中存儲若干條記錄,每條記錄包含如下的五個參數(shù):
C_xy節(jié)點的地理位置;
Ci信道i成為簇內(nèi)CCC的次數(shù);
ti信道i被節(jié)點用于數(shù)據(jù)傳輸?shù)目倳r長;
Wi在信道i上傳輸?shù)目偟谋忍財?shù);
tm該條記錄被修改的時間.
地理位置是經(jīng)驗數(shù)據(jù)庫中每條記錄的核心參數(shù),其他參數(shù)均用于記錄節(jié)點在該地理位置附近的行為.考慮到節(jié)點的存儲空間有限,設置每個節(jié)點最多包含十條記錄.
將上面的兩個參數(shù)ti和Wi作為節(jié)點在信道上的數(shù)據(jù)通信的評價,兩個參數(shù)由下面的兩式定義:
上兩式中,T是節(jié)點接入信道i的次數(shù).tk是節(jié)點第k次接入信道i時用于數(shù)據(jù)傳輸?shù)臅r長,wk是節(jié)點第k次接入信道i時傳輸?shù)谋忍財?shù).當考慮選擇信道進行節(jié)點間的數(shù)據(jù)傳輸時,某個信道上已經(jīng)傳輸?shù)谋忍財?shù)(Wi)越高,選擇該信道用于下一次數(shù)據(jù)傳輸?shù)目赡苄跃捅绕渌男诺栏?
當節(jié)點需要進行鄰居節(jié)點發(fā)現(xiàn)或是向簇首節(jié)點提供信道選擇信息時,節(jié)點需要從經(jīng)驗數(shù)據(jù)庫中獲取相應的信息.它首先計算當前所處的地理位置與經(jīng)驗數(shù)據(jù)庫中記錄的所有地理位置的距離.如果存在這樣一條記錄,它的地理位置距當前節(jié)點所處的位置最近,并且兩者之間的距離值在節(jié)點的三跳范圍之內(nèi),則節(jié)點可以使用該條記錄的經(jīng)驗值,并根據(jù)當前行為產(chǎn)生的評價來修改這條記錄.如果節(jié)點找不到滿足上述條件的記錄,則它添加一條以當前地理位置為核心參數(shù)的記錄到經(jīng)驗數(shù)據(jù)庫中.如果當節(jié)點希望添加新記錄的時候,經(jīng)驗數(shù)據(jù)庫中已經(jīng)存在了十條記錄,則節(jié)點將刪除修改時間最早的一條記錄.
作為性能比較,將本文提出的基于分簇結構的MAC協(xié)議(稱為CLMAC)與其他兩個協(xié)議進行比較:(1)采用跳頻序列的 MAC 協(xié)議[8],稱為 SMA;(2)基于分簇的MAC協(xié)議[9],稱為CogMesh.采用三個性能指標對以上三個MAC協(xié)議進行比較分析,仿真軟件采用ns-2.
仿真參數(shù)設置為:在 10 km×10 km 的區(qū)域中隨機放置100個次用戶節(jié)點,10個主用戶,網(wǎng)絡中總的信道數(shù)量為N=12,次用戶之間的通信距離為 500 m,主用戶之間的通信距離為2 km,且主用戶獨立的接入每個信道中.網(wǎng)絡中數(shù)據(jù)傳輸率為 1 Mbps,每個數(shù)據(jù)包的大小為 512 bytes,其他的網(wǎng)絡參數(shù)主要參考 IEEE 802.11.共進行100次獨立實驗,每次實驗運行1000 s,取實驗的平均值作為最終結果.
圖8所示為在不同的網(wǎng)絡負載下三種協(xié)議能達到的吞吐量.在網(wǎng)絡負載低的時候,SMA協(xié)議得到了比其他兩個協(xié)議較大的吞吐量.由于SMA協(xié)議操作簡單,它使得節(jié)點對獨立的去競爭信道,在輕負載下需要通信的節(jié)點對能夠快速的找到信道進行通信,因而SMA協(xié)議的吞吐量快速的增加.當網(wǎng)絡負載繼續(xù)增加時,SMA協(xié)議的吞吐量增加的不明顯,這是由于網(wǎng)絡負載的增加,進行競爭的節(jié)點也增加了,信道利用率下降.反觀CogMesh和CLMAC協(xié)議,隨著網(wǎng)絡負載的逐漸增大,吞吐量增加比較明顯.由于CogMesh和CLMAC協(xié)議均是基于分簇的MAC協(xié)議,各簇的簇首節(jié)點管理著簇內(nèi)的資源分配,盡量為簇內(nèi)節(jié)點提供無沖突的信道接入,則網(wǎng)絡中所有可用信道的利用率較高,從而獲得較大的網(wǎng)絡吞吐量.本文的CLMAC協(xié)議增設了簇間-簇內(nèi)通信時段用于協(xié)調相鄰簇之間的信道使用,這個傳輸機制為相鄰的簇提供了無沖突的頻譜接入,而且本文的CLMAC協(xié)議在設計分簇算法的時候就將最大化網(wǎng)絡吞吐量作為主要的考慮因素.因而本文的CLMAC協(xié)議能夠得到比CogMesh協(xié)議更大的吞吐量.當網(wǎng)絡負載繼續(xù)增大的時候,節(jié)點的丟包率增大,所有協(xié)議的性能均出現(xiàn)下降.
圖8 在不同負載下的網(wǎng)絡吞吐量
圖9 在不同負載下的傳輸時延
圖9所示為在不同的網(wǎng)絡負載下三種協(xié)議的平均時延.在輕負載網(wǎng)絡下,CogMesh和CLMAC協(xié)議表現(xiàn)出比SMA協(xié)議較高的時延,這是由于基于分簇結構的MAC協(xié)議需要進行簇內(nèi)節(jié)點的協(xié)商,等待簇首節(jié)點安排信道的使用,因而它們的包傳輸時延較大.而SMA協(xié)議不是中心控制結構,需要通信的節(jié)點對一旦競爭到某條信道中,它們就開始數(shù)據(jù)傳輸,且在輕負載情況下,節(jié)點間信道競爭不激烈,數(shù)據(jù)包傳輸時延最小.當網(wǎng)絡達到中高負載時,SMA協(xié)議的信道競爭激勵,節(jié)點對需要等待很長的時間才能接入到信道中,傳輸時延不斷增加.而其余兩個基于分簇的協(xié)議中,簇首充分考慮簇內(nèi)的業(yè)務需要,為簇內(nèi)節(jié)點提供無沖突的信道接入,則它們的時延增加的比較平緩.本文的CLMAC協(xié)議在信標時段和頻譜感知時段均提供了相同的機制以保護簇內(nèi)的CCC,維持了簇結構的穩(wěn)定,因而它提供的傳輸時延略低于CogMesh協(xié)議.
本文在次用戶時鐘同步的情況下提出了一種基于簇結構的MAC協(xié)議,該協(xié)議以超級幀作為基本的處理對象,超級幀的各個時段均對應簇節(jié)點的具體操作,以此支撐簇結構穩(wěn)健地應對主用戶操作.仿真結果表明,基于分簇結構的MAC協(xié)議相比較于基于跳頻序列的MAC協(xié)議,在中高網(wǎng)絡負載情況下能獲得更好的網(wǎng)絡吞吐量以及較低的傳輸時延.而本文提出的MAC協(xié)議能獲得比CogMesh協(xié)議更好的綜合性能.