李劲松, 曾 浩
(重庆邮电大学 通信与信息工程学院, 重庆 400065)
随着 Internet的发展, IP 语音(VoIP)、 IPTV业务迅速发展,越来越多的 IP 终端设备被引入到网络中。而IP终端设备作为一个嵌入式计算机系统,软件在其中起了重要作用。商业应用中的终端,如需解决软件中存在的Bug,提高运行性能,修改某项业务或应用等,都要对软件进行升级。因此必须有一套安全、可靠、适用的系统升级方案。
TR069全称为“CPE广域网管理协议”。它提供了对下一代网络中家庭网络设备进行管理配置的通用框架和协议,用于从网络侧对家庭网络中的网关、路由器、机顶盒等设备进行远程集中管理。通过它,我们可以很好地实现对终端设备的远程升级。
在TR069所定义的框架中,主要包括两类逻辑设备:受管理的用户终端设备(CPE)和管理服务器(ACS)。在家庭网络环境下,需要从网络侧进行配置和管理的设备,一般都是与运营商业务直接相关的设备,比如家庭网关、机顶盒、IP电话终端等。而所有与用户设备相关的配置、诊断、升级等工作均由统一的管理服务器ACS来完成。
TR069主要由自动配置管理服务器ACS、用户本地终端设备CPE、业务配置管理服务器及一些必要的管理接口组成。图1描述了TR069协议在自动配置网络构架中的定位。ACS为自动配置服务器,负责完成对用户终端设备CPE的管理。ACS与CPE之间的接口为南向接口,ACS与运营商的其他网管系统、业务管理系统之间的接口为北向接口。TR069协议主要定义了南向接口标准。
图1 TR069网络结构
TR069协议的基本思路是利用了在新一代Web服务中广泛使用的基于SOAP的RPC方法。其会话协议使用的是HTTP1.1协议,因此TR069可以方便地使用Web中的传送层安全技术,比如SSL/TLS。
图2描述了CPEWAN管理协议中的协议栈结构。TR069协议栈的下面几层充分利用了现在广泛使用的通信协议,比如TCP、HTTP、SOAP等。通过这些成熟的协议,ACS和CPE之间可以方便地建立通信的基本通道。TR069在SOAP之上定义了用于配置、查询、升级等操作的特定的RPC方法,通信的两端(ACS和CPE)都可以通过RPC调用来完成某个特定功能的执行和得到返回的结果。
图2 TR069协议栈
CPE和ACS之间的通信分为ACS发现阶段和连接建立阶段。在ACS发现阶段,CPE需要得知ACS的URL或地址,这些信息可以是预配置在CPE中的,也可以通过DHCP的选项来传送给CPE。一旦CPE得到ACS的URL或地址,CPE可以在任何时候发起对ACS的连接。
在连接过程中,CPE作为HTTP的客户端,其SOAP请求通过HTTPPOST发送给ACS;而ACS作为HTTP的服务端,其SOAP请求通过HTTPResponse发送给CPE。在每一个HTTP请求中可以包含多个SOAP请求或响应。
除了上面提到的方式,TR069还明确了ACS可以向CPE发起连接请求的规定,用于完成网络侧发起的异步配置动作等。
本文采用TR069协议描述的RPC方法,CPE与ACS交互流程, 以及DSL Forum 定义的支持TR069协议的STB(机顶盒)数据模型,同时根据IPTV机顶盒系统架构,用软件实现IPTV机顶盒远程升级系统在机顶盒中的应用。
IPTV 机顶盒由软件和硬件两大部分组成,其中硬件包含了主芯片、内存、调谐解调器、回传通道、CA(加密系统)接口、外部存储控制器以及音视频输入输出等部分;软件主要包括嵌入式操作系统、各类驱动程序和应用层软件。其中,操作系统由嵌入式Linux操作系统实现,该操作系统便于IPTV机顶盒应用软件的开发。由于IPTV机顶盒需要实现网络接入、音视频播放、用户控制等功能,所以,机顶盒的软件部分主要模块有:网络接入模块、流媒体传送和控制模块、流媒体播放器模块、浏览器模块、机顶盒管理及配置模块、网管模块、应用层软件模块等。 本文所设计的IPTV机顶盒远程升级系统主要是通过应用层软件实现IPTV机顶盒的升级。
IPTV机顶盒远程升级系统主要有3个部分组成:自动配置服务器、HTTP服务器、终端。升级工作流程如图3所示。
图3 升级流程图
2.2.1 安全建立连接流程
盒端主动发起的连接,机顶盒通过HTTP Digest Authentication发起与终端管理系统的认证连接。终端管理系统会要求进行HTTP Digest Authentication认证,认证通过建立连接。本文中连接方式遵循RFC 2617的规定。
2.2.2 开机注册与信息上报
①盒端开机后,调用Inform方法,上报盒端信息及参数。
②终端管理系统返回Inform Response。
③盒端发起一条空的HTTP Post请求。
④终端管理系统根据盒端信息判断是否需要更新固件。
⑤如果需要更新固件,参考软件下载和固件更新流程。
2.2.3 软件下载和固件更新流程
①终端管理系统经检查确定盒端的软件版本需要升级,向盒端发起Download要求。
②盒端重新打开一个文件连接(FTP或HTTP)执行文件下载操作。下载完成后,进行本地软件升级。盒端升级完成后,若会话断开,则开始步骤③,若会话仍在进行或新会话已开始,则跳过步骤③和④,从步骤⑤开始执行。
③盒端发起Inform请求,若下载应用中没有重启,则Event code为7 TRANSFERCOMPLETE和M DOWNLOAD;若下载应用中伴随着重启, 则 Event code为 1 BOOT 、7 TRANSFER COMPLETE和M DOWNLOAD。
④终端管理系统对盒端进行设备认证,合法则终端管理系统返回Inform Response。
⑤盒端发送TransferComplete,上报软件升级详细信息。
⑥终端管理系统响应TransferComplete Response。
⑦盒端发送一条空的Http Post请求。
⑧终端管理系统没有别的请求时,向盒端发送一条空的Http Post响应盒端断开连接,会话结束。
本方案采用交叉编译调试的方式,即编译调试环境建立在宿主机上,开发时使用宿主机上的交叉编译工具链来生成目标板上运行的二进制代码,然后把可执行文件下载到目标机上运行。本方案中,以装有Android操作系统的主机作为宿主机。当编译成功后,通过串口板下载到机顶盒开发板上运行,通过视频线将视频信号接入电视机进行用户体验测试
本测试方案的主要目的是针对机顶盒自动远程升级的测试。重点测试机顶盒是否在开机后能够自动判断,并根据需要进行升级。图4为机顶盒成功下载升级包后,发送给终端管理服务器的响应部分信息。
图4 下载成功盒端响应部分信息
本文通过分析TR069管理协议及其关键技术,提出并设计了一种IPTV机顶盒远程升级系统。测试结果显示,所设计的方案能够满足需求。下一步的工作是改进机顶盒的开机升级机制,加强其对实时性的支持,使用户在体验业务的同时进行自动升级。
[1] 蒲艳.基于TR069协议的网管系统的研究[D].北京:华北电力大学, 2011.
[2] 齐少安,梅斌,翟丽平.基于TR069协议实现IPTV盒端管理[J].邮电设计技术,2011(12):12-16.
[3] 黄璇,李文耀,江爱.IPTV 机顶盒的研究及设计[J].光通信研究,2008,150(6):52-54.
[4] 陈毅文.基于TR069的终端管理系统的设计和实现[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协议实现机顶盒的管理功能[J].电视技术, 2009(12):49-51.
[8] 郭先会,曾浩,李致兴.TR069协议在IPTV终端管理系统中的研究与应用[J].电视技术,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.