胡匯洋+++許應康+++李揚
摘 要: 目前飛行試驗測試數據快速增長,試飛數據的海量化是必然的趨勢,海量試飛數據的傳輸越來越成為試飛數據處理效率的瓶頸。通過分析海量試飛數據壓縮傳輸的可行性,設計了試飛數據壓縮傳輸的模型。實驗結果表明試飛數據的實時壓縮傳輸可大幅提高數據的傳輸效率和顯著縮短數據的傳輸時間,為試飛數據的快速處理打下了堅實的基礎。
關鍵詞: 試飛數據; 數據壓縮; 數據傳輸; 數據處理
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2015)10?0078?02
試飛數據處理和管理的網絡化給大家帶來高效的同時,也面臨著一些急需解決的問題:隨著飛機各種總線技術的發展,對飛行試驗中測試的要求越來越高,表現在測試參數多,測試采樣率高,測試技術地不斷發展導致測試數據量的爆炸性增長,現在一個飛行架次動輒就是幾GB,幾十GB甚至上百GB的數據,試飛數據的海量化成為未來發展的必然趨勢。在試飛數據處理和管理網絡化的背景下,試飛數據的傳輸是數據處理和管理的前提。在目前的網絡環境下,海量試飛數據的傳輸延遲已經成為影響數據處理效率的主要瓶頸。減少網絡流量、節約網絡帶寬是網絡技術發展中的焦點問題之一[1]。隨著試飛數據的海量化,這一矛盾變得尤為突出,應用高效的數據傳輸模型已成為解決這一問題的關鍵。
目前,國內外對相關領域海量數據的高效傳輸問題也都有不少的研究,大都集中在視頻、圖像的壓縮編碼上[2],對視頻數據和數字信號的實時壓縮傳輸在某些領域得到了廣泛應用。對于文件的壓縮傳輸也有不少的提及[3]。國內面對海量的試飛數據,目前大都還是采用的操作系統自帶的普通文件傳輸方式,這種方式導致數據傳輸效率低,傳輸過程不可控,極大地影響了數據處理準備的效率。本文試探建立試飛數據的壓縮傳輸模型,并通過實驗驗證試飛數據壓縮傳輸的合理性。
1 技術基礎
大家經常需要存儲和傳輸大量的數據,如何實現數據的高效存儲和高速傳輸顯得尤為關鍵。數據本身存在的冗余為問題的解決提供了可能性[4]。現在廣泛使用的各種數據壓縮技術正是利用了數據的冗余。數據壓縮技術可以分為有損壓縮和無損壓縮兩大類, 有損壓縮是以一定的精度損失來換取較高的數據壓縮率, 無損壓縮則要求經壓縮還原后能產生精確的數據副本。
無損壓縮的算法一般分為兩類[5?6], 一類是基于統計模型的壓縮, 有Huffman算法和算術編碼算法(Arithmatic Coding)等。這類算法壓縮率高,但需要精確的數據統計特性, 因而計算時間長;另一類是基于字典(Dictionary)的壓縮算法,有LZW算法和Deflate/Inflate算法等。這類算法可以在對數據統計特性一無所知的情況下,使壓縮率接近已知統計特性時所能達到的壓縮率, 而且計算速度快,易于實現,是目前常用的算法。針對這些算法的特點,并綜合考慮了試飛數據的特點,選擇使用了Deflate/Inflate算法。數據壓縮對傳輸速度的影響主要有兩個方面:壓縮解壓縮時間和壓縮后的文件大小。對于不同的網絡環境, 造成的影響是不同的, 網絡帶寬越小, 效果越明顯, 而帶寬越大, 要求壓縮解壓縮的速度越快。在此以飛行試驗常用的PCM數據為例,在百兆網的環境下,采用通用的壓縮軟件對于大小為1 019 361 946 B的文件經測試結果如表1所示。
表1 測試結果
壓縮后的大小為234 160 328 B,壓縮后的大小為原始數據大小的[15],用時為無壓縮傳輸時間的[16],如果按照先前的傳輸速度計算,經過壓縮之后的數據再傳輸解壓將會用時20+[15]×125+20=65 s,這樣就比原來節省125-65=60 s。這就說明在數據的壓縮與解壓時間遠小于數據在網絡的傳輸時間時,數據的實時在線壓縮傳輸為試飛數據傳輸效率的提升提供了可能。
2 試飛數據壓縮傳輸模型的構建
試飛數據壓縮傳輸采用C/S的架構,采用基于TCP/IP 的 Socket通信協議,數據壓縮解壓縮部分使用了Zlib的通用數據壓縮庫。試飛數據壓縮傳輸的邏輯流程圖如圖1所示。
圖1 邏輯流程圖
2.1 客戶端壓縮傳輸組件的工作流程設計
步驟一:創建一個Socket,這個Socket 負責和服務器建立連接通信。
步驟二:創建客戶端的文件發送線程及服務端消息的接收線程,以準備接收服務端的消息和傳輸數據文件。
步驟三:選擇將要傳輸的數據文件,并與服務端進行通信,獲得數據接收端有關將要傳輸文件的狀態,將其傳回客戶端,客戶端根據傳回的文件狀態信息進行文件的實時壓縮解壓傳輸。
步驟四:當數據文件傳輸完畢后,進行資源的釋放。
2.2 服務端壓縮傳輸組件的工作流程設計
工作流程設計步驟如下:
步驟一:開啟監聽端口,接收客戶端的連接請求,創建響應服務客戶端的文件接收及通信線程,準備響應客戶端的相應請求。
步驟二:創建的文件接收線程響應客戶端的文件傳輸請求,不斷接收從客戶端傳來的數據,并根據需要及時進行解壓,將處理后的數據寫入本地文件直到本次文件傳輸完畢,向客戶端發送文件接收完畢的應答。
步驟三:當客戶端得到服務器接收文件完畢的應答后,客戶端釋放文件的發送線程,這時服務端關閉文件的接收線程,釋放系統資源。
圖2 客戶端壓縮傳輸組件工作流程
圖3 服務端壓縮傳輸組件工作流程
3 試飛數據壓縮傳輸的實驗分析及應用評價
目前試飛數據的壓縮傳輸軟件已經應用到了飛行試驗的數據傳輸中,針對目前典型的試飛數據類型,分別做了不同的試驗,不失一般性和可比性,試驗采用同一壓縮算法,并在同一網絡環境下進行。
硬件平臺:服務器和客戶端的硬件配置均為Intel 酷睿2 雙核的CPU,頻率為2.8 GHz;1 GB內存;160 GB/7 200 轉硬盤;100 MHz互連網接入。
軟件平臺:微軟的Windows XP。
通過實驗,得出試驗結果如表2所示。
表2 試驗結果
試驗結果表明:采用壓縮方式后,數據傳輸時間是不采用壓縮方式傳輸時間的[13~12],顯著地改善了試飛數據的傳輸效率。
4 結 語
試飛數據的網格計算匯聚了各種異構計算系統,形成了高性能的聯合計算環境,但是網絡的傳輸性能是影響試飛數據網格處理整體效率的關鍵因素,使用基于實時壓縮解壓的數據傳輸方式減少了網絡中數據流量,極大地提高試飛數據的傳輸效率,是提高試飛數據處理效率的一種簡單、廉價、高效的手段。
參考文獻
[1] 許福永,林曉輝.計算機通信網絡中容量與流量分配的優化研究[J].甘肅工業大學學報,2003,29 (2):77?80.
[2] 胡國安,張哲,李利平.視頻壓縮理論及相關技術進展分析[J].長沙通信職業技術學院學報,2008(4):10?12.
[3] 毛國勇,張曉斌.基于序列化及壓縮的網格數據傳輸性能改進[J].計算機工程,2008,34(16):89?91.
[4] 覃征,王志敏,王利榮.基于Internet 的數據在線壓縮傳輸模型[J].小型微型計算機系統,2002,23(2):156?157.
[5] 鄭翠芳.幾種常用無損數據壓縮算法研究[J].計算機技術與發展,2011,21(9):73?76.
[6] 華強.LZ77和LZ78在數據壓縮中的組合帶參運用[J].小型微型計算機系統,2000,21(2):211?215.