基于数据分块的数据传输方法和装置制造方法

文档序号:7988366阅读:162来源:国知局
基于数据分块的数据传输方法和装置制造方法
【专利摘要】本发明公开了一种基于数据分块的数据传输方法和装置,属于通讯【技术领域】。所述方法包括:终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块;所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;所述终端设备接收所述服务器返回的传输响应消息;所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态;所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。本发明通过根据块索引和存储地址信息进行数据块的传输,并根据数据块的传输状态传输数据,保证了传输的数据的完整性。
【专利说明】基于数据分块的数据传输方法和装置
【技术领域】
[0001]本发明涉及通讯【技术领域】,特别涉及一种基于数据分块的数据传输方法和装置。【背景技术】
[0002]随着互联网的不断发展,终端设备和服务器之间的数据传输也越来越普遍。数据传输就是按照一定的规则,经过一条或多条链路,在数据源和数据宿之间传送数据的过程,也表示借助信道上的信号将数据从一处送往另一处的操作。如,用户通过email、各种论坛、聊天软件进行数据传输,都会将数据从终端设备传输到服务器或者从服务器下载数据到终端设备。
[0003]在现有技术中,数据传输过程中通常会将大数据分成很多小的数据块,每次传输一个小数据块,避免了一次传输较大的文件,而这种传输会导致客户端对当前传输文件的进度一无所知,因此,文件分块传输方法的设计和实现就变得越来越重要。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]目前互联网领域主流的数据传输服务模式为终端设备一次性传输,如果在传输过程中出现异常,导致传输过程终止,那么所有已传输的数据也会完全丢失,不能保证数据完整性。

【发明内容】

[0006]为了解决数据传输中数据完整性的问题,本发明实施例提供了一种基于数据分块的数据传输方法和装置。所述技术方案如下:
[0007]—方面,一种基于数据分块的数据传输方法,所述方法包括:
[0008]终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块;
[0009]所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;
[0010]所述终端设备接收所述服务器返回的传输响应消息;
[0011]所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态;
[0012]所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
[0013]终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块之前,包括:
[0014]对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
[0015]对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引之后,终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块之前,所述方法还包括:[0016]向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
[0017] 所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态,包括:
[0018]当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。
[0019]所述终端设备根据所述至少一个数据块的传输状态继续传输所述待传输数据的数据块,包括:
[0020]当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索引,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块;
[0021]当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
[0022]另一方面,一种基于数据分块的数据传输装置,所述装置包括:
[0023]数据块获取模块,用于根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块;
[0024]传输模块,用于向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;
[0025]接收模块,用于接收所述服务器返回的传输响应消息;
[0026]传输状态确定模块,用于根据所述传输响应消息,确定所述至少一个数据块的传输状态;
[0027]所述传输模块,还用于根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
[0028]所述装置还包括:
[0029]分块模块,用于对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
[0030]所述传输模块还用于向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
[0031]所述传输状态确定模块具体用于当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。
[0032]所述传输模块还具体用于当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索引,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块;当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
[0033]本发明实施例提供的一种基于数据分块的数据传输方法和装置,通过终端设备根据待传输数据所包含的数据块的存储地址信息,获取至少一个数据块;所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;所述终端设备接收所述服务器返回的传输响应消息;所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态;所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。采用本发明实施例提供的技术方案,根据块索引和存储地址信息进行数据块的传输,并根据数据块的传输状态传输数据,保证了传输的数据的完整性。
【专利附图】

【附图说明】
[0034]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本发明实施例提供的一种基于数据分块的数据传输方法的流程图;
[0036]图2是本发明实施例提供的一种基于数据分块的数据传输方法的流程图;
[0037]图3是本发明实施例提供的一种基于数据分块的数据传输装置的结构示意图。
【具体实施方式】
[0038]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0039]本发明实施例中,终端设备指向用户提供语音和/或数据连通性的设备,包括无线终端或有线终端。无线终端可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备,经无线接入网与一个或多个核心网进行通信的移动终端。例如,无线终端可以是移动电话(或称为“蜂窝”电话)和具有移动终端的计算机。又如,无线终端也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。再如,无线终端可以为移动站(Mobile Station,以下简称MS)、接入点(Access Point,以下简称AP)、或用户装备(User Equipment,以下简称 UE)等。
[0040]图1是本发明实施例提供的一种基于数据分块的数据传输方法的流程图,参见图1,该方法包括:
[0041]102:终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块;
[0042]其中,待传输数据是指当前正在传输或是准备传输的数据,其中,该待传输数据包括至少一个数据块,各个数据块均有其相应的存储地址,即各个数据块均对应有存储地址信息,且各个数据块均具有对应的块索引,该块索引可以是有规律可循的任意标记,如块索引可以为0-Ν,或OOfOON,N为正整数。
[0043]其中,该至少一个数据块可以是待传输数据块中未传输的一个或多个数据块。对于每次获取来说,可以仅获取一个数据块,也即是在后续的传输中每次仅传输一个数据块,而如果终端设备以及网络状态允许,可以一次获取两个或两个以上的数据块,也即是在后续的传输中每次均传输两个或两个以上的数据块,以缩短传输所需的时间。该两个或两个以上的数据块可以是顺序获取,也可以是随机获取。
[0044]104:所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;
[0045]其中,块索引用于表示数据块在整个待传输数据中的相对位置关系,数据块与块索引--对应,且每个数据块具有唯一对应的块索引。
[0046]106:所述终端设备接收所述服务器返回的传输响应消息;
[0047]由于在数据传输过程中,网络干扰和设备故障常使数据产生错误,出现数据传输中断和失败的现象,为了保证数据的完整性以及提示终端设备该数据块传输中断或失败,服务器会返回传输响应消息。具体地,当服务器接收到终端设备发送的数据块和数据块的块索引时,当存储了数据块以及其块索引,向终端设备返回不携带任何块索引的传输响应消息,当根据数据块大小确定服务器未完全接收整个数据块时,向终端设备返回携带该数据块的块索引的传输响应消息,以使终端设备获知该数据块的传输状态。
[0048]108:所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态;
[0049]其中,传输状态是指该至少一个数据块中每个数据块是否传输成功。
[0050]当所述传输响应消息携带所述块索引时,则确定所述传输响应消息携带所述块索引对应的数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定数据块传输成功。
[0051]110:所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
[0052]进一步地,当数据块是按照块索引顺序传输时,服务器根据已获知的数据信息确定接收到的数据块为待传输数据中的最后一个数据块,则确定传输结束,而当数据块是随机传输时,服务器可根据已获知的数据信息,判断接收到的数据块的块数是否包括所有待传输数据中的数据块,如果否,则根据数据信息获取未传输的数据块的块索引,并向终端发送该未传输的数据块的块索引,使得终端根据该块索引传输该未传输的数据块,如果是,则确定传输结束。
[0053]本发明通过终端设备根据待传输数据所包含的数据块的存储地址信息,获取至少一个数据块;所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;所述终端设备接收所述服务器返回的传输响应消息;所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态;所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。采用本发明实施例提供的技术方案,根据块索引和存储地址信息进行数据块的传输,并根据数据块的传输状态传输数据,保证了传输的数据的完整性。
[0054]可选地,在图1所示实施例技术方案的基础上,该步骤102 “终端设备根据待传输数据所包含的数据块的存储地址信息,获取至少一个数据块”之前,包括步骤100:
[0055]100:对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
[0056] 具体地,根据预设数据块大小,对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。为了保证数据传输过程的数据完整性,在待传输数据进行传输前,对待传输数据进行分块。
[0057]其中,预设数据块的大小可以由终端设备默认,也可以由用户根据待传输数据的大小进行设置。为了减少数据块在传输过程中由于传输失败而重新传输的时间,优选地,预设数据块的大小应小于64kb。进一步优选地,预设数据块大小可以为4kb。例如,待传输数据的大小为length (单位为byte),预设数据块的大小为k时,则数据块的块数可以取Iengthk的整数位加I。
[0058]为了保证数据传输的完整性,可以在分块过程中用块索引表示数据块在整个待传输数据中的相对位置关系,如,该块索引可以为数字,在对待传输数据的分块过程中,按照每个数据块在待传输数据中的相对位置关系,为每个数据块分配块索引,如从O到n,同时,将每个数据块所分配的块索引与数据块的首地址对应存储,以便后续根据块索引和其对应的首地址,在存储介质中找到至少一个数据块,使终端设备向服务器发送该数据块。优选地,该块索引以及数据块的首地址可以对应存储于一映射表中。
[0059]进一步可选地,在图1所示实施例技术方案的基础上,在该步骤100 “该对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引”之后,该步骤102 “终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块”之前,所述方法还包括步骤101:
[0060]101:向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
[0061]为了保证服务器能够为终端设备的待传输数据分配存储地址,以及保证数据传输的完整性,在进行数据传输前,终端设备需要将此次待传输数据的数据信息发送到服务器,
待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小,还可以包括待传输数据的文件名称、传输路径等,本发明实施例对此不作具体限定。
[0062]由于各个数据块在传输过程中的速度可能不一致,服务器接收到的数据块的顺序也就不一致,在接收完各个数据块后,服务器将根据块索引,对接收到的各个数据块进行排序,以得到完整的数据。
[0063]可选地,在图1所示实施例技术方案的基础上,该步骤108 “所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态”,包括:当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。[0064]在本发明实施例中,为了及时获知数据块的传输状态,可判断传输响应消息是否携带块索引,如果不携带,则认为传输成功,如果携带,则要根据携带的块索引对该未传输成功的数据块进行重新传输。
[0065]可选地,在图1所示实施例技术方案的基础上,该步骤110 “所述终端设备根据所述至少一个数据块的传输状态继续传输所述待传输数据的数据块”,包括IlOa和IlOb:
[0066]110a:当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索引,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块;
[0067]在本发明实施例中,为了描述方便,将传输不成功的数据块称为第一数据块,而该第一数据块可以为待传输数据块中的任意数据块。终端设备对于没有成功传输的数据块进行重新传输,由于数据块与整个待传输数据相比,字节数较小,重新传输所消耗的时间就会相对少的多,大大降低了数据传输的时间,同时,通过数据块的重新传输保证了数据的完整性。[0068]110b:当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
[0069]具体地,当服务器返回的传输响应消息中未携带任何块索引时,表明第一数据块传输成功,此时,终端设备比较第一数据块的块索引和待传输数据的分块数。当第一数据块的块索引小于待传输数据的分块数时,说明待传输数据未全部传输完成,终端设备将获取第二数据块的块索引,即通过在第一数据块的块索引的基础上加一得到第二数据块的块索弓丨,在获取第二数据块的块索引后,根据第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,进行第二数据块传输,直到待传输数据中的所有数据块全部传输成功,结束数据传输。
[0070]由于能够根据服务器返回的传输响应消息确定传输进度,使得终端设备能够实时的根据传输进度进行重传或继续传输,不仅减少了数据传输的时间,且减少了重新传输数据所需的时间。
[0071]图2是本发明实施例提供的一种基于数据分块的数据传输方法的流程图,本发明实施例中的执行主体是终端设备,参见图2,该方法包括:
[0072]201:终端设备对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引;
[0073]202:终端设备向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小;
[0074]需要说明的是,根据数据传输协议的不同,该终端设备与服务器可经过多次握手,建立数据连接,从而通过该数据连接进行步骤203的传输,本发明实施例中对数据连接的具体建立过程不再赘述。
[0075]203:终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取所述待传输数据块的第一数据块;
[0076]为了完整描述整个传输过程,该步骤203对该待传输数据中的第一数据块的获取进行了描述,具体地,终端设备根据待传输数据所包含的第一数据块的块索引和存储地址信息,获取所述待传输数据块的第一数据块。
[0077]为了便于确认数据传输的进度,该首次传输的数据块可以为待传输数据块中的第一个数据块,该第一个数据块的块索引为O。
[0078]204:所述终端设备向服务器发送该第一数据块和该第一数据块的块索引;
[0079]在本实施例中,终端设备获取第一数据块后,向服务器发送获取到的第一数据块和第一数据块的块索引,使得服务器获知第一数据块在整个待传输数据中的相对位置,也就获知了数据传输进度,并根据传输状态返回相应的传输响应消息。
[0080]当服务器接收到终端设备发送的第一数据块和第一数据块的块索引时,当存储了第一数据块以及其块索引,向终端设备返回不携带任何块索引的传输响应消息,当根据数据块大小确定服务器未完全接收整个第一数据块时,向终端设备返回携带该第一数据块的块索引的传输响应消息,以使终端设备获知该第一数据块的传输状态。
[0081]205:服务器接收到第一数据块和块索引,根据数据信息确定该第一数据块的传输状态,并向所述终端设备发送传输响应消息;
[0082]在该步骤205中,该传输响应消息用于通知终端设备该第一数据块是否传输成功。终端设备接收服务器返回的传输响应消息,终端设备将根据该传输响应消息确定该第一数据块是否传输成功。
[0083]服务器可根据接收到的数据信息判断该第一数据块是否传输完毕,如判断该第一数据块是否为数据信息所包括的数据块大小,如果是,则传输完毕,如果否,则传输未成功。
[0084]例如,当该传输响应消息中携带的块索引为3时,表明块索引为3对应的数据块传输失败。
[0085]可选地,传输响应消息还可以携带多个块索引,例如,当该传输响应消息中携带的块索引为3、5、7时,表明块索引为3、5、7对应的数据块传输失败。
[0086]206:所述终端设备当接收到所述服务器返回的传输响应消息时,根据所述传输响应消息,确定所述第一数据块的传输状态,当终端设备根据传输响应消息,确定第一数据块传输不成功时,执行步骤204 ;当终端设备根据传输响应消息,确定第一数据块传输成功时,执行步骤207 ;
[0087]当所述传输响应消息携带所述第一数据块的块索引时,则确定所述第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述第一数据块传输成功。
[0088]而由于数据块与整个待传输数据相比,字节数较小,重新传输所消耗的时间就会相对少的多,大大降低了数据传输的时间,同时,通过数据块的重新传输保证了数据的完整性。
[0089]207:当终端设备 根据传输响应消息,确定第一数据块传输成功时,终端设备根据第一数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块。
[0090]该数据传输过程中包括多个数据块的串行传输,对于每个数据块来说,均需进行步骤206的确定传输状态的过程,并根据确定的结果重新传输或继续传输其他数据块,其中,重新传输的具体过程与步骤204相同,其区别仅在于每次重新传输的数据块,而继续传输的具体过程与步骤207相同,其区别仅在于每次传输的数据块不同。
[0091]如第一数据块的块索引为N,第一数据块对应的块索引N对应的首地址为add,则第一数据块为从地址为add到add+N之间的数据,随着待传输数据进度的增加,所传输的块索引的值也在不断增加,直到最后传输的数据块为待传输数据的最后一个数据块。
[0092] 而当数据传输过程中包括每次对多个数据块的并行传输时,可以在传输至少一个数据块之后,根据其传输状态,确定该至少一个数据块中每个数据块是否传输成功,当均传输成功,则根据该至少一个数据块的块索引获取下一次传输的至少一个数据块进行传输,而如果有任一个传输未成功,则重新传输该传输未成功的数据块,待传输成功后,则根据该至少一个数据块的块索引获取下一次传输的至少一个数据块进行传输。通过对数据块的并行传输,加快了数据传输速度。
[0093]本发明通过终端设备根据待传输数据所包含的至少一个数据块的存储地址信息,获取第一数据块;所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述第一数据块和所述第一数据块的块索引;所述终端设备接收所述服务器返回的传输响应消息;所述终端设备根据所述传输响应消息,确定所述第一数据块的传输状态;所述终端设备根据所述第一数据块的传输状态继续传输所述待传输数据的数据块。采用本发明实施例提供的技术方案,根据块索引和存储地址信息进行数据块的传输,并根据数据块的传输状态传输数据,保证了传输的数据的完整性。进一步地,由于能够根据服务器返回的传输响应消息确定传输进度,使得终端设备能够实时的根据传输进度进行重传或继续传输,不仅减少了数据传输的时间,且减少了重新传输数据所需的时间。
[0094]图3是本发明实施例提供的一种基于数据分块的数据传输装置的结构示意图。参见图3,所述装置包括:
[0095]数据块获取模块31,用于根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块;
[0096]传输模块32,用于向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引;
[0097]接收模块33,用于接收所述服务器返回的传输响应消息;
[0098]传输状态确定模块34,用于根据所述传输响应消息,确定所述至少一个数据块的传输状态;
[0099]所述传输模块32,还用于根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
[0100]所述装置还包括:
[0101]分块模块35,用于对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
[0102]所述传输模块32还用于向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
[0103]所述传输状态确定模块34具体用于当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。
[0104]所述传输模块32还具体用于当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索引,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块;当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
[0105]需要说明的是:上述实施例提供的基于数据分块的数据传输装置在数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于数据分块的数据传输装置与基于数据分块的数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0106]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0107]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于数据分块的数据传输方法,其特征在于,所述方法包括: 终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块; 所述终端设备向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引; 所述终端设备接收所述服务器返回的传输响应消息; 所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态; 所述终端设备根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
2.根据权利要求1所述的方法,其特征在于,终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块之前,包括: 对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
3.根据权利要求2所述的方法,其特征在于,对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引之后,终端设备根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块之前,所述方法还包括: 向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
4.根据权利要求1所述的方法,其特征在于,所述终端设备根据所述传输响应消息,确定所述至少一个数据块的传输状态,包括: 当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述终端设备根据所述至少一个数据块的传输状态继续传输所述待传输数据的数据块,包括: 当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索引,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块; 当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
6.一种基于数据分块的数据传输装置,其特征在于,所述装置包括: 数据块获取模块,用于根据待传输数据所包含的数据块的块索引和存储地址信息,获取至少一个数据块; 传输模块,用于向服务器发送传输请求消息,所述传输请求消息携带所述至少一个数据块和所述至少一个数据块的块索引; 接收模块,用于接收所述服务器返回的传输响应消息; 传输状态确定模块,用于根据所述传输响应消息,确定所述至少一个数据块的传输状态; 所述传输模块,还用于根据所述至少一个数据块的传输状态,继续传输所述待传输数据的数据块。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 分块模块,用于对待传输数据进行分块,获取每个数据块的存储地址信息以及每个数据块的块索引。
8.根据权利要求7所述的装置,其特征在于,所述传输模块还用于向所述服务器发送所述待传输数据的数据信息,所述待传输数据的数据信息至少包括对所述待传输数据进行分块所得到的每个数据块的块索引和所述待传输数据的文件大小。
9.根据权利要求6所述的装置,其特征在于,所述传输状态确定模块具体用于当所述传输响应消息携带所述至少一个数据块中第一数据块的块索引时,则确定所述至少一个数据块中第一数据块传输不成功;当所述传输响应消息未携带任何块索引时,则确定所述至少一个数据块传输成功。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述传输模块还具体用于当确定所述至少一个数据块中第一数据块传输不成功,则根据所述传输响应消息所携带的块索弓丨,确定所述传输响应消息所携带的块索引对应的数据块的存储地址信息,获取所述第一数据块,并重新传输所述第一数据块;当确定所述至少一个数据块传输成功,则根据所述至少一个数据块的块索引确定所述待传输数据是否全部传输完成,如果所述待传输数据未全部传输完成,则根据所述至少一个数据块的块索引,确定第二数据块的块索引,获取所述第二数据块的块索引对应的第 二数据块的存储地址信息,获取第二数据块,并传输所述第二数据块;如果所述待传输数据全部传输完成,则结束传输。
【文档编号】H04L1/18GK103905145SQ201210581230
【公开日】2014年7月2日 申请日期:2012年12月27日 优先权日:2012年12月27日
【发明者】马永生 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1