眭暢豪,高建銀,趙晉毅,李一航,王詩力,胡東方
(1.北京理工大學 信息與電子學院通信技術(shù)研究所,北京 100081;2.航天科工集團第二研究院,北京 100854;3.北京銀河信通科技有限公司,北京 100084)
空基自組織網(wǎng)絡不需要依賴基礎設施,每個空中節(jié)點的地位是平等的,能夠自發(fā)構(gòu)建一個分布式網(wǎng)絡。傳統(tǒng)自組網(wǎng)使用全向天線,在一定區(qū)域內(nèi)同一時刻只允許一對節(jié)點進行數(shù)據(jù)收發(fā),極大降低了網(wǎng)絡吞吐量。相控陣天線是一種定向天線,相比全向天線,定向天線在某一個特定的方向集中能量,能夠覆蓋更大的通信范圍,有效提高空間復用效率。將相控陣天線引入自組網(wǎng),可以有效提高空間復用率以及網(wǎng)絡吞吐量,并能降低信息被監(jiān)聽的可能性,提升可靠性[1-2]。
由于空基自組網(wǎng)是視距(Line of Sight,LOS)信道,同時空基平臺載荷的體積和重量嚴重受限,而低頻天線體積較大,所以采用Ka/Ku頻段,也滿足了未來大容量的通信需求。本文研究基于Ka/Ku相控陣天線的空基自組網(wǎng)技術(shù),利用相控陣天線定向傳輸?shù)奶匦?,網(wǎng)絡容量最高可以提高N/2倍(N為網(wǎng)絡節(jié)點數(shù));同時利用Ka/Ku頻段的大帶寬特性,可以極大地提高網(wǎng)絡容量,使網(wǎng)絡有效帶寬達到NB/2 Hz(B為Ka/Ku頻段可用帶寬)。
由于Ka/Ku相控陣天線定向傳播特性,常規(guī)基于全向天線的MAC協(xié)議和路由協(xié)議不再適用于定向天線自組網(wǎng),需要重新設計。目前針對基于定向天線MAC協(xié)議的研究眾多,大多只使用定向天線,在這些協(xié)議中節(jié)點需要不停地掃描以進行鄰居發(fā)現(xiàn),只有當收發(fā)雙方天線對準,并且一方處于發(fā)送狀態(tài)、另一方處于接收狀態(tài)時才能通信,這樣會帶來很大的傳輸時延[3]。
按照路由建立和保持方式,自組網(wǎng)路由協(xié)議主要分為先應式、反應式以及混合式三種[4],反應式路由協(xié)議是自組網(wǎng)路由協(xié)議研究的主流方向[5]。采用定向天線的反應式定向路由協(xié)議[6]在路由發(fā)現(xiàn)時,由源節(jié)點選擇目的節(jié)點相應方向的天線發(fā)送,限制了搜索區(qū)域,路由發(fā)現(xiàn)時間和端到端時延顯著地降低,但如果定向搜索失敗,全網(wǎng)洪泛會造成路由發(fā)現(xiàn)時間劇增[7]。
針對上述問題,本文提出了基于頻分復用的定向MAC (Frequency Division Multiplexing-based Directional MAC,FDM-DMAC) 協(xié)議和定向路由協(xié)議。
為了降低接入復雜度、提高網(wǎng)絡吞吐量,本文提出FDM-DMAC協(xié)議。FDM-DMAC協(xié)議假設網(wǎng)絡中節(jié)點配備L頻段的全向天線與Ka/Ku頻段的相控陣天線,使用全向天線發(fā)送控制幀,使用定向天線進行數(shù)據(jù)傳輸,將全向天線與定向天線的優(yōu)勢結(jié)合,降低時延的同時能提高空間復用率;并根據(jù)Ka/Ku頻段的大帶寬特性使用頻分復用技術(shù)實現(xiàn)多信道并行傳輸,提高網(wǎng)絡容量。
FDM-DMAC協(xié)議包括鄰居發(fā)現(xiàn)、鏈路建立、資源分配以及數(shù)據(jù)傳輸?shù)冗^程,使用全向天線進行鄰居發(fā)現(xiàn)、鏈路建立以及資源分配,使用定向天線完成高速數(shù)據(jù)傳輸。
MAC協(xié)議使用定向天線能夠增加網(wǎng)絡容量,最高可達N/2倍,但當空基自組網(wǎng)中節(jié)點密度較高時,就會出現(xiàn)一個定向天線波束內(nèi)存在多個節(jié)點的情況,如圖1所示。節(jié)點A的定向天線波束中存在多個節(jié)點,無論節(jié)點A與波束內(nèi)的任何一個節(jié)點進行通信,都會對其他節(jié)點造成干擾,降低網(wǎng)絡容量,為了解決這個問題,F(xiàn)DM-DMAC協(xié)議根據(jù)Ka/Ku頻段的大帶寬特性使用頻分復用技術(shù)實現(xiàn)多信道,進一步提高網(wǎng)絡容量。
如圖2所示,節(jié)點對A,B定向傳輸數(shù)據(jù)使用頻段f1,節(jié)點對D,F(xiàn)定向傳輸數(shù)據(jù)使用頻段f2,兩對節(jié)點通信互不干擾。
圖1 定向天線波束中存在多個節(jié)點問題Fig.1 Multiple node problems in directional antenna beams
圖2 頻分復用示意圖Fig.2 Frequency division multiplexing diagram
由于頻分復用技術(shù)將Ka/Ku頻段劃分為多個子頻段,則收發(fā)雙方在傳輸數(shù)據(jù)之前,需要使用控制信道傳輸控制幀協(xié)商本次通信使用的頻段。因此對RTS,CTS控制幀進行改進,使用雙預約資源分配算法進行資源分配。
定向傳輸數(shù)據(jù)時,需要知道雙方的位置以便進行天線對準。因此在鄰居發(fā)現(xiàn)過程中將測距算法與多維尺度變換(Multidimensional Scaling,MDS)定位算法相結(jié)合,得到每個節(jié)點的相對位置。
FDM-DMAC協(xié)議重新設計了載波偵聽機制,在全向天線傳輸控制幀時,鄰居節(jié)點處于靜默狀態(tài),但在定向數(shù)據(jù)傳輸過程中,鄰居節(jié)點可以接入信道。
在鄰居發(fā)現(xiàn)過程中,每個節(jié)點競爭信道,全向廣播Hello包,在接收到鄰居節(jié)點的應答信息之后,讀取RSSI值,得到節(jié)點與鄰居節(jié)點的距離[8]。
節(jié)點完成鄰居發(fā)現(xiàn)后,向全網(wǎng)廣播鄰居節(jié)點信息,從而使得每個節(jié)點能夠得到網(wǎng)絡拓撲信息,即任意每兩個節(jié)點之間的距離關系。再根據(jù)MDS定位算法[9],計算得到所有節(jié)點的相對位置矩陣。如果在網(wǎng)絡中有些節(jié)點之間并不連通,則使用最小路徑算法來計算節(jié)點之間的距離[10]。
MDS算法根據(jù)節(jié)點之間的距離矩陣D計算得到節(jié)點之間的相對位置矩陣X。假設第i個節(jié)點的坐標用[xiyi]T表示,dij表示節(jié)點i與節(jié)點j之間的距離,MDS算法原理如式(1)~式(12)所示。
(1)
(2)
中心矩陣J:
(3)
其中,E為n階單位矩陣,I為1×n維全1矩陣。
對距離的平方矩陣進行去中心化:
(4)
設矩陣R為:
(5)
其中,
(6)
則有:
D2=R+RT-2XTX,
(7)
可以得到:
(8)
又因為:
RJ=JRT=0,
(9)
所以,
B=JXTXJ=JXT(JXT)T。
(10)
對矩陣B進行特征值分解:
(11)
根據(jù)式(10)和式(11)可以得到:
(12)
從而可以求出矩陣X,得到各節(jié)點相對位置。
收發(fā)雙方通過發(fā)送RTS和CTS控制幀進行握手,從而建立鏈路。在握手過程中,對本次通信所使用的頻段進行協(xié)商,完成資源分配。本節(jié)提出的雙預約資源分配算法篩選出本次通信可用的所有頻段,再由接收節(jié)點隨機選定本次通信使用的頻段。
為了協(xié)商定向數(shù)據(jù)傳輸過程中使用的頻段,收發(fā)雙方需要在進行RTS和CTS控制幀交互的過程中,相互告知對方頻段的可用信息,如圖3和圖4所示。FDM-DMAC協(xié)議在RTS控制幀中加入了可使用頻段指示序列信息,在CTS控制幀中加入了選擇頻段指示序列信息。
圖3 RTS幀格式Fig.3 Frame format of RTS
圖4 CTS幀格式Fig.4 Frame format of CTS
在FDM-DMAC協(xié)議中,每個節(jié)點存儲一個頻段表,頻段表中包含使用頻段的收發(fā)節(jié)點坐標以及通信結(jié)束時間[11]。鄰居節(jié)點在接收到CTS控制幀后更新自身的頻段表信息。
當上層數(shù)據(jù)到達時,發(fā)送節(jié)點查詢自身存儲的頻段表,根據(jù)頻段表中存儲的通信節(jié)點對的位置信息,判斷尚未結(jié)束通信的節(jié)點對是否會對本次通信造成影響,即根據(jù)節(jié)點對的位置信息判斷,尚未結(jié)束通信的節(jié)點對是否在發(fā)送節(jié)點的定向覆蓋范圍內(nèi),以及發(fā)送節(jié)點是否在尚未結(jié)束通信的節(jié)點對的定向覆蓋范圍內(nèi)。若二者均不滿足,則本次通信可以復用正在使用的頻段。發(fā)送節(jié)點對頻段表中存儲的頻段使用信息進行判斷,得到本次通信可以使用的頻段,將可使用頻段的信息放入RTS,發(fā)送給接收節(jié)點。接收節(jié)點收到RTS幀后,得到發(fā)送節(jié)點可以使用的頻段,去查詢自身存儲的頻段表,從二者均可使用頻段中隨機選擇一個頻段用于本次通信。
若通過定向覆蓋范圍判斷,發(fā)送節(jié)點可使用頻段,接收節(jié)點均不能使用,則放棄此次通信,接收節(jié)點重新偵聽信道,等待下一次通信。若發(fā)送節(jié)點在給定時間內(nèi)收不到CTS幀,則重新偵聽信道。
接收節(jié)點發(fā)送CTS控制幀后,根據(jù)發(fā)送節(jié)點的位置信息,將定向天線波束對準發(fā)送節(jié)點并將數(shù)據(jù)信道切換到選定的頻段上準備接收數(shù)據(jù)。發(fā)送節(jié)點在接收到CTS控制幀后,將定向天線對準接收節(jié)點并將信道切換到選定的頻段上準備發(fā)送數(shù)據(jù)。接收節(jié)點收到數(shù)據(jù)后發(fā)送應答幀,并將天線切換到全向天線,重新偵聽信道,準備下一次通信。若接收節(jié)點沒有接收到數(shù)據(jù),且等待超時則將天線切換到全向天線,重新偵聽信道。
在此過程中鄰居節(jié)點可以接入信道,需要根據(jù)存儲的頻段表信息選擇可使用的頻段,以免對正在通信的節(jié)點對造成干擾。
在空基自組網(wǎng)中,不相鄰的兩個空中節(jié)點需要通過多跳轉(zhuǎn)發(fā)的方法完成數(shù)據(jù)傳輸,這需要路由協(xié)議來完成。為提高網(wǎng)絡容量而引入的相控陣天線,可能會導致次佳路由[12]和路由應答風暴問題[13]的出現(xiàn)。本節(jié)提出基于Ka/Ku相控陣天線的空基自組網(wǎng)路由協(xié)議,采用加入一定延時的方法解決以上問題,并使用相鄰搜索、鏈路質(zhì)量評估和備用路由的方法,減少路由發(fā)現(xiàn)時間,提高吞吐量。
本協(xié)議基于動態(tài)源路由(Dynamic Source Routing,DSR)協(xié)議[14],采用定向天線完成路由發(fā)現(xiàn)、路由維護和數(shù)據(jù)傳輸過程,其中路由發(fā)現(xiàn)包含路由請求和路由應答。每個節(jié)點緩存路由表和路由請求(Route Request,RREQ)列表。節(jié)點入網(wǎng)后會分配一個獨一無二的身份標識( Identity Document,ID),并獲取自己的位置信息。路由表內(nèi)的每個條目含有目的節(jié)點ID及其位置,路由記錄和跳數(shù)。RREQ列表則維持著源節(jié)點和請求ID。
當源節(jié)點想要傳輸數(shù)據(jù)分組給目的節(jié)點時,需要在數(shù)據(jù)分組的頭部加入從源節(jié)點到目的節(jié)點的路徑記錄,數(shù)據(jù)分組就可以根據(jù)記錄到達目的節(jié)點。為了獲取路徑記錄,在路由發(fā)現(xiàn)過程中發(fā)送了RREQ分組,經(jīng)過定向洪泛到達目的節(jié)點,目的節(jié)點再發(fā)送含有路由記錄的路由應答(Route Replay,RREP)分組回到源節(jié)點。路由維護機制則用于解決已發(fā)現(xiàn)鏈路斷開的問題。本協(xié)議中,基于定向搜索的路由發(fā)現(xiàn)和改進的路由維護機制根據(jù)定向天線的特性提高了數(shù)據(jù)傳輸效率。
源節(jié)點發(fā)送數(shù)據(jù)時首先查詢自己的緩存是否存在到達目的節(jié)點的路由,當不存在時啟動路由發(fā)現(xiàn)過程。
2.2.1 路由請求
路由請求使用定向天線洪泛,不會像全向天線洪泛向所有節(jié)點廣播,能夠避免可能引發(fā)的廣播風暴,節(jié)省了路由的開銷。MAC層協(xié)議初始化之后,源節(jié)點已知目的節(jié)點的位置,選擇目的節(jié)點方向的鄰居節(jié)點作為下一跳發(fā)送RREQ分組,如圖5所示。RREQ分組包含源節(jié)點ID及其位置,目的節(jié)點ID及其位置,請求分組ID,路由記錄和跳數(shù)。
圖5 定向路由請求Fig.5 Directional route request
首個收到RREQ分組的節(jié)點需要延遲t=n×tswitch再轉(zhuǎn)發(fā),其中n為源節(jié)點的波束序號,tswitch為切換波束所用的時間。此延時與源節(jié)點波束發(fā)送的順序有關,以抵消不同波束發(fā)送時間的先后,減少RREQ分組的碰撞概率,保證最優(yōu)路由及時到達目的節(jié)點,避免次佳路由的出現(xiàn)。當一個節(jié)點收到RREQ分組后,與RREQ列表對比后發(fā)現(xiàn)之前收到過相同分組,或者跳數(shù)超過分組的生存時間,則丟棄;如果RREQ分組的目的地址與此節(jié)點符合,或者此節(jié)點的緩存中有到達目的節(jié)點的路由,此時路由記錄即為需要發(fā)現(xiàn)的路由,進入路由應答過程;一般地,中間節(jié)點選擇朝向目的節(jié)點方向的鄰居節(jié)點轉(zhuǎn)發(fā),同時把此中間節(jié)點ID和發(fā)送使用的天線波束編號記入RREQ分組內(nèi)的路由記錄數(shù)組中,如圖6所示。如果朝向目的節(jié)點的方向沒有鄰居節(jié)點,就采用相鄰搜索的方法,即選擇其他相鄰方向的鄰居節(jié)點繼續(xù)定向搜索,避免了轉(zhuǎn)向全向搜索造成的性能損失。
圖6 路由發(fā)現(xiàn)流程圖Fig.6 Flowchart of route discovery
2.2.2 路由應答
如果此節(jié)點的緩存中有到源節(jié)點的路由,則RREP分組將沿著此路由帶著RREQ分組中的路由記錄傳回源節(jié)點。如果不存在,則將RREQ分組中路由記錄調(diào)轉(zhuǎn)順序作為此節(jié)點到源節(jié)點的路由。節(jié)點在發(fā)送RREP分組之前需要延遲t=Tdelay×h,其中Tdelay為估計節(jié)點間最大傳輸延時,h為RREQ包路由記錄中的跳數(shù),這擴大了RREP分組的到達間隔,避免了路由應答風暴。
源節(jié)點收到RREP分組之后,以最小跳數(shù)和最先到達為標準,選擇兩條最優(yōu)的路由記錄寫入路由表緩存。當?shù)谝粭l路由出錯后,第二條備用路由能夠迅速恢復鏈路,縮短路由發(fā)現(xiàn)時間。
節(jié)點通過周期廣播HELLO分組評估鏈路質(zhì)量,使用分組投遞率[15](Packet Delivery Ratio,PDR)為鏈路劃分質(zhì)量等級,避免了因選擇離目的節(jié)點最近的節(jié)點作為下一跳節(jié)點但此鏈路質(zhì)量不佳而導致路由帶寬降低的問題。分組投遞率公式如下:
式中,Ps為發(fā)送分組的數(shù)量,Pr為接收分組的數(shù)量。
在數(shù)據(jù)鏈路層,如果某節(jié)點超時未能收到下一跳的ACK回復幀,則認為此節(jié)點與下一跳節(jié)點間的鏈路已斷開。當路徑上某節(jié)點在一定時間內(nèi),沒有收到其鄰居節(jié)點發(fā)來的HELLO分組或者其他控制分組,就可以認為它與此鄰居節(jié)點之間的鏈路已斷開。在上述情況下,此節(jié)點將向源節(jié)點發(fā)送路由出錯(Route Error,RERR)分組。如果該節(jié)點緩存中存在另一條到目的節(jié)點的路由,則將當前未成功發(fā)送的數(shù)據(jù)包沿該路徑發(fā)出。
每一個接收到RERR分組的節(jié)點,都將該節(jié)點緩存的與該出錯鏈路相關的信息刪除,再將RERR分組繼續(xù)轉(zhuǎn)發(fā)。當源節(jié)點收到RERR分組,同樣會刪去含有該鏈路的路由緩存。如果源節(jié)點有備用路由,則發(fā)送數(shù)據(jù)分組,否則開始新的路由發(fā)現(xiàn)過程。
本文介紹了定向天線相對全向天線和Ka/Ku頻段在數(shù)據(jù)傳輸中的優(yōu)勢,分析了定向自組網(wǎng)協(xié)議中可能造成網(wǎng)絡吞吐量下降的問題,探討了解決協(xié)議問題在MAC層和網(wǎng)絡層分別采用的方法,最后根據(jù)Ka/Ku相控陣天線的特點形成了一套適合空基自組網(wǎng)的MAC協(xié)議和路由協(xié)議。