CN111970161A - 一种基于地址预测的物联网应用差分升级方法 - Google Patents
一种基于地址预测的物联网应用差分升级方法 Download PDFInfo
- Publication number
- CN111970161A CN111970161A CN202010997237.7A CN202010997237A CN111970161A CN 111970161 A CN111970161 A CN 111970161A CN 202010997237 A CN202010997237 A CN 202010997237A CN 111970161 A CN111970161 A CN 111970161A
- Authority
- CN
- China
- Prior art keywords
- differential
- copy
- differential packet
- copy instruction
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/75—Information technology; Communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
Abstract
一种基于地址预测的物联网应用差分升级方法,步骤为:pc端运行差分包生成程序,将新旧固件作为参数传入,差分包生成程序自动生成对应的Copy指令和Add指令,通过预测器修改Copy指令,将修改后的Copy指令和Add指令一起写入差分包中。压缩差分包,并将压缩后的差分包上传到云端。云端将差分包下发到设备端,设备端接收差分包,解压差分包,得到Copy指令误差值和Add指令。将Copy指令误差值输入到预测器中,预测器还原Copy指令的预测误差还原成实际值,执行Copy指令和Add指令还原得到新固件。使用还原得到的新固件进行升级并上传升级结果到云端。
Description
技术领域
本发明涉及差分升级中但差分包压缩编码技术,特别涉及一种预测压缩编码方法。
背景技术
随着物联网技术的快速发展,物联网设备得到了极大的普及。为了方便升级已经激活的物联网设备,厂商一般都会在系统中实现OTA(Over-the-Air Technology)空中下载技术。通过OTA技术可以将设备升级所需的数据通过网络发送到指定的设备中,无需回收设备。
现有的OTA升级技术主要有两种,整包升级和差分升级。整包升级是指云端下发整个新固件,设备端直接通过接收到的新固件进行升级。差分升级是指云端先通过差分算法得到旧固件升级到新固件所需的差分包(差分包的体积一般远小于整包),然后将差分包下发给设备端,设备端接收到差分包,将差分包和旧固件输入到还原算法中得到新固件,再进行升级。由于大多数物联网设备可用的存储资源有限,并且无法保证稳定高速的网络环境,所以都会通过差分升级来进行版本升级。
差分包由三部分组成:头部信息,指令集和数据集。头部信息存储了差分包的一些概要信息,比如新固件的大小,指令集的大小,数据集的大小。头部信息一般只有几十个字节,占很小的体积。指令集中保存设备还原新固件时所需的一些指令内容,指令包括Copy指令和Add指令。Copy(F,T,L)表示从旧固件的F地址开始复制L个字节到新固件的T地址。Add(T,L)表示从数据集中取L个字节写入新固件的T地址。数据集存储了Add指令所需的数据。差分还原的过程就是通过顺序执行差分包中的Copy和Add指令,用旧固件和差分包数据集还原出新固件。
为了进一步减少物联网设备升级时的网络压力,厂商在下发差分包之前通常都会对压缩包进行压缩,设备端收到差分压缩包后先对压缩包进行解压,再进行升级。通过对差分包的分析我们不难发现,差分包的指令集是有特定格式的,并且相邻指令的参数也是有一定关联的。本发明针对差分包指令的特殊规律,提出一种基于地址预测的物联网应用差分升级方法,以实现使用更小体积的差分包进行差分升级。
发明内容
本发明要克服现有技术的上述缺点,提供一种针对差分包指令进行特殊优化的压缩算法。
本方法力图在不改变现有差分升级流程的前提下,通过优化差分包生成的算法来进一步提升差分包的压缩效率。
为实现以上目的,本发明采取的方案是:一种基于地址预测的物联网应用差分升级方法,包括以下步骤:
(1)用户通过差分包制作程序生成新旧固件的差分包
11)通过后缀排序生成旧固件的字典序;
12)遍历新固件中字节,通过二分搜索查询旧固件中最长匹配的字节,并生成对应的Copy指令和Add指令;
13)按顺序将Copy指令输入预测器中,并将预测器返回的Copy指令写入差分包中;
14)将Add指令和差分包数据集写入差分包中,并选择一种常规的压缩算法压缩差分包;
(2)用户将差分包上传到云端,云端将差分包下发到物联网设备上;
(3)物联网设备开始还原新固件并更新固件
31)设备端解压差分包并解析出头部信息;
32)验证差分包中旧版本号与当前设备运行的版本号是否相同,如果不同则将错误信息上发云端并退出程序。如果相同则开始还原新固件;
33)逐条将差分包中的Copy指令输入到预测器中,预测器返回真实Copy指令。执行返回的Copy指令;
34)逐条执行差分包中的Add指令,得到最终的新固件;
35)设备通过还原出来的新固件进行升级。
优选地,步骤13)具体包括:按顺序将Copy指令输入到预测器中,预测器中有一个队列用于保存之前10条预测指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个误差值加上上一条Copy指令的f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这条Copy中f的实际值减去这个预测值得到f的预测误差;将这个预测误差添加到队列中,并将删除队列中队首的预测误差;用得到的预测误差替换这条Copy指令中f的值,输出这条Copy指令。将这个Copy指令写入差分包中。
优选地,步骤(2)具体包括:
(21)用户将步骤(1)中得到的差分包上传到云端;
(22)用户在云端指定设备进行升级;
(23)云端向设备端发送一条OTA升级请求,升级请求中包含有差分包下载地址;
(24)设备端收到云端下发的请求,从升级请求中解析出差分包下载地址,并从改地址下载差分包。
优选地,步骤33)具体包括:按顺序将Copy指令输入到预测器中,差分包中解析出来的Copy指令中的f的值代表的是该条Copy指令的预测误差,预测器中有一个队列用于保存之前10条输入的Copy指令的f的值,也就是之前十条Copy指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个平均误差加上上一条Copy指令的实际f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这个预测值加上传进来的Copy指令中f的值得到这条Copy指令中f的实际值;预测器将这条Copy指令的f的预测误差添加到队列中,并将删除队列中队首的预测误差,输出这条Copy指令;程序得到这个Copy指令并执行Copy操作。
本发明的优点是:可以减少差分包的体积,缓解设备进行差分升级时的网络压力和存储压力。
附图说明
图1是本发明的升级过程的工作流程图。
图2是本发明的用户通过差分算法生成差分包的工作流程图。
图3是本发明的设备端通过还原算法还原新固件并进行升级的工作流程图。
具体实施方式
下面结合附图进一步说明本发明的技术方案。
本发明仍使用传统的差分升级流程,使用预测器配合压缩算法进一步提升差分包的压缩率。主要过程为:1.本地制作差分包2.上传差分包到云端,云端下发差分包到设备端3.设备端接收差分包并进行差分升级。具体步骤如下所示:
(1)用户运行差分包制作程序,输入旧固件地址和新固件地址,差分包制作程序自动生成差分包,差分包制作程序内部流程如下;
(1.1)将新固件数据和旧固件数据读到内存中,通过后缀排序对旧固件数据内容进行排序,得到旧固件数据的字典序。
(1.2)遍历新固件数据,通过二分查找法查找当前新固件位置在旧固件数据中的最长匹配长度和在旧固件中对应的位置。生成对应的Copy指令和Add指令。
(1.3)按顺序将Copy指令输入到预测器中,预测器中有一个队列用于保存之前10条预测指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个误差值加上上一条Copy指令的f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这条Copy中f的实际值减去这个预测值得到f的预测误差。将这个预测误差添加到队列中,并将删除队列中队首的预测误差。用得到的预测误差替换这条Copy指令中f的值,输出这条Copy指令。将这个Copy指令写入差分包中;
(1.4)等所有Copy指令都写入差分包后将Add指令逐条写入差分包中,再将差分包的数据集和头部信息写入差分包中,得到完整的差分包。选择一种常规的压缩算法将差分包进行压缩,得到最终的差分包。
(2)用户将差分包上传到云端,云端将差分包下发到物联网设备上;
(2.1)用户将步骤(1)中得到的差分包上传到云端;
(2.2)用户在云端指定设备进行升级;
(2.3)云端向设备端发送一条OTA升级请求,升级请求中包含有差分包下载地址;
(2.4)设备端收到云端下发的请求,从升级请求中解析出差分包下载地址,并从改地址下载差分包;
(3)物联网设备运行升级程序,还原新固件并更新固件;
(3.1)解压差分包,读取差分包头部信息,包括旧版本的版本号,Copy指令个数,Add指令个数,新固件。
(3.2)验证差分包中旧版本号与当前设备运行版本号是否相同。如果不同则将错误信息上发云端并退出升级程序。如果相同,则继续升级;
(3.3)按顺序将Copy指令输入到预测器中,差分包中解析出来的Copy指令中的f的值代表的是该条Copy指令的预测误差,预测器中有一个队列用于保存之前10条输入的Copy指令的f的值,也就是之前十条Copy指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个平均误差加上上一条Copy指令的实际f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这个预测值加上传进来的Copy指令中f的值得到这条Copy指令中f的实际值。预测器将这条Copy指令的f的预测误差添加到队列中,并将删除队列中队首的预测误差,输出这条Copy指令。程序得到这个Copy指令并执行Copy操作;
(3.4)逐条从差分包中读取Add指令,并执行;
(3.5)所有Add指令执行完后,所得到的新固件就是最终用于升级的固件。通过得到的固件进行升级,并将结果发给云端。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (4)
1.一种基于地址预测的物联网应用差分升级方法,包括以下步骤:
(1)用户通过差分包制作程序生成新旧固件的差分包,具体包括:
11)通过后缀排序生成旧固件的字典序;
12)遍历新固件中字节,通过二分搜索查询旧固件中最长匹配的字节,并生成对应的Copy指令和Add指令;
13)按顺序将Copy指令输入预测器中,并将预测器返回的Copy指令写入差分包中;
14)将Add指令和差分包数据集写入差分包中,并选择一种常规的压缩算法压缩差分包;
(2)用户将差分包上传到云端,云端将差分包下发到物联网设备上;
(3)物联网设备开始还原新固件并更新固件,具体包括:
31)设备端解差分包并解析出头部信息,包括旧版本的版本号,Copy指令个数,Add指令个数,新固件;
32)验证差分包中旧版本号与当前设备运行的版本号是否相同,如果不同则将错误信息上发云端并退出程序。如果相同则开始还原新固件;
33)逐条将差分包中的Copy指令输入到预测器中,预测器返回真实Copy指令;执行返回的Copy指令;
34)逐条执行差分包中的Add指令,得到最终的新固件;
35)设备通过还原出来的新固件进行升级。
2.如权利要求1所述的一种基于地址预测的物联网应用差分升级方法,其特征在于:步骤13)具体包括:按顺序将Copy指令输入到预测器中,预测器中有一个队列用于保存之前10条预测指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个误差值加上上一条Copy指令的f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这条Copy中f的实际值减去这个预测值得到f的预测误差;将这个预测误差添加到队列中,并将删除队列中队首的预测误差;用得到的预测误差替换这条Copy指令中f的值,输出这条Copy指令。将这个Copy指令写入差分包中。
3.如权利要求1所述的一种基于地址预测的物联网应用差分升级方法,其特征在于:步骤(2)具体包括:
(21)用户将步骤(1)中得到的差分包上传到云端;
(22)用户在云端指定设备进行升级;
(23)云端向设备端发送一条OTA升级请求,升级请求中包含有差分包下载地址;
(24)设备端收到云端下发的请求,从升级请求中解析出差分包下载地址,并从改地址下载差分包。
4.如权利要求1所述的一种基于地址预测的物联网应用差分升级方法,其特征在于:步骤33)具体包括:按顺序将Copy指令输入到预测器中,差分包中解析出来的Copy指令中的f的值代表的是该条Copy指令的预测误差,预测器中有一个队列用于保存之前10条输入的Copy指令的f的值,也就是之前十条Copy指令的预测误差,预测器将队列中的十个预测误差取平均值,将这个平均误差加上上一条Copy指令的实际f的值和t的值,得到这一条Copy指令中f的预测值,预测器用这个预测值加上传进来的Copy指令中f的值得到这条Copy指令中f的实际值。预测器将这条Copy指令的f的预测误差添加到队列中,并将删除队列中队首的预测误差,输出这条Copy指令;程序得到这个Copy指令并执行Copy操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997237.7A CN111970161B (zh) | 2020-09-21 | 2020-09-21 | 一种基于地址预测的物联网应用差分升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997237.7A CN111970161B (zh) | 2020-09-21 | 2020-09-21 | 一种基于地址预测的物联网应用差分升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111970161A true CN111970161A (zh) | 2020-11-20 |
CN111970161B CN111970161B (zh) | 2021-07-13 |
Family
ID=73387478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010997237.7A Active CN111970161B (zh) | 2020-09-21 | 2020-09-21 | 一种基于地址预测的物联网应用差分升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970161B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114924761A (zh) * | 2022-04-20 | 2022-08-19 | 苏州吾爱易达物联网有限公司 | 一种物联网设备升级方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694623A (zh) * | 2009-09-29 | 2010-04-14 | 上海夏新电子开发有限公司 | 一种更新手持设备软件的方法 |
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
CN106648765A (zh) * | 2016-12-07 | 2017-05-10 | 京信通信系统(中国)有限公司 | 嵌入式设备固件补丁包生成及固件差分升级方法和装置 |
CN107016053A (zh) * | 2017-03-02 | 2017-08-04 | 中国科学院信息工程研究所 | 一种并行的数据差分方法 |
CN107038026A (zh) * | 2017-02-28 | 2017-08-11 | 中国科学院信息工程研究所 | 一种增量式的自动机更新方法与系统 |
CN108199970A (zh) * | 2017-12-15 | 2018-06-22 | 浙江大学 | 一种软件定义网络中数据包路径重构方法 |
CN111258620A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 差分升级包的生成方法、装置和设备 |
-
2020
- 2020-09-21 CN CN202010997237.7A patent/CN111970161B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694623A (zh) * | 2009-09-29 | 2010-04-14 | 上海夏新电子开发有限公司 | 一种更新手持设备软件的方法 |
CN103942058A (zh) * | 2013-01-17 | 2014-07-23 | 深圳市潮流网络技术有限公司 | 一种嵌入式电子设备软件升级方法及系统 |
CN106648765A (zh) * | 2016-12-07 | 2017-05-10 | 京信通信系统(中国)有限公司 | 嵌入式设备固件补丁包生成及固件差分升级方法和装置 |
CN107038026A (zh) * | 2017-02-28 | 2017-08-11 | 中国科学院信息工程研究所 | 一种增量式的自动机更新方法与系统 |
CN107016053A (zh) * | 2017-03-02 | 2017-08-04 | 中国科学院信息工程研究所 | 一种并行的数据差分方法 |
CN108199970A (zh) * | 2017-12-15 | 2018-06-22 | 浙江大学 | 一种软件定义网络中数据包路径重构方法 |
CN111258620A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 差分升级包的生成方法、装置和设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114924761A (zh) * | 2022-04-20 | 2022-08-19 | 苏州吾爱易达物联网有限公司 | 一种物联网设备升级方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111970161B (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1753368B (zh) | 为远程差异压缩标识对象的方法和系统 | |
US20210124573A1 (en) | Firmware upgrade method and apparatus, and terminal | |
US11356539B2 (en) | Dynamic utilization of condensing metadata | |
CN104391728A (zh) | 软件升级差量包获取方法和相应的升级方法以及装置 | |
CN102880663B (zh) | 部分去重复的文件的优化 | |
JP4364790B2 (ja) | バイト・レベルのファイル相違検出および更新アルゴリズム | |
US20130167133A1 (en) | Method, terminal and system for upgrading software version | |
US20070067362A1 (en) | Undo function for unzipped files | |
WO2015139381A1 (zh) | 一种终端软件升级方法及装置 | |
US20210373882A1 (en) | Method and apparatus for generating difference between old and new versions of data for updating software | |
JP2013517565A (ja) | オペレーティングシステム自動更新手順 | |
CN110362338B (zh) | 一种在移动平台下的游戏资源打包和资源快速访问方法 | |
CN111970161B (zh) | 一种基于地址预测的物联网应用差分升级方法 | |
CN101420324B (zh) | 一种网管系统及其代理软件的版本更新方法 | |
CN109408682A (zh) | 一种正则表达式匹配的方法、系统及设备 | |
CN105760183A (zh) | 文件处理方法、装置及通信系统 | |
JP3757235B2 (ja) | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 | |
WO2008154411A2 (en) | Binary-level update of compressed read-only file systems | |
US20220350576A1 (en) | Compression Of Firmware Updates | |
CN106681761B (zh) | 一种交互式升级的方法及系统 | |
CN108008984A (zh) | 一种资源文件下载更新方法及装置 | |
CN104516764A (zh) | 压缩文件动态打包方法及系统 | |
KR100720274B1 (ko) | 임베디드 시스템의 펌웨어 업데이트 방법 | |
CN113590161A (zh) | 内存可控的nb-iot模组差分升级方法及系统 | |
CN102347772B (zh) | 基站文件的压缩处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |