李勁松, 曾 浩
(重慶郵電大學(xué) 通信與信息工程學(xué)院, 重慶 400065)
隨著 Internet的發(fā)展, IP 語(yǔ)音(VoIP)、 IPTV業(yè)務(wù)迅速發(fā)展,越來(lái)越多的 IP 終端設(shè)備被引入到網(wǎng)絡(luò)中。而IP終端設(shè)備作為一個(gè)嵌入式計(jì)算機(jī)系統(tǒng),軟件在其中起了重要作用。商業(yè)應(yīng)用中的終端,如需解決軟件中存在的Bug,提高運(yùn)行性能,修改某項(xiàng)業(yè)務(wù)或應(yīng)用等,都要對(duì)軟件進(jìn)行升級(jí)。因此必須有一套安全、可靠、適用的系統(tǒng)升級(jí)方案。
TR069全稱(chēng)為“CPE廣域網(wǎng)管理協(xié)議”。它提供了對(duì)下一代網(wǎng)絡(luò)中家庭網(wǎng)絡(luò)設(shè)備進(jìn)行管理配置的通用框架和協(xié)議,用于從網(wǎng)絡(luò)側(cè)對(duì)家庭網(wǎng)絡(luò)中的網(wǎng)關(guān)、路由器、機(jī)頂盒等設(shè)備進(jìn)行遠(yuǎn)程集中管理。通過(guò)它,我們可以很好地實(shí)現(xiàn)對(duì)終端設(shè)備的遠(yuǎn)程升級(jí)。
在TR069所定義的框架中,主要包括兩類(lèi)邏輯設(shè)備:受管理的用戶終端設(shè)備(CPE)和管理服務(wù)器(ACS)。在家庭網(wǎng)絡(luò)環(huán)境下,需要從網(wǎng)絡(luò)側(cè)進(jìn)行配置和管理的設(shè)備,一般都是與運(yùn)營(yíng)商業(yè)務(wù)直接相關(guān)的設(shè)備,比如家庭網(wǎng)關(guān)、機(jī)頂盒、IP電話終端等。而所有與用戶設(shè)備相關(guān)的配置、診斷、升級(jí)等工作均由統(tǒng)一的管理服務(wù)器ACS來(lái)完成。
TR069主要由自動(dòng)配置管理服務(wù)器ACS、用戶本地終端設(shè)備CPE、業(yè)務(wù)配置管理服務(wù)器及一些必要的管理接口組成。圖1描述了TR069協(xié)議在自動(dòng)配置網(wǎng)絡(luò)構(gòu)架中的定位。ACS為自動(dòng)配置服務(wù)器,負(fù)責(zé)完成對(duì)用戶終端設(shè)備CPE的管理。ACS與CPE之間的接口為南向接口,ACS與運(yùn)營(yíng)商的其他網(wǎng)管系統(tǒng)、業(yè)務(wù)管理系統(tǒng)之間的接口為北向接口。TR069協(xié)議主要定義了南向接口標(biāo)準(zhǔn)。
圖1 TR069網(wǎng)絡(luò)結(jié)構(gòu)
TR069協(xié)議的基本思路是利用了在新一代Web服務(wù)中廣泛使用的基于SOAP的RPC方法。其會(huì)話協(xié)議使用的是HTTP1.1協(xié)議,因此TR069可以方便地使用Web中的傳送層安全技術(shù),比如SSL/TLS。
圖2描述了CPEWAN管理協(xié)議中的協(xié)議棧結(jié)構(gòu)。TR069協(xié)議棧的下面幾層充分利用了現(xiàn)在廣泛使用的通信協(xié)議,比如TCP、HTTP、SOAP等。通過(guò)這些成熟的協(xié)議,ACS和CPE之間可以方便地建立通信的基本通道。TR069在SOAP之上定義了用于配置、查詢、升級(jí)等操作的特定的RPC方法,通信的兩端(ACS和CPE)都可以通過(guò)RPC調(diào)用來(lái)完成某個(gè)特定功能的執(zhí)行和得到返回的結(jié)果。
圖2 TR069協(xié)議棧
CPE和ACS之間的通信分為ACS發(fā)現(xiàn)階段和連接建立階段。在ACS發(fā)現(xiàn)階段,CPE需要得知ACS的URL或地址,這些信息可以是預(yù)配置在CPE中的,也可以通過(guò)DHCP的選項(xiàng)來(lái)傳送給CPE。一旦CPE得到ACS的URL或地址,CPE可以在任何時(shí)候發(fā)起對(duì)ACS的連接。
在連接過(guò)程中,CPE作為HTTP的客戶端,其SOAP請(qǐng)求通過(guò)HTTPPOST發(fā)送給ACS;而ACS作為HTTP的服務(wù)端,其SOAP請(qǐng)求通過(guò)HTTPResponse發(fā)送給CPE。在每一個(gè)HTTP請(qǐng)求中可以包含多個(gè)SOAP請(qǐng)求或響應(yīng)。
除了上面提到的方式,TR069還明確了ACS可以向CPE發(fā)起連接請(qǐng)求的規(guī)定,用于完成網(wǎng)絡(luò)側(cè)發(fā)起的異步配置動(dòng)作等。
本文采用TR069協(xié)議描述的RPC方法,CPE與ACS交互流程, 以及DSL Forum 定義的支持TR069協(xié)議的STB(機(jī)頂盒)數(shù)據(jù)模型,同時(shí)根據(jù)IPTV機(jī)頂盒系統(tǒng)架構(gòu),用軟件實(shí)現(xiàn)IPTV機(jī)頂盒遠(yuǎn)程升級(jí)系統(tǒng)在機(jī)頂盒中的應(yīng)用。
IPTV 機(jī)頂盒由軟件和硬件兩大部分組成,其中硬件包含了主芯片、內(nèi)存、調(diào)諧解調(diào)器、回傳通道、CA(加密系統(tǒng))接口、外部存儲(chǔ)控制器以及音視頻輸入輸出等部分;軟件主要包括嵌入式操作系統(tǒng)、各類(lèi)驅(qū)動(dòng)程序和應(yīng)用層軟件。其中,操作系統(tǒng)由嵌入式Linux操作系統(tǒng)實(shí)現(xiàn),該操作系統(tǒng)便于IPTV機(jī)頂盒應(yīng)用軟件的開(kāi)發(fā)。由于IPTV機(jī)頂盒需要實(shí)現(xiàn)網(wǎng)絡(luò)接入、音視頻播放、用戶控制等功能,所以,機(jī)頂盒的軟件部分主要模塊有:網(wǎng)絡(luò)接入模塊、流媒體傳送和控制模塊、流媒體播放器模塊、瀏覽器模塊、機(jī)頂盒管理及配置模塊、網(wǎng)管模塊、應(yīng)用層軟件模塊等。 本文所設(shè)計(jì)的IPTV機(jī)頂盒遠(yuǎn)程升級(jí)系統(tǒng)主要是通過(guò)應(yīng)用層軟件實(shí)現(xiàn)IPTV機(jī)頂盒的升級(jí)。
IPTV機(jī)頂盒遠(yuǎn)程升級(jí)系統(tǒng)主要有3個(gè)部分組成:自動(dòng)配置服務(wù)器、HTTP服務(wù)器、終端。升級(jí)工作流程如圖3所示。
圖3 升級(jí)流程圖
2.2.1 安全建立連接流程
盒端主動(dòng)發(fā)起的連接,機(jī)頂盒通過(guò)HTTP Digest Authentication發(fā)起與終端管理系統(tǒng)的認(rèn)證連接。終端管理系統(tǒng)會(huì)要求進(jìn)行HTTP Digest Authentication認(rèn)證,認(rèn)證通過(guò)建立連接。本文中連接方式遵循RFC 2617的規(guī)定。
2.2.2 開(kāi)機(jī)注冊(cè)與信息上報(bào)
①盒端開(kāi)機(jī)后,調(diào)用Inform方法,上報(bào)盒端信息及參數(shù)。
②終端管理系統(tǒng)返回Inform Response。
③盒端發(fā)起一條空的HTTP Post請(qǐng)求。
④終端管理系統(tǒng)根據(jù)盒端信息判斷是否需要更新固件。
⑤如果需要更新固件,參考軟件下載和固件更新流程。
2.2.3 軟件下載和固件更新流程
①終端管理系統(tǒng)經(jīng)檢查確定盒端的軟件版本需要升級(jí),向盒端發(fā)起Download要求。
②盒端重新打開(kāi)一個(gè)文件連接(FTP或HTTP)執(zhí)行文件下載操作。下載完成后,進(jìn)行本地軟件升級(jí)。盒端升級(jí)完成后,若會(huì)話斷開(kāi),則開(kāi)始步驟③,若會(huì)話仍在進(jìn)行或新會(huì)話已開(kāi)始,則跳過(guò)步驟③和④,從步驟⑤開(kāi)始執(zhí)行。
③盒端發(fā)起Inform請(qǐng)求,若下載應(yīng)用中沒(méi)有重啟,則Event code為7 TRANSFERCOMPLETE和M DOWNLOAD;若下載應(yīng)用中伴隨著重啟, 則 Event code為 1 BOOT 、7 TRANSFER COMPLETE和M DOWNLOAD。
④終端管理系統(tǒng)對(duì)盒端進(jìn)行設(shè)備認(rèn)證,合法則終端管理系統(tǒng)返回Inform Response。
⑤盒端發(fā)送TransferComplete,上報(bào)軟件升級(jí)詳細(xì)信息。
⑥終端管理系統(tǒng)響應(yīng)TransferComplete Response。
⑦盒端發(fā)送一條空的Http Post請(qǐng)求。
⑧終端管理系統(tǒng)沒(méi)有別的請(qǐng)求時(shí),向盒端發(fā)送一條空的Http Post響應(yīng)盒端斷開(kāi)連接,會(huì)話結(jié)束。
本方案采用交叉編譯調(diào)試的方式,即編譯調(diào)試環(huán)境建立在宿主機(jī)上,開(kāi)發(fā)時(shí)使用宿主機(jī)上的交叉編譯工具鏈來(lái)生成目標(biāo)板上運(yùn)行的二進(jìn)制代碼,然后把可執(zhí)行文件下載到目標(biāo)機(jī)上運(yùn)行。本方案中,以裝有Android操作系統(tǒng)的主機(jī)作為宿主機(jī)。當(dāng)編譯成功后,通過(guò)串口板下載到機(jī)頂盒開(kāi)發(fā)板上運(yùn)行,通過(guò)視頻線將視頻信號(hào)接入電視機(jī)進(jìn)行用戶體驗(yàn)測(cè)試
本測(cè)試方案的主要目的是針對(duì)機(jī)頂盒自動(dòng)遠(yuǎn)程升級(jí)的測(cè)試。重點(diǎn)測(cè)試機(jī)頂盒是否在開(kāi)機(jī)后能夠自動(dòng)判斷,并根據(jù)需要進(jìn)行升級(jí)。圖4為機(jī)頂盒成功下載升級(jí)包后,發(fā)送給終端管理服務(wù)器的響應(yīng)部分信息。
圖4 下載成功盒端響應(yīng)部分信息
本文通過(guò)分析TR069管理協(xié)議及其關(guān)鍵技術(shù),提出并設(shè)計(jì)了一種IPTV機(jī)頂盒遠(yuǎn)程升級(jí)系統(tǒng)。測(cè)試結(jié)果顯示,所設(shè)計(jì)的方案能夠滿足需求。下一步的工作是改進(jìn)機(jī)頂盒的開(kāi)機(jī)升級(jí)機(jī)制,加強(qiáng)其對(duì)實(shí)時(shí)性的支持,使用戶在體驗(yàn)業(yè)務(wù)的同時(shí)進(jìn)行自動(dòng)升級(jí)。
[1] 蒲艷.基于TR069協(xié)議的網(wǎng)管系統(tǒng)的研究[D].北京:華北電力大學(xué), 2011.
[2] 齊少安,梅斌,翟麗平.基于TR069協(xié)議實(shí)現(xiàn)IPTV盒端管理[J].郵電設(shè)計(jì)技術(shù),2011(12):12-16.
[3] 黃璇,李文耀,江愛(ài).IPTV 機(jī)頂盒的研究及設(shè)計(jì)[J].光通信研究,2008,150(6):52-54.
[4] 陳毅文.基于TR069的終端管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008(5):74-77.
[5] TR-069,CPE WAN management protocol[S].UK:Jungo Software Technologies Co,2004.
[6] DSL Home-Technical Working Group.Technical report DSL forum TR-135 data model for a TR-069 enabled STB[S].2007.
[7] 孟靜,辛宇.采用TR069協(xié)議實(shí)現(xiàn)機(jī)頂盒的管理功能[J].電視技術(shù), 2009(12):49-51.
[8] 郭先會(huì),曾浩,李致興.TR069協(xié)議在IPTV終端管理系統(tǒng)中的研究與應(yīng)用[J].電視技術(shù),2011(05):60-62,73.
[9] DSL Home-Technical Working Group.Technical report DSL forum TR-069 amendment 1 CPE WAN. management protocol[S].2007.