一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于P2P的固件升级方法、系统、电子设备及存储介质与流程

2023-02-19 10:26:32 来源:中国专利 TAG:

一种基于p2p的固件升级方法、系统、电子设备及存储介质
技术领域
1.本技术属于数据通信技术领域,具体涉及一种基于p2p的固件升级方法、系统、电子设备及存储介质。


背景技术:

2.随着嵌入式设备的快速发展,大量的设备固件升级显得尤为重要,如何快速有效的对大批量设备进行统一升级成为一个值得重视的话题。
3.设备固件升级,是物联网通信服务的重要组成部分。当物联设备有新功能或者需要修复漏洞时,设备可以通过设备固件升级服务快速的进行固件升级。常规的方案都是将设备固件放置在一个服务器上,通过ftp,tftp,http等方案对每一台设备进行自动化的升级。但是这些方式都有一个明显的缺陷,即所有的终端设备只能从服务器获取待升级的固件,使得服务器的带宽负载变得十分沉重。特别是对于android类的设备,它们待升级的固件大小动辄几百mb,在部署上千台设备的环境下,服务器的压力可想而知。


技术实现要素:

4.本发明的主要目的是提出一种基于p2p的固件升级方法,旨在解决固件升级时减轻服务器的带宽负载压力的技术问题。
5.为实现上述目的,本发明提出一种基于p2p的固件升级方法,应用于设备端,所述固件升级方法步骤包括:获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。
6.进一步的,所述基于所述分片信息对待升级的固件文件进行分片下载,包括以下步骤:
7.基于所述分片信息获取与所述设备端距离较近的节点信息列表;
8.根据bittorrent协议从所述节点信息列表选择最优下载路径对待升级的固件文件进行分片下载。
9.进一步的,所述下载完成,包括以下步骤:下载所述分片至指定的分区,直至所述待升级的固件文件的每一个分片下载完成。
10.进一步的,所述对所述待升级的固件文件进行校验,包括以下步骤:通过所述种子文件和所述分片的hash信息对所述待升级的固件文件进行校验;若所述种子文件和所述分片的hash信息一致,则所述待升级的固件文件校验通过;若所述种子文件和所述分片的hash信息不一致,则所述待升级的固件文件校验不通过。
11.进一步的,所述若校验通过,根据所述待升级的固件文件完成固件升级,还包括以下步骤:若校验不通过,则固件升级失败。
12.进一步的,所述种子文件的信息至少包括分片信息、hash信息、服务器地址信息。
13.本发明还提供一种基于p2p的固件升级方法,应用于服务器端,所述固件升级方法步骤包括:接收设备端发送的固件升级指令;基于所述固件升级指令查询最新版本的固件升级的种子文件;将所述固件升级的种子文件发送给所述设备端。
14.本发明还提供一种基于p2p的固件升级系统,所述固件升级系统包括:设备端,所述设备端用于获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。服务器端,所述服务器端用于接收设备端发送的固件升级指令;基于所述固件升级指令查询最新版本的固件升级的种子文件;将所述固件升级的种子文件发送给所述设备端。
15.本发明还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的固件升级程序,所述固件升级程序被所述处理器执行时实现如上述的固件升级方法的步骤。
16.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有固件升级程序,所述固件升级程序被处理器执行时实现上述的固件升级方法的步骤。
17.本发明的技术方案提供一种基于p2p的固件升级方法,所述固件升级方法步骤包括:获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。该固件升级方法基于p2p技术,对待升级的固件文件进行分片下载,避免所有的待升级固件文件从服务器端发送,从而减轻服务器端的负载压力,提高固件下载速度,进而提升升级速度。
附图说明
18.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
19.图1为本发明电子设备的结构示意图;
20.图2为本发明固件升级方法设备端的流程示意图;
21.图3为本发明固件升级方法设备端的流程示意图;
22.图4为本发明固件升级系统的连接示意图。
23.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
24.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
25.下面结合附图来详细描述本公开的具体实施方式。
pointer,pc-to-pc等等。简单来说,p2p就是指数据的传输不再通过服务器,而是网络用户之间直接传递数据。p2p网络的一个重要的目标就是让所有的设备端都能提供资源,包括带宽,存储空间和计算能力等。p2p网络的分布特性通过在多节点上复制数据,因此也增加了防故障的健壮性。
38.其中,bittorrent协议的发展依赖于peer-to-peer技术,bittorrent是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。根据bittorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件。.torrent文件本质上是文本文件,包含tracker信息和文件信息两部分。tracker信息主要是bittorrent下载中需要用到的tracker服务器的地址和针对tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据bittorrent协议内的b编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块或者片,并把每个块的索引信息和hash验证码写入种子文件(.torrent)中。所以,种子文件(.torrent)就是被下载文件的“索引”。
39.本实施例中,所述种子文件的信息至少包括分片信息、hash信息、服务器地址信息,还可以包括版本信息、升级设备种类等等其他信息,在此不做限定。
40.步骤s130,解析所述种子文件的分片信息。
41.设备端获取所述固件升级的种子文件后,对所述种子文件进行解析,并解析出所述种子文件的分片信息。
42.实际应用中,设备端接收完种子文件后,解析所述种子文件,从而获取到种子文件中相应的版本信息,固件大小,分片信息,以及服务器地址信息。
43.步骤s140,基于所述分片信息对待升级的固件文件进行分片下载。
44.步骤s140还具体包括:
45.步骤s141:基于所述分片信息获取与所述设备端距离较近的节点信息列表。
46.本方案是基于p2p技术原理实现,由于p2p网络的一个重要的目标就是让所有的设备端都能提供资源,包括带宽,存储空间和计算能力等。
47.当有节点加入且对系统请求增多,整个p2p网络系统的容量也增大。这是具有一组固定服务器结构不能实现的,固定服务器结构中设备端的增加意味着所有用户更慢的数据传输。但p2p网络则刚好相反,加入的节点越多,系统网络的传输能力越强。
48.设备端会基于所述分片信息,在p2p网络中可以有无数条下载路径,设备端通过与服务器的沟通,设备端可以查询到附近相邻的种子节点(即拥有该版本固件的设备端)。设备端会依据所述分片信息获取与所述设备端距离较近的节点信息列表,并从中找出一条下载路线。
49.步骤s142:根据bittorrent协议从所述节点信息列表选择最优下载路径对待升级的固件文件进行分片下载。
50.而本案是通过一个bittorrent协议从所述节点信息列表选择最优下载路径对待升级的固件文件进行分片下载。
51.其中,bittorrent是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在ftp,tftp,http协议中,每个下载者在下载自己所需文件的同时,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于
ftp服务器处理能力和带宽的限制,下载速度会急剧下降,甚至有的用户可能访问不了服务器。bittorrent协议与ftp协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。
52.步骤s150,下载完成,对所述待升级的固件文件进行校验。
53.本步骤中的所述下载完成是指下载所述分片至指定的分区,直至所述待升级的固件文件的每一个分片下载完成。实际应用中,设备端每下载一个分片block,就下载的分片内容写入到指定的设备分区中,直至所有分片信息下载完成,即完整的固件文件下载完成。
54.其中,步骤s150中的对所述待升级的固件文件进行校验具体包括:
55.通过所述种子文件和所述分片的hash信息对所述待升级的固件文件进行校验;若所述种子文件和所述分片的hash信息一致,则所述待升级的固件文件校验通过;若所述种子文件和所述分片的hash信息不一致,则所述待升级的固件文件校验不通过。
56.具体的,由于所述种子文件中含有每个分片的索引信息和hash验证码信息,通过一一比对每个分片的hash验证码信息,从而完成对所述待升级的固件文件的校验。
57.步骤s160,若校验通过,根据所述待升级的固件文件完成固件升级。
58.步骤s170,若校验不通过,则固件升级失败。
59.本发明的技术方案提供一种基于p2p的固件升级方法,所述固件升级方法步骤包括:获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。该固件升级方法基于p2p技术,对待升级的固件文件进行分片下载,避免所有的待升级固件文件从服务器端发送,从而减轻服务器端的负载压力,提高固件下载速度,进而提升升级速度。
60.由上述可知,该固件升级方法对服务器而言,不需要再承担大量的带宽风险,只需要提供种子文件的下载,而一般种子文件的容量较小,只需要1kb左右的存储容量;对于设备端而言,在大量部署的场景下,设备端在一个局域网内,数据传输的速度会更快,另外p2p的分片下载机制也能够有效的提高下载速度,设备端的升级速度更快;在安全性方面,种子文件中包含的hash验证码信息能够有效的确保固件文件的准确性和有效性,保证了固件升级的正确性。
61.参阅图3,本发明还提供了一种基于p2p的固件升级方法,该固件升级方法应用于服务器端,方法步骤包括:
62.步骤s210:接收设备端发送的固件升级指令。
63.服务器端接收设备端发送的固件升级指令后进行响应。此处的固件升级指令可以为设备端本地触发生成的固件升级指令,譬如经硬件检测信号生成的固件升级指令或者软件定时机制生成的固件升级指令。可选的,还可以为版本更新时的固件升级指令,优选地,终端还可以接收来自移动设备的固件升级指令以启动升级流程。
64.实际应用中,当需要给设备端的固件进行升级时,厂商或者服务商提前将固件升级包存储在服务器端中,其中,服务器端对应的固件升级包包括固件升级和对应固件升级的种子文件,均是提前制作或者有版本发布时进行及时更新的。
65.步骤s220:基于所述固件升级指令查询最新版本的固件升级的种子文件。
66.服务器端基于所述固件升级指令查询最新版本的固件升级的种子文件。
67.在此之前,设备端可以先通过查询是否有最新版本或者所需版本的升级固件,如果有,服务器端发送最新版本或者所需版本的bittorrent种子文件给设备端;如果没有,即不发送信息。
68.步骤s230:将所述固件升级的种子文件发送给所述设备端。
69.本发明的技术方案提供一种基于p2p的固件升级方法,所述固件升级方法步骤包括:获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。该固件升级方法基于p2p技术,对待升级的固件文件进行分片下载,避免所有的待升级固件文件从服务器端发送,从而减轻服务器端的负载压力,提高固件下载速度,进而提升升级速度。
70.参阅图4,本发明还提供了一种基于p2p的固件升级系统,包括:
71.设备端10,所述设备端10用于获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。
72.服务器端20,所述服务器端20用于接收设备端发送的固件升级指令;基于所述固件升级指令查询最新版本的固件升级的种子文件;将所述固件升级的种子文件发送给所述设备端。
73.综上所述,本发明的技术方案提供一种基于p2p的固件升级方法,所述固件升级方法步骤包括:获取固件升级指令;基于所述固件升级指令从服务器端获取固件升级的种子文件;解析所述种子文件的分片信息;基于所述分片信息对待升级的固件文件进行分片下载;下载完成,对所述待升级的固件文件进行校验;若校验通过,根据所述待升级的固件文件完成固件升级。该固件升级方法基于p2p技术,对待升级的固件文件进行分片下载,避免所有的待升级固件文件从服务器端发送,从而减轻服务器端的负载压力,提高固件下载速度,进而提升升级速度。
74.本发明还提供了一种可读存储介质,其存储有计算机程序代码,该计算机程序代码配置成在由处理器运行时执行上文提到的固件升级方法。
75.在本技术所提供的实施例中,应该理解到,所揭露的电子设备及其固件升级方法,也可以通过其它的方式实现。以上所描述的电子设备实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。
76.也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
77.也要注意的是,框图和或流程图中的每个方框、以及框图和或流程图中的方框的
组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
78.另外,在本技术实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
79.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
80.以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献