一种网络机顶盒快速升级的系统及其方法与流程

文档序号:17357932发布日期:2019-04-09 21:51阅读:490来源:国知局
一种网络机顶盒快速升级的系统及其方法与流程

本发明涉及网络数字电视技术领域,特别是一种网络机顶盒快速升级的系统及其方法。



背景技术:

随着互联网的飞速发展以及三网融合等众多利好政策的推动,广播电视行业以及视听娱乐行业,地面、有线、iptv、互联网、卫星广播行业呈现多元化和迅速发展的局面。从上世纪八十年代的无机顶盒电视,到后来的模拟信号机顶盒,到再后来的有线数字电视机顶盒,以及最新比较流行的网络机顶盒(iptv,ott),各种样式的新兴机顶盒充满了整个机顶盒市场。在此过程中机顶盒取得了长足的发展和进步,其功能也从最初仅仅观看电视晋升为客厅真正的管理者。诸如,智能家具关键控制节点,家庭影院,体感游戏,vr,3d游戏,健康诊断等众多功能的装入,使得机顶盒系统从最初的几兆空间,增加到几十兆,几百兆,一直到最新的8gflash容量。各种功能的增加使得机顶盒系统异常臃肿,目前,一般机顶盒终端公司最新的科研项目,其升级数据文件一般都在400至500兆之间,有的甚至到达600兆以上。如此大的升级数据文件,给升级工作带来了巨大挑战,尤其是升级数据文件的传输。某些数据表明,在2015年底,我国投入到市场的机顶盒数量已高于3.5亿台。由于机顶盒业务的频繁更新加之如此大的机顶盒在线量,系统升级的功能越来越得到运营商的重视。

目前市场上主要包括三种机顶盒,单项dvb数字机顶盒,双向dvb网络数字机顶盒和iptv/ott网络机顶盒。dvb机顶盒由广电提供相关设备,并铺设对应的线路,最终由广电发放给用户使用,网络机顶盒大部分由电信运营商掌控,根据业务范围的不同分为iptv和ott网络机顶盒。各类机顶盒对应的升级方式分别如下:

普通单向数字机顶盒升级方式为,通过cable线传输升级数据,一般在主频点或约定频点下发升级触发流,在空闲频点下发机顶盒升级数据流。空闲频点的带宽理论最大值为4兆,经验表明接收升级300兆左右升级数据文件平均用时在5到10分钟左右。在此过程中用户不能收看电视,只能等待升级。加之目前电视频道越来越多,空闲频点明显不足,运营商只能把升级流插入到节目流中下发,此时升级流所占带宽更小,用户升级等待时间更长,严重影响了用户体验。

电信运营商的iptv/ott网络机顶盒和广电的双向dvb网络数字机顶盒的升级方式则采用普通的c/s模式。在机顶盒登陆成功前端服务器之后,前端服务器发送升级服务器地址给需要升级的机顶盒并触发机顶盒升级。机顶盒通过后台链接服务器下载用来升级的数据文件。一般运营商会准备两到三台升级服务器,租用带宽一般为20兆输出带宽。对于一个动辄几十万数百万的市场,升级时间相当漫长。显然在升级过程中越靠近服务器区域带宽压力越大,致使升级下载缓慢。而且这种升级模式,很容易导致整个网络在某段时间内,数据流量暴增,甚至网络瘫痪的问题。



技术实现要素:

为解决现有技术中存在的问题,本发明的目的是提供一种快捷、实用、低成本且高效的网络机顶盒快速升级的系统及其方法。

为实现上述目的,本发明采用的技术方案是:一种网络机顶盒快速升级的系统,包括前端的业务交互服务器和终端的网络机顶盒,所述业务交互服务器和终端网络机顶盒之间通过互联网进行通信,还包括通过互联网与所述网络机顶盒进行通信的stun服务器;

所述业务交互服务器包括:

前端认证模块,用于认证终端的网络机顶盒的合法性,业务交互服务器在接收到网络机顶盒的请求后,通过httpresopnse产生encrytoken临时身份认证字段和扩展的js脚本;

前端业务交互模块,用于获取网络机顶盒的升级信息,下发升级触发信息,并下发可提供升级数据传输的网络机顶盒的终端地址列表;

所述网络机顶盒包括:

终端交互模块:包括认证交互子模块和业务交互子模块,所述认证交互子模块用于网络机顶盒开机后向终端管理平台发送认证指令请求开机认证,并执行前端认证模块下发的js脚本,采用3des加密算法获取userid,stbid,ip,mac和encrytoken,并通过httppost方式返给前端的业务交互服务器,业务交互服务器认证通过后,通过所述业务交互子模块开始正常的升级交互流程;

升级地址获取模块:包括广播子模块,启动后用于获取局域网中能提供升级数据的网络机顶盒终端节点,其他终端的网络机顶盒在确认可提供升级数据后回复应答指令;以及nat穿越子模块,通过所述stun服务器和前端的业务交互服务器获取对应终端的网络机顶盒的公网地址,实现nat穿越;

文件传输模块,用于线程间的调度管理和文件传输流程,包括用于发送和接收升级数据的文件发送子模块以及文件接收子模块,所述升级数据采用tcp方式来传输,并将获取到的升级数据存储在flash中或通过usb接口将升级数据发送到移动存储设备中,升级数据接收完成后通过rsa加密效验算法确认升级数据的完整性;

系统升级模块,包括升级校验子模块,用于效验升级数据文件的合法性,如果升级数据文件效验不通过,提示用户升级失败,如果升级数据文件效验正常,则进入正常升级流程,开始各个分区的读写操作。

作为一种优选的实施方式,所述网络机顶盒的升级信息包括版本信息、公网地址和端口升级信息,且前端业务交互模块获取到网络机顶盒的升级信息后将其录入本地数据库。

作为另一种优选的实施方式,所述文件接收子模块支持升级数据的断点续传和多线程调度。

作为另一种优选的实施方式,所述终端升级模块还包括用于对系统升级过程中出现异常断电的异常情况进行处理的异常处理子模块。

本发明还提供一种网络机顶盒快速升级的方法,包括以下步骤:

步骤s1、前端的业务交互服务器和终端的网络机顶盒进行业务交互;

步骤s2、需要升级的网络机顶盒获取升级地址;

步骤s3、传输升级数据,所述升级数据采用tcp方式来传输;

步骤s4、终端的网络机顶盒进行升级。

作为一种优选的实施方式,所述步骤s1具体如下:

步骤s11:请求认证,终端的网络机顶盒开机后,使用httpget请求向终端管理平台请求开机认证;

步骤s12:认证交互,前端的业务交互服务器在接收到网络机顶盒的认证请求后,产生encrytoken临时身份认证字段和扩展的js脚本,网络机顶盒终端通过业务交互服务器下发的js脚本对用户账号等信息处理后,使用httppost方式返给业务交互服务器,业务交互服务器认证通过后,开始正常的升级交互流程;

步骤13:公网地址获取,终端的网络机顶盒开机后会同步与stun服务器交互,接收到网络机顶盒终端在公网上nat上映射的ip地址和port端口号;

步骤14:终端地址上传,在完成认证交互流程后,终端的网络机顶盒每隔一段时间发送一次心跳包到前端的业务交互服务器上,所述心跳包中包含该节点的网络机顶盒的公网ip地址和当前可提供升级数据的版本号。

作为另一种优选的实施方式,所述步骤s2具体如下:

步骤s21:广播获取升级地址,若终端的所有网络机顶盒在同一个局域网内,则通过广播的方式来寻找潜在提供升级数据的终端节点,需要升级的网络机顶盒终端直接发送广播消息,确认局域网中是否已经有完成更新的网络机顶盒终端;

步骤s22:应答广播,升级局域网中可提供升级数据传输服务的网络机顶盒终端,在对比确认需要的版本信息后,确认该终端符合要求,反馈响应信息给需要升级的网络机顶盒,需要升级的网络机顶盒在收到确认消息后,获取对应的终端节点ip地址和port端口号,并反馈给文件传输模块;

步骤s23:nat穿越请求指令,若局域网中未找到合适的可提供升级节点,则需要升级的网络机顶盒向转发消息的业务交互服务器发送对应请求信息;

步骤s24:nat连接指令,前端的业务交互服务器收到需要升级的网络机顶盒终端的请求信息后,向另一已经通过连接指令获取到在公网上的映射ip和port端口的网络机顶盒转发此请求信息,此时该网络机顶盒开始不间断的向需要升级的网络机顶盒发送连接请求,直至超时为止,并在需要升级的网络机顶盒的公网nat的session中增加两者之间的会话记录;

步骤s25:连接对等终端,发送完nat穿越请求指令后,需要升级的网络机顶盒开始尝试与另一网络机顶盒的公网地址进行交互,当指令消息到达公网nat后,公网nat在其session中查到了之前记录的会话记录,便把消息转发给另一网络机顶盒的地址,当另一网络机顶盒收到需要升级的网络机顶盒的消息后,即实现了nat穿越。

作为另一种优选的实施方式,所述步骤s3具体如下:

步骤s31:升级数据接收,终端的网络机顶盒启动后,如果收到升级触发信息需要进行升级数据文件下载,则首先文件传输模块会启动,并通过升级地址获取模块,得到可以提供升级数据上载的终端网络机顶盒地址,获取到升级地址就启动线程展开数据交互下载,在启动子线程前主线程会先获取下载升级文件的大小,分配对应子线程的下载起始和终止地址,并指定文件名称;子线程在启动后根据需要传输的升级文件大小起始和终止地址向连接端请求进行升级数据下载,子线程在升级数据传输完成后反馈给主线程,主线程确认各个子线程均完成下载后进行数据拼接;

步骤s32:断点续传,在下载线程启动后首先按照主线程要求的名称在对应的存储目录下新建预定的升级文件名,如果发现有同样的名称则可以确定之前的升级数据传输出现断点,则跳到升级文件的末尾继续上次文件传输,文件接收子模块在数据传输前向提供升级数据上载的终端网络机顶盒的文件发送子模块请求跳跃到断点位置,开始升级文件的传输;

步骤s33:升级数据上传,升级文件传的输只开启单一线程,实现数据上载,文件传输模块中在文件传输前增加了传输数据块位置请求与应答指令,文件传输模块根据文件接收子模块请求的数据位置,填充传输升级数据的缓存区;

步骤s34:数据效验,完成升级数据传输后,升级数据接收子模块会根据预先存储的秘钥对升级数据进行完整性效验,如果成功则跳转触发升级,否则重新开始升级数据传输流程。

作为另一种优选的实施方式,所述步骤s4具体如下:

步骤s41:升级标记位,升级触发前会首先标记升级标记位,包括当前升级包的路径和升级语言信息,随后系统重启网络机顶盒并开始升级;

步骤s42:系统升级,进入系统升级,首先效验升级数据文件的合法性,如果升级数据文件效验不通过,提示用户升级失败;如果升级数据文件效验正常,则进入正常升级流程,开始各个分区的读写操作;升级完成后标识当前版本为新的软件版本号,然后重新启动系统。

作为另一种优选的实施方式,所述步骤s4还包括以下步骤:

步骤s43:升级异常处理,针对系统升级过程中的异常断电进行处理,具体的,在升级前在保留分区标注升级标记位,升级完成后擦掉该标记位,如果升级过程异常断电,下次boot启动时自动跳转继续展开升级任务。

本发明的有益效果是:本发明在具备普通网络机顶盒基本功能的基础上,优化了网络机顶盒的功能,提供了一种低成本、实用和快速的网络升级功能,在网机顶盒规模的扩大不但不会拖慢升级效率,反而会提高升级效率和稳定性。另外通过rsa的加密算法实现安全的数据传输,防止数据传输过程中的篡改问题。

附图说明

图1为本发明实施例的系统框图;

图2为本发明实施例的系统结构图;

图3为本发明实施例的系统升级流程图。

具体实施方式

下面结合附图对本发明的实施例进行详细说明。

实施例

如图1和图2所示,一种网络机顶盒快速升级的系统,包括前端的业务交互服务器和终端的网络机顶盒,所述业务交互服务器和终端网络机顶盒之间通过互联网进行通信,还包括通过互联网与所述网络机顶盒进行通信的stun服务器;

所述业务交互服务器包括:

前端认证模块,用于认证终端的网络机顶盒的合法性,业务交互服务器在接收到网络机顶盒的请求后,通过httpresopnse产生encrytoken临时身份认证字段和扩展的js脚本;

前端业务交互模块,用于获取网络机顶盒的升级信息,下发升级触发信息,并下发可提供升级数据传输的网络机顶盒的终端地址列表;

所述网络机顶盒包括:

终端交互模块:包括认证交互子模块和业务交互子模块,所述认证交互子模块用于网络机顶盒开机后向终端管理平台发送认证指令请求开机认证,并执行前端认证模块下发的js脚本,采用3des加密算法获取userid,stbid,ip,mac和encrytoken,并通过httppost方式返给前端的业务交互服务器,业务交互服务器认证通过后,通过所述业务交互子模块开始正常的升级交互流程;

升级地址获取模块:包括广播子模块,启动后用于获取局域网中能提供升级数据的网络机顶盒终端节点,其他终端的网络机顶盒在确认可提供升级数据后回复应答指令;以及nat穿越子模块,通过所述stun服务器和前端的业务交互服务器获取对应终端的网络机顶盒的公网地址,实现nat穿越;

文件传输模块,用于线程间的调度管理和文件传输流程,包括用于发送和接收升级数据的文件发送子模块以及文件接收子模块,所述升级数据采用tcp方式来传输,并将获取到的升级数据存储在flash中或通过usb接口将升级数据发送到移动存储设备中,升级数据接收完成后通过rsa加密效验算法确认升级数据的完整性;

系统升级模块,包括升级校验子模块,用于效验升级数据文件的合法性,如果升级数据文件效验不通过,提示用户升级失败,如果升级数据文件效验正常,则进入正常升级流程,开始各个分区的读写操作。

网络机顶盒在硬件上硬件主要由sdram、flash、以太网接口芯片、usb接口、rs-232接口和音视频接口组成。

所述网络机顶盒的升级信息包括版本信息、公网地址和端口升级信息,且前端业务交互模块获取到网络机顶盒的升级信息后将其录入本地数据库。

所述文件接收子模块支持升级数据的断点续传和多线程调度。

所述终端升级模块还包括用于对系统升级过程中出现异常断电的异常情况进行处理的异常处理子模块。

本系统主要有前端的业务交互服务器,stun服务器和网络机顶盒三部分组成,其中stun服务器和业务交互服务器通过网络与网络机顶盒连接,系统启动后终端交互模块首先在stun服务器端更新自己当前最新的地址,然后心跳保持连接。之后网络机顶盒终端与业务交互服务器交互版本信息和公网地址以及端口,业务交互服务器记录并维护该信息。当新加入的网络机顶盒需要升级时,业务交互服务器发送需要升级的版本号和升级列表给新加入的网络机顶盒。网络机顶盒得到消息后,优先在本地广播查询,尝试获取可提供升级数据的终端地址。如果内网没有回应,则使用前端下发的升级地址列表来请求升级数据传输,最终成功下载升级数据文件。由于网络机顶盒终端均在nat后,需要先进行nat穿越,才能进行升级数据传输。完成升级数据文件下载流程后,网络机顶盒进入升级状态。界面提示用户升级,用户同意后开始网络机顶盒升级流程。首先写标记位到网络机顶盒对应的界面,网络机顶盒之后重启进入升级流程。网络机顶盒升级过程中,首先会在recovery中作签名效验,以确保升级数据的合法性。之后开始升级流程,首先确认升级包的完整性,然后解压升级包内的升级脚本、升级程序和升级分区数据。升级程序按照对应的升级脚本升级,并对整个分区进行升级。

如图3所示,本实施例还提供一种网络机顶盒快速升级的方法,包括以下步骤:

步骤s1、前端的业务交互服务器和终端的网络机顶盒进行业务交互;

步骤s2、需要升级的网络机顶盒获取升级地址;

步骤s3、传输升级数据,所述升级数据采用tcp方式来传输;

步骤s4、终端的网络机顶盒进行升级。

具体的,所述步骤s1包括以下步骤:

步骤s11:请求认证,终端的网络机顶盒开机后,使用httpget向终端管理平台请求开机认证,此数据中携带了用户的账号信息,便于终端管理平台识别用户身份,据此查询数据库找出对应的用户密码。

步骤s12:认证交互,业务交互服务器在接收到网络机顶盒的认证请求后,产生挑战字的加密字段encrytoken。网络机顶盒终端通过前端下发的js脚本对用户账号等信息处理后,使用httppost方式返给前端的业务交互服务器。前端的业务交互服务器认证通过后,开始正常的升级交互流程。

步骤s13:公网地址获取,终端的网络机顶盒开机后会同步与stun服务器交互,接收到网络机顶盒终端在公网上nat上映射的ip地址和port端口号。

步骤s14:终端地址上传,在完成认证交互流程后,终端的网络机顶盒每隔一段时间发送一次心跳包到前端服务器上,该包中包含本机的公网ip地址和当前可提供升级数据的版本号。

所述步骤s2包括以下步骤:

步骤s21:广播获取升级地址,获取升级地址时对于具体的网络类型,如终端机顶盒在同一个局域网内,就需要通过广播的方式来寻找潜在提供升级数据的终端节点。实现的方式为:需要升级的网络机顶盒终端直接发送广播消息,以便确认局域网中是否已经有完成更新的网络机顶盒终端。

步骤s22:应答广播,升级局域网中可提供数据传输服务的网络机顶盒终端,在对比确认需要的版本信息后,确认该终端符合要求,反馈响应信息给需要升级的网络机顶盒终端。需要升级的网络机顶盒终端在收到确认消息后,获取对应的终端节点ip地址和port端口号,反馈给文件传输模块。

步骤s23:nat穿越请求指令,如果局域网中未找到合适的可提供升级节点,需要升级的网络机顶盒向会向转发消息的业务交互服务器发送对应请求信息,请求可提供数据传输服务的网络机顶盒终端连接需要升级的网络机顶盒。

步骤s24:nat连接指令,前端的业务交互服务器收到需要升级的网络机顶盒终端,向另一网络机顶盒转发此命令。由于另一网络机顶盒已经通过连接指令已经获取到需要升级的网络机顶盒在公网上的映射ip和port端口,此时另一网络机顶盒开始不间断的向需要升级的网络机顶盒发送连接请求,直至超时为止。此操作可在需要升级的网络机顶盒的公网nat的session中增加两者之间的会话记录。

步骤s25:连接对等终端,发送完nat穿越请求指令后,需要升级的网络机顶盒开始尝试与另一网络机顶盒的公网地址进行交互。当指令消息到达公网nat后,公网nat在其session中查到了之前记录的会话记录,便把消息转发给另一网络机顶盒的地址。当另一网络机顶盒收到需要升级的网络机顶盒的消息后,至此nat穿越便成功实现了。

所述步骤s3包括以下步骤:

步骤s31:升级数据接收,终端的网络机顶盒启动后,如果收到升级触发信息需要进行升级数据文件下载,首先数文件输模块会启动,并通过升级地址获取模块,得到可以提供升级数据上载的终端网络机顶盒地址,获取到升级地址就启动线程展开数据交互下载,最多启动4路线程进行下载。文件传输模块主线程负责线程间的调度管理和文件传输流程。在启动子线程前主线程会先获取下载升级文件的大小,分配对应子线程的下载起始和终止地址,并指定文件名称。子线程在启动后根据需要传输的文件大小起始和终止地址向连接端请求进行数据下载。子线程在升级数据传输完成后反馈给主线程。主线程确认各个子线程均完成下载后进行数据拼接。

步骤s32:断点续传,在下载线程启动后首先按照主线程要求的名称在对应的存储目录下新建预定的升级文件名,如果发现有同样的名称则可以确定之前出现断点。由于tcp协议本身的按照顺序收取数据,因此只需要跳到文件的末尾继续上次文件传输即可。文件接收子模块在数据传输前向提供升级数据上载的终端网络机顶盒的文件发送子模块请求跳跃到断点位置,开始升级文件的传输。

步骤s33:升级数据上传,鉴于普通家庭网络上行带宽都比较小,作为升级数据文件传输的服务端只开启单一线程,来提实现数据上载的功能。文件传输模块的工作模式与普通的文件传输功能有一些区别,在文件传输前增加了传输数据块位置请求与应答指令。文件传输模块可以根据文件接收子模块请求的数据位置,按照约定的要求填充传输数据的缓存区。

步骤s34:数据效验,完成数据传输后,文件接收子模块会根据预先存储的秘钥对升级数据进行完整性效验,如果成功则跳转触发升级,否则重新开始升级数据传输流程。

所述步骤s4包括以下步骤:

步骤s41:升级标记位,升级触发前会首先标记升级标记位,包括当前升级包的路径和升级语言等信息,随后系统重启并开始升级。

步骤s42:系统升级,进入系统升级,首先效验升级数据文件的合法性。如果升级数据文件效验不通过,提示用户升级失败。如果升级数据文件效验正常,则进入正常升级流程,开始各个分区的读写操作。升级完成后标识当前版本为新的软件版本号,然后重新启动系统。

步骤s43:升级异常处理,主要针对系统升级过程中的异常断电,进行处理,主要处理方式为,在升级前在保留分区标注升级标记位,升级完成后擦掉该标记位,如果升级过程异常断电,下次boot启动时会自动跳转继续展开升级任务。

通过本实施例所提供的网络机顶盒快速升级的系统及其方法,在具备网络机顶盒基本功能的基础上,增强了网络机顶盒的升级速度,提供了一种低成本、实用和快速的升级方法,不但可以方便用户实现快速升级,还基于rsa算法对升级数据进行加密确保了升级数据的安全可靠性。

以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1