CN111478751A - 一种数据断点续传方法、装置及终端设备 - Google Patents
一种数据断点续传方法、装置及终端设备 Download PDFInfo
- Publication number
- CN111478751A CN111478751A CN202010238155.4A CN202010238155A CN111478751A CN 111478751 A CN111478751 A CN 111478751A CN 202010238155 A CN202010238155 A CN 202010238155A CN 111478751 A CN111478751 A CN 111478751A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- check
- verification
- downloaded
- 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
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
本申请适用于断点续传技术领域,提供一种数据断点续传方法、装置及终端设备,通过客户端向服务端发送初始校验请求;当初始校验结果指示校验未通过时,将已下载的数据分割成若干数据块,向服务端发送数据块校验请求;当数据块的长度大于预设长度阈值时,将数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向服务端发送数据块校验请求的步骤;当数据块的长度小于或等于预设长度阈值时,向服务端发送断点续传请求,以从校验未通过的数据块所在位置处开始断点续传,可以借助服务端对已下载的数据进行校验并逐步缩小校验范围,更精确的定位出错数据的偏移地址,从该偏移地址处开始断点续传,保证断点续传功能的正确性和高效性。
Description
技术领域
本申请属于断点续传技术领域,尤其涉及一种数据断点续传方法、装置及终端设备。
背景技术
断点续传是远程下载中常用的技术,客户端远程下载数据期间,若出现中途断电或中途死机等异常情况,会导致正在下载的数据未下载完成,还可能导致客户端已下载和保存的数据出现局部差错,例如:已下载的数据尾部的个别字节被写错。
现有的断点续传方法一般是在客户端重新上电后,根据异常情况发生前所保存的掉电不丢失断点指针继续下载完数据之后,再对数据执行校验过程,若校验失败,则需重新下载数据。现有的断点续传方法不能及时发现数据下载中途出现的异常情况所导致的数据写入错误,导致最终下载完成的数据无效、需要重新下载,使得在异常情况下的下载效率较低。
发明内容
本申请实施例提供了一种数据断点续传方法、装置及终端设备,可以解决现有的断点续传方法不能及时发现数据下载中途出现的异常情况所导致的数据写入错误,导致最终下载完成的数据无效、需要重新下载,使得在异常情况下的下载效率较低的问题。
第一方面,本申请实施例提供一种数据断点续传方法,应用于客户端,所述方法包括:
向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码;
接收所述服务端反馈的初始校验结果;
当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块;
向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码;
接收所述服务端反馈的数据块校验结果;
当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向所述服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;
当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传。
第二方面,本申请实施例提供一种数据断点续传方法,应用于服务端,所述方法包括:
接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码;
根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果;
向所述客户端反馈所述初始校验结果;
当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码;
根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;
向所述客户端反馈所述数据块校验结果;
当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码;
当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
第三方面,本申请实施例提供一种数据断点续传装置,所述装置应用于客户端时,包括:
第一发送模块,用于向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码;
第一接收模块,用于接收所述服务端反馈的初始校验结果;
第一分割模块,用于当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块;
第二发送模块,用于向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码;
第二接收模块,用于接收所述服务端反馈的数据块校验结果;
第二分割模块,用于当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向所述服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;
第三发送模块,用于当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传;
所述装置应用于服务端时,包括:
第一接收模块,用于接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码;
第一验证模块,用于根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果;
第一发送模块,用于向所述客户端反馈所述初始校验结果;
第二接收模块,用于当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码;
第二验证模块,用于根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;
第二发送模块,用于向所述客户端反馈所述数据块校验结果;
第三接收模块,用于当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码;
第四接收模块,用于当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
第四方面,本申请实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述终端设备为客户端时,所述处理器执行所述计算机程序时实现上述第一方面所述的数据断点续传方法;
所述终端设备为服务端时,所述处理器执行所述计算机程序时实现上述第二方面所述的数据断点续传方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面所述的数据断点续传方法。
第六方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面或第二方面所述的数据断点续传方法。
本申请实施例的第一方面通过提供一种应用于客户端的数据断点续传方法,通过向服务端发送初始校验请求,以对已下载的数据进行正确性校验;接收服务端反馈的初始校验结果;当初始校验结果指示校验未通过时,将已下载的数据分割成若干数据块;向服务端发送数据块校验请求,以对每个数据块进行正确性校验;接收服务端反馈的数据块校验结果;当数据块的长度大于预设长度阈值时,将数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;当数据块的长度小于或等于预设长度阈值时,向服务端发送断点续传请求,以从校验未通过的数据块所在位置处开始断点续传,可以在数据下载期间,出现中途断电或中途死机等异常情况,导致客户端已下载的数据出现差错的情况下,借助服务端对已下载的数据进行校验并逐步缩小校验范围,更精确的定位出错数据的偏移地址,并从该偏移地址处开始断点续传,从而可以及时、快速地纠正异常情况所导致的数据差错,保证断点续传功能的正确性和高效性。
本申请实施例的第二方面通过提供一种应用于服务端的数据断点续传方法,通过接收客户端发送的初始校验请求;根据已下载的数据的校验码和已下载的数据对应的源数据的校验码,对已下载的数据进行正确性校验,生成初始校验结果;向客户端反馈初始校验结果;当初始校验结果指示校验未通过时,接收客户端发送数据块校验请求;根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;向客户端反馈数据块校验结果;当数据块的长度大于预设长度阈值时,接收客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;当数据块的长度小于或等于预设长度阈值时,接收客户端发送断点续传请求,从校验未通过的数据块所在位置处开始断点续传,可以在数据下载期间,出现中途断电或中途死机等异常情况,导致客户端已下载的数据出现差错的情况下,借助服务端对已下载的数据进行校验并逐步缩小校验范围,更精确的定位出错数据的偏移地址,并从该偏移地址处开始断点续传,从而可以及时、快速地纠正异常情况所导致的数据差错,保证断点续传功能的正确性和高效性。
可以理解的是,上述第三方面至第六方面的有益效果可以参见上述第一方面或第二方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的数据断点续传方法的流程示意图;
图2是本申请另一实施例提供的数据断点续传方法的流程示意图;
图3是本申请一实施例提供的数据断点续传装置的结构示意图;
图4是本申请另一实施例提供的数据断点续传装置的结构示意图;
图5是本申请一实施例提供的数据断点续传系统的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供一种应用于客户端的数据断点续传方法,客户端具体可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality, AR)虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机 (ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等任意的能够与服务端建立通信连接且具有数据下载功能,能够从服务端下载数据的终端设备。本申请实施例对客户端的具体类型不作任何限制。
在应用中,终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE) 和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G 网络中的移动终端或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的移动终端等。
作为示例而非限定,当终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
如图1所示,本申请实施例提供的应用于客户端的数据断点续传方法,包括:
步骤S101、向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码。
在应用中,步骤S101可以在客户端出现中途断电或中途死机等异常情况之后,再次上电或者恢复正常工作状态的情况下,自动开始执行,也即在进入断点续传流程之后开始执行。步骤S101也可以在用户有需要的任意时刻开始执行,用户通过客户端在任意时刻输入启动断点续传流程的指令,即可触发客户端进入断点续传流程,并向服务端发送初始校验请求。该启动断点续传流程的指令不仅用于实现断点续传,也可以在整个数据下载完成之后,用于对数据进行完整性校验。例如,在客户端未出现断电或中途死机等异常情况下,若用户想对已下载的数据进行正确性或完整性校验,可以输入启动断点续传流程的指令。所述初始校验请求用于触发服务端对客户端已下载的数据进行正确性或完整性校验。
在一个实施例中,步骤S101包括:
生成已下载的数据的校验码;
生成携带有所述已下载的数据的下载任务标识、长度和校验码的初始校验请求;
向服务端发送所述初始校验请求,以对所述已下载的数据进行正确性校验。
在应用中,客户端向服务端发出初始校验请求之前,事先生成已下载的数据的校验码V。客户端可以按照预先与服务端约定的校验算法计算已下载的数据的校验码V,然后生成初始校验请求并发送给服务端。初始校验请求包含的字段包括但不限于:下载任务标识、已下载的数据的长度L和校验码V。下载任务标识是在整个下载任务开启时确定的,一般由客户端生成,用于服务端唯一地定位客户端以及该客户端所进行的下载任务。已下载的数据的长度L是客户端中保存的已下载的数据的总长度L。已下载的数据的校验码V是对已下载的数据按照约定的校验算法计算出的验证码。约定的校验算法可以是CRC (CyclicRedundancy Check,循环冗余校验)、SHA(Secure Hash Algorithms,安全散列算法)、MAC(Message Authentication Code,消息验证码)等常用校验算法之一,例如,当选择SHA1散列算法时,校验码V是一20字节的数据串。初始校验请求可以以数据包的形成存在,具体的,可以将已下载的数据的下载任务标识、长度L和校验码V生成为一个基于TCP或IP通信传输协议的数据包(Packet)。
步骤S102、接收所述服务端反馈的初始校验结果。
在应用中,服务端在接收到初始校验请求之后,根据初始校验请求携带的信息,查找到服务端上已保存的与已下载的数据对应的完整的源数据;然后对源数据采用前述与客户端约定的同一校验算法,计算出服务端的与已下载的数据对应的源数据的校验码V’,并与初始校验请求中的校验码V进行比较;若两者相等,则校验结果为校验通过,表明已下载的数据正确;否则,校验结果为校验未通过,表明已下载的数据有错误;然后根据比较结果生成初始校验结果并反馈给客户端。初始校验结果包括校验通过或校验未通过,可以通过编码方式来表示,例如,采用二进制编码“0”表示校验通过,采用二进制编码“1”表示校验未通过。服务端具体可以根据初始校验请求中携带的已下载的数据的下载任务标识查找到对应的源数据,然后根据已下载的数据的长度L确定源数据中从首个数据字节开始的对应长度L的数据。初始校验结果可以以数据包的形成存在,具体的,可以是一个基于TCP或IP通信传输协议的数据包。
步骤S103、当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块。
步骤S104、向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码。
在一个实施例中,步骤S104包括:
生成每个数据块的校验码;
生成携带有每个数据块的长度、校验码和相对于所述已下载的数据首字节的偏移量以及所述已下载的数据的下载任务标识的数据块校验请求;
向所述服务端发送所述数据块校验请求,以对每个数据块进行正确性校验。
在应用中,若发现初始校验结果为校验未通过,表明已下载的数据有错误,此时客户端把已下载的数据按从头至尾的方式依次分割为多个大小可相等或不等的数据块N1、N2、…Nm,并设每个数据块首字节相对于已下载的数据头部首字节的偏移量分别为P1、P2、…Pm,每个数据块的长度分别为L1、L2、… Lm;再对该m个数据块按照前述约定的校验算法分别计算出校验码V1、V2、… Vm;接着根据这些信息生成数据块校验请求发送给服务端,数据块校验请求包含的字段包括但不限于:下载任务标识以及所有数据块的m组校验码、m组偏移量、m组长度。m的值可以根据客户端或服务端的系统内存资源和链路速率等情况来进行选择或约定,m≥2且为整数。数据块校验请求可以以数据包的形成存在,具体的,可以将下载任务标识以及所有数据块的m组校验码、m组偏移量、m组长度生成为一个基于TCP或IP通信传输协议的数据包。
在应用中,由于发生异常情况时,数据尾部被写错的概率相对较高,因此,可以将首个数据块N1设置为一个数据量相对较大的数据块,例如,首个数据块N1的数据量等于已下载的数据的长度的90%,越靠近尾部的数据块的数据量设置得越小,如此可以提高对起始出错位置的定位精度和效率。例如,假设已下载的数据的大小为1MB字节,约定的分割块数m为5,则可以将首个数据块N1设置为900KB字节,其余4个数据块的长度依次设置为:64KB、30KB、 20KB、10KB字节,1K=1024B(byte,字节),1MB=1024KB。
在一个实施例中,所述若干数据块的长度按照数据块在所述已下载的数据中的排列方向从头至尾逐渐减小。
在应用中,服务端在接收到数据块校验请求后,利用服务端上保存的源数据,根据数据块校验请求中的信息,对数据块校验请求所对应的数据块N1采用前述所约定的同一校验算法计算出服务端自己的校验码V1’,并与数据块校验请求中的校验码V1比较,将比较结果存入校验结果数组R中的对应元素 R[0]。数据块N1是服务端的源数据中从偏移量P1开始的长度为L1的数据;
服务端对数据块校验请求所对应的数据块N2计算出服务端自己的校验码 V2’,并与数据块校验请求中的校验码V2比较,再将比较结果存入校验结果数组R中的对应元素R[1]。数据块N2是服务端的源数据中从偏移量P2开始的长度为L2的数据;
……
依此类推;
服务端对数据块校验请求所对应的数据块Nm计算出服务端自己的校验码 Vm’,并与数据块校验请求中的校验码Vm比较,再将比较结果存入校验结果数组R中的对应元素R[m-1];
然后服务端根据校验结果数组生成数据块校验结果并反馈给客户端,用于向客户端指示每个数据块的校验结果。
在应用中,为了加快确定数据出错位置(即出错数据相对于已下载的数据首字节的偏移地址)的效率,服务端一旦发现某一数据块校验未通过,即可在完成将该数据块对应的校验结果写入数组R的操作后,直接跳过对其后的其它数据块的计算与校验过程,直接生成数据块校验结果并反馈给客户端,也即省去后续不必要且多余的操作,直接根据检测到的首个校验未通过的数据块执行后续的定位步骤,从而提高了断点续传通讯的整体效率。
步骤S105、接收所述服务端反馈的数据块校验结果。
步骤S106、当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行步骤S104。
步骤S107、当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传。
在应用中,客户端收到数据块校验结果后,针对数据块校验结果中所指示的第一个校验未通过的数据块进行进一步的细分,将该数据块按从头至尾的次序依次细分成多个更小的、大小可相等或不等的子数据块S1、S2、…Sq,设每个子数据块的首字节相对于已下载的数据的头部首字节的偏移量分别为R1、 R2、…Rq,每个子数据块的长度计数分别为H1、H2、…Hq;再对该q个子数据块依前述约定的校验算法分别计算出校验码V1、V2、…Vq;接着根据这些信息生成一个子数据块校验请求发送给服务端,该子数据块校验请求包含的字段包括但不限于:下载任务标识以及所有子数据块的q组校验码、q组偏移量、q组长度等。q的值可以根据客户端或服务端的系统内存资源和链路速率等情况来进行选择或约定,q≥2且为整数。子数据块校验请求可以以数据包的形成存在,具体的,可以将下载任务标识以及所有子数据块的q组校验码、q组偏移量、q组长度生成为一个基于TCP或IP通信传输协议的数据包。
在应用中,服务端在收到子数据块校验请求后,利用服务端上保存的源数据,根据子数据块校验请求中的信息,对子数据块校验请求所对应的子数据块 S1采用前述所约定的同一校验算法计算出服务端自己的校验码V1’,并与子数据块校验请求中的校验码V1比较,将比较结果存入校验结果数组T中的对应元素T[0]。子数据块S1是服务端的源数据中从偏移量R1开始的长度为H1 的数据;
服务端对子数据块校验请求中所对应的子数据块S2计算出服务端自己的校验码V2’,并与子数据块校验请求中的校验码V2比较,将比较结果存入校验结果数组T中的对应元素T[1]。数据块S2是服务端的源数据中从偏移量R2 开始的长度为H2的数据;
…
…
依此类推;
服务端对子数据块校验请求中所对应的子数据块Sq计算出服务端自己的校验码Vq’,并与子数据块校验请求中的校验码Vq比较,将比较结果存入校验结果数组T中的对应元素T[q-1];
然后服务端根据校验结果数组生成子数据块校验结果并反馈给客户端,用于向客户端指示每个子数据块的校验结果。
在应用中,同样地,为了加快确定数据出错位置的效率,服务端一旦发现某一子数据块校验未通过,即可在完成将该子数据块对应的校验结果写入数组 T的操作后,直接跳过对其后的其它子数据块的计算与校验过程,直接生成子数据块校验结果并反馈给客户端,也即省去后续不必要且多余的操作,直接根据检测到的首个校验未通过的子数据块执行后续的定位步骤,从而提高了断点续传通讯的整体效率。
在应用中,在后续过程中,基于与上述描述相同的逻辑步骤,继续循环地进行错误数据块的细分分割、校验请求与反馈处理,直到客户端发现服务端反馈的数据块校验结果所指示的首个出错数据块的长度小于或等于一个指定的预设长度阈值G,此时,令断点指针B等于该数据块的首字节在整个已下载的数据中的偏移量,并从断点指针B所指示的地址处开始断点续。预设长度阈值的大小可以根据实际需要进行设置,如:1000字节。采用长度阈值G的控制方式,可以尽可能准确地定位出已下载的数据的首个出错位置,从而提高定位精度。在一个实施例中,步骤S106包括:
当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的首个校验未通过的数据块分割成若干数据块;
步骤S107包括:
当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述首个校验未通过的数据块所在位置处开始断点续传。
在一个实施例中,步骤S102之后,包括:
当所述初始校验结果指示校验通过时,向所述服务端发送断点续传请求,以从所述已下载的数据末尾所在位置处开始断点续传。
在应用中,令断点指针B等于已下载的数据末尾在整个已下载的数据中的偏移量,并从断点指针B所指示的地址处开始断点续传。
图1所对应的实施例通过提供一种应用于客户端的数据断点续传方法,通过向服务端发送初始校验请求,以对已下载的数据进行正确性校验;接收服务端反馈的初始校验结果;当初始校验结果指示校验未通过时,将已下载的数据分割成若干数据块;向服务端发送数据块校验请求,以对每个数据块进行正确性校验;接收服务端反馈的数据块校验结果;当数据块的长度大于预设长度阈值时,将数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;当数据块的长度小于或等于预设长度阈值时,向服务端发送断点续传请求,以从校验未通过的数据块所在位置处开始断点续传,可以在数据下载期间,出现中途断电或中途死机等异常情况,导致客户端已下载的数据出现差错的情况下,借助服务端对已下载的数据进行校验并逐步缩小校验范围,更精确的定位出错数据的偏移地址,并从该偏移地址处开始断点续传,从而可以及时、快速地纠正异常情况所导致的数据差错,保证断点续传功能的正确性和高效性。
本申请实施例还提供一种应用于服务端的数据断点续传方法,服务端具体可以是任意的能够与客户端建立通信连接,为客户端提供数据下载、数据存储等服务的终端设备,例如,服务器或云端服务器。本申请实施例对服务端的具体类型不作任何限制。
如图2所示,本申请实施例提供的应用于服务端的数据断点续传方法,包括:
步骤S201、接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码。
在应用中,初始校验请求可以在客户端出现中途断电或中途死机等异常情况之后,再次上电或者恢复正常工作状态的情况下,自动发出。初始校验请求也可以在用户有需要的任意时刻,由用户通过客户端在任意时刻输入启动断点续传流程的指令,触发客户端发出。该启动断点续传流程的指令不仅用于实现断点续传,也可以在整个数据下载完成之后,用于对数据进行完整性校验。例如,在客户端未出现断电或中途死机等异常情况下,若用户想对已下载的数据进行正确性或完整性校验,可以输入启动断点续传流程的指令。所述初始校验请求用于客户端在触发服务端对客户端已下载的数据进行正确性或完整性校验。
在应用中,客户端向服务端发出初始校验请求之前,事先生成已下载的数据的校验码V。客户端可以按照与预先服务端约定的校验算法计算已下载的数据的校验码V,然后生成初始校验请求并发送给服务端。初始校验请求包含的字段包括但不限于:下载任务标识、已下载的数据的长度L和校验码V。下载任务标识是在整个下载任务开启时确定的,一般由客户端生成,用于服务端唯一地定位客户端以及该客户端所进行的下载任务。已下载的数据的长度L是客户端中保存的已下载的数据的总长度L。已下载的数据的校验码V是对已下载的数据按照约定的校验算法计算出的验证码。约定的校验算法可以是CRC (CyclicRedundancy Check,循环冗余校验)、SHA(Secure Hash Algorithms,安全散列算法)、MAC(Message Authentication Code,消息验证码)等常用校验算法之一,例如,当选择SHA1散列算法时,校验码V是一20字节的数据串。初始校验请求可以以数据包的形成存在,具体的,可以将已下载的数据的下载任务标识、长度L和校验码V生成为一个基于TCP或IP通信传输协议的数据包(Packet)。
步骤S202、根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果。
步骤S203、向所述客户端反馈所述初始校验结果。
在应用中,服务端在接收到初始校验请求之后,根据初始校验请求携带的信息,查找到服务端上已保存的与已下载的数据对应的完整的源数据;然后对源数据采用前述与客户端约定的同一校验算法,计算出服务端的与已下载的数据对应的源数据的校验码V’,并与初始校验请求中的校验码V进行比较;若两者相等,则校验结果为校验通过,表明已下载的数据正确;否则,校验结果为校验未通过,表明已下载的数据有错误;然后根据比较结果生成初始校验结果并反馈给客户端。初始校验结果包括校验通过或校验未通过,可以通过编码方式来表示,例如,采用二进制编码“0”表示校验通过,采用二进制编码“1”表示校验未通过。服务端具体可以根据初始校验请求中携带的已下载的数据的下载任务标识查找到对应的源数据,然后根据已下载的数据的长度L确定源数据中从首个数据字节开始的对应长度L的数据。初始校验结果可以以数据包的形成存在,具体的,可以是一个基于TCP或IP通信传输协议的数据包。
在一个实施例中,所述初始校验请求携带有所述已下载的数据的下载任务标识、长度和校验码;
步骤S202包括:
根据所述已下载数据的下载任务标识和长度,确定所述已下载的数据对应的源数据;
生成所述已下载的数据对应的源数据的校验码;
比较所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码是否一致,以对所述已下载的数据进行正确性校验;
当所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码一致时,确定所述已下载的数据正确,生成用于指示所述已下载的数据校验通过的初始校验结果;
当所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码不一致时,确定所述已下载的数据有错误,生成用于指示所述已下载的数据校验未通过的初始校验结果。
步骤S204、当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码。
步骤S205、根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果。
步骤S206、向所述客户端反馈所述数据块校验结果。
在应用中,若发现初始校验结果为校验未通过,表明已下载的数据有错误,此时客户端把已下载的数据按从头至尾的方式依次分割为多个大小可相等或不等的数据块N1、N2、…Nm,并设每个数据块首字节相对于已下载的数据头部首字节的偏移量分别为P1、P2、…Pm,每个数据块的长度分别为L1、L2、… Lm;再对该m个数据块按照前述约定的校验算法分别计算出校验码V1、V2、… Vm;接着根据这些信息生成数据块校验请求发送给服务端,数据块校验请求包含的字段包括但不限于:下载任务标识以及所有数据块的m组校验码、m组偏移量、m组长度。m的值可以根据客户端或服务端的系统内存资源和链路速率等情况来进行选择或约定,m≥2且为整数。数据块校验请求可以以数据包的形成存在,具体的,可以将下载任务标识以及所有数据块的m组校验码、m组偏移量、m组长度生成为一个基于TCP或IP通信传输协议的数据包。
在一个实施例中,所述数据块校验请求携带有每个数据块的长度、校验码和相对于所述已下载的数据首字节的偏移量以及所述已下载的数据的下载任务标识;
步骤S205,包括:
根据所述已下载数据的下载任务标识以及每个数据块的长度和相对于所述已下载的数据首字节的偏移量,确定每个数据块对应的源数据;
生成每个数据块对应的源数据的校验码;
比较每个数据块的校验码和每个数据块对应的源数据的校验码是否一致,以对每个数据块进行正确性校验;
当数据块的校验码和数据块对应的源数据的校验码一致时,确定数据块正确,生成用于指示数据块校验通过的校验信息;
当数据块的校验码和数据块对应的源数据的校验码不一致时,确定数据块有错误,生成用于指示数据块校验未通过的校验信息;
根据所有所述校验信息,生成数据块校验结果。
在应用中,由于发生异常情况时,数据尾部被写错的概率相对较高,因此,可以将首个数据块N1设置为一个数据量相对较大的数据块,例如,首个数据块N1的数据量等于已下载的数据的长度的90%,越靠近尾部的数据块的数据量设置得越小,如此可以提高对起始出错位置的定位精度和效率。例如,假设已下载的数据的大小为1MB字节,约定的分割块数m为5,则可以将首个数据块N1设置为900KB字节,其余4个数据块的长度依次设置为:64KB、30KB、20KB、10KB字节,1K=1024B(byte,字节),1MB=1024KB。
在一个实施例中,所述若干数据块的长度按照数据块在所述已下载的数据中的排列方向从头至尾逐渐减小。
在应用中,服务端在接收到数据块校验请求后,利用服务端上保存的源数据,根据数据块校验请求中的信息,对数据块校验请求所对应的数据块N1采用前述所约定的同一校验算法计算出服务端自己的校验码V1’,并与数据块校验请求中的校验码V1比较,将比较结果存入校验结果数组R中的对应元素 R[0]。数据块N1是服务端的源数据中从偏移量P1开始的长度为L1的数据;
服务端对数据块校验请求所对应的数据块N2计算出服务端自己的校验码 V2’,并与数据块校验请求中的校验码V2比较,再将比较结果存入校验结果数组R中的对应元素R[1]。数据块N2是服务端的源数据中从偏移量P2开始的长度为L2的数据;
…
…
依此类推;
服务端对数据块校验请求所对应的数据块Nm计算出服务端自己的校验码 Vm’,并与数据块校验请求中的校验码Vm比较,再将比较结果存入校验结果数组R中的对应元素R[m-1];
然后服务端根据校验结果数组生成数据块校验结果并反馈给客户端,用于向客户端指示每个数据块的校验结果。
在应用中,为了加快确定数据出错位置(即出错数据相对于已下载的数据首字节的偏移地址)的效率,服务端一旦发现某一数据块校验未通过,即可在完成将该数据块对应的校验结果写入数组R的操作后,直接跳过对其后的其它数据块的计算与校验过程,直接生成数据块校验结果并反馈给客户端,也即省去后续不必要且多余的操作,直接根据检测到的首个校验未通过的数据块执行后续的定位步骤,从而提高了断点续传通讯的整体效率。
步骤S207、当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回执行步骤S205;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码。
步骤S208、当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
在应用中,客户端收到数据块校验结果后,针对数据块校验结果中所指示的第一个校验未通过的数据块进行进一步的细分,将该数据块按从头至尾的次序依次细分成多个更小的、大小可相等或不等的子数据块S1、S2、…Sq,设每个子数据块的首字节相对于已下载的数据的头部首字节的偏移量分别为R1、 R2、…Rq,每个子数据块的长度计数分别为H1、H2、…Hq;再对该q个子数据块依前述约定的校验算法分别计算出校验码V1、V2、…Vq;接着根据这些信息生成一个子数据块校验请求发送给服务端,该子数据块校验请求包含的字段包括但不限于:下载任务标识以及所有子数据块的q组校验码、q组偏移量、 q组长度等。q的值可以根据客户端或服务端的系统内存资源和链路速率等情况来进行选择或约定,q≥2且为整数。子数据块校验请求可以以数据包的形成存在,具体的,可以将下载任务标识以及所有子数据块的q组校验码、q组偏移量、q组长度生成为一个基于TCP或IP通信传输协议的数据包。
在应用中,服务端在收到子数据块校验请求后,利用服务端上保存的源数据,根据子数据块校验请求中的信息,对子数据块校验请求所对应的子数据块 S1采用前述所约定的同一校验算法计算出服务端自己的校验码V1’,并与子数据块校验请求中的校验码V1比较,将比较结果存入校验结果数组T中的对应元素T[0]。子数据块S1是服务端的源数据中从偏移量R1开始的长度为H1 的数据;
服务端对子数据块校验请求中所对应的子数据块S2计算出服务端自己的校验码V2’,并与子数据块校验请求中的校验码V2比较,将比较结果存入校验结果数组T中的对应元素T[1]。数据块S2是服务端的源数据中从偏移量R2 开始的长度为H2的数据;
…
…
依此类推;
服务端对子数据块校验请求中所对应的子数据块Sq计算出服务端自己的校验码Vq’,并与子数据块校验请求中的校验码Vq比较,将比较结果存入校验结果数组T中的对应元素T[q-1];
然后服务端根据校验结果数组生成子数据块校验结果并反馈给客户端,用于向客户端指示每个子数据块的校验结果。
在应用中,同样地,为了加快确定数据出错位置的效率,服务端一旦发现某一子数据块校验未通过,即可在完成将该子数据块对应的校验结果写入数组 T的操作后,直接跳过对其后的其它子数据块的计算与校验过程,直接生成子数据块校验结果并反馈给客户端,也即省去后续不必要且多余的操作,直接根据检测到的首个校验未通过的子数据块执行后续的定位步骤,从而提高了断点续传通讯的整体效率。
在应用中,在后续过程中,基于与上述描述相同的逻辑步骤,继续循环地进行错误数据块的细分分割、校验请求与反馈处理,直到客户端发现服务端反馈的数据块校验结果所指示的首个出错数据块的长度小于或等于一个指定的预设长度阈值G,此时,令断点指针B等于该数据块的首字节在整个已下载的数据中的偏移量,并从断点指针B所指示的地址处开始断点续。预设长度阈值的大小可以根据实际需要进行设置,如:1000字节。采用长度阈值G的控制方式,可以尽可能准确地定位出已下载的数据的首个出错位置,从而提高定位精度。
在一个实施例中,步骤S205包括:
依次根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验;
当检测到首个校验未通过的数据块时,生成用于指示所述首个校验未通过的数据块的数据块校验结果。
在一个实施例中,步骤S203之后,包括:
当所述初始校验结果指示校验通过时,接收所述客户端发送的断点续传请求,以从所述已下载的数据末尾所在位置处开始断点续传。
在应用中,令断点指针B等于已下载的数据末尾在整个已下载的数据中的偏移量,并从断点指针B所指示的地址处开始断点续传。
图2所对应的实施例通过提供一种应用于服务端的数据断点续传方法,通过接收客户端发送的初始校验请求;根据已下载的数据的校验码和已下载的数据对应的源数据的校验码,对已下载的数据进行正确性校验,生成初始校验结果;向客户端反馈初始校验结果;当初始校验结果指示校验未通过时,接收客户端发送数据块校验请求;根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;向客户端反馈数据块校验结果;当数据块的长度大于预设长度阈值时,接收客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;当数据块的长度小于或等于预设长度阈值时,接收客户端发送断点续传请求,从校验未通过的数据块所在位置处开始断点续传,可以在数据下载期间,出现中途断电或中途死机等异常情况,导致客户端已下载的数据出现差错的情况下,借助服务端对已下载的数据进行校验并逐步缩小校验范围,更精确的定位出错数据的偏移地址,并从该偏移地址处开始断点续传,从而可以及时、快速地纠正异常情况所导致的数据差错,保证断点续传功能的正确性和高效性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
如图3所示,本申请实施例还提供一种应用于客户端的数据断点续传装置 100,用于执行图1所对应的数据断点续传方法实施例中的方法步骤,该数据断点续传装置100可以是客户端中的虚拟装置(virtual appliance),由客户端的处理器运行,也可以是客户端本身。
如图3所示,本申请实施例提供的数据断点续传装置100,包括:
第一发送模块101,用于向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码;
第一接收模块102,用于接收所述服务端反馈的初始校验结果;
第一分割模块103,用于当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块;
第二发送模块104,用于向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码;
第二接收模块105,用于接收所述服务端反馈的数据块校验结果;
第二分割模块106,用于当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回第二发送模块104;
第三发送模块107,用于当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传。
在一个实施例中,所述第二发送模块104还用于:
当所述初始校验结果指示校验通过时,向所述服务端发送断点续传请求,以从所述已下载的数据末尾所在位置处开始断点续传。
在应用中,数据断点续传装置中的各模块可以为软件程序模块,也可以通过处理器中集成的不同逻辑电路实现,还可以通过多个分布式处理器实现。
如图4所示,本申请实施例还提供一种应用于服务端的数据断点续传装置 200,用于执行图2所对应的数据断点续传方法实施例中的方法步骤,该数据断点续传装置200可以是服务端中的虚拟装置(virtual appliance),由服务端的处理器运行,也可以是服务端本身。
如图4所示,本申请实施例提供的数据断点续传装置200,包括:
第一接收模块201,用于接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码;
第一验证模块202,用于根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果;
第一发送模块203,用于向所述客户端反馈所述初始校验结果;
第二接收模块204,用于当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码;
第二验证模块205,用于根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;
第二发送模块206,用于向所述客户端反馈所述数据块校验结果;
第三接收模块207,用于当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回第二验证模块205;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码;
第四接收模块208,用于当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
在一个实施例中,所述第二接收模块204还用于:
当所述初始校验结果指示校验通过时,接收所述客户端发送的断点续传请求,以从所述已下载的数据末尾所在位置处开始断点续传。
在应用中,数据断点续传装置中的各模块可以为软件程序模块,也可以通过处理器中集成的不同逻辑电路实现,还可以通过多个分布式处理器实现。
如图5所示,本申请实施例还提供一种数据断点续传系统,包括通信连接的客户端5和服务端6共两个终端设备。
客户端5包括:至少一个处理器50(图5中仅示出一个处理器)、存储器 51以及存储在存储器51中并可在至少一个处理器50上运行的计算机程序52,处理器50执行计算机程序52时实现上述图1对应的数据断点续传方法实施例中的步骤。
服务端6包括:至少一个处理器60(图5中仅示出一个处理器)、存储器 61以及存储在存储器61中并可在至少一个处理器60上运行的计算机程序62,处理器60执行计算机程序62时实现上述图2对应的数据断点续传方法实施例中的步骤。
在应用中,客户端5和服务端6可包括,但不仅限于,处理器和存储器。本领域技术人员可以理解,图5仅仅是客户端5和服务端6的举例,并不构成对客户端5和服务端6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
在应用中,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在应用中,存储器在一些实施例中可以是终端设备的内部存储单元,例如终端设备的硬盘或内存。存储器在另一些实施例中也可以是终端设备的外部存储设备,例如终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的数据断点续传方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例所述的数据断点续传方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述任一实施例所述的数据断点续传方法。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据断点续传方法,其特征在于,应用于客户端,所述方法包括:
向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码;
接收所述服务端反馈的初始校验结果;
当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块;
向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码;
接收所述服务端反馈的数据块校验结果;
当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向所述服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;
当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传。
2.如权利要求1所述的数据断点续传方法,其特征在于,当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,包括:
当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的首个校验未通过的数据块分割成若干数据块;
当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传,包括:
当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述首个校验未通过的数据块所在位置处开始断点续传。
3.如权利要求1所述的数据断点续传方法,其特征在于,向服务端发送初始校验请求,对已下载的数据进行正确性校验,包括:
生成已下载的数据的校验码;
生成携带有所述已下载的数据的下载任务标识、长度和校验码的初始校验请求;
向服务端发送所述初始校验请求,以对所述已下载的数据进行正确性校验。
4.如权利要求1所述的数据断点续传方法,其特征在于,向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验,包括:
生成每个数据块的校验码;
生成携带有每个数据块的长度、校验码和相对于所述已下载的数据首字节的偏移量以及所述已下载的数据的下载任务标识的数据块校验请求;
向所述服务端发送所述数据块校验请求,以对每个数据块进行正确性校验。
5.一种数据断点续传方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码;
根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果;
向所述客户端反馈所述初始校验结果;
当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码;
根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;
向所述客户端反馈所述数据块校验结果;
当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码;
当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
6.如权利要求5所述的数据断点续传方法,其特征在于,根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果,包括:
依次根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验;
当检测到首个校验未通过的数据块时,生成用于指示所述首个校验未通过的数据块的数据块校验结果。
7.如权利要求5所述的数据断点续传方法,其特征在于,所述初始校验请求携带有所述已下载的数据的下载任务标识、长度和校验码;
根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果,包括:
根据所述已下载数据的下载任务标识和长度,确定所述已下载的数据对应的源数据;
生成所述已下载的数据对应的源数据的校验码;
比较所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码是否一致,以对所述已下载的数据进行正确性校验;
当所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码一致时,确定所述已下载的数据正确,生成用于指示所述已下载的数据校验通过的初始校验结果;
当所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码不一致时,确定所述已下载的数据有错误,生成用于指示所述已下载的数据校验未通过的初始校验结果。
8.如权利要求5所述的数据断点续传方法,其特征在于,所述数据块校验请求携带有每个数据块的长度、校验码和相对于所述已下载的数据首字节的偏移量以及所述已下载的数据的下载任务标识;
根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果,包括:
根据所述已下载数据的下载任务标识以及每个数据块的长度和相对于所述已下载的数据首字节的偏移量,确定每个数据块对应的源数据;
生成每个数据块对应的源数据的校验码;
比较每个数据块的校验码和每个数据块对应的源数据的校验码是否一致,以对每个数据块进行正确性校验;
当数据块的校验码和数据块对应的源数据的校验码一致时,确定数据块正确,生成用于指示数据块校验通过的校验信息;
当数据块的校验码和数据块对应的源数据的校验码不一致时,确定数据块有错误,生成用于指示数据块校验未通过的校验信息;
根据所有所述校验信息,生成数据块校验结果。
9.一种数据断点续传装置,其特征在于,所述装置应用于客户端时,包括:
第一发送模块,用于向服务端发送初始校验请求,以对已下载的数据进行正确性校验;其中,所述初始校验请求携带有所述已下载的数据的校验码;
第一接收模块,用于接收所述服务端反馈的初始校验结果;
第一分割模块,用于当所述初始校验结果指示校验未通过时,将所述已下载的数据分割成若干数据块;
第二发送模块,用于向所述服务端发送数据块校验请求,以对每个数据块进行正确性校验;其中,数据块校验请求携带有每个数据块的校验码;
第二接收模块,用于接收所述服务端反馈的数据块校验结果;
第二分割模块,用于当数据块的长度大于预设长度阈值时,将所述数据块校验结果指示的校验未通过的数据块分割成若干数据块,并返回执行向所述服务端发送数据块校验请求,对每个数据块进行正确性校验的步骤;
第三发送模块,用于当数据块的长度小于或等于预设长度阈值时,向所述服务端发送断点续传请求,以从所述校验未通过的数据块所在位置处开始断点续传;
所述装置应用于服务端时,包括:
第一接收模块,用于接收客户端发送的初始校验请求;其中,所述初始校验请求携带有已下载的数据的校验码;
第一验证模块,用于根据所述已下载的数据的校验码和所述已下载的数据对应的源数据的校验码,对所述已下载的数据进行正确性校验,生成初始校验结果;
第一发送模块,用于向所述客户端反馈所述初始校验结果;
第二接收模块,用于当所述初始校验结果指示校验未通过时,接收所述客户端发送数据块校验请求;其中,所述数据块校验请求携带有所述已下载的数据分割而成的若干数据块的校验码;
第二验证模块,用于根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果;
第二发送模块,用于向所述客户端反馈所述数据块校验结果;
第三接收模块,用于当数据块的长度大于预设长度阈值时,接收所述客户端再次发送的数据块校验请求,并返回执行根据每个数据块的校验码和每个数据块对应的源数据的校验码,对每个数据块进行正确性校验,生成数据块校验结果的步骤;其中,所述客户端再次发送的数据块校验请求携带有校验未通过的数据块分割而成的若干数据块的校验码;
第四接收模块,用于当数据块的长度小于或等于预设长度阈值时,接收所述客户端发送的断点续传请求,从所述校验未通过的数据块所在位置处开始断点续传。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述终端设备为客户端时,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的数据断点续传方法;
所述终端设备为服务端时,所述处理器执行所述计算机程序时实现如权利要求5至8任一项所述的数据断点续传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238155.4A CN111478751B (zh) | 2020-03-30 | 2020-03-30 | 一种数据断点续传方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238155.4A CN111478751B (zh) | 2020-03-30 | 2020-03-30 | 一种数据断点续传方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111478751A true CN111478751A (zh) | 2020-07-31 |
CN111478751B CN111478751B (zh) | 2023-03-24 |
Family
ID=71749286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010238155.4A Active CN111478751B (zh) | 2020-03-30 | 2020-03-30 | 一种数据断点续传方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111478751B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703822A (zh) * | 2021-08-31 | 2021-11-26 | 三一专用汽车有限责任公司 | 一种差分升级方法、装置和作业机械 |
CN116701274A (zh) * | 2023-07-26 | 2023-09-05 | 武汉能钠智能装备技术股份有限公司 | 一种热插拔硬盘数据传输系统及方法 |
CN117278171A (zh) * | 2023-11-22 | 2023-12-22 | 山东港口科技集团烟台有限公司 | 一种物联数据断点续传方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288907A1 (en) * | 2006-05-16 | 2007-12-13 | Olivier Jeffrey V | Method and apparatus for debugging applications executed on a software relaxed consistency architecture |
CN101110656A (zh) * | 2006-07-18 | 2008-01-23 | 宇龙计算机通信科技(深圳)有限公司 | 无线网络硬盘系统的文件传输方法 |
CN101291195A (zh) * | 2008-05-23 | 2008-10-22 | 中兴通讯股份有限公司 | 实现断点续传的文件下载的方法、系统及终端 |
EP2255277A2 (en) * | 2008-03-28 | 2010-12-01 | Alibaba Group Holding Limited | File folder transmission on network |
CN102340538A (zh) * | 2011-07-20 | 2012-02-01 | 杭州创联电子技术有限公司 | 一种用于gyk数据管理的手持式设备实现方法 |
US20120303761A1 (en) * | 2011-05-24 | 2012-11-29 | Hui Wang | Breakpoint continuous transmission method |
CN103227836A (zh) * | 2013-05-02 | 2013-07-31 | 百度在线网络技术(北京)有限公司 | 离线下载方法和离线下载服务器 |
CN104363271A (zh) * | 2014-10-28 | 2015-02-18 | 广东欧珀移动通信有限公司 | 文件断点续传方法及装置 |
CN104424337A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | 文档分割系统和文档分割方法 |
US20170171295A1 (en) * | 2015-12-09 | 2017-06-15 | Synology Incorporated | File upload and download methods and associated server |
CN108023906A (zh) * | 2016-10-31 | 2018-05-11 | 杭州海康威视系统技术有限公司 | 监控录像的断点续传方法及装置 |
CN108255629A (zh) * | 2017-09-22 | 2018-07-06 | 平安科技(深圳)有限公司 | 断点数据获取方法及终端设备 |
CN109189598A (zh) * | 2018-08-01 | 2019-01-11 | 百富计算机技术(深圳)有限公司 | 一种中断定位的方法、处理器及终端设备 |
CN110008757A (zh) * | 2019-04-09 | 2019-07-12 | 江南大学 | 一种物联网终端固件更新中数据保护方法及系统 |
CN110621011A (zh) * | 2019-09-12 | 2019-12-27 | 北京方研矩行科技有限公司 | 一种基于蓝牙设备端的ota固件升级方法及系统 |
-
2020
- 2020-03-30 CN CN202010238155.4A patent/CN111478751B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288907A1 (en) * | 2006-05-16 | 2007-12-13 | Olivier Jeffrey V | Method and apparatus for debugging applications executed on a software relaxed consistency architecture |
CN101110656A (zh) * | 2006-07-18 | 2008-01-23 | 宇龙计算机通信科技(深圳)有限公司 | 无线网络硬盘系统的文件传输方法 |
EP2255277A2 (en) * | 2008-03-28 | 2010-12-01 | Alibaba Group Holding Limited | File folder transmission on network |
CN101291195A (zh) * | 2008-05-23 | 2008-10-22 | 中兴通讯股份有限公司 | 实现断点续传的文件下载的方法、系统及终端 |
US20120303761A1 (en) * | 2011-05-24 | 2012-11-29 | Hui Wang | Breakpoint continuous transmission method |
CN102340538A (zh) * | 2011-07-20 | 2012-02-01 | 杭州创联电子技术有限公司 | 一种用于gyk数据管理的手持式设备实现方法 |
CN103227836A (zh) * | 2013-05-02 | 2013-07-31 | 百度在线网络技术(北京)有限公司 | 离线下载方法和离线下载服务器 |
CN104424337A (zh) * | 2013-09-11 | 2015-03-18 | 北大方正集团有限公司 | 文档分割系统和文档分割方法 |
CN104363271A (zh) * | 2014-10-28 | 2015-02-18 | 广东欧珀移动通信有限公司 | 文件断点续传方法及装置 |
US20170171295A1 (en) * | 2015-12-09 | 2017-06-15 | Synology Incorporated | File upload and download methods and associated server |
CN108023906A (zh) * | 2016-10-31 | 2018-05-11 | 杭州海康威视系统技术有限公司 | 监控录像的断点续传方法及装置 |
CN108255629A (zh) * | 2017-09-22 | 2018-07-06 | 平安科技(深圳)有限公司 | 断点数据获取方法及终端设备 |
CN109189598A (zh) * | 2018-08-01 | 2019-01-11 | 百富计算机技术(深圳)有限公司 | 一种中断定位的方法、处理器及终端设备 |
CN110008757A (zh) * | 2019-04-09 | 2019-07-12 | 江南大学 | 一种物联网终端固件更新中数据保护方法及系统 |
CN110621011A (zh) * | 2019-09-12 | 2019-12-27 | 北京方研矩行科技有限公司 | 一种基于蓝牙设备端的ota固件升级方法及系统 |
Non-Patent Citations (2)
Title |
---|
QIUXIA ZHANG: "An Improved MCPTT System File Breakpoint Resuming Algorithm", 《2019 INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING, AUTOMATION AND SYSTEMS (ICICAS)》 * |
唐军: "异步批量文件网络传输系统设计与实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑) 》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703822A (zh) * | 2021-08-31 | 2021-11-26 | 三一专用汽车有限责任公司 | 一种差分升级方法、装置和作业机械 |
CN116701274A (zh) * | 2023-07-26 | 2023-09-05 | 武汉能钠智能装备技术股份有限公司 | 一种热插拔硬盘数据传输系统及方法 |
CN116701274B (zh) * | 2023-07-26 | 2023-11-17 | 武汉能钠智能装备技术股份有限公司 | 一种热插拔硬盘数据传输系统及方法 |
CN117278171A (zh) * | 2023-11-22 | 2023-12-22 | 山东港口科技集团烟台有限公司 | 一种物联数据断点续传方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111478751B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111478751B (zh) | 一种数据断点续传方法、装置及终端设备 | |
CN108965484B (zh) | 一种物联网数据的传输方法、系统及终端 | |
US11106776B2 (en) | Digital certificate application | |
CN110570196B (zh) | 交易数据处理方法、装置、终端设备以及存储介质 | |
CN112584350B (zh) | 处理信息的方法、装置、设备及可读存储介质 | |
WO2022142153A1 (zh) | 电表升级方法、系统、智能电表及存储介质 | |
CN110768799B (zh) | 数字签名方法、装置、设备及介质、系统 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
EP3313041A1 (en) | Application download method and device | |
CN112803950A (zh) | 一种数据压缩方法、装置、设备及计算机存储介质 | |
CN113568785B (zh) | 一种基于区块链的数据备份方法、装置、设备及存储介质 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN114337915A (zh) | 基于串行通讯的私有协议容错处理方法、装置及存储介质 | |
CN109889418B (zh) | 基于can总线的数据传输方法和装置 | |
CN117040914A (zh) | 一种信息的安全管控方法、装置、电子设备及存储介质 | |
CN106933932B (zh) | 数据处理方法、装置及应用服务器 | |
CN111738853A (zh) | 一种基于区块链分布式系统的交易优化方法及装置 | |
CN115018569A (zh) | 基于区块链的发票开具方法、发票报销方法、装置和设备 | |
CN113379019B (zh) | 核销码生成方法、装置、存储介质及电子设备 | |
CN110585717A (zh) | 一种信息处理方法及装置 | |
CN114371948A (zh) | 服务消息通知方法、装置、计算机设备及存储介质 | |
CN113672948B (zh) | 一种加密uart以及一种集成芯片 | |
CN114679466B (zh) | 区块链网络的共识处理方法、装置、计算机设备和介质 | |
CN112052265B (zh) | 数据核对确认方法、装置、计算机设备及可读存储介质 | |
CN113296998B (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 |