基于動態(tài)調(diào)控的通信策略

時間:2022-08-19 02:33:17

導語:基于動態(tài)調(diào)控的通信策略一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

基于動態(tài)調(diào)控的通信策略

1AC板間通信總體結(jié)構(gòu)及功能

AC在多板架構(gòu)中對外展現(xiàn)的是一個完整系統(tǒng),而內(nèi)部是基于ATCA架構(gòu),包含兩種類型的板卡:主控板和業(yè)務(wù)板。主控板的功能是對各個業(yè)務(wù)板的業(yè)務(wù)下發(fā)、狀態(tài)控制以及設(shè)備維護;業(yè)務(wù)板的功能是對接入點和用戶的業(yè)務(wù)進行處理并將其狀態(tài)上傳。要將AC的多板架構(gòu)對外展現(xiàn)出一致性,就需要板間通信的協(xié)同。AC的多板構(gòu)架及模塊組成如圖1所示。在AC板間通信中,使用Linux操作系統(tǒng)[1]的套接字作為板間通信的基礎(chǔ),有以下好處:(1)有一個已經(jīng)實現(xiàn)的協(xié)議棧,可以支持各種應(yīng)用層協(xié)議,能夠?qū)Π彘g通信提供穩(wěn)定的支撐。(2)統(tǒng)一的平臺使板間通信方法更具有通用性,可以在多個類型的板卡(如X86,mips,powerPC等)硬件架構(gòu)上使用。(3)使板間通信有了清晰的網(wǎng)絡(luò)層次結(jié)構(gòu),實現(xiàn)于傳輸層及以上、應(yīng)用層之下。可為應(yīng)用層提供服務(wù);而在傳輸層以下,直接使用協(xié)議棧的接口。當需要增加新的底層通信通道時,可以加入新增的底層實現(xiàn)方式,并調(diào)用即可。實現(xiàn)了層次架構(gòu)的可擴展性。本文中的板間通信方法是分層次的,保證了數(shù)據(jù)信令層和管理維護層的分開傳輸,既可以將多個板卡之間的數(shù)據(jù)進行收發(fā)處理,又對各個板卡進行監(jiān)控維護。板間通信模塊的分層結(jié)構(gòu)如圖2所示管理維護層為各個板卡的狀態(tài)提供有力支撐。主控板在啟動時,會對業(yè)務(wù)板進行動態(tài)的發(fā)現(xiàn),確定板卡是否存在,并獲取其基本信息。在建立關(guān)聯(lián)之后對板卡狀態(tài)進行維護管理,通過心跳檢測功能確定板卡狀態(tài)。若板卡異常,則會立即通知應(yīng)用。數(shù)據(jù)信令層為各個板卡提供數(shù)據(jù)傳輸通道。主控板在管理維護層發(fā)現(xiàn)板卡成功之后,就會開啟板卡的數(shù)據(jù)信令層通道,等待業(yè)務(wù)板進行連接,之后板卡之間就通過此通道進行數(shù)據(jù)業(yè)務(wù)的發(fā)送,附帶有保活機制。

2AC板間通信設(shè)計原理

基于以上功能需求,對AC板間通信的設(shè)計在管理維護層和數(shù)據(jù)信令層的方法是分而治之的[2]。兩個平面既有交集又相互獨立,這是維護板卡AC和底層支撐的關(guān)鍵。在實現(xiàn)方式上,管理維護層由于要實現(xiàn)板卡發(fā)現(xiàn)和心跳維護,因而使用UDP廣播發(fā)現(xiàn);數(shù)據(jù)信令層需要考慮可靠的數(shù)據(jù)傳輸以及消息的確認,則使用TCP方式來實現(xiàn)[3]。

2.1管理維護層設(shè)計原理

主控板對業(yè)務(wù)板的管理是通過管理維護層來實現(xiàn)的。主控板上維持著業(yè)務(wù)板的狀態(tài)機,運行在主控板上的管理維護層還需同其他模塊進行交互。圖3所示為管理維護層的狀態(tài)機的狀態(tài)遷移圖。各狀態(tài)分析如下:發(fā)現(xiàn)狀態(tài):每個板卡從ATCA機框的接口可以獲取各自的板卡槽位號。業(yè)務(wù)板在剛啟動時通過廣播來發(fā)現(xiàn)主控板,主控板會對廣播進行單播響應(yīng)。若主控板未響應(yīng),則業(yè)務(wù)板會重發(fā)發(fā)現(xiàn)請求消息。加入狀態(tài):在業(yè)務(wù)板收到發(fā)現(xiàn)響應(yīng)消息,即發(fā)現(xiàn)了主控板后,會發(fā)送加入請求消息到主控板,主控板則對請求作出回應(yīng)。配置狀態(tài):業(yè)務(wù)板進入加入狀態(tài)初期,還不能正常運行,因為板卡上沒有信息,也沒有接入點和用戶的上下文,此時要發(fā)送配置消息來請求配置。數(shù)據(jù)檢查狀態(tài):主控板配置業(yè)務(wù)板完成后,業(yè)務(wù)板檢查自己的狀態(tài)是否正確,如果正確,則進入運行狀態(tài)。運行狀態(tài):在此狀態(tài)下業(yè)務(wù)板可以正常轉(zhuǎn)發(fā)數(shù)據(jù),可以接收主控板的配置消息(添加或刪除某個接入點或用戶的上下文),還要定期向主控板發(fā)送心跳消息,讓主控板知道業(yè)務(wù)板仍在正常工作。如果心跳檢測失敗,則通知上層應(yīng)用,通過指令令其重啟。重置狀態(tài):當主控板幾次沒有對心跳消息作出回應(yīng)時,進入此狀態(tài)。一段時間后,業(yè)務(wù)板將重啟,進入最初始的狀態(tài)。通過管理維護層的幾個狀態(tài)的轉(zhuǎn)換,主控板就可以動態(tài)地將業(yè)務(wù)板關(guān)聯(lián)起來,并實時地維護板卡狀態(tài),對有問題的板卡,馬上對應(yīng)用及數(shù)據(jù)信令層進行上報。另外,在進入加入狀態(tài)之后,管理維護層會為數(shù)據(jù)信令層提供節(jié)點號(板號)到IP地址或端口的映射。由于該映射是動態(tài)記錄的,在板卡發(fā)生變化時就會產(chǎn)生新的映射關(guān)系。

2.2數(shù)據(jù)信令層設(shè)計原理

數(shù)據(jù)信令層依靠管理維護層對各個板卡實現(xiàn)的關(guān)聯(lián),用TCP[4]為應(yīng)用建立一條可靠的數(shù)據(jù)通路,使應(yīng)用可以使用這個專用通道進行數(shù)據(jù)的傳輸,并通過消息的方式通知應(yīng)用收取消息,或者從應(yīng)用的消息隊列中取出消息發(fā)送到對應(yīng)業(yè)務(wù)板上。圖4所示為數(shù)據(jù)信令層的狀態(tài)機的狀態(tài)遷移圖。各狀態(tài)分析如下:初始化狀態(tài):為各個板卡進行初始化配置,創(chuàng)建選擇、消息隊列和信號量。判斷管理維護層進入加入狀態(tài)之后,跳轉(zhuǎn)到下一個狀態(tài)。選擇/連接狀態(tài):主控板此時會進入選擇狀態(tài),對每一個業(yè)務(wù)板進行通道建立及I/O(輸入/輸出)復用;業(yè)務(wù)板此時會通過之前從管理維護層中獲取的主控板IP等信息,對板卡進行連接狀態(tài)連接;由于數(shù)據(jù)信令層的可靠性一定程度承載在管理維護層之上,因此會很快建立起連接,并將連接保持。接收/發(fā)送狀態(tài):此狀態(tài)是從應(yīng)用收取消息,發(fā)送到指定板卡以及從對板收到消息,交付給指定的應(yīng)用的一個狀態(tài)。在接收到管理維護層的命令或者TCP的?;町惓r都會進入重置狀態(tài)。重置狀態(tài):進入此狀態(tài),則說明板卡出現(xiàn)了不可恢復的問題,會馬上重新進入初始化狀態(tài)?;谝陨蟽蓚€層次的協(xié)同合作,就可以為AC提供穩(wěn)定的板間通信方法。

3板間通信運行結(jié)果

根據(jù)設(shè)計原理用C語言編程[5]實現(xiàn),使用一臺在網(wǎng)絡(luò)中的ATCA平臺業(yè)務(wù)管理系統(tǒng)中的3塊單板,其中一塊單板作為主控板,另兩塊作為業(yè)務(wù)板,這3臺主機同時運行板間通信模塊。主控板的工作設(shè)置為向業(yè)務(wù)板進行消息廣播,同時接收業(yè)務(wù)板發(fā)送過來的消息。業(yè)務(wù)板的工作設(shè)置為向主控板發(fā)送消息,并接收主控板發(fā)送過來的消息。各個板卡的板號由ATCA接口提供。在應(yīng)用的使用過程中,并不會感知到板間通信管理維護層的存在,而只是認為有板間通信數(shù)據(jù)信令層在工作。實際上,在應(yīng)用發(fā)送消息之前,管理維護層已經(jīng)使主控板對各個板卡進行了關(guān)聯(lián)。

4結(jié)束語

本文設(shè)計的板間通信是適用于最新構(gòu)架的AC的一種動態(tài)調(diào)控的板間通信策略。管理維護層可以動態(tài)獲取ATCA機框上板卡信息,并使之關(guān)聯(lián),為業(yè)務(wù)面提供支持;業(yè)務(wù)面可以借助管理維護層的信息,使各個板卡實現(xiàn)數(shù)據(jù)的可靠傳輸,大大增強了AC在大流量多用戶情況下的運行穩(wěn)定性。

本文作者:杜勇余勛玲熊桂蘭工作單位:光纖通信技術(shù)和網(wǎng)絡(luò)國家重點實驗室