朱 明 王春梅 姚秀娟 李 雪
(1.中國科學院國家空間科學中心,北京 100190;2.中國科學院大學,北京 100049)
隨著空間通信服務需求多樣化發展,空間業務種類不斷增多,實現衛星星座異構網絡的融合,構建天地一體化的通信系統成了未來衛星通信網絡技術發展的必然趨勢[1,2]。由于衛星星座異構網絡是由面向不同通信需求、采用不同接入方式及應用不同通信協議的多顆衛星組成,面對天地一體化通信系統中天基網絡高誤碼率的傳輸特點,為實現天基網絡及地基網絡的融合,并保證各個異構網絡之間的數據能夠高效可靠的傳輸,星上需要具備快速且適應高誤碼率的協議識別功能。
協議識別是采用一定算法和工具,通過特征分析,確定目標信息所采用的協議類型[1]。由于識別算法的好壞直接決定協議識別的性能[3],所以對識別算法的研究極為重要。文獻[3]中利用頻繁項集挖掘的算法對CCSDS協議中的數據鏈路層協議進行識別。而基于機器學習的方法是根據比特流所表現出的統計特征,達到對比特流自動分類目的[4]。文獻[4]中對模式匹配和機器學習的識別技術進行了深入研究。集成學習作為機器學習的一個分支,隨著集成學習的不斷發展,已經被廣泛用于解決各種實際的分類和回歸問題,例如:天氣預測、醫療疾病診斷、遙感數據分析、時間序列分析、蛋白質結構分類、網絡異常入侵檢測等[5]。此外,目前空間鏈路層協議識別方法在較高誤碼率的情況下還不能保持較好且穩定的識別效果。
鑒于此,通過對AOS協議和集成學習模型算法的研究,使用集成學習模型,設計一種基于集成學習的AOS協議識別方法,構建該AOS協議識別系統,從而達到對AOS協議有效識別的目的,并通過對比實驗,驗證該AOS協議識別系統的識別準確率、識別效率以及在高誤碼率情況下的穩定性。
為了適應航天任務對空間科學衛星數據處理系統的更高要求,CCSDS提出了AOS協議。目前,AOS協議系統已經成為各國航天任務使用的標準系統,也是在航天任務中被廣泛采用的數據鏈路層協議。AOS協議與OSI模型的對應關系如圖1所示[6]。從圖1中可以看出,AOS協議處于CCSDS分層中的數據鏈路協議子層,對應著OSI分層的數據鏈路層。為了在信噪比較低的空間鏈路實現穩定可靠的傳輸,AOS協議采用固定長度的數據傳輸數據[7]。AOS協議的數據幀結構如圖2所示[6,8],主幀頭的幀結構如圖3所示[6]。

圖1 與OSI模型的對應關系框圖Fig.1 Correspondence between AOS protocol and OSI model

圖2 AOS傳輸幀結構圖Fig.2 AOS transmission frame structure

圖3 AOS協議主幀頭結構圖Fig.3 Main frame header structure of AOS protocol
仿真的數據集共包含兩部分,分別是訓練集與測試集。每種數據集均由正例AOS協議數據和負例TM與HDLC協議數據組成。為了更好的體現正例AOS協議數據的識別評價指標,在實驗數據集中應含有與正例數量相當的負例數據,本實驗的正、負例實驗數據數量均為62768幀。由于傳輸幀長度主要區別在數據域部分,對協議的分類沒有影響,因此本章實驗部分的幀長度均以CCSDS-TM同步與信道編碼藍皮書中Turbo編碼的要求塊長度223字節為例。由于本文的實驗為兩部分,因此本文也仿真了兩種測試集。第一部分實驗的測試集誤碼率為10-7,共125536幀數據。第二部分實驗的測試集誤碼率分別為10-1,10-3,10-5,10-7,每個誤碼率均有125536幀測試數據。噪聲方式均采用高斯白噪聲。
本文正例AOS協議的仿真數據傳輸幀結構如圖4所示,其中數據傳輸幀數據域部分為213字節。

圖4 正例數據結構圖Fig.4 Positive example data structure
a)幀同步碼(SYN,4字節):CCSDS協議體系標準建議數據固定為“0x1ACFFC1D”;
b)幀版本號(TPVN,2bit):這2bits字段將把數據單元標識為推薦標準定義的傳輸幀,CCSDS標準建議的值是固定為“01”,表示虛擬信道數據單元。但是該字段包含兩位,因此會出現4種情況;
c)航天器標識符(SCID,8bit):表示航天器的標識,每次任務中固定;
d)虛擬信道標識符(VCID,6bit):最多標識64個;
e)虛擬信道幀計數(VCFC,3字節):最多224個;
f)信號域(Signal,8bit):該域是由1位的重播標記、1位的VC幀計數使用標記、2位的RSVD預留位和4位的VC幀計數循環組成;
g)傳輸幀數據域(Data,213字節):數據域填充為正弦。
仿真的負例數據包含兩種協議數據,一種是TM協議[9],另外一種是HDLC協議[10]。TM協議的仿真結構如圖5所示[9],其中傳輸幀數據域部分占213字節。

圖5 負例TM數據結構圖Fig.5 Negative example TM data structure
a)幀同步碼(SYN,4字節):CCSDS協議體系標準建議數據固定為“0x1ACFFC1D”;
b)幀版本號(TPVN,2bit):CCSDS協議體系標準建議數據固定為“00”,其他同3.1節該字段說明;
c)航天器標識符(SCID,10bit):表示航天器的標識,每次任務中固定;
d)虛擬信道標識符(VCID,3bit):最多標識8個;
e)OCF標記(OCFF,1bit):該位標記用來表示OCF標記是否使用。根據CCSDS協議體系標準建議,“1”表示使用該字段;“0”不使用該字段;
f)主信道幀計數(MCFC,1字節):最多256個;
g)虛擬信道幀計數(VCFC,1字節):同上;
h)傳輸幀數據域狀態(TFDFS,2字節):此部分共包含5個字段,分別是:1)傳輸幀副導頭標識(TFSHF,1bit):該標識位用來顯示傳輸幀中此字段是否使用。根據CCSDS協議體系標準建議,“1”表示使用,“0”表示不使用,并且在整個任務過程中保持不變;2)同步標識(SF,1bit):插入傳輸幀數據域部分的數據類型在該標識位顯示;3)包順序標志(POF,1bit):若SF為“0”,則包順序標志為“0”,表示數據包順序標志保留供CCSDS將來使用。若SF為“1”,包順序標志的使用未定義;4)段長標識符(SLI,2bits):若SF為“0”,則段長標識符為“11”。若SF為“1”,則段長標識符未定義;5)首導頭指針(FHP,11bits):如果SF設置為“0”,則首導頭指針應包含從傳輸幀數據字段開始的第一個分組的第一個八位字節的位置,如果SF設置為全“0”,則首導頭指針未定義。特殊的,如果在傳輸幀數據字段中沒有數據包開始,則首導頭指針應設置為“ 11111111111”。如果傳輸幀的傳輸幀數據字段中只包含空閑數據,則首導頭指針應設置為“111111110”;
i)數據域(Data,213字節):數據域填充為正弦。
HDLC協議的仿真結構如圖6所示[11],其中傳輸幀數據域部分占217字節。
a)起始標志(StartFlag,8bit):數據固定為0x7E;
b)地址數據(AdressData,8bit):數據填充方式為遞增序列;

圖6 負例HDLC數據結構圖Fig.6 Negative HDLC data structure
c)控制數據(ControlData,8bit):可為信息幀、監控幀和無編碼幀[11];
d)信息數據(Data,217字節):數據填充方式為正弦;
e)幀校驗序列字段(FrameCheckSqquence,2字節):對起始標志字段“0x7E”和結束標志字段“0x7E”之間的所有內容進行校驗;
f)結束標志(OverFlag,8bit):數據固定為0x7E。
基于集成學習的AOS協議識別流程如圖7所示。數據預處理的主要任務是生成并轉換成完整的可用數據,其包括數據規整、數據集成、特征選取及數據標準化四部分。模型構建的主要任務是通過調用一些簡單的基分類學習模型,從而獲得多個不同的基學習機,然后按照集成方法將基學習機組合成一個強分類學習器作為最終的集成學習機[5],最后達到協議識別的目的。

圖7 集成學習識別流程圖Fig.7 Ensemble learning identification process
原始仿真數據存儲在二進制的DAT數據文件中,為了得到規整的結構化數據集,因此需要規整原始數據。本文根據第3節中正例AOS協議與負例TM與HDLC協議數據結構對原始正例AOS協議數據與負例TM與HDLC協議數據分別進行截取,從而獲得具有結構化的正負例數據。數據規整操作共包含判定同步頭、判定幀長度、驗證幀長度和傳輸幀截取四個操做。
首先是判定同步頭,即將原始的數據文件采用模式串匹配的方法匹配同步頭。為了防止數據不完整對訓練的影響,匹配完成后將進行冗余剔除操作,即剔除首個同步頭之前的冗余數據。然后,進行判定幀長度,判定幀長度的方法是比較相鄰兩個同步頭之間的差距長度。接下來進行驗證幀長度,驗證幀長度的方法是根據連續判斷幾個傳輸幀幀長度,然后對比每個幀長度的判定結果是否相同,若大部分相同,則表明長度判定準確。最后是傳輸幀截取,即根據傳輸幀長度截取每個傳輸幀;根據字段長度截取傳輸幀字段。最終獲得截取后的結構化數據。
從圖4、圖5及圖6可知,正例與負例的數據結構是不相同的。為了防止正負例的數據結構不一致影響模型的訓練,本文據根據字段的類別將正例數據和負例數集成成為具有統一結構的數據集。詳細的數據集成內容為:
1)將負例HDLC數據的StartFlag與負例TM、正例AOS數據的SYN集成為SYN;
2)負例HDLC數據的AdressData與負例TM、正例AOS數據的VCFC集成為VCFC;
3)負例HDLC數據的ControlData、負例TM數據的TFDFS與正例AOS數據的Signal集成為Signal;
4)負例HDLC、TM數據的Data與正例AOS數據的Data集成為Data。
集成后的數據集結構如圖8所示,英文標識含義詳見第二節。其中OCFF為OCF標記,MCFC為主信道幀計數,FCS為幀校驗序列,OF為結束標志,這四部分均為負例的結構,詳見3.2節負例數據仿真。若數據不含該特征,則填“0”占位。y為數據標簽,正例為1,負例為0。

圖8 數據集結構示意圖Fig.8 Dataset structure
數據集成完成后,接下來對圖8所示的數據集的特征進行分析及選取。根據第3節的字段含義可知,Data是一個必選字段,表示傳輸數據。但是傳輸的數據信息對協議的分類并沒有實際的意義,因此在對模型訓練時,不選取Data特征作為訓練特征。
對于同一特征,不同樣本中的取值可能相差非常大,一些非常小或者非常大的數據會影響模型的正常訓練。因此本文通過標準化處理來避免極值對訓練的影響,標準化處理計算公式如式(1)所示
(1)
式中:X'——新生成的特征值;X——原始特征值;Mean——該特征所有值的均值;StandardDeviation——該特征的標準差。
經過數據預處理以后,即可得到可使用的結構化和標準化的數據集。
由圖7可知,模型構建是由基分類器、集成方法和強分類器三部分組成。其中,本文的基分類器為CART樹。
模型構建的關鍵環節在于模型所采用的集成方法。目前,集成學習已經形成了Bagging和Boosting兩種方法。
Bagging方法的過程如下:
過程:
1:Fort= 1 toT
2:ht=C(D,Dbs),依據Bootstrap分布,隨機建立子集訓練基分類器;
3:E=E∪Ct,將訓練完的基分類機集成;
4:end For
輸出:強學習機E及預測結果。
該方法的主要思想是對原始訓練集通過有放回的隨機抽樣,為每個CART樹都構造出一個大小相同但訓練個體不同的訓練集,從而訓練出有分類差異的CART樹模型[12]。在對新個體進行預測的時候,將每個基分類器預測的結果采取多數投票的方式最終確定[12]。通過Bagging方法形成的典型的強分類器算法為隨機森林(Random Forests)算法。該方法的解釋性較強,并且由于決策結果是由多棵樹共同決定,因此該方法對異常值、缺失值都不敏感。除此之外,它還能夠處理高維數據且不需要特征選擇。
而Boosting方法的過程如下:
過程:
1:Fort= 1 toT
2:ht=C(Dt),訓練基分類器;
3:θ(t)=P(ht(x)≠f(x)),計算ht誤差;
4:Dt+1=Adjust(Dt,θt),調整樣本分布;
5:E=E∪Ct,將訓練完的基分類機集成;
6:end For
輸出:強學習機E及預測結果。
該方法的主要思想是首先在已有的樣本集上開始訓練基分類器(即分類回歸樹),之后在下一輪迭代過程中,將打破基分類器在已有樣本上的優勢,提高錯誤樣本的關注度,即提高每一輪訓練過程中錯誤樣本的權重,迫使下一個基分類器更加關注錯誤樣本[13]。與此同時,該算法還是用了加權投票的策略,即為準確率較高的基分類器提高權值,進而提高整個強分類器的分類準確率[13]。采用該思想典型分類算法是Adaboost算法。而同是基于Boosting方法的梯度提升決策樹(GBDT)算法的主要思想是使用下一顆CART樹去擬合本輪CART樹產生的殘差,使每輪的殘值逐步減小[14]。這兩種方法均不需要復雜的特征工程。此外,它對缺失值魯棒,因此預測的結果比較穩定。
本文采用F1-score和AUC(Area Under ROC Curve)作為評價指標。對于AOS協議識別結果有四種情況,分別是真陽性TP即預測為正,實際也為正;假陽性FP即預測為正,但實際為負;假陰性FN即預測為負,但實際為正;真陰性TN即預測為負,實際也為負。
F1-score是統計學中用來衡量分類問題中二分類問題準確度的一種評價指標,其計算公式如式(2)
(2)
式中:precision——被預測的正例中真實也為正的比例,即準確率;recall——被預測的正例占總正例的比例,即召回率。
其中,
(3)
(4)
它能夠綜合考量精確率及召回率,其值的范圍是0-1,該值越大,說明該AOS協議識別系統的識別準確率越高。
ROC曲線是以假陽性率,即FP的概率為橫軸,范圍為0-1;以真陽性率,即TP的概率為縱軸,范圍為0-1。兩種概率構成坐標軸形成曲線圖,但是從ROC曲線圖中很難對多種模型進行量化的比較,因此本文引入了AUC作為本實驗的評價指標。AUC是ROC曲線下的面積,反映的是模型對樣本的排序能力,其值的范圍是0-1,且該值越大,說明該AOS協議識別系統的識別準確率越高。
為了驗證基于集成學習的空間鏈路層AOS協議識別系統在識別AOS協議的識別準確率、識別效率和高誤碼率情況下的穩定性。本文的實驗分為兩部分,第一部分是集成學習模型與其他非集成學習模型的對比實驗;第一部分實驗將三種集成學習模型:Adaboost、GBDT及RandomForest模型與三種非集成學習算法:基于徑向基核函數的支持向量機(SVM_rbf)、基于平均權重的K鄰近(KNN_uni)、基于距離加權的K鄰近(KNN_dis)模型進行對比。各模型參數均采用默認參數,測試數據集的誤碼率為10-7。
根據以上兩種評價指標,6種協議識別模型的識別結果見表1。通過對表1分析可以看出,在F1-score和AUC兩種評價指標情況下,Adaboost、GBDT及RandomForest三種集成學習模型的識別準確率與KNN_uni、KNN_dis、SVM_rbf等單學習模型的識別準確率相當,表明了該系統的可行性。但是,從測試運行時間上看,Adaboost、GBDT及RandomFroest三種集成學習模型的運行時間遠好于KNN_uni、KNN_dis、SVM_rbf等單學習模型的運行時間,且集成模型最差的Adaboost方法運行時間比非集成學習模型最優的SVM方法的運行時間提升95.94%,表明了該系統具有更好的運行效率方面的優勢。

表1 識別模型評價結果Tab.1 Identification model evaluation results模型F1-scoreAUC測試運行時間(s)RandomForest1.0001.0001.64GBDT1.0001.0002.33Adaboost1.0001.00013.28SVM_rbf1.0001.000327.64KNN_dis1.0001.00014421.78KNN_uni1.0001.00015762.92
由于在航天任務中,傳輸數據是在帶噪聲的環境下進行傳輸。第二部分實驗是為了驗證各該系統在不同誤碼率的情況下的穩定性。該部分實驗數據采用的誤碼率分別是10-1,10-3,10-5和10-7。評價指標采用F1-score時,在不同誤碼率的情況下,基于集成學習的AOS協議識別系統的識別結果見表2。評價指標采用AUC時,在不同誤碼率的情況下,基于集成學習的AOS協議識別系統的識別結果見表3。

表2 不同誤碼率的結果(F1-score)Tab.2 Results of Different Bit Error Rates(F1-score)模型10-110-310-510-7RandomForest1.0001.0001.0001.000GBDT1.0001.0001.0001.000Adaboost0.9781.0001.0001.000

表3 不同誤碼率的結果(AUC)Tab.3 Results of Different Bit Error Rates(AUC)模型10-110-310-510-7RandomForest1.0001.0001.0001.000GBDT1.0001.0001.0001.000Adaboost0.9791.0001.0001.000
通過對三種集成學習算法的分析,對于基于Bagging思想的隨機森林算法而言,由于新的訓練子集是由其有放回的采樣方式產生的,因此一些樣本重復采樣,而一些樣本被忽略。這導致基分類器對被重復采樣的樣本空間樣本有很高的分類精度,而對于被忽略的樣本則有較大誤差。但是,由于最終結果是由多個基分類器共同投票產生,所以當基分類器識別精度越高且基分類器之間的差異越大時,該算法的識別效果也就越好。因此,該方法對高誤碼數據依然能保持較好的識別效果且穩定。對于基于Boosting思想的Adaboost算法和GBDT算法來說,下一個基分類器的出現都是對上一個基分類器的修正,因此這樣可以有效的降低模型的偏差。但是隨著繼續訓練,識別精度在不斷提高同時也導致了整體方差的變大。在訓練過程中,就可以通過特征的隨機采樣來降低各個基分類模型的間的相關性,從而降低整體模型的方差[15]。當主分類器無法對誤碼樣本進行準確分類時,將會把該數據傳輸到新的輔助分類器,并將其輔助分類器加入到模型當中,提高模型的識別準確率,保持識別穩定性[16]。通過表2及表3看以看出,在不同誤碼率的情況下,三種基于集成學習模型的識別系統依然保持較高識別準確率,且在高誤碼率10-1時依然保持了較好的識別效果,表明了該系統在高誤碼率情況下具有較好的穩定性。
本文通過對集成學習方法和空間鏈路層協議研究的基礎上,設計一種基于集成學習的空間鏈路層AOS協議識別方法,搭建該AOS協議識別系統,該系統對空間鏈路層AOS協議在高誤碼率情況下進行有效的識別。通過實驗對比了三種非集成學習模型,實驗結果表明該系統在空間鏈路層協議識別方面具有較好且穩定的識別效果,識別效率也得到顯著提升。此外,在高誤碼率10-1時兩種評價指標下均能保持較好且穩定的識別效果。