祝紅光,劉相坤,朱建軍,王元媛
(中國鐵道科學研究院 電子計算技術研究所, 北京 100081)
鐵路客運資源一直是相對緊張的社會資源,需要合理管理和有效地利用。目前,鐵路客票管理和銷售基本依靠地面以車站為窗口的發售和預定系統,采用比較單一的固定窗口模式。運行列車上的旅客服務和席位管理與地面得不到及時聯系,乘務工作基本處于孤立狀態。車地溝通問題束縛了補票、乘降管理等席位管理及旅客服務工作的開展。因此,運行列車和地面系統需要建立有效的通信信道,基于該通道,建立席位管理和服務管理應用系統,以提高列車席位利用率及車上服務和管理水平。
列車和地面通信受到多方面因素的影響。首先列車和地面必須通過無線移動信道進行通信;并且列車具有地域跨度大的特點;車地應用系統傳輸數據量比較大,且交易流程復雜?;谶@些特點,構建滿足廣闊區域跨度,又穩定可靠的通信信道是系統建設的首要任務。
基于現有無線移動物理信道水平和地址分配模式,在系統設計中,需要網絡層控制和應用層控制。網絡層控制策略,降低因為地址指向錯誤導致的丟包率;應用層控制以超時控制和應答協議保證數據信息的完整和交易流程的連貫性。
一次列車可以跨越多個省市,如果沿途線路地理條件復雜,如山區、隧道等地理條件,將會影響無線通信的質量。新型高速列車運行速度超過300 km/h,停站時間非常短,很多中間站僅停靠1 min,致使利用停站時間傳輸數據不可行,大部分數據需要在列車運行中傳遞。另外,席位信息實時性要求高,超出限售區間,席位信息就成為失效信息。以上都要求通信協議層要在任何可以傳遞數據的時間區間內快速交流數據,以保證數據的及時有效。
車載終端和地面系統之間的業務信息是對等交流,即不是簡單的下載數據和瀏覽數據的通信方式。地面席位信息向列車發布的同時,列車信息也向地面匯總,這種對等模式區別于瘦終端系統的非對稱數據流模式。
在對等交互模式中,車上終端的指令單元和數據單元混合并存。簡短指令型和長篇幅的數據型通信單元需要不同的傳遞控制流程。在僅存在指令型通信單元的無線系統中,應用控制協議會相對簡單。因此,在站車系統中,傳輸控制協議非常重要。
無線數據通信有兩種協議可以采用:面向連接的傳輸控制協議(TCP)和非面向連接的用戶數據報協議(UDP)。
TCP(Transmission Control Protocol)需要先建立連接,后建立數據交流“通道”;數據是通過該“通道”進行傳遞;數據交流完畢,需要關閉“通道”。數據傳輸中,TCP連接是個可靠的數據通道,能夠保證數據的完整性和順序性。在通道關閉之前,網絡不能中斷。如果出現網絡故障,TCP通道就會中斷,需要再次建立連接。
UDP(User Datagram Protocol)不保持一個固定的“通道”。每一個報文都從源點獨立地發向目的點。在傳輸過程中,不提供任何傳輸控制。UDP不保證報文到達目的點,也不能保證數據報文之間的順序。
站車交互系統不是簡單的指令元系統(如短信系統),而是復雜的應用交易系統。交易中存在交互流程。TCP協議適合站車交易流程。因為建立了TCP連接,交易兩端就可以順序地進行應答對話,一切傳輸控制由TCP完成。
站車系統采用中國移動的GPRS(General Packet Radio Service)網絡為底層傳輸通道。在網絡通道不穩定且終端IP動態變化的情況下,TCP連接會出現頻繁的重建,浪費大量的網絡資源。嚴重時,應用數據無法傳送。
UDP協議是站車交互系統所必須采用的傳輸層協議。UDP報文直接傳輸應用數據,沒有復雜的連接建立過程。在網絡不穩定的情況下,能夠實現間斷性數據傳輸。UDP每個報文都綁定目的地址,服務端可以通過地址查詢,實現每個UDP報文的目的地址隨終端IP變化而變化。UDP的缺點是沒有傳輸控制能力。傳輸過程中,應用系統要負責控制補傳報文和報文順序。
根據鐵路客運站車交互系統無線通信的特點,采用UDP網絡協議。由于UDP協議是不可靠通信方式,要實現站車交易流程順暢和完整,系統應用層必須具有通信控制協議。站車系統的通信控制主要體現在“動態地址查詢”、“指令應答”和“數據傳送”方面。
在無線網絡兩端,終端是動態地址,信息發布服務器是固定地址。終端的每次連接都由移動系統在地址段內動態分配一個IP地址。
移動終端的SIM卡號可以作為移動設備的唯一標示。移動網絡每次都是面向SIM卡分配IP地址,所以SIM卡和IP地址存在固定的對應關系。采用終端占用IP查詢的回應方式,可以降低信息發布服務器的丟包率。

圖1 查詢IP通信圖
由圖1可見,利用SIM卡和IP地址的對應關系,在回應信息之前,信息發布服務器先查詢當前該SIM卡所占用IP地址,再發送回應報文,可以有效提高發送報文的命中率。
指令報文區別于數據報文。指令報文由指令字和參量構成,所有參量的總字節長度小于一個站車系統報文長度限制(站車報文長度遠小于UDP報文長度限制)。大于一個報文長度的數據需要分成多個報文發送,屬于“數據傳送”形式。
指令單元由來往兩個報文完成。
指令應答中,交易任務的超時控制為“指令超時”,如果指令超時,會在有限次數重復發送。指令號是指令報文的唯一標示,接收端接收到相同指令號的指令,采用丟棄后來者方式,以避免重復操作。
指令應答是最簡單,也是最頻繁的報文控制形式。是交易流程實現的最小構成單元。
UDP的報文受到網絡MTU的限制,即1個UDP包大小最好小于MTU。報文可以包含一個完整的命令字,一般數據必須先分片,再由多個UDP報文進行傳輸。由于UDP無序且丟失概率高,所以保證數據傳送的完整性是重要的應用層協議環節。該協議包括數據描述、數據發送和數據補充3個環節,見圖2。

圖2 數據完整控制
3.3.1 數據描述
數據描述是在數據發送前的握手指令,數據描述中攜帶數據描述信息,包括數據總大小、分片大小和數據發送標識號。數據描述信息是接收端對數據完整性的檢測依據。接收端根據數據描述建立數據接收任務,并向發送端發送“確認報文”。確認報文中包括終端無線通道的容量信息,指導數據推送環節的策略實現。
發送端在數據描述指令得到確認后發送數據,確保數據描述報文安全到達,且接收端準備就緒。
3.3.2 數據推送
發送端接收到數據描述回應后,進行數據發送。首先,按照數據描述中的數據分片大小對數據分片包裝,然后向接收端發送。包裝中包括標識號和偏移量。接收端會根據偏移量重新組合還原數據。
為了提高效率,發送數據采用單向推送方式,而不是應答方式。即接收端無需確認每個數據報文。發送端把全部分片發送到接收端,在無線信號良好的環境中,數據會準確地到達接收端;在信號不穩定的情況下,會造成數據報文的丟失,需要數據補充環節來保證數據完整。
在服務端向列車終端進行數據推送過程中,由于終端接收能力的局限,瞬間大數據量會造成接收終端擁塞,致使數據報的丟失。服務端會根據握手時獲取的終端設備信息實施發送流量控制,避免因超出終端設備接收能力而造成大量數據報文丟失。
3.3.3 數據完整檢測和數據補充
在數據推送過程中,接收端每次接收到數據報文都檢測數據是否完整。一旦完整,就把數據提交到應用層;如果不完整,繼續等待,直到超出數據接收時限。
接收端的任務超出數據接收時限,數據仍然存在缺失,任務進入數據補充階段。根據缺失情況,接收端請求數據補發,發送端根據請求補發數據報文,經過多次補充過程,最終達到數據的完整。
數據描述、數據推送和數據補充構成一個完整的數據傳遞協議,結合指令應答,構成基礎的網絡傳輸控制協議,為站車系統構建了通信信道。
本文針對“鐵路站車無線交互系統”,著重討論了列車與地面的通信條件,系統的網絡協議比較和選擇,UDP報文的指令和數據傳輸控制方式,流量控制和動態IP查詢。利用以上討論內容,為“鐵路站車無線交互系統”構建了穩定的通信信道。