張西波
摘要:飛機(jī)通過(guò)地空數(shù)據(jù)鏈,把飛機(jī)的位置數(shù)據(jù)和其他一些附加數(shù)據(jù)以無(wú)線數(shù)字方式廣播,由不同位置的地面接收站接收處理后,通過(guò)網(wǎng)絡(luò)自動(dòng)傳送到東區(qū)的航管樓,最終進(jìn)入自動(dòng)化系統(tǒng)。由于數(shù)據(jù)傳送經(jīng)過(guò)的傳輸設(shè)備比較多,為了有效分析ADS-B數(shù)據(jù),該文提出一種基于wireshark的協(xié)議捕捉軟件,使用lua語(yǔ)言編寫(xiě)插件,通過(guò)lua程序解析wireshark收到的數(shù)據(jù)。
關(guān)鍵詞:ADS-B;wireshark;lua;報(bào)文解析
中圖分類(lèi)號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)21-0023-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Analysis Method of ADS-B Message Data based on Wireshark
ZHANG Xi-bo
(Tianjin Air Traffic Management Sub-bureau, Tianjin 300300, China)
Abstract: Through the ground to air data link, the plane's position data and other additional data are broadcast in a wireless digital way. After being received and processed by different ground receiving stations, they are automatically transmitted to the air traffic control building in the east district through the network, and finally enter the automation system. Due to the large number of transmission devices, in order to effectively analyze ADS-B data, this paper proposes a protocol capture software based on Wireshark, which uses lua language to write plug-ins, and analyzes the data received by Wireshark through lua program.
key words: ADS-B; wireshark; lua; decoding packet
1 引言
ADS-B 是一種基于全球衛(wèi)星定位系統(tǒng),它利用空地、空空數(shù)據(jù)鏈通信,完成交通監(jiān)視和信息傳遞。它已成為國(guó)際民航組織ICAO未來(lái)航行系統(tǒng)方案中的一個(gè)重要組成部分,它是空管未來(lái)重要的航空監(jiān)視手段之一。ADS-B數(shù)據(jù)由位于西區(qū)航管樓、濱海雷達(dá)、東麗湖和海直的地面站設(shè)備接收后,通過(guò)網(wǎng)絡(luò)設(shè)備傳送到東區(qū)航管樓,然后再進(jìn)入自動(dòng)化系統(tǒng)處理,ADS-B信號(hào)傳輸需要經(jīng)過(guò)不同科室管理的傳輸設(shè)備。為了有效檢查運(yùn)行中出現(xiàn)的問(wèn)題,需要有一種新的協(xié)議解析軟件,對(duì)傳輸?shù)男盘?hào)進(jìn)行解析,來(lái)定位產(chǎn)生故障的位置。
2 工作原理
2.1 adsb信號(hào)傳輸格式
Ads-b是機(jī)載設(shè)備以無(wú)線數(shù)字廣播方式廣播飛機(jī)飛行時(shí)的數(shù)據(jù),基于ADS-B數(shù)據(jù)可以實(shí)現(xiàn)地空,空空監(jiān)視和地地監(jiān)視。asterix數(shù)據(jù)格式是歐洲民航合作組織為監(jiān)視設(shè)備與自動(dòng)化處理系統(tǒng)間的數(shù)據(jù)通信標(biāo)準(zhǔn)化而提出傳輸規(guī)程。ADS-B數(shù)據(jù)的地面?zhèn)鬏斠詀sterix數(shù)據(jù)格式封裝在網(wǎng)絡(luò)信號(hào)的udp中,天津ADS-B數(shù)據(jù)網(wǎng)絡(luò)傳輸使用目的地址為233.1.11.1多播地址,udp數(shù)據(jù)的目的端口有28120和28110兩個(gè),一個(gè)數(shù)據(jù)處理站使用28120端口,另外一個(gè)數(shù)據(jù)處理站使用28110,數(shù)據(jù)格式如下表1。一個(gè)asterix數(shù)據(jù)塊由一個(gè)CAT類(lèi)別、LEN長(zhǎng)度和若干數(shù)據(jù)記錄組成,數(shù)據(jù)類(lèi)別占用1個(gè)字節(jié),數(shù)據(jù)字段為最小的信息單位,表示方法為Innn/AAA,其中nnn為類(lèi)別號(hào),AAA為字段號(hào),ADS-B的類(lèi)別號(hào)為021,如I021/010,I021/040等。每個(gè)asterix數(shù)據(jù)記錄中有一個(gè)FSPEC和若干不同的數(shù)據(jù)字段,F(xiàn)SPEC定義該數(shù)據(jù)記錄所包含的數(shù)據(jù)字段,F(xiàn)SPEC的每一位對(duì)應(yīng)一個(gè)數(shù)據(jù)字段,0表示不選該字段,1表示選取該字段 。天津使用的ADS-B的版本為V2.1,F(xiàn)SPEC為6字節(jié)長(zhǎng),因此一個(gè)asterix數(shù)據(jù)塊最多可以有42個(gè)數(shù)據(jù)字段,數(shù)據(jù)格式見(jiàn)表1。
數(shù)據(jù)字段見(jiàn)表2。
2.2 插件的實(shí)現(xiàn)方法
lua是一種比較簡(jiǎn)單的腳本語(yǔ)言,支持函數(shù)式編程和面向?qū)ο蟮木幊棠J健>帉?xiě)的腳本可以靈活嵌入應(yīng)用程序中,由應(yīng)用程序通過(guò)解釋引擎執(zhí)行腳本,從而增加和定制應(yīng)用程序的功能。Wireshark軟件內(nèi)嵌一個(gè)lua語(yǔ)言執(zhí)行引擎,解釋引擎內(nèi)實(shí)現(xiàn)了一些讀取捕捉數(shù)據(jù)、處理數(shù)據(jù)和顯示數(shù)據(jù)的lua函數(shù),我們可以在自己編寫(xiě)的腳本中直接使用這些接口函數(shù),從捕捉到的數(shù)據(jù)中提取數(shù)據(jù),按照asterix數(shù)據(jù)格式解析數(shù)據(jù)。Wireshark 以一棵協(xié)議樹(shù)的形式對(duì)數(shù)據(jù)包分析,解析到某一層的時(shí)候,由某一層來(lái)具體解析協(xié)議。軟件在默認(rèn)安裝時(shí)會(huì)在安裝路徑下生成一個(gè)init.lua文件。Wireshark首次運(yùn)行時(shí)會(huì)讀取init.lua腳本,解釋執(zhí)行里面的語(yǔ)句。通過(guò)修改init.lua文件,在文件中添加dofile("adsb.lua"),wireshark軟件運(yùn)行時(shí)就可以調(diào)用執(zhí)行adsb.lua腳本,利用腳本文件來(lái)解析ADS-B數(shù)據(jù),wireshark程序才能識(shí)別adsb數(shù)據(jù)。Lua腳本引擎的版本可以通過(guò)查看wireshark安裝目錄下的一個(gè)luax.x.dll文件(如果文件名是lua5.1.dll,lua的版本就是5.1),ADS-B.lua腳本文件放在init.lua同一目錄下。