- 相關(guān)推薦
多媒介通信系統(tǒng)鏈路管理的設(shè)計(jì)和實(shí)現(xiàn)
摘要:軍事通信系統(tǒng)和某些民和領(lǐng)域?qū)νㄐ趴煽啃院涂箽缘男枨笫沟命c(diǎn)到點(diǎn)的鏈路傾向于建立在多種通信媒介、多種協(xié)議上。介紹了一種借鑒OPC規(guī)范,基于COM技術(shù),在多協(xié)議、多種協(xié)議上。介紹了一種借鑒OPC規(guī)范,基于COM技術(shù),在多協(xié)議、多通信媒介上進(jìn)行鏈路管理和調(diào)度的解決方案,并給出了具體實(shí)現(xiàn)。關(guān)鍵詞:多種通信媒介 多協(xié)議 鏈路調(diào)度 COM
在許多應(yīng)用中,如軍事通信中的C4I系統(tǒng)、政府部門和特殊行業(yè)中的某些重要通信系統(tǒng),對(duì)通信網(wǎng)絡(luò)的可靠性、抗毀性有著非?量痰囊螅纫笤谡G闆r下有較高的通信效率,又要求在惡劣環(huán)境下能保證基本的通信,因此僅僅依賴單一通信媒介難以達(dá)到可靠性的要求。在C4I系統(tǒng)中,把現(xiàn)有的和未來(lái)的全部傳輸媒介資源綜合到通信系統(tǒng)中已經(jīng)成為通信網(wǎng)絡(luò)追求的目標(biāo)之一。在民用領(lǐng)域,例如高速公路聯(lián)聯(lián)網(wǎng)收費(fèi)系統(tǒng)中,因?yàn)樾枰粋(gè)24×7的可靠通信平臺(tái),亦采用了不同類型的通信媒介(如圖1),它通常把專線作為主用線路,把公眾電信網(wǎng)提供的撥號(hào)線(普通調(diào)制解調(diào)順或ISDN)連接作為臨時(shí)備用線路。不同通信媒介的效率和經(jīng)濟(jì)性差別很大。對(duì)不同類型的通信鏈路必須進(jìn)行綜合調(diào)度,做到自適應(yīng)不同的網(wǎng)絡(luò)環(huán)境,自動(dòng)在主用鏈路和多條備用鏈路間進(jìn)行切換。這樣才能適應(yīng)這些系統(tǒng)對(duì)網(wǎng)絡(luò)生存能力的要求。
傳統(tǒng)開(kāi)過(guò)程中,常把最上端的應(yīng)用程序直接建立在多種通信設(shè)備上,在應(yīng)用程序中直接對(duì)不同類型鏈路進(jìn)行管理和調(diào)度,這對(duì)整個(gè)系統(tǒng)的開(kāi)發(fā)、升級(jí)、擴(kuò)展帶來(lái)了很大問(wèn)題。一方面應(yīng)用軟件開(kāi)發(fā)者需要耗費(fèi)大量精力在不同的通信設(shè)備上,而這些工作在別的同類項(xiàng)目中無(wú)法復(fù)用;另一方面,當(dāng)系統(tǒng)需要升級(jí)通信設(shè)備,或者擴(kuò)展新的通信媒介時(shí),幾乎相當(dāng)于重新開(kāi)發(fā)整個(gè)系統(tǒng)。同時(shí),在多個(gè)應(yīng)用程序共享通信設(shè)備時(shí)容易產(chǎn)生沖突。借鑒超鏈思想以及微軟和工業(yè)控制界共同推出的OPC(OLE for process control)規(guī)范的設(shè)計(jì)思路,提出了基于COM技術(shù)的解決方案。
圖1 節(jié)點(diǎn)間的多種通信媒介綜合使用
1 系統(tǒng)設(shè)計(jì)
1.1 設(shè)計(jì)思想
可以把所有媒介所提供的通信資源看作單一的邏輯數(shù)據(jù)鏈,即超鏈,它表示每一個(gè)節(jié)點(diǎn)到相鄰點(diǎn)的連接,而并不關(guān)心具體的通信媒介OPC規(guī)范通過(guò)提供標(biāo)準(zhǔn)接口的方法,使下層設(shè)備無(wú)需了解上層應(yīng)用,上層標(biāo)準(zhǔn)接口的方法,使下層設(shè)備無(wú)需了解上層應(yīng)用,上層應(yīng)用亦無(wú)需關(guān)心下層設(shè)備的細(xì)節(jié)。借鑒二者的思想,在應(yīng)用軟件和通訊設(shè)備間增加了一層類似中間件的通信平臺(tái),使得應(yīng)用軟件和通信設(shè)備間的無(wú)關(guān)性得以實(shí)現(xiàn),并把對(duì)通信設(shè)備的訪問(wèn)進(jìn)行統(tǒng)一管理,解決了并發(fā)沖突問(wèn)題。
1.2 系統(tǒng)結(jié)構(gòu)
根據(jù)ISO七層網(wǎng)絡(luò)體系定義,在傳送(Transport)層之上對(duì)底層進(jìn)行封裝,是因?yàn)樵诙嗝浇榍闆r下,多種協(xié)議是分布式網(wǎng)絡(luò)體系的一個(gè)基本要求。一方面,一般情況下,不同的通信媒介適用的傳送層協(xié)議是完全不同的;另一方面,系統(tǒng)中所傳輸?shù)牟煌瑪?shù)據(jù)類型對(duì)通信性能(如一次可傳輸消息大小、實(shí)時(shí)性等指標(biāo))的要求差別很大。針對(duì)不同數(shù)據(jù)類型,設(shè)計(jì)具有不同性能的傳送層協(xié)議,并實(shí)現(xiàn)自適應(yīng)調(diào)度,是實(shí)際應(yīng)用的需求。只有在傳送層之上進(jìn)行封裝才有可能屏蔽不同媒介所帶來(lái)的差異。系統(tǒng)整體描述如圖2所示。
鏈路的調(diào)度管理層對(duì)不同協(xié)議、不同通信媒介以及不同鏈路進(jìn)行一管理和調(diào)度。通信媒介1~n表示諸如專線網(wǎng)絡(luò)、撥號(hào)線-MODEM、無(wú)線調(diào)制解調(diào)器-無(wú)線電臺(tái)及與此類似層次、將來(lái)擴(kuò)展的不同通信媒介,鏈路調(diào)度管理層對(duì)這些通信媒介進(jìn)行初始化、激活、配置,并獲得它們的數(shù)據(jù)接口和所有應(yīng)該得到的狀態(tài)。協(xié)議1~n表示諸如基于TCP的協(xié)議、基于UDP的協(xié)議、半雙工高速短波協(xié)議以及將來(lái)擴(kuò)展的各種不同協(xié)議,它們的管理同樣由鏈路調(diào)度管理層進(jìn)行,接口并不直接暴露給上層,而是由管理層封裝后向上層提供統(tǒng)一的接口。協(xié)議模塊在需要發(fā)送數(shù)據(jù)或者有數(shù)據(jù)到來(lái)時(shí)并不直接與各通信媒介模塊通信,而是通過(guò)鏈路管理層訪問(wèn)通信媒介模塊所提供的接口。這是因?yàn)樵S多通信模塊(與物理設(shè)備聯(lián)系緊密)并不支持并發(fā)訪問(wèn),鏈路管理層把對(duì)它們的訪問(wèn)串行化。
1.3 模塊化和可擴(kuò)展性
在不同的應(yīng)用中,所用的協(xié)議和通信組件不盡相同,要求在鏈路管理層不做過(guò)多的改動(dòng),既能加入新的協(xié)議模塊和通信媒介模塊。這樣就需要設(shè)計(jì)和實(shí)現(xiàn)做到模塊化,且各模塊和鏈路調(diào)度模塊之間必須隔離開(kāi)。鏈路調(diào)度模塊通過(guò)盡量統(tǒng)一的接口對(duì)各模塊進(jìn)行調(diào)度和管理。微軟的組件對(duì)象模型技術(shù)(COM)就提供了這種特性。OPC規(guī)范應(yīng)用COM/OLE技術(shù)實(shí)現(xiàn)了模塊化和可擴(kuò)展性,但OPC規(guī)范主要針對(duì)工業(yè)控制領(lǐng)域,在本設(shè)計(jì)中無(wú)法完全實(shí)現(xiàn),故直接采用COM技術(shù),借鑒OPC的設(shè)計(jì)思想構(gòu)建本設(shè)計(jì)。每個(gè)協(xié)議模塊和通信媒介模塊均是一個(gè)單獨(dú)COM組件,通過(guò)接口和回調(diào)接口與鏈路調(diào)度模塊進(jìn)行通信,鏈路管理模塊以總線方式實(shí)現(xiàn)對(duì)協(xié)議模塊和媒介模塊的管理。而協(xié)議組件和通信媒介組件之間的通信則由鏈路調(diào)度模塊轉(zhuǎn)發(fā)。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
所面臨的難點(diǎn)之一在于協(xié)議組件和通信媒介組件可以有相同的數(shù)據(jù)接口,但是這些組件的特性千差萬(wàn)別,在設(shè)置參數(shù)和獲得當(dāng)前狀態(tài)方面無(wú)法做到大致統(tǒng)一的接口,可以通過(guò)組件自解析的方式解決。鏈路管理模塊和這些組件之間的參數(shù)用字符串或數(shù)組的方式傳遞,各組件在得到這些字符串后根據(jù)本身的情況進(jìn)行解析,得到特定的參數(shù)。
難點(diǎn)之二,如前文所述,通信媒介組件與物理層密切相關(guān),很難做到支持并行化的輸入。在多條獨(dú)立鏈路不同的線程中同時(shí)使用同一通信媒介時(shí),各鏈路對(duì)物理層的操作將產(chǎn)生沖突,必須對(duì)通信媒介組件的數(shù)據(jù)輸入進(jìn)行串行化處理(排隊(duì)),使同一時(shí)刻,只處理一個(gè)輸入。在COM組件的多線程模型中,單線程套間(STA)模型有如下特點(diǎn):如果某COM組件的對(duì)象生成在單線程套間中,則只有與同在一個(gè)套間特定的線程可以訪問(wèn)該對(duì)象不在同一套間的其他線程必須通過(guò)列集(marshal)技術(shù)才能訪問(wèn)該對(duì)象。這種技術(shù)基于COM ORPC協(xié)議和消息階列機(jī)制,自動(dòng)把對(duì)該對(duì)象的訪問(wèn)串行化了。所以如果每個(gè)通信媒介組件都只有一個(gè)對(duì)象且生存在STA中,則通過(guò)列集技術(shù)它的訪問(wèn)自動(dòng)被串行化。
1.4 媒介模塊和協(xié)議模塊的設(shè)計(jì)
媒介組件封裝了與網(wǎng)絡(luò)平有關(guān)的操作,向上提供了建鏈、斷鏈、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)(回調(diào))、參數(shù)設(shè)置、狀態(tài)改變報(bào)告(回調(diào))、參數(shù)查詢、狀態(tài)查詢等接口。
例如在高速公路網(wǎng)絡(luò)中,專線網(wǎng)絡(luò)和撥號(hào)線后備鏈路都基于IP網(wǎng)絡(luò),Windows套接字接口(Winsock)提供了一個(gè)基本與協(xié)議無(wú)關(guān)的傳送接口從而封裝了基本操作。但是對(duì)于不同協(xié)議,具體操作仍稍有不同,如面連接的TCP和面向無(wú)連接的UDP向上層暴露的SOCKET連接過(guò)程就很不相同,同時(shí)對(duì)不同協(xié)議參數(shù)信息的查詢和設(shè)置接口差別也很大;而撥號(hào)線后備鏈路在SOCKET連接之外還有撥號(hào)、掛斷等操作。媒介組件在Winsock基礎(chǔ)上又給出了一層封裝,把建立鏈路、撤銷鏈路、等差別較大的操作在此層完成,向上層暴露統(tǒng)一的建鏈方法。對(duì)于參數(shù)的設(shè)置和信息查詢,媒介組件同外界通過(guò)不定長(zhǎng)度的數(shù)組或字符串交換,這樣就形式了掩蓋了差異,保持了接口的統(tǒng)一性。
對(duì)于特殊的后備媒介,如無(wú)線MODEM-無(wú)線電臺(tái)方式,媒介組件必須提供與IP網(wǎng)絡(luò)相一致的接口,而對(duì)設(shè)備的操作(串口、MODEM、電臺(tái))進(jìn)行封裝。節(jié)點(diǎn)ID系統(tǒng)(與IP系統(tǒng)類似)也在此組件中進(jìn)行管理。
在媒介模塊之上完成的協(xié)議控制以獨(dú)立的COM組件方式存在。這是考慮到媒介類型與協(xié)議并非一一對(duì)應(yīng),一種協(xié)議可能適用于多種媒介,一種媒介亦可能使用多種協(xié)議。
2 鏈路的管理、維護(hù)和調(diào)度
鏈路的管理、維護(hù)和調(diào)度是本設(shè)計(jì)的重點(diǎn)內(nèi)容之一,可從運(yùn)行角度和維護(hù)測(cè)試角度分別考慮。在運(yùn)行中,系統(tǒng)的每個(gè)節(jié)點(diǎn)都可能通過(guò)多條鏈路與多個(gè)節(jié)點(diǎn)通信,每條鏈路所使用的通信媒介和協(xié)議又不盡相同。與同一節(jié)點(diǎn)通信的過(guò)程中,有可能在不同的通信媒介和協(xié)議間切換。同時(shí),鏈路管理層必須實(shí)時(shí)獲得各條鏈路的運(yùn)行狀態(tài)和當(dāng)前參數(shù),如通斷情況、吞吐量等,以作出正確的調(diào)度決策。從維護(hù)測(cè)試角度,需要設(shè)置各條鏈路所涉及的協(xié)議參數(shù)和涉及通信媒介的參數(shù);新節(jié)點(diǎn)必須能夠自動(dòng)加入,成為任一節(jié)點(diǎn)的客戶端。
2.1 多鏈路管理
鏈路管理層必須維護(hù)一張鏈路表,以記錄各條鏈路的情況(如表1)。
表1 鏈路管理表結(jié)構(gòu)
目的ID是節(jié)點(diǎn)的全網(wǎng)唯一標(biāo)總值,通信媒介用字符標(biāo)識(shí),鏈路標(biāo)識(shí)是鏈路的唯一標(biāo)識(shí)。對(duì)應(yīng)目的地址為下一層(特定通信媒介)的地址:若基于UDP/IP或TCP/IP,則為IP地址;若基于短波或者別的通信媒介,則為在下一層約定的地址。優(yōu)先級(jí)表示與同一目的ID通信時(shí)優(yōu)先采用哪條鏈路。與同一節(jié)點(diǎn)間的鏈路可能有數(shù)條,它們互相獨(dú)立且對(duì)等,只是優(yōu)先級(jí)不相同。鏈路狀態(tài)包括中止和激活兩種。中止?fàn)顟B(tài)指鏈路保持在偵聽(tīng)?wèi)B(tài),能接收數(shù)據(jù)幀關(guān)上報(bào)鏈路管理組件,而發(fā)送線程中止運(yùn)行;激活狀態(tài)指兩節(jié)點(diǎn)在此鏈路上進(jìn)行通信。鏈路由中止?fàn)顟B(tài)到激活狀態(tài)轉(zhuǎn)換的過(guò)程稱為激活,包括啟動(dòng)發(fā)送線程,通過(guò)發(fā)送握手幀和接收握手成功幀與目的ID進(jìn)行握手等過(guò)程。
鏈路表包括了所有可能使用的鏈路,在本節(jié)點(diǎn)啟動(dòng)時(shí),只激活優(yōu)先級(jí)最高的鏈路。若優(yōu)先級(jí)最高鏈路無(wú)法激活,則激活次高的鏈路,以此類推,直到連接上。若激活了非最高優(yōu)先級(jí)鏈路,則保持高優(yōu)先級(jí)鏈路的“試圖連接狀態(tài)”。若均無(wú)法激活,則停止主動(dòng)激活,等待被動(dòng)激活。在所有激活的鏈路上,服務(wù)器主動(dòng)發(fā)出“心跳信號(hào)”,偵測(cè)鏈路狀態(tài),包括鏈路是否中斷、心跳信號(hào)回應(yīng)時(shí)間等,并實(shí)時(shí)反映到鏈路表上。
圖3 鏈路切換(自動(dòng)切換、非自動(dòng)切換)流程圖
本節(jié)點(diǎn)與主服務(wù)器(即主父節(jié)點(diǎn))和備份服務(wù)器(如有)之間的鏈路必須在本節(jié)點(diǎn)運(yùn)行之前配置,與各客戶端(子節(jié)點(diǎn))之間的鏈路可在運(yùn)行中動(dòng)態(tài)配置,由客戶端主動(dòng)發(fā)起,申請(qǐng)加入。
2.2 鏈路間切換
在與一個(gè)節(jié)點(diǎn)通信的過(guò)程中,當(dāng)主用鏈路(優(yōu)先級(jí)高)斷鏈或擁塞時(shí),必須自動(dòng)切換到備用鏈路上進(jìn)行數(shù)據(jù)通信,稱為自適應(yīng)切換;亦可禁止自適應(yīng)切換而由上層控制,稱為非自動(dòng)切換。在許多網(wǎng)絡(luò)中,父節(jié)點(diǎn)備用鏈路通信是公用的,無(wú)法由某兩個(gè)節(jié)點(diǎn)永久占用,只能在需要時(shí)申請(qǐng)激活。
在自動(dòng)切換模式下,切換原則是:盡量使用高優(yōu)先級(jí)鏈路進(jìn)行通信。分五種情況討論:(1)網(wǎng)絡(luò)層交給鏈路層一系列待發(fā)送消息,此消息結(jié)構(gòu)中包含了目的ID。鏈路層通過(guò)鏈路列表打到此目的ID對(duì)應(yīng)的已經(jīng)激活的鏈路中優(yōu)先級(jí)最高者進(jìn)行通信。(2)當(dāng)正在通信的鏈路中斷時(shí),保持該鏈路的試圖連接狀態(tài)。激活優(yōu)先級(jí)次之的鏈路,若無(wú),則再次之(此鏈路應(yīng)在切換鏈路集內(nèi))。如果沒(méi)有鏈路可以被激活,則認(rèn)為通信中斷;若激活優(yōu)先級(jí)鏈路,則從未被ACK的消息開(kāi)始發(fā)送。(3)在通信中,高優(yōu)先級(jí)的鏈路被激活時(shí),中斷正在使用的鏈路,轉(zhuǎn)移到高優(yōu)先級(jí)的鏈路上,從未被ACK的消息開(kāi)始發(fā)送。(4)末在通信中的鏈路中斷時(shí)(由心跳信號(hào)偵測(cè)得知),保持該鏈路試圖連接狀態(tài),激活優(yōu)先級(jí)次之的鏈路,若無(wú),則再次之(在切換鏈路信內(nèi))。如果沒(méi)有鏈路可以被激活,則認(rèn)為通信中斷。(5)末在通信中,高優(yōu)先級(jí)的鏈路被激活時(shí),中斷低優(yōu)先級(jí)鏈路。
非自動(dòng)切換模式下的要點(diǎn)是保證在切換過(guò)程中數(shù)據(jù)的安全性,不丟失也不重復(fù)。向上層提供的非自動(dòng)切換接口提供三個(gè)功能:a.激活某條鏈路;b.將當(dāng)前通信切換至某條鏈路;c.中止(disable)某條鏈路。在產(chǎn)生通信動(dòng)作前,上層可以指定目前激活的鏈路(同時(shí)中止其它鏈路,使激活鏈路保持在1);如果不能激活指定鏈路,則報(bào)告到上層,由上層繼續(xù)進(jìn)行調(diào)度。激活鏈路只有一條,有通信動(dòng)作產(chǎn)生時(shí),鏈路層自然采用條鏈路進(jìn)行通信。如果需要從鏈路A切換到鏈路B,上層必須先激活鏈路B,此時(shí)有A/B兩條鏈路激活。但是通信仍在鏈路A進(jìn)行;然后上層將當(dāng)前通信切換至鏈路B;鏈路管理層待上條消息發(fā)送成功或失敗后,再切換至鏈路B;最后上層disable鏈路A,使激活鏈路仍然只保持一條。在這種模式下,盡管是非自動(dòng)切換,但是鏈路管理層仍然對(duì)其過(guò)程進(jìn)行干預(yù),保證了數(shù)據(jù)的安全性。鏈路切換流程如圖3。
2.3 節(jié)點(diǎn)動(dòng)態(tài)加入
新的節(jié)點(diǎn)希望成為某節(jié)點(diǎn)的子節(jié)點(diǎn)時(shí),配置與該節(jié)點(diǎn)(服務(wù)器)之間的鏈路,并向該節(jié)點(diǎn)發(fā)出加入申請(qǐng)幀,等待對(duì)應(yīng)回傳,從回傳信息中判斷對(duì)方是否允許本節(jié)點(diǎn)加入。與服務(wù)器之間有可能多鏈路,申請(qǐng)幀中必須包含所有這些鏈路的信息。
本節(jié)點(diǎn)收到新的客戶端加入本網(wǎng)絡(luò)的申請(qǐng)幀時(shí),由服務(wù)器操作員審核是否允許該客戶端加入。若允許,從申請(qǐng)幀中獲得與該節(jié)點(diǎn)間所有鏈路的信息寫入鏈路表,并把對(duì)方發(fā)送申請(qǐng)幀所使用的鏈路設(shè)為激活狀態(tài),然后發(fā)送“成功”應(yīng)答幀至該節(jié)點(diǎn),至此,即加入了一個(gè)新的子節(jié)點(diǎn)。若未通過(guò)審核,則發(fā)送“失敗”應(yīng)答幀至該節(jié)點(diǎn)。
本系統(tǒng)的優(yōu)點(diǎn)在于:(1)基于超鏈思想,對(duì)點(diǎn)到點(diǎn)的多種類型鏈路、多條鏈路進(jìn)行統(tǒng)一管理,使具體通信事務(wù)不必關(guān)心鏈路調(diào)度;對(duì)外接口簡(jiǎn)單,易于二次開(kāi)發(fā);(2)基于COM技術(shù)和OPC規(guī)范設(shè)計(jì)思想,把協(xié)議、媒介驅(qū)動(dòng)、鏈路管理作為獨(dú)立的組件,使系統(tǒng)的可擴(kuò)展性大大增強(qiáng),可以在基本不改變其他要素的情況下,獨(dú)立地升級(jí)或增加協(xié)議或媒介驅(qū)動(dòng)協(xié)議,系統(tǒng)的靈活性和適用范圍大大增加。
【多媒介通信系統(tǒng)鏈路管理的設(shè)計(jì)和實(shí)現(xiàn)】相關(guān)文章:
多網(wǎng)絡(luò)智能遠(yuǎn)程遙控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)08-06
金剛石合成控制系統(tǒng)中多串口通信技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)08-06
金剛石合成控制系統(tǒng)中多串口通信技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)08-06
無(wú)線通信SCADA系統(tǒng)的實(shí)現(xiàn)與應(yīng)用08-06
基于以太網(wǎng)的光無(wú)線通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)08-06
多路異步串行通信系統(tǒng)在光纖陀螺組合中的設(shè)計(jì)與實(shí)現(xiàn)08-06
TM1300 DSP系統(tǒng)的以太網(wǎng)通信接口的設(shè)計(jì)與實(shí)現(xiàn)04-12
基于Vxworks實(shí)時(shí)操作系統(tǒng)的串口通信程序設(shè)計(jì)與實(shí)現(xiàn)08-19
多DSP系統(tǒng)實(shí)現(xiàn)雷達(dá)極化信號(hào)兩對(duì)IQ的采集和處理08-06