李鵬
摘要:為保證實時信息的穩(wěn)定可靠傳輸,設(shè)計了雙網(wǎng)實時信息收發(fā)系統(tǒng)。采用雙工熱備設(shè)計保證系統(tǒng)可靠性;提出端口自動遷移UDP協(xié)議,設(shè)計環(huán)形數(shù)據(jù)交換緩沖區(qū),解決了內(nèi)部信息交換過程中數(shù)據(jù)包丟失問題;設(shè)計系統(tǒng)軟件結(jié)構(gòu)、劃分功能模塊,實現(xiàn)系統(tǒng)信息收發(fā)功能。實際工程應(yīng)用表明,該系統(tǒng)設(shè)計科學(xué)合理,可靠性高,實時性強,能夠保證信息穩(wěn)定可靠傳輸。
關(guān)鍵詞:系統(tǒng)設(shè)計;雙工熱備;信息收發(fā);穩(wěn)定可靠
中圖分類號:TN915.04 文獻標識碼:A 文章編號:1007-9416(2018)04-0158-03
通常,一個完整的實時信息系統(tǒng)大體上由信息收發(fā)、信息處理、信息顯示等系統(tǒng)組成[1]。信息收發(fā)系統(tǒng)主要負責(zé)接收外部系統(tǒng)或設(shè)備的信息并向信息處理系統(tǒng)轉(zhuǎn)發(fā),同時接收信息處理系統(tǒng)的信息并向外部系統(tǒng)或設(shè)備發(fā)送;信息處理系統(tǒng)主要負責(zé)信息的快速準確處理;信息顯示系統(tǒng)主要負責(zé)信息的監(jiān)視顯示。作為整個實時信息系統(tǒng)的門戶,信息收發(fā)系統(tǒng)的可靠性以及信息傳輸?shù)姆€(wěn)定性、信息本身的完整性都顯得極為重要,也是系統(tǒng)設(shè)計中需要重點關(guān)注的問題。
本文提出了雙網(wǎng)實時信息收發(fā)系統(tǒng)設(shè)計方案,進行了系統(tǒng)硬件設(shè)計和軟件設(shè)計,保證了系統(tǒng)的可靠性和信息傳輸?shù)姆€(wěn)定性,在實時信息系統(tǒng)中具有良好的應(yīng)用價值。
1 系統(tǒng)總體設(shè)計
雙網(wǎng)實時信息收發(fā)系統(tǒng)由2臺服務(wù)器、3臺操作終端及IP信息收發(fā)軟件和雙工控制軟件組成,為保證系統(tǒng)可靠性,系統(tǒng)網(wǎng)絡(luò)聯(lián)接均采用雙網(wǎng)設(shè)計[2]。
每臺服務(wù)器通過2個千兆以太網(wǎng)口連接到2臺對外接入交換機,實現(xiàn)對外通信;每臺服務(wù)器通過2個千兆以太網(wǎng)口連接到2個高速主干網(wǎng),實現(xiàn)系統(tǒng)內(nèi)部信息交換;服務(wù)器通過2個千兆以太網(wǎng)口連接到2個外設(shè)網(wǎng),操作終端通過2個千兆以太網(wǎng)口連接到2個外設(shè)網(wǎng),實現(xiàn)服務(wù)器與操作終端信息交換。系統(tǒng)結(jié)構(gòu)如1所示。
為確保系統(tǒng)可靠性,對影響系統(tǒng)可靠性的關(guān)鍵部件采用余度設(shè)計(冗余設(shè)計)技術(shù),以減少單點故障[3]。余度設(shè)計的主要思想是當(dāng)系統(tǒng)中某一部件發(fā)生故障時,因該部件余度單元正常工作而能保證系統(tǒng)正常運行。在進行余度設(shè)計時應(yīng)注意以下問題:
(1)只有在其它可靠性設(shè)計不能滿足系統(tǒng)可靠性要求時,或者用其它方法所需的費用比冗余配置更高時,方可采用余度設(shè)計。
(2)要保證采用余度設(shè)計技術(shù)獲得的可靠性,不致因構(gòu)成余度結(jié)構(gòu)所增加的部件而可能增加的故障所抵消。
實時信息收發(fā)系統(tǒng)的服務(wù)器采用“雙工熱備”設(shè)計,即兩臺服務(wù)器構(gòu)成一個雙工熱備的系統(tǒng),一臺為主機,另一臺為副機,主副機之間通過專用連接進行互連,專用連接用于傳輸主副機之間交互的信息,采用雙連接可以保證系統(tǒng)的可靠性,同樣的信息將在兩個專用連接上同時傳輸。專用連接采用兩臺服務(wù)器的千兆以太網(wǎng)口直接連接的方式。
服務(wù)器上運行雙工控制軟件,雙工控制軟件由建立雙工狀態(tài)、故障監(jiān)測與切換、故障服務(wù)器重入、請求切換、事件記錄等功能模塊組成。雙工控制軟件負責(zé)確定并維護兩臺服務(wù)器的雙工狀態(tài)(主機或副機),實現(xiàn)系統(tǒng)級的雙工熱備,為上層的應(yīng)用軟件提供支持。雙工控制軟件還為雙工熱備系統(tǒng)維護了一個虛擬IP地址,虛擬IP地址由主機擁有,當(dāng)實施雙工切換時,虛擬IP地址也隨之漂移到新的主機上。
2 系統(tǒng)內(nèi)部通信
信息收發(fā)系統(tǒng)對內(nèi)與原系統(tǒng)內(nèi)部其他分系統(tǒng)通過雙主干網(wǎng)進行信息傳輸,為保證信息穩(wěn)定可靠傳輸,避免在通信故障需重建鏈路時造成信息包丟失,設(shè)計了端口自動遷移UDP協(xié)議,在鏈路重建時,能夠以自適應(yīng)方式遷移到新端口鏈路上進行通信,保證實時信息不丟失[4]。自適應(yīng)方式根據(jù)通信情況分為主動和被動兩種遷移方式。協(xié)議的格式分如圖2所示。
2.1 通信流程
信息收發(fā)系統(tǒng)與內(nèi)部系統(tǒng)之間進行通信時,發(fā)送方作為服務(wù)端,接收方作為客戶端。首先在客戶端和服務(wù)端分配3個端口(分別為n1=4001,n2=4002,n3=4003),并使用整型數(shù)組portstatus[n]來記錄各端口的通信狀態(tài)情況[5]。進入通信流程前端口進行通信的始化。
(1)客戶端通信流程。在3個端口上分別發(fā)送通信包請求建立連接,收到服務(wù)器回復(fù)的通信包后,將portstatus [n]置為1(初始為0),表示相應(yīng)端口的通信鏈路已經(jīng)建立。客戶端首先在n1鏈路發(fā)送通信包開始通信,同時監(jiān)聽n2和 n3端口。當(dāng)客戶端收到回復(fù)通信包的包號與發(fā)送通信包的包號相等時,則表示數(shù)據(jù)包發(fā)送成功,可繼續(xù)發(fā)送下一包并把包號加1。如果回復(fù)的通信包的包號不正確或者回復(fù)超時,則重發(fā)該通信包。若重發(fā)超過3次時,將portstatus [n]置為0,主動將通信遷移到新的端口鏈路上,同時重新建立n1鏈路。當(dāng)在n2或n3端口上監(jiān)聽到通信包時,表明服務(wù)端主動將鏈路遷移到了n2或n3上,客戶端以被動方式將通信遷移到相應(yīng)端口,同時重建n1鏈路。
(2)服務(wù)端通信流程。在端口收到通信包后,分別向客戶端進行回復(fù),同時將portstatus[n]分別置為1(初始為0)。服務(wù)端首先通過n1鏈路進行通信,同時監(jiān)聽n2和 n3端口。若當(dāng)前接收的包號是上次接收包號加1時,則表示收到正確的通信包。服務(wù)端向客戶端回復(fù)的通信包包號要與接收的包號相同,如果接收的包號不正確或者超時未收到通信包,則重發(fā)上次通信包。若重發(fā)超過3次時,采取主動方式遷移鏈路,過程同客戶端。當(dāng)在n2或 n3端口上監(jiān)聽到通信包時,表明客戶端主動遷移了鏈路,服務(wù)端采取被動方式遷移到相應(yīng)端口。
2.2 環(huán)形緩沖區(qū)
為了能夠保證收發(fā)數(shù)據(jù)以及鏈路遷移過程中數(shù)據(jù)不會被覆蓋丟失,設(shè)計中在客戶端和服務(wù)端分別增加了環(huán)形緩沖區(qū),結(jié)構(gòu)如圖3所示。
初始狀態(tài)下緩沖區(qū)為空,緩沖區(qū)的讀指針rptr和寫指針wptr指向起始地址MIN;當(dāng)有數(shù)據(jù)發(fā)送時,移動wptr指針將數(shù)據(jù)寫入緩沖區(qū)中;當(dāng)wptr與rptr指針不相等時,說明緩沖區(qū)中有數(shù)據(jù)寫入,移動rptr將數(shù)據(jù)從緩沖區(qū)讀走;當(dāng)wptr和rtpr指向MAX時表示緩沖已滿,將指針重置為初始地址MIN,實現(xiàn)緩沖區(qū)的循環(huán)讀寫。
3 軟件設(shè)計
服務(wù)器上運行信息收發(fā)軟件,兩臺服務(wù)器同時工作,主機和副機上的信息收發(fā)軟件,接收相同的信息,各自進行相同的處理,主副機得到相同的處理結(jié)果,但輸出任務(wù)只由主機完成,即由主機向外發(fā)送信息包,副機只是作為備份機工作。
信息收發(fā)軟件主要是實現(xiàn)接收外部系統(tǒng)及設(shè)備的信息并經(jīng)過格式轉(zhuǎn)換等處理后對內(nèi)轉(zhuǎn)發(fā);接收內(nèi)部各軟件發(fā)送的信息,經(jīng)過格式轉(zhuǎn)換等處理后對外發(fā)送。信息收發(fā)軟件由外部信息接收、雙路由接收重復(fù)數(shù)據(jù)包過濾、對內(nèi)信息轉(zhuǎn)發(fā)、內(nèi)部信息接收、對外信息發(fā)送、數(shù)據(jù)記錄、通信狀態(tài)及統(tǒng)計信息顯示、時間同步等功能模塊組成,如圖4所示。
(1)外部信息接收功能。根據(jù)配置,在約定IP、端口上接收來自外部系統(tǒng)或設(shè)備的信息,根據(jù)信息來源、信息類型將信息傳送給雙路由接收重復(fù)數(shù)據(jù)包過濾、對內(nèi)信息轉(zhuǎn)發(fā)、對外信息發(fā)送、數(shù)據(jù)記錄、通信狀態(tài)監(jiān)視等模塊做進一步的處理。
(2)雙路由接收重復(fù)數(shù)據(jù)包過濾功能。接收外部信息接收模塊傳送的來雙網(wǎng)信息,根據(jù)要求進行處理,送出一路數(shù)據(jù)信息給對內(nèi)信息轉(zhuǎn)發(fā)模塊。
(3)對內(nèi)信息轉(zhuǎn)發(fā)功能。接收外部信息接收模塊、雙路由接收重復(fù)數(shù)據(jù)包過濾模塊傳送的信息,根據(jù)信息來源、信息類型將信息轉(zhuǎn)發(fā)給實時數(shù)據(jù)處理軟件、指顯服務(wù)軟件。
(4)內(nèi)部信息接收功能。根據(jù)配置,在約定的IP、端口上接收來自內(nèi)部各軟件的信息,信息傳送給對外信息發(fā)送模塊做進一步處理。
(5)對外信息發(fā)送功能。接收來自內(nèi)部信息接收、外部信息接收、對內(nèi)信息轉(zhuǎn)發(fā)模塊的信息,按照要求通過雙網(wǎng)發(fā)送給外部系統(tǒng)或設(shè)備,并將信息傳送給數(shù)據(jù)記錄模塊、指顯服務(wù)軟件。根據(jù)設(shè)定的間隔時間,定期產(chǎn)生鏈監(jiān)信息,發(fā)送給外部系統(tǒng)和設(shè)備。
(6)數(shù)據(jù)記錄功能。接收來自外部信息接收、對外數(shù)據(jù)發(fā)送模塊的信息,按照收發(fā)方向、信息來源/目的將信息分類記錄到不同文件中。
(7)通信狀態(tài)及統(tǒng)計信息顯示功能。顯示通信狀態(tài)、數(shù)據(jù)收發(fā)統(tǒng)計、檢查結(jié)果等信息。
(8)時間同步功能。接收內(nèi)部系統(tǒng)發(fā)送的絕對時間信息幀,根據(jù)設(shè)定的間隔時間,定期校準本機的系統(tǒng)時間。
4 結(jié)語
本文研究了雙網(wǎng)實時信息收發(fā)系統(tǒng)設(shè)計問題,采用雙網(wǎng)聯(lián)接、雙工熱備技術(shù)實現(xiàn)系統(tǒng)高可靠性;提出端口自動遷移UDP協(xié)議,在通信故障需重建鏈路時,能夠以自適應(yīng)方式遷移到新端口鏈路上進行通信,可避免數(shù)據(jù)包丟失;設(shè)計環(huán)形數(shù)據(jù)交換緩沖區(qū),解決了內(nèi)部信息交換過程中數(shù)據(jù)包覆蓋丟失問題;設(shè)計了系統(tǒng)軟件結(jié)構(gòu),劃分了功能模塊,實現(xiàn)了雙網(wǎng)實時信息收發(fā)系統(tǒng)功能。實際工程應(yīng)用表明,該系統(tǒng)設(shè)計科學(xué)合理,保證了實時信息收發(fā)系統(tǒng)的可靠性和信息傳輸?shù)姆€(wěn)定性,在實時信息系統(tǒng)中具有良好的應(yīng)用價值。
參考文獻
[1]李丹,陳貴海,任豐原,等.數(shù)據(jù)中心網(wǎng)絡(luò)的研究進展與趨勢[J].計算機學(xué)報,2014,37(2):259-274.
[2]朱桂明,謝向輝,郭得科,陸菲菲,陶志榮.一種高吞吐量、高可擴展數(shù)據(jù)中心網(wǎng)絡(luò)結(jié)構(gòu)[J]. 軟件學(xué)報,2014,25(6):1339-1351.
[3]吳俊,段東立,趙娟.網(wǎng)絡(luò)系統(tǒng)可靠性研究現(xiàn)狀與展望[J].復(fù)雜系統(tǒng)與復(fù)雜性科學(xué),2011,8(2):77-86.
[4]張新,饒若楠,郭 寧.多端口自適應(yīng)UDP通信協(xié)議的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2017,38(4):846-851.
[5]趙小歡,夏靖波,朱長虹.高速網(wǎng)絡(luò)UDP流超時策略研究[J].合肥工業(yè)大學(xué)學(xué)報,2013,36(2):176-180.