游積平,崔哲虎,高建秋,鐘晨,趙博,鄭凱,林俊君
(1.廣東省人工影響天氣辦公室,廣東廣州 510080;2.中國氣象科學研究院,北京 100081)
基于Socket技術(shù)的飛機增雨遠程通信平臺的實現(xiàn)
游積平1,崔哲虎2,高建秋1,鐘晨1,趙博1,鄭凱1,林俊君1
(1.廣東省人工影響天氣辦公室,廣東廣州510080;2.中國氣象科學研究院,北京100081)
介紹了飛機增雨的空地傳輸串口通信技術(shù)、計算機網(wǎng)絡端口Socket技術(shù)和互聯(lián)網(wǎng)信息加密傳輸技術(shù),通過具有公網(wǎng)IP地址的服務器為信息轉(zhuǎn)發(fā)平臺,以無線數(shù)字電臺結(jié)合互聯(lián)網(wǎng)為通信載體,在Windows操作系統(tǒng)平臺下利用C++Builder語言搭建異步、非阻塞和多線程的遠程飛機增雨信息傳輸平臺,實現(xiàn)了增雨飛機與地面之間的遠程通信。
計算機技術(shù)與應用;套接字技術(shù);飛機增雨;遠程通信;空地傳輸
游積平,崔哲虎,高建秋,等.基于Socket技術(shù)的飛機增雨遠程通信平臺的實現(xiàn)[J].廣東氣象,2016,38(4):70-73.
2010年中國氣象局為推進全國人工影響天氣工作機制體制創(chuàng)新,加強跨?。▍^(qū))聯(lián)合作業(yè),統(tǒng)籌考慮天氣系統(tǒng)上下游相關地方人工增雨的有利條件,組織開展規(guī)?;淖鳂I(yè),旨在提高區(qū)域性作業(yè)水平和服務整體效益,推動建立跨?。▍^(qū))人影作業(yè)機制。目前我國大部分省均已開展飛機增雨的業(yè)務工作,飛機增雨作為實現(xiàn)跨省、跨區(qū)域作業(yè)的一個主要手段,空地通信能夠科學有效地指揮飛機開展增雨作業(yè),只有了解飛機的實際飛行情況,結(jié)合地面的氣象資料及時指導飛機增雨作業(yè),才能提高飛機增雨效率。飛機增雨空地通信方式主要有無線電臺[1-3]、北斗衛(wèi)星[4-5]等。北斗衛(wèi)星雖然具有通信遠、不受地形影響等特點,但其帶寬窄、費用高,每次只能發(fā)送幾十個字節(jié)的短信,不能傳輸圖像、數(shù)據(jù)文件,且需在飛機上方安裝北斗衛(wèi)星天線,一定程度上影響北斗衛(wèi)星在飛機增雨業(yè)務中的應用。利用數(shù)字無線電臺在其有效半徑(200 km)范圍內(nèi)進行空地信息通信,實現(xiàn)較大數(shù)據(jù)文件的傳輸,而且具有安裝簡單、價格低廉等特點,若結(jié)合互聯(lián)網(wǎng)通信技術(shù),建立基于Socket技術(shù)的遠程通信平臺,對開展飛機跨省增雨作業(yè),實現(xiàn)地面與飛機甚至飛機與飛機之間的遠程通信,有效提高全國人工增雨作業(yè)規(guī)模化、集約化和區(qū)域云水資源利用率具有重要意義。
1.1互聯(lián)網(wǎng)通信與串口通信的銜接
目前互聯(lián)網(wǎng)通信主要利用Socket技術(shù),通過公網(wǎng)IP地址的服務器實現(xiàn)C/S模式下多個客戶端機器之間的有效連接。服務器端作為一個轉(zhuǎn)發(fā)數(shù)據(jù)包的機器,主要負責將某一用戶發(fā)來的數(shù)據(jù)包轉(zhuǎn)送到另一用戶和管理所有在線用戶的信息。而對于客戶端在向服務器端的Socket發(fā)出連接請求并與服務器建立連接后,就可以通過Internet傳輸數(shù)據(jù)和文件,其傳輸方式主要有阻塞、同步和非阻塞、異步等。飛機增雨的空地數(shù)據(jù)傳輸通過飛機上的PC機與地面上PC機之間的串口通信,無線數(shù)字電臺是實現(xiàn)空地之間通信的載體,而與地面數(shù)字電臺和互聯(lián)網(wǎng)連接的PC機既是客戶端又是服務器端,對于互聯(lián)網(wǎng)來說,該PC機是客戶端,但對于增雨飛機來說,該PC機相當于服務器端,解析由互聯(lián)網(wǎng)傳來的數(shù)據(jù)包信息并通過串口轉(zhuǎn)發(fā)到增雨飛機上的電腦。同時,解析由增雨飛機上串口傳來的信息轉(zhuǎn)發(fā)到互聯(lián)網(wǎng)其它用戶。當從互聯(lián)網(wǎng)Client Socket控件On Read事件中的Receive Buf函數(shù)獲得數(shù)據(jù)包并進行解析,若該數(shù)據(jù)包是發(fā)給增雨飛機的,則通過串口通信YbCommDevice控件中的Write Package函數(shù)將此數(shù)據(jù)包發(fā)出;同樣,當從串口通信Yb Comm Device控件On Package事件中Read Package的函數(shù)獲得的數(shù)據(jù)包進行解析,若此數(shù)據(jù)包是發(fā)給地面互聯(lián)網(wǎng)用戶的,則通過互聯(lián)網(wǎng)通信Socket控件的Send Buf函數(shù)將此數(shù)據(jù)包發(fā)送給公網(wǎng)IP地址的服務器,并由此服務器轉(zhuǎn)發(fā)數(shù)據(jù)包到指定的互聯(lián)網(wǎng)客戶。通過互聯(lián)網(wǎng)和串口通信的銜接技術(shù)從而實現(xiàn)增雨飛機與地面互聯(lián)網(wǎng)多個客戶端用戶的數(shù)據(jù)交流。
1.2人影數(shù)據(jù)傳輸?shù)募用芎徒饷芗夹g(shù)
由于互聯(lián)網(wǎng)中的數(shù)據(jù)信息傳輸大多數(shù)是沒有經(jīng)過加密處理,對于人工影響天氣的作業(yè)指令發(fā)送和增雨飛機的實時航跡傳輸?shù)纫恍┲匾畔⑷菀妆粋陕牻厝?,甚至惡意篡改,為保證在互聯(lián)網(wǎng)中人影數(shù)據(jù)傳輸?shù)陌踩珕栴},飛機增雨遠程通信平臺在互聯(lián)網(wǎng)數(shù)據(jù)傳輸中采用了目前技術(shù)上較為成熟的對稱密鑰加密方法對人影作業(yè)信息進行加密處理,對稱加密算法是一種傳統(tǒng)的密碼算法,在互聯(lián)網(wǎng)中不同節(jié)點之間的加密解密雙方擁有相同的密鑰,在互聯(lián)網(wǎng)的客戶端發(fā)出數(shù)據(jù)信息前進行加密,到達服務器后進行解密,了解數(shù)據(jù)包的屬性和接收方,然后對數(shù)據(jù)包進行加密轉(zhuǎn)送到接收端,接收端對數(shù)據(jù)包進行解密。因此在互聯(lián)網(wǎng)的數(shù)據(jù)傳輸過程中其安全性主要依靠于密鑰的保管。
2.1通信架構(gòu)
空地通信系統(tǒng)采用了有線互聯(lián)網(wǎng)結(jié)合數(shù)字電臺的無線通信網(wǎng)絡數(shù)據(jù)傳輸方式。其中有2個通信端節(jié)點是非常重要的,一個Socket服務器端節(jié)點,所有通信端均登錄到Socket服務器,由Socket服務器組織各通信節(jié)點之間的通信,完成互聯(lián)網(wǎng)之間數(shù)據(jù)包轉(zhuǎn)發(fā)的任務;另一個重要的通信節(jié)點是既連接數(shù)字電臺又連接互聯(lián)網(wǎng)的地空連接端,在地面上的互聯(lián)網(wǎng)通信節(jié)點與飛機的通信要通過地空連接端,它實際起到一個互聯(lián)網(wǎng)節(jié)點與增雨飛機之間的地空通信互傳的作用。增雨飛機上有2個電臺,一個電臺與GPS定位設備相連,負責將增雨飛機的定位信息向地面發(fā)送,并由地空連接端將增雨飛機的實時定位信息轉(zhuǎn)送到互聯(lián)網(wǎng)端的其它節(jié)點;另一個電臺用于空-地通信,通過地空連接端,實現(xiàn)將互聯(lián)網(wǎng)上的其它節(jié)點與增雨飛機之間的互送信息。對于互聯(lián)網(wǎng)端,在地面上只要通過Internet,登錄到廣東省人影辦的Socket服務器,就可實現(xiàn)與增雨飛機的實時通信。飛機增雨遠程通信網(wǎng)絡拓撲圖見圖1。
2.2信息流程
飛機增雨遠程空地通信系統(tǒng)的建立是基于互聯(lián)網(wǎng)的Socket技術(shù)和無線電臺的串口通信技術(shù),其通信信息流程見圖2。
圖1 基于Socket技術(shù)飛機增雨遠程通信網(wǎng)絡拓撲圖
在互聯(lián)網(wǎng)端的服務器監(jiān)聽特定的一個端口,等待客戶端的連接請求,在接到互聯(lián)網(wǎng)客戶端的連接請求時,服務器就為它建立一個連接,并把該連接的有關信息加入到用戶鏈表。在建立連接的過程中,服務器與客戶機都被分配一個本地端口,并將套接字綁定到各自的端口上進行通信。廣東飛機增雨遠程空地通信平臺利用C+ +Builder編程語言進行開發(fā)建設,采用非阻塞、異步通信連接方式,在互聯(lián)網(wǎng)的客戶端和地空連接端分別將ClientSocket控件的ClientType屬性設置為ctNonBlocking(非阻塞連接)、端口號Port =11000;服務器端的ServerSocket的ServerType屬性同樣設置為ctNonBlocking、端口號Port= 11000。當服務器端的Socket進行讀或?qū)憰r,客戶端和地空連接端就會觸發(fā)OnRead或OnWrite異步讀或?qū)懯录M?,當客戶端的Socket試圖進行讀或?qū)憰r,服務器端的Socket也會觸發(fā)On-Read或OnWrite異步讀或?qū)懯录?。并利用C++Builder語言提供的TThread類完成多線程的文件傳輸功能。同時,在互聯(lián)網(wǎng)通信過程中均使用了對稱密鑰加密方法進行加密,增雨飛機終端通過地空連接端登錄到服務器,作為一個單獨的客戶加入到服務器的用戶鏈表中,實現(xiàn)與其它用戶進行通信。
圖2 基于Socket技術(shù)飛機增雨遠程通信信息流程圖
2.3設計思路
飛機增雨遠程通信平臺的研發(fā)是充分利用廣東人影現(xiàn)有的計算機、網(wǎng)絡條件進行的。包括目前已有的無線數(shù)字電臺、公網(wǎng)IP地址的服務器、計算機、GPS定位設備、3G無線上網(wǎng)卡以及飛機增雨作業(yè)外場的ADSL有線寬帶網(wǎng)等硬件,通過軟件開發(fā)將這些設備有效地連接一起。同時,設計每個通信包的數(shù)據(jù)結(jié)構(gòu)和信息標識,數(shù)據(jù)包中前4個字節(jié)分別代表要傳輸該數(shù)據(jù)包的信息。其中$NU$用戶#1:代表新用戶進入;$ CL$用戶#1:代表該在線用戶退出;$SE$用戶1 #1用戶2#2:代表用戶1向用戶2發(fā)送文字信息;$AU$用戶名#1:代表該用戶向所有在線用戶群發(fā)信息;$FI$用戶1#1用戶2#2文件名#3文件大小#4每次傳輸文件包的大小#5:代表用戶1向用戶2發(fā)送要傳輸?shù)奈募畔ⅲ瑢⒁獋鬏數(shù)奈募?、文件大小以及每次傳輸?shù)據(jù)包的大小告知用戶2;$FT$用戶1#2用戶2#2:代表用戶1向用戶2發(fā)送文件內(nèi)容;$FE$用戶1#1用戶2# 2:代表用戶1向用戶2發(fā)送文件最后一個數(shù)據(jù)包等,其中$、#1、#2、#3、#4、#5均為分隔符。通過計算機的串口通信與互聯(lián)網(wǎng)通信的有效銜接,在互聯(lián)網(wǎng)傳輸過程中利用公網(wǎng)IP地址的服務器解析數(shù)據(jù)包內(nèi)容識別用戶和轉(zhuǎn)發(fā)數(shù)據(jù)包,從而實現(xiàn)了多個用戶對增雨飛機的遠程通信(圖3)。
圖3 增雨飛機空地通信平臺界面
其中通信平臺界面右上角的在線用戶可以是多個互聯(lián)網(wǎng)用戶或者增雨飛機的用戶,選擇不同的用戶名就可以向其發(fā)送信息或發(fā)送文件。
廣東飛機增雨遠程空地平臺之間的串口通信速率為19 200 bit/s(波特率bps)、輸入輸出緩沖均為8 192 byte(字節(jié)),為解決由于互聯(lián)網(wǎng)傳輸速率快而空地串口傳輸速率慢容易造成數(shù)據(jù)緩沖溢出等問題,適當降低有線互聯(lián)端的傳輸速率,在由地面互聯(lián)客戶端向增雨飛機傳輸文件過程中,每個數(shù)據(jù)包大小設定1 024 byte,而數(shù)據(jù)包之間的時間間隔設定2 s,即每隔2 s發(fā)送一個數(shù)據(jù)包,這樣較好地解決了互聯(lián)網(wǎng)與無線網(wǎng)之間由于傳輸速率差別所造成的數(shù)據(jù)緩沖溢出。
廣東飛機增雨遠程空地平臺已經(jīng)投入實際飛機人工增雨業(yè)務使用,每年3—5月開展飛機增雨作業(yè)中,在廣東省氣象局安放一臺具有公網(wǎng)IP的計算機作為SOCKET服務器,以深圳機場或佛山機場或湛江機場作為空地通信的地面接收、發(fā)送及中轉(zhuǎn)節(jié)點,而在互聯(lián)網(wǎng)上作為其它的通信網(wǎng)節(jié)點,組成一個全方位、空地為一體的遠程通信平臺,其業(yè)務應用通信方式及網(wǎng)絡節(jié)點布局見圖4。
圖4 基于SOCKET技術(shù)的飛機增雨遠程通信方式及網(wǎng)絡節(jié)點連接示意圖
在業(yè)務應用中,不同的通信連接方式在不同的地點均可實現(xiàn)與空中飛行的增雨飛機之間進行通信聯(lián)系和文件傳輸,且地面上各個通信網(wǎng)絡節(jié)點也可相互通信。增雨飛機作為其中一個網(wǎng)絡節(jié)點能與地面任何地點上的網(wǎng)絡節(jié)點進行通信。同時,通過增雨飛機上的其中一個數(shù)字電臺每隔2 s就實時向地面?zhèn)鬏敽桔E,在地面上各個網(wǎng)絡節(jié)點能同時接收并實時顯示增雨飛機的航跡,從而實現(xiàn)了在地面不同地點利用互聯(lián)網(wǎng)實時監(jiān)控增雨飛機的能力。
1)利用有線互聯(lián)網(wǎng)結(jié)合無線數(shù)字電臺的綜合通信技術(shù),實現(xiàn)了飛機增雨的遠程空地傳輸,大大拓寬飛機增雨的空地通信距離,有利于我國組織開展跨省、跨區(qū)域的飛機增雨作業(yè)。
2)客戶端可采用多種通信方式連上互聯(lián)網(wǎng)并登錄到Socket服務器,就可以實現(xiàn)與增雨飛機的通信。
3)利用互聯(lián)網(wǎng)的Socket技術(shù)和空地串口通信技術(shù)的原理,可以實現(xiàn)增雨飛機與增雨飛機之間的通信聯(lián)絡。
4)由于數(shù)據(jù)無線電臺的傳輸距離有限,一般在半徑200 km左右,因此地面接收天線的位置和飛機作業(yè)區(qū)域不宜太遠。
[1]游積平,馮永基,林俊君,等.飛機增雨遠程遙控催化作業(yè)的實現(xiàn)[J].氣象,2007,33(9):103-106.
[2]阮征,彭浩,周國春,等.信息空地傳輸顯示系統(tǒng)及試用[J].氣象,2005,31(7):80-84.
[3]樊鵬,陳保國,郭強,等.飛機人工增雨空地傳輸網(wǎng)絡系統(tǒng)[J].氣象科技,2005,33(3):260-263.
[4]陳農(nóng),鄭凱,孫利民.黑龍江省飛機人工增雨空地傳輸系統(tǒng)業(yè)務化設計與研制[J].黑龍江氣象,2008,25(2):26-27.
[5]王文新,王金民,劉國進,等.飛機人工增雪空地傳輸系統(tǒng)的研制及應用[J].科技創(chuàng)新導報,2008(6):166 -171.
TP39
A
10.3969/j.issn.1007-6190.2016.04.018
2015-12-10
中國氣象科學研究院項目“飛機探測空地實時通信系統(tǒng)”
游積平(1964年生),男,本科,高級工程師,主要從事人工影響天氣工作。E-mail:jpyou@grmc.gov.cn