一种工厂批量生产的软件快速升级方法设计与实现

2021-09-22 07:44王伟军
电子技术与软件工程 2021年13期
关键词:校验路由器表格

王伟军

(四川长虹网络科技有限责任公司 四川省绵阳市 621000)

随着软件技术的日益发展,嵌入式软件系统的发展也在日益更新。对于嵌入式产品如机顶盒、IPTV电视等产品,操作系统的已经从轻量级系统如OS21, OS40, UCOS, ECOS发展到Linux,Android功能更全面更复杂的系统,而随着操作系统越来越高级功能越来越全面,也造成了系统镜像文件越来越大,以至于生产升级所需要的时间也随之变长,这就给生产升级维护提出了新的要求。

在工厂生产阶段,为加快生产进度,通常做法是先预装基础软件,机器上线生产调试完成后再升级成最终版本的软件。而对于这些采用如Android操作系统的机器,升级镜像文件动辄几百M甚至上Gb的大小。如采用传统升级方式如TS流、TFTP或 HTTP等升级方式,因受限于协议机制或网络状况,数据传输不稳定且下载速度太慢,或数据下载进度不同步,从而导致生产效率低下,不适用于工厂生产阶段使用。因此有必要寻找一种下载速度快,下载稳定,操作简便的方式来满足工厂升级的需要。

1 组播特点介绍及选择

在计算机网络中,有三种基本的通信方式:单播、组播、广播。其中单播属于点对点通信不使用一对多大文件的传输,广播属于点对所有点的通信,而组播则是介于两者之间,是是一种点对多的通讯方式,由一个主机向一组主机发送消息,首先一台主机将数据发送到一个约定的组播组中,然后网络路由器和交换机将组播组中的数据复制到其它加入此组播的主机。一个主机用组播协议向多个主机发送相同的数据时,只需要发送一次,其数据由网络中的路由器和交换机逐级进行复制并发送给各个接收方,这样既节省网络硬件资源,也节省主干网络的带宽资源。并且与广播协议相比,只有组播接收方向路由器发出请求后,网络路由器才复制一份数据给接收方,对带宽的需求恒定,从而节省接收方的带宽。而广播方式无论接收方是否需要,网络设备都会将广播信息向所有设备发送,占据大量带宽。严重时会造成网络阻塞甚至广播风暴。

当然,组播也有其固有的缺点,组播协议是基于UDP的,UDP采用的无连接,数据报的连接方式,它只管发送数据而不关心接收方是否能够收到;UDP包是无序列号,传输时可能出现无序性,缺乏流控功能;也无窗口机制,会导致收到重复组播流量。但是也正是因为UDP不用保证数据的可靠性,所有数据的传送效率是很快的。与单播协议相比,因为组播采用的是UDP的传输方式,所有没有补包机制,无法有对错包漏包的进行重传补包。虽然组播有其缺点,但是根据特定场景,组播也有其优势:当需要将大量相同的数据传输到不同主机时,能节省发送数据的主机的系统资源和带宽;组播是有选择地将数据复制给有要求的主机;组播能节省网络主干的带宽资源;而它缺点也可以根据具体需求忽略,或通过合适的设计方案来规避。因此只要通过合理设计,组播方式升级也将是一种可行方案。

2 生产组播升级设计的要求

机顶盒局域网组播升级方案,主要用于工厂批量升级。有以下这些要求:数据需要自动循环发送满足多轮次升级要求;机器开机时需自动进行升级检测,程序根据配置的信息自动判断是否进行升级操作,减少人员操作次数;对于500M及以上镜像文件的升级,单台升时间控制在3分钟左右完成,其中包括:机器启动,升级检测,数据下载,数据校验,数据写入,重启验证等步骤,因此要求下载速度达到10 Mbyte/s来保证效率;需要保证下载进度基本达到同时开始同时结束的要求以便于流水线操作;升级过程中的状态需要对各个机器的升级状态进行显示以利于实时抽检;升级后的机器日志信息上传到数据库中存储用于校验和后续维护;整个系统需要方便部署操作简单便于人工操作。

按照以上组播特点结合实际要求,本文设计了一种数据处理机制,用于组播轮播升级的系统。整个系统采用C/S服务器/客户端模式,分别实现组播数据发送端(即服务端)和数据接收端(即客户端);约定好数据发送和接受机制,使用UDP进行数据包的接收和发送;根据组播地址分配原则,选择本地管理组播地址段为239.0.0.0~239.255.255.255进行组播数据通信。

3 数据传输格式流程定义

数据文件在升级过程中,不仅仅需要考虑文件本身安全性和完整性,还需要考虑接收的文件是否与本机状态信息匹配,因此,特为组播数据的传输设计两种类型的表格:为下载信息描述表格Download Server Info Section和下载数据表格Download Server Data Section,分别简记为DSIS和DDBS表格。

考虑到程序的通用性和可移植性,这两种表格的格式参照PSI/SI标准的表格的格式进行定义,其中,在DSIS表格中包含了软件适用的厂商ID,型号,硬件版本,软件版本,批次,类型,序列号等控制信息,以及升级文件的长度,校验,控制类型,加密类型,StreamID等信息,这些信息可通过工具界面或配置文件进行设置。

在DDBS表格中,由于以太网(Ethernet)链路层的MTU(最大传输单元)的最大长度为1500字节,而当UDP包中的数据多于MTU(1500 - IP头(20) - UDP头(8) = 1472(字节))时,发送方的IP层需要分片进行传输,在接收方IP层则需要进行数据报重组,而由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃数据重传浪费时间,所以此处选择将数据包定义为最大1500字节,减少数据重传的资源消耗。

将DSIS表格和DDBS表格按照一定格式和顺序组装成stream流数据,通过UDP协议向组播组中进行循环播放。接收端则按照以下方式接收和处理表格信息:

信息表格处理流程:DSIS表格作为监控表格,接收方连接网络后,循环监控组播组中指定端口,当接收到了DSIS表格后,先校验表格,解析出表格中的版本信息和控制信息等,判断是否符合本机的升级条件。如符合升级条件,则解析出新软件的文件信息和流控StreamID信息,然后进入DDBS的下载流程。

数据表格处理流程:接收方从组播组中接收指定端口的UDP数据,校验DDBS表格成功后,然后根据section_number和section_length来定位当前包在文件中的地址并组装到文件中。数据下载完成后,对数据完整性校验和安全性验证,验证成功后解析出原始升级镜像文件。最后,进入数据存储流程完成升级操作。

4 C/S组播服务端发送流程

图1:网络搭建示意图

组播中传输数据分为DDIS (下载信息描述表格)和DDBS(下载数据描述表格) 两种表格。其中DSIS表中存放的是升级参数信息和升级文件信息,DDBS表中存放的是固定大小的文件数据的分段。

服务端先设置好升级参数信息并计算升级数据文件信息,分别生成DSIS和DDBS表格。将下载信息描述封装到DSIS表中,下载数据封装到DDBS表格中。

服务端按照一定次序发送DSIS,DDBS表格,将DSIS表格按照一定间隔插播到DDBS表格的发送间隔进行发送,以提高客户端中的DSIS信息表格的获取效率,保证机器在任何时刻都能检测到升级信息并进行数据下载。

将下载数据拆分成1472字节(能保证本地局域网环境传输UDP包可靠的参考MTU值)的分段,然后按照轮播的方式循环发送,保证同一批机器能基本同时完成升级操作。

服务端同时开启一个守护进程,用来监听数据回传端口,当接收到客户端发来的回传数据时,实时显示到界面并同步更新到数据库中,用于实时诊断和后期维护。

数据收发需要约定好组播组IP地址段(局域网私有段为239.0.0.1~239.255.255.255)和端口号,数据轮播直至服务器关闭。

5 C/S组播客户端下载流程

有些系统默认是不接收组播消息的,所以客户端进行组播升级时先确认打开组播模式。

首先客户端机器开机,网络功能初始化成功后,初始化升级组播监控模式,建立组播socket,绑定端口,加入到组播组(按约定或从其他途径配置);为减少系统资源消耗,组播监控一段时间仍未检测到升级信息,则退出组播监控流程。

客户端机器连接组播服务成功后,上报本机信息,包括版本号,序列号,MAC号,控制码等参数信息;

连接组播网络并接收UDP组播数据。先接收DSIS表格,从中解析出升级信息,如果本机满足升级条件,则从中解析出DDBS数据流的StreamID;

使用DSIS中解析的StreamID过滤来DDBS表格,循环接收DDBS数据并组装还原成镜像文件,下载完成后校验数据完整性和安全性,校验成功后存储到机器FLASH或SD卡中;

设置recovery升级标志,进入Recovery模式进行系统升级更新,升级完成后机器重启。

二次重启后,客户端重复第一步连接操作,再次上报参数信息并接收DSIS表格,通过比较判断软件是否更新成功,退出组播监控,程序进入正常运行阶段,升级完成。

6 实际环境搭建示例

设备需求:电脑,路由器,网线若干,显示设备。

网络搭建示意图如图1所示。

电脑服务器连接到路由器,路由器连接到交换机,路由器或交换机连接到机顶盒终端;交换机并不是必须的,只有在路由器LAN端口不够用的情况下可以通过交换机扩展端口;路由器与机顶盒处于同一个地址段。

实际使用时,由专业人员搭建好升级网络,操作人员只需要连接设备端电源和网线,然后等待升级完成后进入下一批机器升级。因组播数据下载速度快,升级耗时减少,可以持续循环操作,提升效率,还可采用了流水作业方式进一步提高效率。

7 结语

数据组播方式,通过合理设计后可用于生产批量升级,在生产升级过程中能极大节省时间并提高生产效率。自动化的升级处理流程也简化了操作流程,降低对生产人员的技能要求,降低工作复杂度。

猜你喜欢
校验路由器表格
《现代临床医学》来稿表格要求
买千兆路由器看接口参数
《现代临床医学》来稿表格要求
路由器每天都要关
统计表格的要求
无线路由器的保养方法
炉温均匀性校验在铸锻企业的应用
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法
锅炉安全阀在线校验不确定度评定