《软件升级指令分发方法、通信服务器及终端设备.pdf》由会员分享,可在线阅读,更多相关《软件升级指令分发方法、通信服务器及终端设备.pdf(20页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410844338.5(22)申请日 2014.12.30G06F 9/445(2006.01)(71)申请人 北京奇虎科技有限公司地址 100088 北京市西城区新街口外大街28 号 D 座 112 室(德胜园区)申请人 奇智软件(北京)有限公司(72)发明人 蔡东赟 张家柱 刘娇(74)专利代理机构 北京路浩知识产权代理有限公司 11002代理人 李相雨(54) 发明名称软件升级指令分发方法、通信服务器及终端设备(57) 摘要本发明提供一种软件升级指令分发方法、通信服务器及终端设备。上述方法包括 :建立与至少一个终端设备的长连接。
2、 ;向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。上述通信服务器包括 :建立单元,用于建立与至少一个终端设备的长连接;发送单元,用于向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。本发明可以解决软件升级指令分发延迟大且需要占用控制中心大量资源问题。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书14页 附图3页(10)申请公。
3、布号 CN 104503801 A(43)申请公布日 2015.04.08CN 104503801 A1/2 页21.一种通信服务器,其特征在于,包括 :建立单元,用于建立与至少一个终端设备的长连接 ;发送单元,用于向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。2.根据权利要求 1 所述的通信服务器,其特征在于,所述发送单元进一步用于定期向所述终端设备发送包括软件版本信息的心跳数据包,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获。
4、取软件升级数据。3.一种终端设备,其特征在于,该终端设备包括 :建立单元,用于与通信服务器的长连接 ;接收单元,用于接收来自所述通信服务器的包括软件版本信息的消息 ;判断单元,用于根据所述接收单元接收到的所述软件版本信息判断是否需要进行软件升级 ;执行单元,用于在判断单元判定需要进行软件升级时以多播的通信方式从升级服务器处获取软件升级数据。4.根据权利要求 3 所述的终端设备,其特征在于,所述执行单元包括 :发生模块,用于以多播的通信方式从升级服务器处获取软件升级数据 ;接收模块,用于接收升级服务器以多播的通信方式发送的多个数据单元,所述数据单元为所述升级服务器生成的与所述软件升级请求消息中的。
5、所述软件升级数据的标识对应的数据单元 ;处理模块,用于根据接收到的所述多个数据单元得到所述软件升级数据。5.根据权利要求 4 所述的终端设备,其特征在于,所述处理模块进一步用于在接收到的数据单元的数目达到预设值时,利用前向纠错编码算法根据接收到的多个数据单元得到所述软件升级数据 ;所述数据单元包括升级服务器由所述软件升级数据分得的多个原始数据单元和升级服务器利用所述前向纠错编码算法根据所述原始数据单元得到的多个校验数据单元。6.根据权利要求 5 所述的终端设备,其特征在于,所述处理模块还用于在根据接收到的多个数据单元不能得到正确的软件升级数据时,执行以下操作中的一项或多项 :利用前向纠错编码算。
6、法对得到的软件升级数据进行纠错 ;抛弃已经接收到的所述多个数据单元,并继续接收升级服务器以多播的通信方式发送的多个数据单元 ;向升级服务器或其他终端设备发送对应的数据单元传输请求,以使升级服务器或其他终端设备返回与所述软件升级数据对应的数据单元。7.根据权利要求1至6中任意一项所述的终端设备,其特征在于,所述接收单元进一步用于接收所述通信服务器定期发送的包括软件版本信息的心跳数据包。8.一种软件升级指令分发方法,其特征在于,包括 :建立与至少一个终端设备的长连接 ;向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本权 利 要 求 书CN 104503801 A2/2 页。
7、3信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。9.根据权利要求 8 所述的方法,其特征在于,所述向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据,包括 :定期向所述终端设备发送包括软件版本信息的心跳数据包,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。10.一种软件升级指令分发方法,其特征在于,包括 :建立与通信服务器的长连接 ;接收来自所述通信服务器的包括软件版本信息的消息 ;。
8、根据所述软件版本信息判断是否需要进行软件升级 ;若是,则以多播的通信方式从升级服务器处获取软件升级数据。权 利 要 求 书CN 104503801 A1/14 页4软件升级指令分发方法、通信服务器及终端设备技术领域0001 本发明涉及网络技术,具体涉及一种软件升级指令分发方法、通信服务器及终端设备。背景技术0002 现有的网络架构中,控制中心常常要向多个终端设备分发各种各样的指令,由于该场景属于“一点对多点”的通讯场景,因而指令的分发通常按照下述基于短连接方式进行:0003 控制中心生成对应于一个或多个终端设备的指令消息,建立与上述一个或多个终端设备的短连接,将指令消息藉由短连接发送给上述一个。
9、或多个终端设备终端设备接收到指令消息并校验无误后就关闭这一短连接。0004 但是,控制中心通常还需要与众多其他终端或服务器建立连接,一方面频繁地建立和关闭短连接会占用控制中心的大量可用系统资源和通信资源,另一方面由于建立短连接的过程会耗费一些时间,因而会增大指令的发出与执行之间在时间上的延迟,不利于整个网络的持续高效运行。0005 比如,在软件升级指令的分发流程中,现有技术中的控制中心需要基于短连接的方式向所有终端发送包括软件升级指令的消息,一方面这给控制中心带来了巨大的工作负担,另一方面由于短连接的建立需要时间,因而控制中心很难在很短的时间内完成向所有终端的消息发送任务。发明内容0006 针。
10、对现有技术中的缺陷,本发明提供一种软件升级指令分发方法、通信服务器及终端设备,解决了软件升级指令分发延迟大且需要占用控制中心大量资源问题。0007 第一方面,本发明提供了一种通信服务器,包括 :0008 建立单元,用于建立与至少一个终端设备的长连接 ;0009 发送单元,用于向所述终端设备发送包括软件版本信息的消息以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。0010 可选地,所述发送单元进一步用于定期向所述终端设备发送包括软件版本信息的心跳数据包,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的。
11、通信方式从升级服务器处获取软件升级数据。0011 第二方面,本发明还提供了一种终端设备,包括 :0012 建立单元,用于与通信服务器的长连接 ;0013 接收单元,用于接收来自所述通信服务器的包括软件版本信息的消息 ;0014 判断单元,用于根据所述接收单元接收到的所述软件版本信息判断是否需要进行软件升级 ;说 明 书CN 104503801 A2/14 页50015 执行单元,用于在判断单元判定需要进行软件升级时以多播的通信方式从升级服务器处获取软件升级数据。0016 可选地,所述执行单元包括 :0017 发生模块,用于以多播的通信方式从升级服务器处获取软件升级数据 ;0018 接收模块,用。
12、于接收升级服务器以多播的通信方式发送的多个数据单元,所述数据单元为所述升级服务器生成的与所述软件升级请求消息中的所述软件升级数据的标识对应的数据单元 ;0019 处理模块,用于根据接收到的所述多个数据单元得到所述软件升级数据。0020 可选地,所述处理模块进一步用于在接收到的数据单元的数目达到预设值时,利用前向纠错编码算法根据接收到的多个数据单元得到所述软件升级数据 ;所述数据单元包括升级服务器由所述软件升级数据分得的多个原始数据单元和升级服务器利用所述前向纠错编码算法根据所述原始数据单元得到的多个校验数据单元。0021 可选地,所述处理模块还用于在根据接收到的多个数据单元不能得到正确的软件升。
13、级数据时,执行以下操作中的一项或多项 :0022 利用前向纠错编码算法对得到的软件升级数据进行纠错 ;0023 抛弃已经接收到的所述多个数据单元,并继续接收升级服务器以多播的通信方式发送的多个数据单元 ;0024 向升级服务器或其他终端设备发送对应的数据单元传输请求,以使升级服务器或其他终端设备返回与所述软件升级数据对应的数据单元。0025 可选地,所述接收单元进一步用于接收所述通信服务器定期发送的包括软件版本信息的心跳数据包。0026 第三方面,本发明还提供了一种软件升级指令分发方法,包括 :0027 建立与至少一个终端设备的长连接 ;0028 向所述终端设备发送包括软件版本信息的消息,以使。
14、所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。0029 可选地,所述向所述终端设备发送包括软件版本信息的消息以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据,包括 :0030 定期向所述终端设备发送包括软件版本信息的心跳数据包,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。0031 第四方面,本发明还提供了一种软件升级指令分发方法,包括 :0032 建立与通信服务器的长连接 ;0033 接收来自。
15、所述通信服务器的包括软件版本信息的消息 ;0034 根据所述软件版本信息判断是否需要进行软件升级 ;0035 若是,则以多播的通信方式从升级服务器处获取软件升级数据。0036 可选地,所述以多播的通信方式从升级服务器处获取软件升级数据,包括 :0037 向升级服务器发送包括待获取的软件升级数据的标识的软件升级请求消息 ;说 明 书CN 104503801 A3/14 页60038 接收升级服务器以多播的通信方式发送的多个数据单元,所述数据单元为所述升级服务器生成的与所述软件升级请求消息中的所述软件升级数据的标识对应的数据单元;0039 根据接收到的所述多个数据单元得到所述软件升级数据。0040。
16、 可选地,所述根据接收到的所述多个数据单元得到所述软件升级数据,包括 :0041 当接收到的数据单元的数目达到预设值时,利用前向纠错编码算法根据接收到的多个数据单元得到所述软件升级数据 ;所述数据单元包括升级服务器由所述软件升级数据分得的多个原始数据单元和升级服务器利用所述前向纠错编码算法根据所述原始数据单元得到的多个校验数据单元。0042 可选地,所述根据接收到的所述多个数据单元得到所述软件升级数据,还包括 :0043 当根据接收到的多个数据单元不能得到正确的软件升级数据时,执行以下操作中的一项或多项 :0044 利用前向纠错编码算法对得到的软件升级数据进行纠错 ;0045 抛弃已经接收到的。
17、所述多个数据单元,并继续接收升级服务器以多播的通信方式发送的多个数据单元 ;0046 向升级服务器或其他终端设备发送对应的数据单元传输请求,以使升级服务器或其他终端设备返回与所述软件升级数据对应的数据单元。0047 可选地,接收来自所述通信服务器的包括软件版本信息的消息,包括 :0048 接收所述通信服务器定期发送的包括软件版本信息的心跳数据包。0049 由上述技术方案可知,本发明可以通过使通信服务器与终端设备建立长连接来使通信服务器代替控制中心执行软件升级指令的分发,从而控制中心不需要与大量终端设备频繁地建立和关闭短连接,因而软件升级指令分发不会占用控制中心的大量资源 ;而且长连接不会频繁的。
18、建立和关闭,可以保障指令迅速地分发到每一终端,减小指令的发出与执行之间在时间上的延迟。所以,本发明可以解决软件升级指令分发延迟大且需要占用控制中心大量资源问题,执行效率高且可操作性强。附图说明0050 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0051 图 1 是本发明一个实施例中一种软件升级指令分发方法的步骤流程示意图 ;0052 图 2 是本发明一实施例中一种软件升级指令分发方法的。
19、步骤流程示意图 ;0053 图 3 是本发明一实施例中一种以多播的通信方式从升级服务器处获取软件升级数据的步骤流程示意图 ;0054 图 4 是本发明一个实施例中一种通信服务器的结构框图 ;0055 图 5 是本发明一个实施例中一种移动终端的结构框图 ;0056 图 6 是本发明一个实施例中一种执行单元的结构框图。说 明 书CN 104503801 A4/14 页7具体实施方式0057 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例。
20、,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0058 需要说明的是,本文中的控制中心指的是用于生成对所属网络中任一终端设备的控制指令的装置或者装置集合 ;本文中的通信服务器指的是用于向至少一个终端设备分发指令的装置或装置集合 ;本文中的终端设备指的是处于控制中心的所属网络中通过接收并执行来自控制中心指令的设备。0059 比如,在本发明的一个实施例中,上述控制中心具体是位于局域网网络中心的控制服务器,上述通信服务器具体是同一网络中与控制服务器相连的具体用于软件升级指令分发的小型服务器,上述终端设备具体是局域网中的多台个人计算机设备。0060 再如。
21、,在本发明的另一实施例中,上述控制中心具体是位于互联网中的多个服务器的集合,上述通信服务器具体是多个服务器的集合中具体用于软件升级指令分发的一个服务器,而上述终端设备具体是任意一个受控制中心通过指令控制的设备,可以是基于任意操作系统的台式机、笔记本电脑、平板电脑、智能手机、个人数字助理、音乐播放设备、游戏设备等。0061 另外,本文中的短连接指的是通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。而与之相应,长连接指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。在现有技术中,长连接多用于单点对单点。
22、而且连接数不多的通信场景,而短连接多用于一点对多点而且连接数很多的通信场景。其原因主要在于短连接和长连接在建立方式和传输方式的区别。0062 具体以一个简单的TCP(Transmission Control Protocol,传输控制协议)短连接为例,终端设备向服务器发起连接请求,服务器接到请求,然后双方建立连接。终端设备向服务器发送消息,服务器回应终端设备,然后一次读写就完成了,这时候双方任何一个都可以发起关闭连接操作,不过一般都是终端设备先发起关闭连接操作,主要因为一般的服务器不会回复完终端设备后立即关闭连接,当然不排除有特殊的情况。从上面的描述可以看出,短连接一般只会在终端设备和服务器间。
23、传递一次读写操作。0063 从上述短连接的示例过程中可以看出,如果控制中心与终端设备之间通过短连接方式传递指令,那么每发送一个指令都需要建立一次短连接,且每发送完一个指令后都需要关闭一次短连接。面对数量庞大的终端设备以及通常在时间上较为集中的软件升级指令分发流程,控制中心需要在短时间内建立数量巨大的短连接,并将每一份指令都发送给对应的终端设备,然后在发送完毕后关闭短连接。可见,这一过程对控制中心的可用系统资源和通信资源的需求都是巨大的,很容易造成下行带宽的拥堵 ;同时由于建立连接需要花费一定时间,因而指令的分发流程会相对耗费时间。0064 针对上述问题,本发明提供了一种软件升级指令分发方法,参。
24、见图 1 所示出的本发明一个实施例中一种软件升级指令分发方法的步骤流程示意图,该方法包括 :0065 步骤 101 :建立与至少一个终端设备的长连接 ;说 明 书CN 104503801 A5/14 页80066 步骤 102 :向所述终端设备发送包括软件版本信息的消息,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。0067 需要说明的是,本发明实施例所提供的方法的执行主体对应于上述“通信服务器”,如上文所述,通信服务器是用于向至少一个终端设备分发指令的装置或装置集合,本发明不限定其具体的实现方式。0068 具体地,上述步骤。
25、 101 中,与至少一个终端设备的长连接建立过程可以具体包括与终端设备之间的多次握手数据包的交互。上述步骤 102 中,由于终端设备可以获取到自身的软件版本信息,因而可以与接收到的软件版本信息进行比较,从而确定是否需要进行软件升级。例如,终端设备接收到的软件版本信息中的版本号为“1.6.8”,而若终端设备自身的软件版本信息中的版本号为“1.5.0”,与“1.6.8”可知自身的对应软件版本较低时,终端设备可以通过多播的通信方式从升级服务器处获取软件升级数据,以执行软件升级指令。另一方面,若终端设备自身的对应软件的版本信息为“1.6.8”,代表该软件已经是最新的版本了,那么终端设备就可以忽略这一软。
26、件升级指令。0069 可见,由于采用长连接方式进行指令的分发,本发明实施例可以通过使通信服务器与终端设备建立长连接来使通信服务器代替控制中心执行软件升级指令的分发,从而控制中心不需要与大量终端设备频繁地建立和关闭短连接,因而软件升级指令分发不会占用控制中心的大量资源 ;而且长连接不会频繁的建立和关闭,可以保障指令迅速地分发到每一终端,减小指令的发出与执行之间在时间上的延迟。所以,本发明实施例可以解决软件升级指令分发延迟大且需要占用控制中心大量资源问题,执行效率高且可操作性强。0070 以 TCP 长连接为例,长连接的建立及消息收发过程可以按照下述方式进行 :终端设备向通信服务器发起连接,通信服。
27、务器接受终端设备连接,双方建立连接。终端设备与通信服务器完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个长连接。而且,为了维护 TCP 长连接,通信服务器还会向终端设备发送“心跳数据包”来确定终端设备是否还保持着这一 TCP 长连接。更具体地,其可以通过以下过程实现 :0071 如果一个给定的 TCP 长连接在两小时内没有任何的动作,则通信服务器就向终端设备发一个心跳数据包,那么终端设备可能会有以下情况 :0072 第一种,终端设备依然正常运行,并从通信服务器可达。终端设备的 TCP 响应正常,而通信服务器也知道对方是正常的,通信服务器在两小时后将定时器复位。007。
28、3 第二种,终端设备已经崩溃,并且关闭或者正在重新启动。在任何一种情况下,终端设备的 TCP 长连接都没有响应。服务端将不能收到对心跳数据包的响应,并在等待 75 秒后判定超时。通信服务器总共发送 10 个同样的心跳数据包,每个间隔 75 秒。如果通信服务器没有收到一个响应,它就认为终端设备已经关闭并终止 TCP 长连接。0074 第三种,终端设备崩溃并已经重新启动。通信服务器将收到一个对心跳数据包的响应,这个响应是会使得通信服务器终止这个 TCP 长连接。0075 第四种,终端设备机正常运行,但是终端设备到通信服务器的通信是中断的,因而类似于上述第二种情况,通信服务器会认为终端设备已经关闭并。
29、终止 TCP 长连接。0076 因此,基于长连接的心跳数据包发送机制,可以将软件升级指令作为心跳数据包的一部分来进行发送。即,上述步骤 102 :向所述终端设备发送包括软件版本信息的消息,说 明 书CN 104503801 A6/14 页9以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据,可以具体包括图中未示出的步骤 :0077 定期向所述终端设备发送包括软件版本信息的心跳数据包,以使所述终端设备根据所述软件版本信息判断是否需要进行软件升级,若是则以多播的通信方式从升级服务器处获取软件升级数据。0078 从而,每一次终端设备接收。
30、到包括软件版本信息的心跳数据包时,都可以进行是否需要进行软件升级的判断,相比较单独地进行包括软件版本信息的消息的发送,可以进一步地减小通信服务器的工作负担。0079 另外,在本发明实施例中通信服务器可以独立于控制中心之外统一执行向至少一个终端设备的软件升级指令分发过程。也就是说,控制中心只需要建立与通信服务器的实时通信,就可以使软件升级指令快速地下发至每一终端设备,而自身不需要处理软件升级指令分发的流程,因而可以更大限度地执行其他控制操作流程。0080 而且,正是由于终端设备以多播的通信方式来获取软件升级数据,因而升级服务器可以通过变更多播组内的终端设备组成,就可以方便地进行同一份软件升级数据。
31、的发送,配合长连接分发软件升级指令的方式的特点可以在控制中心更新软件版本后使多个终端设备划分为同一个多播组,从而共同从升级服务器中获取软件升级数据,有利于降低网络负荷并提高数据传输效率。0081 当然,在本发明的其他实施例中,通信服务器也可以包含于控制中心当中,其具体流程可以用与上述技术方案相同的方式进行,在此不再赘述。0082 基于同样的发明构思,本发明实施例提供了一种软件升级指令分发方法,参见图2 所示出的本发明一个实施例中一种软件升级指令分发方法的步骤流程示意图,该方法包括:0083 步骤 201 :建立与通信服务器的长连接 ;0084 步骤 202 :接收来自所述通信服务器的包括软件版。
32、本信息的消息 ;0085 步骤 203 :根据所述软件版本信息判断是否需要进行软件升级 ;0086 步骤 204 :若是,则以多播的通信方式从升级服务器处获取软件升级数据。0087 其中,本发明实施例所提供的方法以“终端设备”为主体,可以实现上文中任意一种软件升级指令分发的流程,因而具有相应的技术特征,并可以解决相同的技术问题,达到相同的技术效果。0088 比如,对应于上述采用心跳数据包发送软件版本信息的示例,上述步骤 202 :接收来自所述通信服务器的包括软件版本信息的消息,可以具体包括图中未示出的步骤 :0089 接收所述通信服务器定期发送的包括软件版本信息的心跳数据包。0090 当然,在。
33、接收到心跳数据包后,终端设备就可以进行是否需要进行软件更新的判断,还可以在响应中反馈其判断结果,从而使控制中心可以快速地收集到所有终端设备的软件升级情况。0091 更具体地,上述步骤 204 中以多播的通信方式从升级服务器处获取软件升级数据可以具体包括如图 3 所示的下述步骤 :0092 步骤 301 :向升级服务器发送包括待获取的软件升级数据的标识的软件升级请求消息 ;说 明 书CN 104503801 A7/14 页100093 步骤 302 :接收升级服务器以多播的通信方式发送的多个数据单元,所述数据单元为所述升级服务器生成的与所述软件升级请求消息中的所述软件升级数据的标识对应的数据单元。
34、 ;0094 步骤 303 :根据接收到的所述多个数据单元得到所述软件升级数据。0095 这里,多播的通信协议一般都是基于用户数据包协议 (User Datagram Protocol,UDP) 的,可以具体为下述协议中的一种或者多种 :远程矢量多点传送路由协议 (Distance Vector Multicast Routing Protocol,DVMRP)、组播开放最短路径优先协议 (Multicast Open Shortest Path First,MOSPF),密集模式独立组播协议 (Protocol-independent Multicast-Dense Mode,PIM-DM)。
35、、基准树协议(Core Based Trees,CBT)和稀疏模式独立组播协议 (Protocol-independent Multicast-Sparse Mode,PIM-SM) 等。0096 采用上述技术方案,升级服务器只需要将大小可以达到几十 GB 的软件升级数据以多播的通信方式发送给多个终端,其中一种情况可以是升级服务器根据软件升级数据拆生成多个数据单元后分给多个网络节点,使得网络节点复制数据后再与其他网络节点互通有无,使得数据单元可以在通信网络中呈网状扩散,且整个通信链路中只存在一份软件升级数据的数据量,因而可以充分利用网络中的通信资源,避免了点对点传输方式所造成的网络拥塞,提高了。
36、软件升级数据的传输效率。0097 进一步地,上述步骤 303 :根据接收到的所述多个数据单元得到所述软件升级数据,还可以具体包括未在图中示出的下述步骤 :0098 当接收到的数据单元的数目达到预设值时,利用前向纠错编码算法根据接收到的多个数据单元得到所述软件升级数据 ;所述数据单元包括升级服务器由所述软件升级数据分得的多个原始数据单元和升级服务器利用所述前向纠错编码算法根据所述原始数据单元得到的多个校验数据单元。0099 上述前向纠错 (Forward Error Correction,FEC) 编码算法可以说是一种增加传输数据冗余度来提高传输可靠性的算法。通过该算法,终端设备不需要接收到升级。
37、服务器所发送的所有数据单元,也可以还原出升级服务器所发送的全部原始数据,即通信过程中可以允许丢包。同时,接收到的多个数据单元还可以用于对接收到的原始数据进行纠错,以进一步提高传输过程的可靠性。0100 另一方面,为了保障数据传输的可靠性,上述步骤 303 :根据接收到的所述多个数据单元得到所述软件升级数据,还可以包括图中未示出的下述步骤 :0101 当根据接收到的多个数据单元不能得到正确的软件升级数据时,执行以下操作中的一项或多项 :0102 利用前向纠错编码算法对得到的软件升级数据进行纠错 ;0103 抛弃已经接收到的所述多个数据单元,并继续接收升级服务器以多播的通信方式发送的多个数据单元 ;0104 向升级服务器或其他终端设备发送对应的数据单元传输请求,以使升级服务器或其他终端设备返回与所述软件升级数据对应的数据单元。0105 具体地,基于上述前向纠错 (Forward Error Correction,FEC) 编码算法,可以在不能得到正确的软件升级数据时对其进行纠错处理,比如利用有冗余的多个数据单元来依照前向纠错编码算法进行纠错,或者使用多种多个数据单元的组合方式来尝试获取正确的说 明 书CN 104503801 A。