APP下载

TVOS智能机顶盒IP软件升级方法研究与实现

2019-09-10马振洲

卫星电视与宽带多媒体 2019年18期
关键词:智能终端

【摘要】本文设计了一套基于P2P的网络机顶盒快速升级系统。系统主要研究成果如下:(1)采用基于P2P的高效网络传输升级方案,从根本上解决了升级数据文件发布的及时性问题。(2)基于STUN网络协议,实现了一套轻量级的NAT穿越机制。(3)使用基于RSA的安全效验算法对传输的升级数据文件进行签名,保证了系统升级的安全可靠。(4)支持断点续传和多线程的下载客户端,确保有序高效的进行升级。

【关键词】TVOS;智能终端;在线升级;P2P网络;RSA加密算法;NAT穿越

目前市场上主要包括三种机顶盒,单向DVB数字机顶盒,双向DVB网络数字机顶盒和IPTV/OTT网络机顶盒。DVB机顶盒由广电提供相关设备,并铺设对应的线路,最终由广电发放给用户使用,网络机顶盒大部分由电信运营商掌控,根据业务范围的不同分为IPTV和OTT网络机顶盒。

电信运营商的IPTV/OTT网络机顶盒和广电的双向DVB网络数字机顶盒的升级方式则采用普通的C/S模式。单向数字机顶盒技术上已经较为落后,本文重点研究广电的双向DVB网络数字机顶盒的升级过程。

1. 传统TVOS升级技术原理

传统的cable升级流程如下:

1.1 机顶盒开机后正常启动业务流程,在接收到前端服务器的升级策略后,对当前终端的信息进行判断,若符合条件进入升级模式,若不符合则转入正常业务逻辑。

1.2 进入升级模式后,终端首先把前端下发的信息写入deviceinfo分区并置上升级标志,然后重启终端。

1.3 终端重启后,fastboot会根据deviceinfo分区中的标识确认要跳转loader还是跳转kernel正常启动程序。

1.4 进入loader后,程序会读取deviceinfo分区中的相关信息,锁定对应的频点进行升级数据接收,并更新系统分区。

1.5 更新完成后,重启进入新系统,展开正常业务流程并上报日志文件。

2. P2P升级设计思路

2.1 系统总体架构

本系统是基于P2P的机顶盒网络升级系统。用户启动机顶盒后,终端交互模块首先在STUN服务器端更新自己当前最新的地址,然后心跳保持。之后,终端与升级服务器交互版本信息和公网地址以及端口,服务器记录并维护该信息。当新加入的机顶盒需要升级时,服务器发送需要升级的版本号和升级列表给机顶盒。机顶盒得到消息后,优先在本地广播,尝试获取最新的版本。如果内网没有回应,则使用前端下发的升级地址列表来请求升级数据传输,最终成功下载升级数据文件。

完成升级数据文件下载流程后,机顶盒进入升级状态。用友好的界面提示用户升级,用户同意后开始机顶盒升级流程。首先写标记位到机顶盒对应的界面,机顶盒之后重启进入升级流程。机顶盒升级过程中,首先会在recovery中作签名效验,以确保升级数据的合法性。之后开始升级流程,首先确认包的完整性,然后解压包内的升级脚本、升级程序和升级分区数据。升级程序按照对应的升级脚本升级,并对整个分区进行升级。

2.2 主要功能模块

2.2.1 终端交互模块

终端交互模块可以分为两个子模块,认证交互子模块和业务交互子模块。认证交互子模块负责终端与终端管理平台交互认证,认证成功之后可与前端展开正常的业务交互功能。

终端认证的开机流程如图1所示,终端开机后终端交互模块启动,以HTTP GET方式向终端管理平台发送终端认证请求,请求信息中携带用户账号UserID。终端管理平台通过HTTP Resopnse产生EncryToken临时身份认证字段和扩展的js脚本,EncryToken用于加密认证的挑战字。机顶盒终端会解释执行前端下发的js脚本,并根据js中扩展的方法,拿到UserID,STBID,IP,MAC和EncryToken。把以上数据使用加密函数加密后,通过HTTP POST返回给终端管理平台。终端管理平台对上报的加密信息进行解密,并验证终端是否合法。验证通过后,终端管理平台和终端进行包括业务交互,心跳回应,升级触发,下发升级地址列表等功能。之后机顶盒终端解析前端下发信息,执行对应的操作。

业务交互子模块主要负责远程升级触发,机顶盒日志上报,NAT穿越消息请求处理等。他的主要功能是协助机顶盒终端完成业务功能。机顶盒在认证通过后,通过心跳包维持认证连接。前端在业务会话过程中通过一定的规则筛选,选择需要触发升级的终端机顶盒,展开升级业务交互流程。前端下发升级消息,包含升级地址列表。业务交互模块接收到此消息后,更新升级地址列表,触发升级地址获取模块和数据传输模块。

而且终端交互模块需要与升级地址获取模块交互,以此获取该终端在NAT上映射的网络端口和IP地址,并将获取的终端IP地址和端口Port上报终端管理平台。

2.2.2 升级地址获取模块

升级地址获取模块主要用于找到可以提供升级数据的节点,并与之建立通信。主要分为两个子模块,广播子模块和NAT穿越子模块。在数据传输模块需要获取升级地址时,广播子模块首先在局域网内广播需要的升级数据文件,其他终端在确认可提供升级数据后回复应答消息。终端在接到消息后,把回复消息的终端机顶盒地址优先传递给数据传输模块。

广播子模块在升级过程中的作用如图2所示,终端机顶盒A在与前端交互完成后被触发升级,数据传输模块启动,首先会向升级地址获取模块申请升级地址,此时广播子模块发送广播消息搜索升级数据提供节点,终端机顶盒B在获取到广播消息后和当前版本做对比,确认可提供升级数据后向A应答消息。终端机顶盒A的广播子模块在经过交互后获取到终端机顶盒B的IP地址和升级数据传输端口,提供给数据传输模块使用。

NAT穿越子模块是在局域网无法找到升级节点时,通过终端交互模块给出的升级地址列表,在公网上找出可以进行升级的终端节点,以便于数据传输模块从网络上获取升级文件。终端机顶盒A在升级触发后,其廣播子模块未获取到地址就会跳转到NAT穿越模块, NAT穿越模块依次根据前端下发的升级列表中向前端管理平台请求NAT穿越连接终端机顶盒B,终端机顶盒B在接收到前端下发的穿越命令后开始进行NAT穿越。

另外升级地址获取模块需要和STUN服务器交互,获取本机外网交互地址和端口。通过与终端交互模块的消息传递,最终上报终端管理平台该终端网络机顶盒的网络地址。

2.2.3 数据传输模块

下面就两个功能的实现方式作介绍:

①多线程传输

终端启动后,如果触发当前模块需要进行升级数据文件下载,首先数据传输客户端会启动,并向升级地址获取模块获取升级终端地址,获取到升级地址就启动一路线程展开数据交互下载,最多启动4路线程进行下载。传输模块主线程负责线程间的调度管理和文件传输流程。在启动子线程前主线程会先获取下载升级文件的大小,分配对应子线程的下载起始和终止地址,并指定文件名称。子线程在启动后根据需要传输的文件大小起始和终止地址向连接端请求进行数据下载。子线程在升级数据传输完成后反馈给主线程。主线程确认各个子线程均完成下载后进行数据拼接。

②断点续传

断点续传功能依赖于服务端支持,在下载线程启动后首先按照主线程要求的名称在对应的存储目录下新建对应的文件开始下载,如果发现有同样的名称则可以确定之前出现断点。由于TCP协议本身的按照顺序收取数据,因此我们只需要跳到文件的末尾继续上次下载即可。客户端在下载数据前需要向服务端请求跳跃到与之相对应位置开始文件传输,此功能需要服务端配合。

2.2.4 终端升级模块

终端升级模块的主要功能是进行系统升级,当数据传输模块下载到升级数据文件后,触发升级流程。机顶盒重启后,首先效验升级数据文件的合法性。如果升级数据文件效验不通过,提示用户升级失败。如果升级数据文件效验正常,则进入正常升级流程展开升级。

3. 总结与展望

本文通过对目前国内外的行业现状进行研究分析,结合实际使用特点,设计了基于P2P的網络机顶盒升级系统;利用socket技术,将多线程数据传输方法应用到本系统中,提高了系统下载效率;利用STUN技术实现NAT穿越模块;利用RSA算法完成对升级数据文件完整性确认。

参考文献:

[1]Mohammad Shojafar,Jemal H. Abawajy,Zia Delkhah,Ali Ahmadi,Zahra Pooranian,Ajith Abraham. An efficient and distributed file search in unstructured peer-to-peer networks[J]. Peer-to-Peer Networking and Applications. 2015 (11)

[2]王晟,苏凯雄. 基于Android平台机顶盒在线升级应用的设计[D]. 福建:福州大学,2015.

[3]刘越,章文辉. 浅谈机顶盒大网升级测试方案[J]. 电视技术,2012,36(10).

作者简介:马振洲,男,1983年生,硕士,通信与信息系统专业,工程师,主要从事有线电视智能终端相关技术研究。

猜你喜欢

智能终端
基于大数据环境下的数字图书馆面向用户的服务组织研究
基层部队心理健康教育形式的新发展
微媒体研究现状综述
Wi—Fi环境下自助式点餐系统设计与实现
基于智能终端的移动电子商务商业模式探究
基于智能终端的照护保险服务管理系统的架构设计
《移动应用软件开发》实践教学改革与探索
在医院如何实现BYOD
大学生移动学习的理念和培养策略
智能变电站过程层二次设备调试技术研究进展