祝紅光,劉相坤,朱建軍,王元媛
(中國鐵道科學研究院 電子計算技術研究所, 北京 100081)
鐵路客運資源一直是相對緊張的社會資源,需要合理管理和有效地利用。目前,鐵路客票管理和銷售基本依靠地面以車站為窗口的發(fā)售和預定系統(tǒng),采用比較單一的固定窗口模式。運行列車上的旅客服務和席位管理與地面得不到及時聯(lián)系,乘務工作基本處于孤立狀態(tài)。車地溝通問題束縛了補票、乘降管理等席位管理及旅客服務工作的開展。因此,運行列車和地面系統(tǒng)需要建立有效的通信信道,基于該通道,建立席位管理和服務管理應用系統(tǒng),以提高列車席位利用率及車上服務和管理水平。
列車和地面通信受到多方面因素的影響。首先列車和地面必須通過無線移動信道進行通信;并且列車具有地域跨度大的特點;車地應用系統(tǒng)傳輸數(shù)據(jù)量比較大,且交易流程復雜。基于這些特點,構建滿足廣闊區(qū)域跨度,又穩(wěn)定可靠的通信信道是系統(tǒng)建設的首要任務。
基于現(xiàn)有無線移動物理信道水平和地址分配模式,在系統(tǒng)設計中,需要網(wǎng)絡層控制和應用層控制。網(wǎng)絡層控制策略,降低因為地址指向錯誤導致的丟包率;應用層控制以超時控制和應答協(xié)議保證數(shù)據(jù)信息的完整和交易流程的連貫性。
一次列車可以跨越多個省市,如果沿途線路地理條件復雜,如山區(qū)、隧道等地理條件,將會影響無線通信的質量。新型高速列車運行速度超過300 km/h,停站時間非常短,很多中間站僅??? min,致使利用停站時間傳輸數(shù)據(jù)不可行,大部分數(shù)據(jù)需要在列車運行中傳遞。另外,席位信息實時性要求高,超出限售區(qū)間,席位信息就成為失效信息。以上都要求通信協(xié)議層要在任何可以傳遞數(shù)據(jù)的時間區(qū)間內快速交流數(shù)據(jù),以保證數(shù)據(jù)的及時有效。
車載終端和地面系統(tǒng)之間的業(yè)務信息是對等交流,即不是簡單的下載數(shù)據(jù)和瀏覽數(shù)據(jù)的通信方式。地面席位信息向列車發(fā)布的同時,列車信息也向地面匯總,這種對等模式區(qū)別于瘦終端系統(tǒng)的非對稱數(shù)據(jù)流模式。
在對等交互模式中,車上終端的指令單元和數(shù)據(jù)單元混合并存。簡短指令型和長篇幅的數(shù)據(jù)型通信單元需要不同的傳遞控制流程。在僅存在指令型通信單元的無線系統(tǒng)中,應用控制協(xié)議會相對簡單。因此,在站車系統(tǒng)中,傳輸控制協(xié)議非常重要。
無線數(shù)據(jù)通信有兩種協(xié)議可以采用:面向連接的傳輸控制協(xié)議(TCP)和非面向連接的用戶數(shù)據(jù)報協(xié)議(UDP)。
TCP(Transmission Control Protocol)需要先建立連接,后建立數(shù)據(jù)交流“通道”;數(shù)據(jù)是通過該“通道”進行傳遞;數(shù)據(jù)交流完畢,需要關閉“通道”。數(shù)據(jù)傳輸中,TCP連接是個可靠的數(shù)據(jù)通道,能夠保證數(shù)據(jù)的完整性和順序性。在通道關閉之前,網(wǎng)絡不能中斷。如果出現(xiàn)網(wǎng)絡故障,TCP通道就會中斷,需要再次建立連接。
UDP(User Datagram Protocol)不保持一個固定的“通道”。每一個報文都從源點獨立地發(fā)向目的點。在傳輸過程中,不提供任何傳輸控制。UDP不保證報文到達目的點,也不能保證數(shù)據(jù)報文之間的順序。
站車交互系統(tǒng)不是簡單的指令元系統(tǒng)(如短信系統(tǒng)),而是復雜的應用交易系統(tǒng)。交易中存在交互流程。TCP協(xié)議適合站車交易流程。因為建立了TCP連接,交易兩端就可以順序地進行應答對話,一切傳輸控制由TCP完成。
站車系統(tǒng)采用中國移動的GPRS(General Packet Radio Service)網(wǎng)絡為底層傳輸通道。在網(wǎng)絡通道不穩(wěn)定且終端IP動態(tài)變化的情況下,TCP連接會出現(xiàn)頻繁的重建,浪費大量的網(wǎng)絡資源。嚴重時,應用數(shù)據(jù)無法傳送。
UDP協(xié)議是站車交互系統(tǒng)所必須采用的傳輸層協(xié)議。UDP報文直接傳輸應用數(shù)據(jù),沒有復雜的連接建立過程。在網(wǎng)絡不穩(wěn)定的情況下,能夠實現(xiàn)間斷性數(shù)據(jù)傳輸。UDP每個報文都綁定目的地址,服務端可以通過地址查詢,實現(xiàn)每個UDP報文的目的地址隨終端IP變化而變化。UDP的缺點是沒有傳輸控制能力。傳輸過程中,應用系統(tǒng)要負責控制補傳報文和報文順序。
根據(jù)鐵路客運站車交互系統(tǒng)無線通信的特點,采用UDP網(wǎng)絡協(xié)議。由于UDP協(xié)議是不可靠通信方式,要實現(xiàn)站車交易流程順暢和完整,系統(tǒng)應用層必須具有通信控制協(xié)議。站車系統(tǒng)的通信控制主要體現(xiàn)在“動態(tài)地址查詢”、“指令應答”和“數(shù)據(jù)傳送”方面。
在無線網(wǎng)絡兩端,終端是動態(tài)地址,信息發(fā)布服務器是固定地址。終端的每次連接都由移動系統(tǒng)在地址段內動態(tài)分配一個IP地址。
移動終端的SIM卡號可以作為移動設備的唯一標示。移動網(wǎng)絡每次都是面向SIM卡分配IP地址,所以SIM卡和IP地址存在固定的對應關系。采用終端占用IP查詢的回應方式,可以降低信息發(fā)布服務器的丟包率。
圖1 查詢IP通信圖
由圖1可見,利用SIM卡和IP地址的對應關系,在回應信息之前,信息發(fā)布服務器先查詢當前該SIM卡所占用IP地址,再發(fā)送回應報文,可以有效提高發(fā)送報文的命中率。
指令報文區(qū)別于數(shù)據(jù)報文。指令報文由指令字和參量構成,所有參量的總字節(jié)長度小于一個站車系統(tǒng)報文長度限制(站車報文長度遠小于UDP報文長度限制)。大于一個報文長度的數(shù)據(jù)需要分成多個報文發(fā)送,屬于“數(shù)據(jù)傳送”形式。
指令單元由來往兩個報文完成。
指令應答中,交易任務的超時控制為“指令超時”,如果指令超時,會在有限次數(shù)重復發(fā)送。指令號是指令報文的唯一標示,接收端接收到相同指令號的指令,采用丟棄后來者方式,以避免重復操作。
指令應答是最簡單,也是最頻繁的報文控制形式。是交易流程實現(xiàn)的最小構成單元。
UDP的報文受到網(wǎng)絡MTU的限制,即1個UDP包大小最好小于MTU。報文可以包含一個完整的命令字,一般數(shù)據(jù)必須先分片,再由多個UDP報文進行傳輸。由于UDP無序且丟失概率高,所以保證數(shù)據(jù)傳送的完整性是重要的應用層協(xié)議環(huán)節(jié)。該協(xié)議包括數(shù)據(jù)描述、數(shù)據(jù)發(fā)送和數(shù)據(jù)補充3個環(huán)節(jié),見圖2。
圖2 數(shù)據(jù)完整控制
3.3.1 數(shù)據(jù)描述
數(shù)據(jù)描述是在數(shù)據(jù)發(fā)送前的握手指令,數(shù)據(jù)描述中攜帶數(shù)據(jù)描述信息,包括數(shù)據(jù)總大小、分片大小和數(shù)據(jù)發(fā)送標識號。數(shù)據(jù)描述信息是接收端對數(shù)據(jù)完整性的檢測依據(jù)。接收端根據(jù)數(shù)據(jù)描述建立數(shù)據(jù)接收任務,并向發(fā)送端發(fā)送“確認報文”。確認報文中包括終端無線通道的容量信息,指導數(shù)據(jù)推送環(huán)節(jié)的策略實現(xiàn)。
發(fā)送端在數(shù)據(jù)描述指令得到確認后發(fā)送數(shù)據(jù),確保數(shù)據(jù)描述報文安全到達,且接收端準備就緒。
3.3.2 數(shù)據(jù)推送
發(fā)送端接收到數(shù)據(jù)描述回應后,進行數(shù)據(jù)發(fā)送。首先,按照數(shù)據(jù)描述中的數(shù)據(jù)分片大小對數(shù)據(jù)分片包裝,然后向接收端發(fā)送。包裝中包括標識號和偏移量。接收端會根據(jù)偏移量重新組合還原數(shù)據(jù)。
為了提高效率,發(fā)送數(shù)據(jù)采用單向推送方式,而不是應答方式。即接收端無需確認每個數(shù)據(jù)報文。發(fā)送端把全部分片發(fā)送到接收端,在無線信號良好的環(huán)境中,數(shù)據(jù)會準確地到達接收端;在信號不穩(wěn)定的情況下,會造成數(shù)據(jù)報文的丟失,需要數(shù)據(jù)補充環(huán)節(jié)來保證數(shù)據(jù)完整。
在服務端向列車終端進行數(shù)據(jù)推送過程中,由于終端接收能力的局限,瞬間大數(shù)據(jù)量會造成接收終端擁塞,致使數(shù)據(jù)報的丟失。服務端會根據(jù)握手時獲取的終端設備信息實施發(fā)送流量控制,避免因超出終端設備接收能力而造成大量數(shù)據(jù)報文丟失。
3.3.3 數(shù)據(jù)完整檢測和數(shù)據(jù)補充
在數(shù)據(jù)推送過程中,接收端每次接收到數(shù)據(jù)報文都檢測數(shù)據(jù)是否完整。一旦完整,就把數(shù)據(jù)提交到應用層;如果不完整,繼續(xù)等待,直到超出數(shù)據(jù)接收時限。
接收端的任務超出數(shù)據(jù)接收時限,數(shù)據(jù)仍然存在缺失,任務進入數(shù)據(jù)補充階段。根據(jù)缺失情況,接收端請求數(shù)據(jù)補發(fā),發(fā)送端根據(jù)請求補發(fā)數(shù)據(jù)報文,經(jīng)過多次補充過程,最終達到數(shù)據(jù)的完整。
數(shù)據(jù)描述、數(shù)據(jù)推送和數(shù)據(jù)補充構成一個完整的數(shù)據(jù)傳遞協(xié)議,結合指令應答,構成基礎的網(wǎng)絡傳輸控制協(xié)議,為站車系統(tǒng)構建了通信信道。
本文針對“鐵路站車無線交互系統(tǒng)”,著重討論了列車與地面的通信條件,系統(tǒng)的網(wǎng)絡協(xié)議比較和選擇,UDP報文的指令和數(shù)據(jù)傳輸控制方式,流量控制和動態(tài)IP查詢。利用以上討論內容,為“鐵路站車無線交互系統(tǒng)”構建了穩(wěn)定的通信信道。