眭暢豪,高建銀,趙晉毅,李一航,王詩力,胡東方
(1.北京理工大學 信息與電子學院通信技術研究所,北京 100081;2.航天科工集團第二研究院,北京 100854;3.北京銀河信通科技有限公司,北京 100084)
空基自組織網絡不需要依賴基礎設施,每個空中節點的地位是平等的,能夠自發構建一個分布式網絡。傳統自組網使用全向天線,在一定區域內同一時刻只允許一對節點進行數據收發,極大降低了網絡吞吐量。相控陣天線是一種定向天線,相比全向天線,定向天線在某一個特定的方向集中能量,能夠覆蓋更大的通信范圍,有效提高空間復用效率。將相控陣天線引入自組網,可以有效提高空間復用率以及網絡吞吐量,并能降低信息被監聽的可能性,提升可靠性[1-2]。
由于空基自組網是視距(Line of Sight,LOS)信道,同時空基平臺載荷的體積和重量嚴重受限,而低頻天線體積較大,所以采用Ka/Ku頻段,也滿足了未來大容量的通信需求。本文研究基于Ka/Ku相控陣天線的空基自組網技術,利用相控陣天線定向傳輸的特性,網絡容量最高可以提高N/2倍(N為網絡節點數);同時利用Ka/Ku頻段的大帶寬特性,可以極大地提高網絡容量,使網絡有效帶寬達到NB/2 Hz(B為Ka/Ku頻段可用帶寬)。
由于Ka/Ku相控陣天線定向傳播特性,常規基于全向天線的MAC協議和路由協議不再適用于定向天線自組網,需要重新設計。目前針對基于定向天線MAC協議的研究眾多,大多只使用定向天線,在這些協議中節點需要不停地掃描以進行鄰居發現,只有當收發雙方天線對準,并且一方處于發送狀態、另一方處于接收狀態時才能通信,這樣會帶來很大的傳輸時延[3]。
按照路由建立和保持方式,自組網路由協議主要分為先應式、反應式以及混合式三種[4],反應式路由協議是自組網路由協議研究的主流方向[5]。采用定向天線的反應式定向路由協議[6]在路由發現時,由源節點選擇目的節點相應方向的天線發送,限制了搜索區域,路由發現時間和端到端時延顯著地降低,但如果定向搜索失敗,全網洪泛會造成路由發現時間劇增[7]。
針對上述問題,本文提出了基于頻分復用的定向MAC (Frequency Division Multiplexing-based Directional MAC,FDM-DMAC) 協議和定向路由協議。
為了降低接入復雜度、提高網絡吞吐量,本文提出FDM-DMAC協議。FDM-DMAC協議假設網絡中節點配備L頻段的全向天線與Ka/Ku頻段的相控陣天線,使用全向天線發送控制幀,使用定向天線進行數據傳輸,將全向天線與定向天線的優勢結合,降低時延的同時能提高空間復用率;并根據Ka/Ku頻段的大帶寬特性使用頻分復用技術實現多信道并行傳輸,提高網絡容量。
FDM-DMAC協議包括鄰居發現、鏈路建立、資源分配以及數據傳輸等過程,使用全向天線進行鄰居發現、鏈路建立以及資源分配,使用定向天線完成高速數據傳輸。
MAC協議使用定向天線能夠增加網絡容量,最高可達N/2倍,但當空基自組網中節點密度較高時,就會出現一個定向天線波束內存在多個節點的情況,如圖1所示。節點A的定向天線波束中存在多個節點,無論節點A與波束內的任何一個節點進行通信,都會對其他節點造成干擾,降低網絡容量,為了解決這個問題,FDM-DMAC協議根據Ka/Ku頻段的大帶寬特性使用頻分復用技術實現多信道,進一步提高網絡容量。
如圖2所示,節點對A,B定向傳輸數據使用頻段f1,節點對D,F定向傳輸數據使用頻段f2,兩對節點通信互不干擾。

圖1 定向天線波束中存在多個節點問題Fig.1 Multiple node problems in directional antenna beams

圖2 頻分復用示意圖Fig.2 Frequency division multiplexing diagram
由于頻分復用技術將Ka/Ku頻段劃分為多個子頻段,則收發雙方在傳輸數據之前,需要使用控制信道傳輸控制幀協商本次通信使用的頻段。因此對RTS,CTS控制幀進行改進,使用雙預約資源分配算法進行資源分配。
定向傳輸數據時,需要知道雙方的位置以便進行天線對準。因此在鄰居發現過程中將測距算法與多維尺度變換(Multidimensional Scaling,MDS)定位算法相結合,得到每個節點的相對位置。
FDM-DMAC協議重新設計了載波偵聽機制,在全向天線傳輸控制幀時,鄰居節點處于靜默狀態,但在定向數據傳輸過程中,鄰居節點可以接入信道。
在鄰居發現過程中,每個節點競爭信道,全向廣播Hello包,在接收到鄰居節點的應答信息之后,讀取RSSI值,得到節點與鄰居節點的距離[8]。
節點完成鄰居發現后,向全網廣播鄰居節點信息,從而使得每個節點能夠得到網絡拓撲信息,即任意每兩個節點之間的距離關系。再根據MDS定位算法[9],計算得到所有節點的相對位置矩陣。如果在網絡中有些節點之間并不連通,則使用最小路徑算法來計算節點之間的距離[10]。
MDS算法根據節點之間的距離矩陣D計算得到節點之間的相對位置矩陣X。假設第i個節點的坐標用[xiyi]T表示,dij表示節點i與節點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)
根據式(10)和式(11)可以得到:
(12)
從而可以求出矩陣X,得到各節點相對位置。
收發雙方通過發送RTS和CTS控制幀進行握手,從而建立鏈路。在握手過程中,對本次通信所使用的頻段進行協商,完成資源分配。本節提出的雙預約資源分配算法篩選出本次通信可用的所有頻段,再由接收節點隨機選定本次通信使用的頻段。
為了協商定向數據傳輸過程中使用的頻段,收發雙方需要在進行RTS和CTS控制幀交互的過程中,相互告知對方頻段的可用信息,如圖3和圖4所示。FDM-DMAC協議在RTS控制幀中加入了可使用頻段指示序列信息,在CTS控制幀中加入了選擇頻段指示序列信息。

圖3 RTS幀格式Fig.3 Frame format of RTS

圖4 CTS幀格式Fig.4 Frame format of CTS
在FDM-DMAC協議中,每個節點存儲一個頻段表,頻段表中包含使用頻段的收發節點坐標以及通信結束時間[11]。鄰居節點在接收到CTS控制幀后更新自身的頻段表信息。
當上層數據到達時,發送節點查詢自身存儲的頻段表,根據頻段表中存儲的通信節點對的位置信息,判斷尚未結束通信的節點對是否會對本次通信造成影響,即根據節點對的位置信息判斷,尚未結束通信的節點對是否在發送節點的定向覆蓋范圍內,以及發送節點是否在尚未結束通信的節點對的定向覆蓋范圍內。若二者均不滿足,則本次通信可以復用正在使用的頻段。發送節點對頻段表中存儲的頻段使用信息進行判斷,得到本次通信可以使用的頻段,將可使用頻段的信息放入RTS,發送給接收節點。接收節點收到RTS幀后,得到發送節點可以使用的頻段,去查詢自身存儲的頻段表,從二者均可使用頻段中隨機選擇一個頻段用于本次通信。
若通過定向覆蓋范圍判斷,發送節點可使用頻段,接收節點均不能使用,則放棄此次通信,接收節點重新偵聽信道,等待下一次通信。若發送節點在給定時間內收不到CTS幀,則重新偵聽信道。
接收節點發送CTS控制幀后,根據發送節點的位置信息,將定向天線波束對準發送節點并將數據信道切換到選定的頻段上準備接收數據。發送節點在接收到CTS控制幀后,將定向天線對準接收節點并將信道切換到選定的頻段上準備發送數據。接收節點收到數據后發送應答幀,并將天線切換到全向天線,重新偵聽信道,準備下一次通信。若接收節點沒有接收到數據,且等待超時則將天線切換到全向天線,重新偵聽信道。
在此過程中鄰居節點可以接入信道,需要根據存儲的頻段表信息選擇可使用的頻段,以免對正在通信的節點對造成干擾。
在空基自組網中,不相鄰的兩個空中節點需要通過多跳轉發的方法完成數據傳輸,這需要路由協議來完成。為提高網絡容量而引入的相控陣天線,可能會導致次佳路由[12]和路由應答風暴問題[13]的出現。本節提出基于Ka/Ku相控陣天線的空基自組網路由協議,采用加入一定延時的方法解決以上問題,并使用相鄰搜索、鏈路質量評估和備用路由的方法,減少路由發現時間,提高吞吐量。
本協議基于動態源路由(Dynamic Source Routing,DSR)協議[14],采用定向天線完成路由發現、路由維護和數據傳輸過程,其中路由發現包含路由請求和路由應答。每個節點緩存路由表和路由請求(Route Request,RREQ)列表。節點入網后會分配一個獨一無二的身份標識( Identity Document,ID),并獲取自己的位置信息。路由表內的每個條目含有目的節點ID及其位置,路由記錄和跳數。RREQ列表則維持著源節點和請求ID。
當源節點想要傳輸數據分組給目的節點時,需要在數據分組的頭部加入從源節點到目的節點的路徑記錄,數據分組就可以根據記錄到達目的節點。為了獲取路徑記錄,在路由發現過程中發送了RREQ分組,經過定向洪泛到達目的節點,目的節點再發送含有路由記錄的路由應答(Route Replay,RREP)分組回到源節點。路由維護機制則用于解決已發現鏈路斷開的問題。本協議中,基于定向搜索的路由發現和改進的路由維護機制根據定向天線的特性提高了數據傳輸效率。
源節點發送數據時首先查詢自己的緩存是否存在到達目的節點的路由,當不存在時啟動路由發現過程。
2.2.1 路由請求
路由請求使用定向天線洪泛,不會像全向天線洪泛向所有節點廣播,能夠避免可能引發的廣播風暴,節省了路由的開銷。MAC層協議初始化之后,源節點已知目的節點的位置,選擇目的節點方向的鄰居節點作為下一跳發送RREQ分組,如圖5所示。RREQ分組包含源節點ID及其位置,目的節點ID及其位置,請求分組ID,路由記錄和跳數。

圖5 定向路由請求Fig.5 Directional route request
首個收到RREQ分組的節點需要延遲t=n×tswitch再轉發,其中n為源節點的波束序號,tswitch為切換波束所用的時間。此延時與源節點波束發送的順序有關,以抵消不同波束發送時間的先后,減少RREQ分組的碰撞概率,保證最優路由及時到達目的節點,避免次佳路由的出現。當一個節點收到RREQ分組后,與RREQ列表對比后發現之前收到過相同分組,或者跳數超過分組的生存時間,則丟棄;如果RREQ分組的目的地址與此節點符合,或者此節點的緩存中有到達目的節點的路由,此時路由記錄即為需要發現的路由,進入路由應答過程;一般地,中間節點選擇朝向目的節點方向的鄰居節點轉發,同時把此中間節點ID和發送使用的天線波束編號記入RREQ分組內的路由記錄數組中,如圖6所示。如果朝向目的節點的方向沒有鄰居節點,就采用相鄰搜索的方法,即選擇其他相鄰方向的鄰居節點繼續定向搜索,避免了轉向全向搜索造成的性能損失。

圖6 路由發現流程圖Fig.6 Flowchart of route discovery
2.2.2 路由應答
如果此節點的緩存中有到源節點的路由,則RREP分組將沿著此路由帶著RREQ分組中的路由記錄傳回源節點。如果不存在,則將RREQ分組中路由記錄調轉順序作為此節點到源節點的路由。節點在發送RREP分組之前需要延遲t=Tdelay×h,其中Tdelay為估計節點間最大傳輸延時,h為RREQ包路由記錄中的跳數,這擴大了RREP分組的到達間隔,避免了路由應答風暴。
源節點收到RREP分組之后,以最小跳數和最先到達為標準,選擇兩條最優的路由記錄寫入路由表緩存。當第一條路由出錯后,第二條備用路由能夠迅速恢復鏈路,縮短路由發現時間。
節點通過周期廣播HELLO分組評估鏈路質量,使用分組投遞率[15](Packet Delivery Ratio,PDR)為鏈路劃分質量等級,避免了因選擇離目的節點最近的節點作為下一跳節點但此鏈路質量不佳而導致路由帶寬降低的問題。分組投遞率公式如下:
式中,Ps為發送分組的數量,Pr為接收分組的數量。
在數據鏈路層,如果某節點超時未能收到下一跳的ACK回復幀,則認為此節點與下一跳節點間的鏈路已斷開。當路徑上某節點在一定時間內,沒有收到其鄰居節點發來的HELLO分組或者其他控制分組,就可以認為它與此鄰居節點之間的鏈路已斷開。在上述情況下,此節點將向源節點發送路由出錯(Route Error,RERR)分組。如果該節點緩存中存在另一條到目的節點的路由,則將當前未成功發送的數據包沿該路徑發出。
每一個接收到RERR分組的節點,都將該節點緩存的與該出錯鏈路相關的信息刪除,再將RERR分組繼續轉發。當源節點收到RERR分組,同樣會刪去含有該鏈路的路由緩存。如果源節點有備用路由,則發送數據分組,否則開始新的路由發現過程。
本文介紹了定向天線相對全向天線和Ka/Ku頻段在數據傳輸中的優勢,分析了定向自組網協議中可能造成網絡吞吐量下降的問題,探討了解決協議問題在MAC層和網絡層分別采用的方法,最后根據Ka/Ku相控陣天線的特點形成了一套適合空基自組網的MAC協議和路由協議。