基于動(dòng)態(tài)調(diào)控的通信策略
時(shí)間:2022-08-19 02:33:17
導(dǎo)語:基于動(dòng)態(tài)調(diào)控的通信策略一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
1AC板間通信總體結(jié)構(gòu)及功能
AC在多板架構(gòu)中對(duì)外展現(xiàn)的是一個(gè)完整系統(tǒng),而內(nèi)部是基于ATCA架構(gòu),包含兩種類型的板卡:主控板和業(yè)務(wù)板。主控板的功能是對(duì)各個(gè)業(yè)務(wù)板的業(yè)務(wù)下發(fā)、狀態(tài)控制以及設(shè)備維護(hù);業(yè)務(wù)板的功能是對(duì)接入點(diǎn)和用戶的業(yè)務(wù)進(jìn)行處理并將其狀態(tài)上傳。要將AC的多板架構(gòu)對(duì)外展現(xiàn)出一致性,就需要板間通信的協(xié)同。AC的多板構(gòu)架及模塊組成如圖1所示。在AC板間通信中,使用Linux操作系統(tǒng)[1]的套接字作為板間通信的基礎(chǔ),有以下好處:(1)有一個(gè)已經(jīng)實(shí)現(xiàn)的協(xié)議棧,可以支持各種應(yīng)用層協(xié)議,能夠?qū)Π彘g通信提供穩(wěn)定的支撐。(2)統(tǒng)一的平臺(tái)使板間通信方法更具有通用性,可以在多個(gè)類型的板卡(如X86,mips,powerPC等)硬件架構(gòu)上使用。(3)使板間通信有了清晰的網(wǎng)絡(luò)層次結(jié)構(gòu),實(shí)現(xiàn)于傳輸層及以上、應(yīng)用層之下??蔀閼?yīng)用層提供服務(wù);而在傳輸層以下,直接使用協(xié)議棧的接口。當(dāng)需要增加新的底層通信通道時(shí),可以加入新增的底層實(shí)現(xiàn)方式,并調(diào)用即可。實(shí)現(xiàn)了層次架構(gòu)的可擴(kuò)展性。本文中的板間通信方法是分層次的,保證了數(shù)據(jù)信令層和管理維護(hù)層的分開傳輸,既可以將多個(gè)板卡之間的數(shù)據(jù)進(jìn)行收發(fā)處理,又對(duì)各個(gè)板卡進(jìn)行監(jiān)控維護(hù)。板間通信模塊的分層結(jié)構(gòu)如圖2所示管理維護(hù)層為各個(gè)板卡的狀態(tài)提供有力支撐。主控板在啟動(dòng)時(shí),會(huì)對(duì)業(yè)務(wù)板進(jìn)行動(dòng)態(tài)的發(fā)現(xiàn),確定板卡是否存在,并獲取其基本信息。在建立關(guān)聯(lián)之后對(duì)板卡狀態(tài)進(jìn)行維護(hù)管理,通過心跳檢測功能確定板卡狀態(tài)。若板卡異常,則會(huì)立即通知應(yīng)用。數(shù)據(jù)信令層為各個(gè)板卡提供數(shù)據(jù)傳輸通道。主控板在管理維護(hù)層發(fā)現(xiàn)板卡成功之后,就會(huì)開啟板卡的數(shù)據(jù)信令層通道,等待業(yè)務(wù)板進(jìn)行連接,之后板卡之間就通過此通道進(jìn)行數(shù)據(jù)業(yè)務(wù)的發(fā)送,附帶有?;顧C(jī)制。
2AC板間通信設(shè)計(jì)原理
基于以上功能需求,對(duì)AC板間通信的設(shè)計(jì)在管理維護(hù)層和數(shù)據(jù)信令層的方法是分而治之的[2]。兩個(gè)平面既有交集又相互獨(dú)立,這是維護(hù)板卡AC和底層支撐的關(guān)鍵。在實(shí)現(xiàn)方式上,管理維護(hù)層由于要實(shí)現(xiàn)板卡發(fā)現(xiàn)和心跳維護(hù),因而使用UDP廣播發(fā)現(xiàn);數(shù)據(jù)信令層需要考慮可靠的數(shù)據(jù)傳輸以及消息的確認(rèn),則使用TCP方式來實(shí)現(xiàn)[3]。
2.1管理維護(hù)層設(shè)計(jì)原理
主控板對(duì)業(yè)務(wù)板的管理是通過管理維護(hù)層來實(shí)現(xiàn)的。主控板上維持著業(yè)務(wù)板的狀態(tài)機(jī),運(yùn)行在主控板上的管理維護(hù)層還需同其他模塊進(jìn)行交互。圖3所示為管理維護(hù)層的狀態(tài)機(jī)的狀態(tài)遷移圖。各狀態(tài)分析如下:發(fā)現(xiàn)狀態(tài):每個(gè)板卡從ATCA機(jī)框的接口可以獲取各自的板卡槽位號(hào)。業(yè)務(wù)板在剛啟動(dòng)時(shí)通過廣播來發(fā)現(xiàn)主控板,主控板會(huì)對(duì)廣播進(jìn)行單播響應(yīng)。若主控板未響應(yīng),則業(yè)務(wù)板會(huì)重發(fā)發(fā)現(xiàn)請求消息。加入狀態(tài):在業(yè)務(wù)板收到發(fā)現(xiàn)響應(yīng)消息,即發(fā)現(xiàn)了主控板后,會(huì)發(fā)送加入請求消息到主控板,主控板則對(duì)請求作出回應(yīng)。配置狀態(tài):業(yè)務(wù)板進(jìn)入加入狀態(tài)初期,還不能正常運(yùn)行,因?yàn)榘蹇ㄉ蠜]有信息,也沒有接入點(diǎn)和用戶的上下文,此時(shí)要發(fā)送配置消息來請求配置。數(shù)據(jù)檢查狀態(tài):主控板配置業(yè)務(wù)板完成后,業(yè)務(wù)板檢查自己的狀態(tài)是否正確,如果正確,則進(jìn)入運(yùn)行狀態(tài)。運(yùn)行狀態(tài):在此狀態(tài)下業(yè)務(wù)板可以正常轉(zhuǎn)發(fā)數(shù)據(jù),可以接收主控板的配置消息(添加或刪除某個(gè)接入點(diǎn)或用戶的上下文),還要定期向主控板發(fā)送心跳消息,讓主控板知道業(yè)務(wù)板仍在正常工作。如果心跳檢測失敗,則通知上層應(yīng)用,通過指令令其重啟。重置狀態(tài):當(dāng)主控板幾次沒有對(duì)心跳消息作出回應(yīng)時(shí),進(jìn)入此狀態(tài)。一段時(shí)間后,業(yè)務(wù)板將重啟,進(jìn)入最初始的狀態(tài)。通過管理維護(hù)層的幾個(gè)狀態(tài)的轉(zhuǎn)換,主控板就可以動(dòng)態(tài)地將業(yè)務(wù)板關(guān)聯(lián)起來,并實(shí)時(shí)地維護(hù)板卡狀態(tài),對(duì)有問題的板卡,馬上對(duì)應(yīng)用及數(shù)據(jù)信令層進(jìn)行上報(bào)。另外,在進(jìn)入加入狀態(tài)之后,管理維護(hù)層會(huì)為數(shù)據(jù)信令層提供節(jié)點(diǎn)號(hào)(板號(hào))到IP地址或端口的映射。由于該映射是動(dòng)態(tài)記錄的,在板卡發(fā)生變化時(shí)就會(huì)產(chǎn)生新的映射關(guān)系。
2.2數(shù)據(jù)信令層設(shè)計(jì)原理
數(shù)據(jù)信令層依靠管理維護(hù)層對(duì)各個(gè)板卡實(shí)現(xiàn)的關(guān)聯(lián),用TCP[4]為應(yīng)用建立一條可靠的數(shù)據(jù)通路,使應(yīng)用可以使用這個(gè)專用通道進(jìn)行數(shù)據(jù)的傳輸,并通過消息的方式通知應(yīng)用收取消息,或者從應(yīng)用的消息隊(duì)列中取出消息發(fā)送到對(duì)應(yīng)業(yè)務(wù)板上。圖4所示為數(shù)據(jù)信令層的狀態(tài)機(jī)的狀態(tài)遷移圖。各狀態(tài)分析如下:初始化狀態(tài):為各個(gè)板卡進(jìn)行初始化配置,創(chuàng)建選擇、消息隊(duì)列和信號(hào)量。判斷管理維護(hù)層進(jìn)入加入狀態(tài)之后,跳轉(zhuǎn)到下一個(gè)狀態(tài)。選擇/連接狀態(tài):主控板此時(shí)會(huì)進(jìn)入選擇狀態(tài),對(duì)每一個(gè)業(yè)務(wù)板進(jìn)行通道建立及I/O(輸入/輸出)復(fù)用;業(yè)務(wù)板此時(shí)會(huì)通過之前從管理維護(hù)層中獲取的主控板IP等信息,對(duì)板卡進(jìn)行連接狀態(tài)連接;由于數(shù)據(jù)信令層的可靠性一定程度承載在管理維護(hù)層之上,因此會(huì)很快建立起連接,并將連接保持。接收/發(fā)送狀態(tài):此狀態(tài)是從應(yīng)用收取消息,發(fā)送到指定板卡以及從對(duì)板收到消息,交付給指定的應(yīng)用的一個(gè)狀態(tài)。在接收到管理維護(hù)層的命令或者TCP的保活異常時(shí)都會(huì)進(jìn)入重置狀態(tài)。重置狀態(tài):進(jìn)入此狀態(tài),則說明板卡出現(xiàn)了不可恢復(fù)的問題,會(huì)馬上重新進(jìn)入初始化狀態(tài)?;谝陨蟽蓚€(gè)層次的協(xié)同合作,就可以為AC提供穩(wěn)定的板間通信方法。
3板間通信運(yùn)行結(jié)果
根據(jù)設(shè)計(jì)原理用C語言編程[5]實(shí)現(xiàn),使用一臺(tái)在網(wǎng)絡(luò)中的ATCA平臺(tái)業(yè)務(wù)管理系統(tǒng)中的3塊單板,其中一塊單板作為主控板,另兩塊作為業(yè)務(wù)板,這3臺(tái)主機(jī)同時(shí)運(yùn)行板間通信模塊。主控板的工作設(shè)置為向業(yè)務(wù)板進(jìn)行消息廣播,同時(shí)接收業(yè)務(wù)板發(fā)送過來的消息。業(yè)務(wù)板的工作設(shè)置為向主控板發(fā)送消息,并接收主控板發(fā)送過來的消息。各個(gè)板卡的板號(hào)由ATCA接口提供。在應(yīng)用的使用過程中,并不會(huì)感知到板間通信管理維護(hù)層的存在,而只是認(rèn)為有板間通信數(shù)據(jù)信令層在工作。實(shí)際上,在應(yīng)用發(fā)送消息之前,管理維護(hù)層已經(jīng)使主控板對(duì)各個(gè)板卡進(jìn)行了關(guān)聯(lián)。
4結(jié)束語
本文設(shè)計(jì)的板間通信是適用于最新構(gòu)架的AC的一種動(dòng)態(tài)調(diào)控的板間通信策略。管理維護(hù)層可以動(dòng)態(tài)獲取ATCA機(jī)框上板卡信息,并使之關(guān)聯(lián),為業(yè)務(wù)面提供支持;業(yè)務(wù)面可以借助管理維護(hù)層的信息,使各個(gè)板卡實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸,大大增強(qiáng)了AC在大流量多用戶情況下的運(yùn)行穩(wěn)定性。
本文作者:杜勇余勛玲熊桂蘭工作單位:光纖通信技術(shù)和網(wǎng)絡(luò)國家重點(diǎn)實(shí)驗(yàn)室