李莉
摘要:已有的網(wǎng)絡(luò)管理協(xié)議的復(fù)雜性不適合特定設(shè)備和場合的要求,在針對智能設(shè)備的網(wǎng)絡(luò)管理中,需要較為簡單的協(xié)議和系統(tǒng)支撐?;赥CP構(gòu)建的網(wǎng)絡(luò)管理系統(tǒng),可以較好的滿足設(shè)備狀態(tài)監(jiān)測,遠(yuǎn)程設(shè)備控制等基本功能,在小型智能設(shè)備中也容易部署實施。
關(guān)鍵詞:網(wǎng)絡(luò)管理;智能設(shè)備;TCP
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)01-0015-05
Simple TCP-based Network Management System
LI Li
(Dandong Border Check Points,Dandong 118000,China)
Abstract: Existing network management protocol is not suitable for the complexity of the requirements of specific devices and applications in network management for smart devices, the need for more simple protocol and system support. TCP-based network management system built that can better meet the equipment condition monitoring,remote device control and other basic functions, in a small intelligent devices can easily deploy the implementation.
Key words:network management; smart devices; TCP
智能設(shè)備一般屬于專用設(shè)備,其功能單一,用戶接口較少。連接網(wǎng)絡(luò)的智能設(shè)備,特別是不屬于電信運營商的特定網(wǎng)絡(luò),一般沒有運營商指定的規(guī)范要求。為滿足這種場合的設(shè)備管理需求,基于TCP協(xié)議,采用XML作為命令和數(shù)據(jù)承載方式,開發(fā)了一種簡單靈活的設(shè)備網(wǎng)絡(luò)管理協(xié)議。經(jīng)過在聯(lián)網(wǎng)廣告終端,機(jī)頂盒等設(shè)備中的現(xiàn)場使用,達(dá)到了較好的效果。
1網(wǎng)絡(luò)管理功能需求概述
圖1終端網(wǎng)絡(luò)管理拓?fù)?/p>
圖1所示為典型的現(xiàn)場網(wǎng)絡(luò)拓?fù)鋱D。在各種復(fù)雜的網(wǎng)絡(luò)環(huán)境中,站在終端的立場上,有接入方式的不同:如有線以太網(wǎng)類型,無線Wifi接入,GPRS/3G網(wǎng)絡(luò)接入等;也有網(wǎng)絡(luò)環(huán)境的不同:如采用VPN網(wǎng)絡(luò),或使用局域網(wǎng),或者是家庭的ADSL撥號網(wǎng)絡(luò);這就要求網(wǎng)絡(luò)管理所采用的網(wǎng)絡(luò)協(xié)議,必須能夠滿足這些復(fù)雜的環(huán)境。
一般來說,UDP協(xié)議的網(wǎng)絡(luò)開銷較小,但UDP協(xié)議沒有回傳機(jī)制和窗口協(xié)商機(jī)制的保證,可靠性無法保障;另外,UDP協(xié)議對復(fù)雜網(wǎng)絡(luò)環(huán)境的適應(yīng)性不好。TCP協(xié)議是一種可靠的網(wǎng)絡(luò)協(xié)議,其協(xié)議設(shè)計采用三次握手來保障連接的可靠性;另外,TCP設(shè)計了通信確認(rèn),窗口動態(tài)調(diào)整,失敗回傳等內(nèi)容,可以較好的滿足網(wǎng)管可靠性的要求。
一般來說,簡單網(wǎng)絡(luò)管理的功能包括如下幾個方面:
1)設(shè)備的注冊,認(rèn)證:設(shè)備通過發(fā)送注冊指令完成其在網(wǎng)絡(luò)管理服務(wù)器上的身份認(rèn)證,在協(xié)議層面,該請求是第一次發(fā)送TCP數(shù)據(jù)包到網(wǎng)管服務(wù)器,服務(wù)器會為此連接建立一個獨立的進(jìn)程,處理與之相關(guān)的后續(xù)數(shù)據(jù)請求。
2)設(shè)備的在線離線管理,心跳維護(hù):設(shè)備通過TCP協(xié)議在間隔一定時間后連續(xù)發(fā)送心跳數(shù)據(jù)到網(wǎng)管服務(wù)器,用以維護(hù)其活動狀態(tài);如果服務(wù)器在間隔三個時間間隔內(nèi)沒有收到設(shè)備的心跳數(shù)據(jù),則認(rèn)為終端設(shè)備已經(jīng)離線。在心跳數(shù)據(jù)中,終端附送自己的業(yè)務(wù)運行狀態(tài)在其中,完成狀態(tài)的定時上報功能,其活動狀態(tài)可以包含:正在開機(jī),正在關(guān)機(jī),正在運行某個程序,正在下載等自定義格式數(shù)據(jù)。
3)設(shè)備運行狀態(tài)獲?。捍嗣钣糜诜?wù)器發(fā)送信令到設(shè)備上,用以獲取設(shè)備實時狀態(tài),與上一步的定時上報不同。
4)設(shè)備控制和遠(yuǎn)程操作:通過遠(yuǎn)程控制指令,實現(xiàn)對設(shè)備的遠(yuǎn)程開機(jī),關(guān)機(jī),業(yè)務(wù)流程跳轉(zhuǎn)(如插播某條廣告信息)等。
5)設(shè)備的遠(yuǎn)程維護(hù):可以通過該指令完成設(shè)備遠(yuǎn)程下載,升級,故障診斷等操作,實現(xiàn)設(shè)備的遠(yuǎn)程無人維護(hù)。
2基于TCP和XML的網(wǎng)管協(xié)議設(shè)計
為了能夠保證網(wǎng)管協(xié)議的靈活擴(kuò)展,將服務(wù)器和客戶端之間的交互協(xié)議使用XML來定義。利用基于XML的通信協(xié)議,可以實現(xiàn)終端的注冊認(rèn)證,遠(yuǎn)程控制,心跳維護(hù)等接口,從根本上實現(xiàn)對終端的管理控制。
其協(xié)議設(shè)計如下:
1)網(wǎng)管協(xié)議基于HTTP協(xié)議完成,通過POST方法完成數(shù)據(jù)的提交,提交數(shù)據(jù)內(nèi)容為XML文檔;
2) XML數(shù)據(jù)組織通用格式如下所示:
xml version="1.0" encoding="UTF-8"?
……
……
其中,adsys為表示廣告信息系統(tǒng)的關(guān)鍵標(biāo)識,其它業(yè)務(wù)相關(guān)的指令都需要包含到其中。stbuser關(guān)鍵字標(biāo)示終端相關(guān)的數(shù)據(jù)分組,其中一般會包含終端賬號,MAC地址等信息;
3)開機(jī)連接認(rèn)證接口:提交終端硬件版本,硬件型號、軟件版本,進(jìn)行終端有效性認(rèn)證,返回對應(yīng)的廣告服務(wù)系統(tǒng)IP,服務(wù)端口、心跳間隔等接口參數(shù);
終端通過HTTP POST方法上報如下數(shù)據(jù):
mac_address:終端MAC;hardmodel:終端型號;hardver:終端硬件版本;softver:終端軟件版本。
系統(tǒng)受到該請求后,通過HTTP回復(fù)200 OK的確認(rèn)信息,同時將如下數(shù)據(jù)回復(fù)給終端:
xml version="1.0" encoding="UTF-8"?
其中,result標(biāo)示注冊是否成功,stbuser中包含了注冊成功的終端賬號,狀態(tài),廣告服務(wù)器系統(tǒng)IP地址,端口號,心跳間隔和廣告策略下載接口。終端收到這些信息后,將會根據(jù)回復(fù)信息中的服務(wù)器系統(tǒng)IP地址和端口號主動連接服務(wù)器,并將心跳信息發(fā)送過去,此后將按照回復(fù)中的心跳間隔信息,到指定時間后再次發(fā)送心跳信息。
4)終端主動獲取服務(wù)器策略的接口:終端可以在每天的指定時間,通過接口自主進(jìn)行分發(fā)展示策略及文件的下載,下載的接口URL為首次通過認(rèn)證后返回的下載URL。
終端通過HTTP POST方法上報如下數(shù)據(jù):mac_address:終端MAC。
系統(tǒng)受到該信息后,返回數(shù)據(jù)格式為:
xml version="1.0" encoding="UTF-8"?
其中,cur_scheme標(biāo)示當(dāng)前正使用的策略信息,如果為空,標(biāo)示著沒有使用任何策略;next_scheme標(biāo)示著寫一個即將生效的策略。每個策略字段中,包含有策略生效時間,下載地址,下載最大帶寬等信息內(nèi)容。
5)心跳接口:終端定時向指定的廣告服務(wù)系統(tǒng)的管理端口進(jìn)行心跳上報;如果在心跳中發(fā)現(xiàn)控制鏈路終端,則再次進(jìn)行控制鏈路的建立;系統(tǒng)端接收到終端心跳后,更新最后心跳時間,并將系統(tǒng)當(dāng)前時間返回給終端,終端更新其內(nèi)的時間;心跳頻率為30分鐘一次,可根據(jù)現(xiàn)場要求修改。
心跳發(fā)送數(shù)據(jù)格式為:
xml version="1.0" encoding="UTF-8"?
網(wǎng)管服務(wù)系統(tǒng)回復(fù)
xml version="1.0" encoding="UTF-8"?
心跳信息通過在command中使用adstblive來標(biāo)示,上傳信息中stbid填寫終端的網(wǎng)卡MAC地址,標(biāo)示終端的唯一身份信息;服務(wù)器回復(fù)信息中同樣包含MAC地址信息,用于終端確認(rèn)是自己的回復(fù)信息,同時包含當(dāng)前的時間信息,如2010年4月14日上午10點27分40秒可表示為:20100414103740。
6)獲取當(dāng)前終端屏幕狀態(tài)信息:通知終端將當(dāng)前終端的播放界面進(jìn)行截屏,并將截屏圖片上傳到網(wǎng)管系統(tǒng)中。數(shù)據(jù)的上傳通過FTP文件傳送方式進(jìn)行。
系統(tǒng)發(fā)送命令格式如下:
xml version="1.0" encoding="UTF-8"?
其中stbid為終端網(wǎng)卡MAC地址,ftp_ip,ftp_port,ftp_user,ftp_passwd表示上傳數(shù)據(jù)的FTP服務(wù)器地址,端口號,用戶名,密碼信息,screenfilename關(guān)鍵字標(biāo)示上傳圖片文件的命名方法。
終端收到該命令后,首先完成抓屏操作,將當(dāng)前屏幕保存為指定名稱的問題件,并上傳至指定的FTP服務(wù)器,然后回復(fù)確認(rèn)命令。
7)終端的遠(yuǎn)程控制:終端定時向指定的網(wǎng)管服務(wù)系統(tǒng)的管理端口進(jìn)行心跳上報;如果在心跳中發(fā)現(xiàn)控制鏈路終端,則再次進(jìn)行控制鏈路的建立;接收到終端心跳后,更新最后心跳時間,并回復(fù)指定格式的控制指令。
接口協(xié)議根據(jù)控制命令不同而有所差異:
#重啟指令:
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
xml version="1.0" encoding="UTF-8"?
協(xié)議中定義了遠(yuǎn)程開關(guān)機(jī),待機(jī)的功能,其中通過command字段來區(qū)分控制類型。其中adshutdown表示關(guān)機(jī),adstart表示遠(yuǎn)程開機(jī),adautostandby表示自動待機(jī)。在autoctrllist包含命令附屬的時間信息,如開機(jī),關(guān)機(jī)時間分別使用autostart,autoclose表示。
終端還可以通過遠(yuǎn)程維護(hù)命令完成日志上傳,升級等維護(hù)操作。
3在廣告信息終端中的應(yīng)用
在筆者主持研發(fā)的廣告信息終端是一種通過無線聯(lián)網(wǎng)的廣告信息播控設(shè)備,可以通過遠(yuǎn)程控制實現(xiàn)終端廣告策略的調(diào)整,廣告片源的更換,遠(yuǎn)程開關(guān)機(jī)等,其中完全應(yīng)用基于TCP的簡單網(wǎng)絡(luò)管理模式。
圖2廣告信息終端數(shù)據(jù)流圖
如圖2中所示,信息終端中的tcpClient模塊負(fù)責(zé)和服務(wù)器完成信令的交互,TCP客戶端在廣告信息發(fā)布機(jī)中起命令傳輸?shù)淖饔?,?fù)責(zé)從廣告服務(wù)系統(tǒng)獲得控制命令,并將命令通過應(yīng)用程序管理器送給其他功能模塊;其中命令有四種類型:連接請求,心跳交互,日志上傳,控制命令。其中連接請求只在開始連接時發(fā)送一次,心跳交互則默認(rèn)每隔30s一次,日志上傳只有每天零點上傳一次。而控制命令則包含了較為廣泛的范圍:如遠(yuǎn)程開關(guān)機(jī),下載,獲取遠(yuǎn)程屏幕狀態(tài)信息,獲取遠(yuǎn)端視頻信息等。
tcpClient客戶端的主要流程如圖3所示。
圖3 tcpClient流程圖
在實際應(yīng)用過程中,完成TCP連接后終端的客戶端要保持客戶端和服務(wù)器之間的常連接,一旦TCP連接中斷,終端能夠迅速檢測到,并能夠重新向服務(wù)器發(fā)起連接請求,維持連接狀態(tài)。socket連接成功后,按照啟動參數(shù)時間間隔發(fā)送心跳命令,連續(xù)3次收不到回復(fù),從新發(fā)起socket連接。
基于該管理協(xié)議,廣告信息終端實現(xiàn)了免人工維護(hù)的成本優(yōu)勢,在實際運營過程中得到了客戶的認(rèn)可。4結(jié)論
基于TCP構(gòu)建的網(wǎng)絡(luò)管理系統(tǒng),可以適應(yīng)復(fù)雜多變的網(wǎng)絡(luò)拓?fù)洵h(huán)境和各種應(yīng)用場合,即使在基于GPRS無線網(wǎng)絡(luò)的環(huán)境中,也可以使用。采用基于XML的信令格式,為網(wǎng)管協(xié)議的靈活擴(kuò)展奠定了很好的基礎(chǔ)。在廣告機(jī)等終端現(xiàn)場使用測試中,該模式穩(wěn)定可靠,可以滿足簡單的網(wǎng)絡(luò)管理需求。
參考文獻(xiàn):
[1]劉偉.寬帶綜合接入技術(shù)[M].北京:科學(xué)出版社,2007.
[2]史蒂文斯. TCP/IP詳解(卷1:協(xié)議) [M].范建華,譯.北京:機(jī)械工業(yè)出版社,2007.
[3]韓江洪.智能家居系統(tǒng)與技術(shù)[M].合肥:合肥工業(yè)大學(xué)出版社,2005.
[4]孟小峰.XML數(shù)據(jù)管理:概念與技術(shù)[M].北京:清華大學(xué)出版社,2009.