CN104639298B - 一种数据传输方法、装置及系统 - Google Patents
一种数据传输方法、装置及系统 Download PDFInfo
- Publication number
- CN104639298B CN104639298B CN201310554619.2A CN201310554619A CN104639298B CN 104639298 B CN104639298 B CN 104639298B CN 201310554619 A CN201310554619 A CN 201310554619A CN 104639298 B CN104639298 B CN 104639298B
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- bitmap
- node
- fragmentation
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据传输方法、装置及系统,其中,所述方法包括:发送节点向接收节点发送任务数据,并检测已发送数据的数据量;若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。采用本发明,可较为快速、高效、准确的进行数据发送和接收,为业务上线,扩容,数据迁移等提供了良好的数据传输服务基础,节省了大量时间。
Description
技术领域
本发明涉及网络传输技术领域,尤其涉及一种数据传输方法、装置及系统。
背景技术
数据传输是指根据相应的传输协议,经过一条或多条节点peer组成的链路,在数据源所在的发送节点、以及各中间节点、目标节点之间传送数据。常见的数据传输包括数据下载、点对点数据传输等。
目前常见的数据传输的架构大体包括:seed即发送节点,存储有原始数据,用于数据发送;peer即接收节点,用于数据接收,并且能在接收的同时向其他peer发送已完成接收的数据;controller即链式分发算法的调度节点,用于各个peer的调度。所述controller可以根据链路中peer上报的信息,执行诸如增加peer、删除peer等调度操作。controller可以根据不同的业务需要定制不同的数据扩散算法以达到多点快速扩散传输的目的。
传统的TCP(Transmission Control Protocol,传输控制协议)数据传输工具,用于对数据进行点对点传输,通过点对点地传输数据。在现有技术中,接收节点一般是通过对接收到的数据的检测码进行检查,一旦发现检查错误,接收节点采用反馈重发机制来请求发送节点重传出错的数据来恢复出错的报文。但是对于丢包等原因造成的数据传输失败则无法进行重传,使得传输的数据不完整,容易使接收节点处理接收到的数据时,出现乱码或者诸如一些视频播放不流畅等问题。
发明内容
本发明实施例所要解决的技术问题在于,提供一种数据传输方法、装置及系统,可适时地确定是否重传从而保证已发送数据的完整。
为了解决上述技术问题,本发明实施例提供了一种数据传输方法,包括:
发送节点向接收节点发送任务数据,并检测已发送数据的数据量;
若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;
其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。
相应地,本发明实施例还提供了一种数据传输装置,包括:
发送模块,用于向接收节点发送任务数据,并检测已发送数据的数据量;
查询模块,用于若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
处理模块,用于根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;
其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。
相应地,本发明实施例还提供了一种数据传输系统,包括:第一节点、第二节点,其中,
所述第一节点,用于向所述第二节点发送任务数据,并检测已发送数据的数据量;若已发送数据的数据量达到预设的数据量阈值,则向所述第二节点发送进度查询请求;
所述第二节点,用于在接收到所述第一节点的进度查询请求时,生成用于指示所述接收节点已接收数据的各数据分片标识的接收进度信息,并向所述第一节点返回所述接收进度信息;
所述第一节点,还用于根据所述接收进度信息,确定未传输的数据分片,并向所述第二节点发送未传输的数据分片。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种数据传输方法的流程示意图;
图2是本发明实施例的另一种数据传输方法的流程示意图;
图3是发送节点向接收节点发送数据的其中一种示意图;
图4是本发明实施例的再一种数据传输方法的流程示意图;
图5是本发明实施例的一种包括数据接收和数据发送的示意图;
图6是本发明实施例的一种数据传输速度控制方法的流程示意图;
图7是本发明实施例的一种数据传输装置的结构示意图;
图8是本发明实施例的另一种数据传输装置的结构示意图;
图9是图8中的发送模块的其中一种结构示意图;
图10是图8中的处理模块的其中一种结构示意图;
图11是图8中的接收模块的其中一种结构示意图;
图12是本发明实施例的一种数据传输系统的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例的一种数据传输方法的流程示意图,本发明实施例的所述方法可应用在服务器、终端等用于进行数据收发的设备中,具体的,所述方法包括:
S101:发送节点向接收节点发送任务数据,并检测已发送数据的数据量;
所述的发送节点可以是存储有源数据的节点seed,也可以是接收数据并转发的中间节点peer。该发送节点根据调度节点controller的调度,执行数据的传输处理。在发送数据的过程中,所述发送节点可实时监测已发送数据的数据量,也可根据一定时间间隔监测已发送数据的数据量。
在本发明实施例中,原始的完整数据的发送可以是以指定数据量大小的数据分片(例如1M的数据块)为单位进行数据传输,在这些数据分片中携带有标识符等信息,以便于后续能够基于该标识符以及片偏移等来对各个数据分片进行重组,得到对应的完整数据。
S102:若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求。
该预设的数据量阈值可以为一个默认设置的阈值,或者为需要发送数据的数据总量设置的一个阈值,具体可以设置为10M,50M以及100M等数值。当发送节点监测到已发送数据的数据量达到该数据量阈值时,即向已发送数据的接收节点发送进度查询请求,该进度查询请求用于查询接收节点接收到的数据分片标识。
S103:根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。
接收节点生成的接收进度信息可以为根据已接收数据的数据分片标识生成的接收位图bitmap。根据该接收位图中表示数据的各个数据分片的数据分片标识,发送节点可以判别出已发送成功的数据分片和未发送的数据分片,未发送的数据分片包括由于丢包而未成功传输至所述接收节点的数据分片,并包括还未开始发送的数据分片。
接收位图bitmap是由称作像素的单个点组成的,这些点可以进行不同的排列和染色以构成图样,接收节点根据接收到的数据分片和未接收到的数据分片分别对bitmap中相应位置的点进行染色,从而达到指示已发送数据和未发送数据的目的。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。
再请参见图2,是本发明实施例的另一种数据传输方法的流程示意图,本发明实施例的所述方法可应用在服务器、终端等用于进行数据收发的设备中,具体的,所述方法包括:
S201:在检测到数据传输时,向接收节点发送携带任务信息的查询请求。
在检测到数据下载请求或者数据传输调度指令,需要向目标的接收节点传输数据时,生成所述查询请求发送给所述接收节点,所述查询请求用于请求获取所述接收节点已接收到的本次数据传输任务的数据分片。
所述携带的任务信息可以仅为本次检测到的数据传输任务的任务标识,例如在检测到某个关于视频数据传输的任务中,针对该视频数据传输的查询请求则可以包括该视频的主题名称等标识信息。
同样,在本发明实施例中,原始的完整数据的发送可以是以指定数据量大小的数据分片(例如1M的数据块)为单位进行数据传输,在这些数据分片中携带有标识符等信息,以便于后续能够基于该标识符以及片偏移等来对各个数据分片进行重组,得到对应的完整数据。
S202:接收所述接收节点响应所述查询请求返回的数据信息,所述数据信息用于表示所述接收节点已接收到的所述任务信息对应数据的数据分片标识。
具体的,当所述接收节点没有接收到关于所述查询请求中任务信息对应数据时,则返回数据分片标识为block0,即所述S202得到分片标识为block0的数据信息;若已接收到部分数据,则返回对应的分片标识,例如,如果接收到第100个数据分片,则返回的数据分片标识可以为block101,以指示发送节点从101个分片开始发送数据,即所述S202得到分片标识为block101的数据信息。
S203:若所述数据信息表示的数据分片标识为初始标识,将所述任务信息对应数据目录中的数据发送给所述接收节点;
即:若返回的数据信息为block0,则获取所述任务信息对应的全部数据,并按照数据分片依次向接收节点发送数据。
S204:若所述数据信息表示的数据分片标识为位置标识,从所述任务信息对应数据目录中获取所述位置标识所对应位置的数据分片发送给所述接收节点。
即:若返回的数据信息为block101等用于表示从101的数据分片位置开始发送的位置标识,则对应的从所述任务信息对应的第101个数据分片依次向接收节点发送数据。
具体的,所述S201至S204与上述图1描述的实施例中的S101对应。
S205:接收所述接收节点响应所述进度查询请求返回的作为接收进度信息的接收位图;
在本发明实施例中,接收进度信息为一接收位图bitmap,所述接收位图中的每一个点用于表示一个数据分片的接收状态;其中,接收位图中被赋值为有效的点表示该点对应的数据分片已被接收,接收位图中被赋值为无效的点表示该点对应的数据分片未被接收。
具体可参见图3,是发送节点向接收节点发送数据的其中一种示意图,其中,在发送节点中生成本地发送位图,所述本地发送位图中的每一个点用于表示一个数据分片的发送状态;所述本地发送位图中被赋值为有效的点表示该点对应的数据分片已被本节点发送,所述本地发送位图中被赋值为无效的点表示该点对应的数据分片未被本节点发送。在接收节点中维护接收位图。
在所述S205中可以获取到图3中接收节点中维护的接收位图,以便确定已发送的数据分片和未发送的数据分片。在发送位图或者接收位图中,有效的点即赋值为“1”的点被标记为黑色,而无效的点即赋值为“0”的点标记为白色。
S206:根据已发送数据的数据分片标识范围和所述接收位图中赋值为无效的点,确定发送节点已发送而未被接收节点接收的数据分片标识;
发送节点根据已发送数据的数据分片标识范围(对应于预设的数据量阈值),并根据接收位图中无效的点(被赋值为0的点或者颜色为黑色的点),可以确定出发送节点已发送而未被接收节点接收的数据分片标识,例如,在图3中已发送的数据分片标识范围为block1至block34,则而在接收位图中,block2、block14以及block29为已发送而未被接收的点,由此可以确定出这些点对应的数据分片已发生丢包,需要重新发送以保证数据的完整,即执行下述的S207。
若根据接收位图确定不存在已发送而未被接收节点接收的数据分片,则继续发送还未发送的数据对应的数据分片,即直接执行下述的S209。
S207:将确定出的数据分片标识对应的数据分片发送给所述接收节点。
S208:检测所述确定出的数据分片标识对应的数据分片是否均成功发送给所述接收节点。
具体可以再次通过请求接收位图的方式来确定所述S206中确定的已发送而未被接收节点接收的数据分片是否均成功发送,或者在重复发送一次或两次所述S206中确定的已发送而未被接收节点接收的数据分片后,即认为接收节点已成功接收相应数据分片。
S209:若是,则根据已发送数据的数据分片标识范围,获取未发送的数据发送给所述接收节点。
所述S205至S209与上述图1描述的实施例中的S103对应。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。并且能够基于接收端返回的数据信息确定接收端已接收到的数据位置,从而快速、准确地实现断点续传。在节点中维护发送位图以及接收位图,也可以直观地记录任务数据的发送以及接收量。
进一步的,上述图1至图3对应的实施例中描述了作为发送方发送数据的流程,在本发明实施例中,上述的发送节点在作为发送方通过上述图1至图3的流程发送数据的同时,还作为接收节点接收上游发送节点发送的数据,具体的,再请参见图4,是本发明实施例的再一种数据传输方法的流程示意图,本发明实施例的所述方法可应用在服务器、终端等用于进行数据收发的设备中,具体的,所述方法包括:
S301:接收数据,并根据已接收到的数据生成本地接收位图;
同样,所述本地接收位图中被赋值为有效的点表示该点对应的数据分片已被本节点接收,所述本地接收位图中被赋值为无效的点表示该点对应的数据分片未被本节点接收。具体可以参见图5,是本发明实施例的一种包括数据接收和数据发送的示意图。在peer1中,即包括本地接收位图,也包括本地发送位图。
S302:将已接收到的数据作为任务数据;具体包括:根据本地接收位图确定已被接收的数据分片,将已被接收的数据分片作为任务数据。
即在发送数据分片时,根据本地接收位图确定对应的数据分片是否被接收,仅当所述本地接收位图中相应点被赋值为“1”(有效)时,才确定该数据分片被完整接收,然后向下游接收端(图5中的peer2)发送该点对应的数据分片,即将该点对应的数据分片作为任务数据执行下述的S303至S305。
S303:发送节点向接收节点发送任务数据,并检测已发送数据的数据量;
S304:若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
S305:根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。
所述S303至S305的具体实现可以参见上述图1对应的实施例中的S101至S103,或者上述图2对应实施例中的S201至S209。
在本发明实施例中,所述的发送节点在图2对应的实施例中可以完成向接收节点(即下游节点)的数据发送,同时也可接收上游发送节点发送的数据,实现了数据收发并行的目的,也解决了现有技术中在只能进行点对点传输,接收节点必须完成所有数据接收之后,才能作为源端的发送节点向其他接收节点发送数据,并行度较差的问题。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。在节点中维护发送位图以及接收位图,也可以直观地记录任务数据的发送以及接收量。并行的接收和发送功能能够在多点接收时有效缩短整体完成时间。
再请参见图6,是本发明实施例的一种数据传输速度控制方法的流程示意图,本发明实施例的所述方法可以应用在上述图1至图5对应的数据传输方法中,具体可以在数据传输过程中的任一时间执行,具体的,所述方法包括:
S401:获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量。
已发送的有效数据量是指:该发送节点正常发送的相应传输任务对于的数据。而在数据传输过程中,可能存在丢包或者其他原因导致的数据重发,因此,发送节点实际发送的所有数据量不小于已发送的有效数据量。根据已发送的有效数据量和已发送的所有数据量可以得到重传率,根据重传率可以确定数据的传输环境的优劣。
S402:根据所述有效数据量和所有数据量计算得到重传率。
具体可以根据已发送的有效数据量和已发送的所有数据量的比值得到数据的重传率。
S403:若所述重传率高于预置的第一阈值,则降低发送速率。
S404:若所述重传率低于预置的第二阈值,则提升发送速率。
也就是说,如果重传率较高,则传输环境较差,需要降低当前数据的发送速率,而重传率较低时,则传输环境较好,可以适当提升发送速率以传输对应数据。
在数据传输的过程中,通过本发明实施例在计算重传率的基础上进行发送速率的调整,可以在一定程度上减少重传的数据量,可以较为有效地避免现有技术中无法根据当前的网络情况进行自动降速和升速,导致设备软硬件资源的额外消耗的问题。
本发明实施例能够根据已发送的有效数据和已发送的所有数据,实现自动降速和升速的功能,能够保证网络上数据传输的高效性,减少不必要的重复传输,适应于不同的机器和网络状况。
下面对本发明实施例的数据传输装置及系统进行详细描述。
请参见图7,是本发明实施例的一种数据传输装置的结构示意图,本发明实施例的所述装置可以设置在服务器、终端等用于进行数据收发的设备中,具体的,所述装置包括:
发送模块11,用于向接收节点发送任务数据,并检测已发送数据的数据量;
查询模块12,用于若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
处理模块13,用于根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;
其中,所述接收进度信息包括所述接收节点已接收到的数据的数据分片标识。
本发明实施例的所述装置可以对应为存储有源数据的节点seed,也可以对应为接收数据并转发的中间节点peer。本发明实施例的所述装置根据调度节点controller的调度,执行数据的传输处理。在所述发送模块11发送数据的过程中,所述发送模块11还实时监测已发送数据的数据量,也可根据一定时间间隔监测已发送数据的数据量。
所述预设的数据量阈值可以为一个默认设置的阈值,或者为需要发送数据的数据总量设置的一个阈值,具体可以设置为10M,50M以及100M等数值。当发送模块11监测到已发送数据的数据量达到该数据量阈值时,所述查询模块12向已发送数据的接收节点发送进度查询请求,该进度查询请求用于查询接收节点接收到的数据分片标识。
接收节点生成的接收进度信息可以为根据已接收数据的数据分片标识生成的接收位图bitmap。所述处理模块13根据该接收位图中表示数据的各个数据分片的数据分片标识,可以判别出已发送的数据分片和未发送的数据分片,未发送的数据分片包括由于丢包而未成功传输至所述接收节点的数据分片,并包括还未开始发送的数据分片。
接收位图bitmap是由称作像素的单个点组成的,这些点可以进行不同的排列和染色以构成图样,接收节点根据接收到的数据分片和未接收到的数据分片分别对bitmap中相应位置的点进行染色,从而达到指示已发送数据和未发送数据的目的。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。
进一步具体地,请参见图8,是本发明实施例的另一种数据传输装置的结构示意图,本发明实施例的所述装置可以设置在服务器、终端等用于进行数据收发的设备中,具体的,所述装置包括图7对应实施例中的发送模块11、查询模块12以及处理模块13,在本发明实施例中,所述装置还包括:生成模块14、接收模块15、获取模块16、计算模块17以及速率处理模块18。
具体的,在本发明实施例中,如图9所示,所述发送模块11具体可以包括:
查询单元111,用于在检测到数据传输时,向接收节点发送携带任务信息的查询请求;
获取单元112,用于接收所述接收节点响应所述查询请求返回的数据信息,所述数据信息用于表示所述接收节点已接收到的所述任务信息对应数据的数据分片标识;
第一发送单元113,用于若所述数据信息表示的数据分片标识为初始标识,将所述任务信息对应数据目录中的数据发送给所述接收节点;
第二发送单元114,用于若所述数据信息表示的数据分片标识为位置标识,从所述任务信息对应数据目录中获取所述位置标识所对应位置的数据分片发送给所述接收节点。
在检测到数据下载请求或者数据传输调度指令,需要向目标的接收节点传输数据时,所述查询单元111生成所述查询请求发送给所述接收节点,所述查询请求用于请求获取所述接收节点已接收到的本次数据传输任务的数据分片。所述携带的任务信息可以仅为本次检测到的数据传输任务的任务标识,例如在检测到某个关于视频数据传输的任务中,针对该视频数据传输的查询请求则可以包括该视频的主题名称等标识信息。在本发明实施例中,原始的完整数据的发送可以是以指定数据量大小的数据分片(例如1M的数据块)为单位进行数据传输,在这些数据分片中携带有标识符等信息,以便于后续能够基于该标识符以及片偏移等来对各个数据分片进行重组,得到对应的完整数据。
当所述接收节点没有接收到关于所述查询请求中任务信息对应数据时,则返回数据分片标识为block0,即所述获取单元112得到分片标识为block0的数据信息。若已接收到部分数据,则返回对应的分片标识,例如,如果接收到第100个数据分片,则返回的数据分片标识可以为block101,以指示发送节点从101个分片开始发送数据,即所述获取单元112得到分片标识为block101的数据信息。
若返回的数据信息为block0,则所述第一发送单元113获取所述任务信息对应的全部数据,并按照数据分片依次向接收节点发送数据。
若返回的数据信息为block101等用于表示从101的数据分片位置开始发送的位置标识,则所述第二发送单元114对应的从所述任务信息对应的第101个数据分片依次向接收节点发送数据。
进一步地,如图10所示,本发明实施例的所述处理模块13具体可以包括:
接收单元131,用于接收所述接收节点响应所述进度查询请求返回的作为接收进度信息的接收位图;
确定单元132,用于根据已发送数据的数据分片标识范围和所述接收位图中赋值为无效的点,确定发送节点已发送而未被接收节点接收的数据分片标识;
控制单元133,用于将确定出的数据分片标识对应的数据分片发送给所述接收节点。
在本发明实施例中,所述接收单元131接收到的接收进度信息为一接收位图bitmap,所述接收位图中的每一个点用于表示一个数据分片的接收状态;其中,接收位图中被赋值为有效的点表示该点对应的数据分片已被接收,接收位图中被赋值为无效的点表示该点对应的数据分片未被接收。
所述确定单元132根据已发送数据的数据分片标识范围(对应于预设的数据量阈值),并根据接收位图中无效的点,可以确定出发送节点已发送而未被接收节点接收的数据分片标识,由此可以确定出这些点对应的数据分片已发生丢包,需要重新发送以保证数据的完整,需要由所述控制节点133重新将确定出的数据分片标识对应的数据分片发送给所述接收节点。
进一步可选地,所述处理模块13具体还可以包括:
检测单元134,用于检测所述确定出的数据分片标识对应的数据分片是否均成功发送给所述接收节点;
处理单元135,用于在检测单元的检测结果为是时,根据已发送数据的数据分片标识范围,获取未发送的数据发送给所述接收节点。
所述检测单元134具体可以再次通过请求接收位图的方式来确定所述确定单元132确定的已发送而未被接收节点接收的数据分片是否均成功发送,或者在重复发送一次或两次所述确定单元132确定的已发送而未被接收节点接收的数据分片后,即认为接收节点已成功接收相应数据分片。
进一步具体的,本发明实施例中还包括的所述生成模块14,用于生成本地发送位图。
其中,本地发送位图中被赋值为有效的点表示该点对应的数据分片已被本节点发送,本地发送位图中被赋值为无效的点表示该点对应的数据分片未被本节点发送。
在本发明实施例中,所述装置在作为发送方通过上述送模块11、查询模块12以及处理模块13发送对应数据的同时,还作为接收节点接收上游发送节点发送的数据,进一步具体的,本发明实施例中还包括:
所述接收模块15,用于接收数据,将已接收到的数据作为任务数据以便于执行所述向接收节点发送任务数据,并检测已发送数据的数据量;
所述生成模块14,还用于根据已接收到的数据生成本地接收位图。其中,所述本地接收位图中被赋值为有效的点表示该点对应的数据分片已被本节点接收,所述本地接收位图中被赋值为无效的点表示该点对应的数据分片未被本节点接收。
可选地,请参见图11,所述接收模块15具体可以包括:
接收单元151,用于接收数据;
数据分片确定单元152,用于根据本地接收位图确定已被接收的数据分片,将已被接收的数据分片作为任务数据。
进一步具体的,本发明实施例中还包括:
所述获取模块16,用于获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量;
所述计算模块17,用于根据所述有效数据量和所有数据量计算得到重传率;
所述速率处理模块18,用于若所述重传率高于预置的第一阈值,则降低发送速率,若所述重传率低于预置的第二阈值,则提升发送速率。
已发送的有效数据量是指:正常发送的相应传输任务对于的数据。而在数据传输过程中,可能存在丢包或者其他原因导致的数据重发,因此,实际发送的所有数据量不小于已发送的有效数据量。所述计算模块17根据已发送的有效数据量和已发送的所有数据量可以得到重传率,根据重传率可以确定数据的传输环境的优劣。所述计算模块17具体可以根据已发送的有效数据量和已发送的所有数据量的比值得到数据的重传率。也就是说,如果重传率较高,则传输环境较差,所述速率处理模块18需要降低当前数据的发送速率,而重传率较低时,则传输环境较好,所述速率处理模块18可以适当提升发送速率以传输对应数据。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。并且能够基于接收端返回的数据信息确定接收端已接收到的数据位置,从而快速、准确地实现断点续传。在节点中维护发送位图以及接收位图,也可以直观地记录任务数据的发送以及接收量。并行的接收和发送功能能够在多点接收时有效缩短整体完成时间。
再请参见图12,是本发明实施例的一种数据传输系统的结构组成示意图,本发明实施例的所述系统包括:第一节点1、第二节点2,其中,
所述第一节点1,用于向所述第二节点2发送任务数据,并检测已发送数据的数据量;若已发送数据的数据量达到预设的数据量阈值,则向所述第二节点2发送进度查询请求;
所述第二节点2,用于在接收到所述第一节点1的进度查询请求时,生成用于指示所述接收节点已接收数据的各数据分片标识的接收进度信息,并向所述第一节点1返回所述接收进度信息;
所述第一节点1,还用于根据所述接收进度信息,确定未传输的数据分片,并向所述第二节点2发送未传输的数据分片。
进一步可选地,所述第一节点1,还用于接收数据,并根据已接收到的数据生成本地接收位图;将已接收到的数据作为任务数据,以便于向所述第一节点1发送任务数据,并检测已发送数据的数据量。
进一步可选地,所述第一节点1,还用于获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量;根据所述有效数据量和所有数据量计算得到重传率;若所述重传率高于预置的第一阈值,则降低发送速率;若所述重传率低于预置的第二阈值,则提升发送速率。
具体的,本发明实施例的所述第一节点1的具体实现可参见图1至图5对应的发送节点的相关描述,以及图6至图7对应的数据传输装置的相关描述。而所述第二节点2则可以参见上述实施例中的接收节点。
本发明实施例在传输数据的过程中,能够在已发送数据达到一定值时,确定接收端的接收情况,以在某些数据因为网络丢包等原因未能成功发送时,能够较为及时快速地重新传输,在实现快速的数据收发的同时,较好地保证的数据的完整性。并且能够基于接收端返回的数据信息确定接收端已接收到的数据位置,从而快速、准确地实现断点续传。并行的接收和发送功能能够在多点接收时有效缩短整体完成时间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (14)
1.一种数据传输方法,其特征在于,包括:
发送节点在检测到视频数据传输时,向接收节点发送携带任务信息的查询请求;
接收所述接收节点响应所述查询请求返回的数据信息,所述数据信息用于表示所述接收节点已接收到的所述任务信息对应的视频数据的数据分片标识;
根据所述数据信息所表示的数据分片标识向接收节点发送视频传输任务的任务数据;
生成本地发送位图,所述本地发送位图中的每一个点用于表示一个数据分片的发送状态;其中,本地发送位图中被赋值为有效的点表示该点对应的数据分片已被本节点发送,本地发送位图中被赋值为无效的点表示该点对应的数据分片未被本节点发送;
检测已发送数据的数据量;
若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片;
向所述接收节点发送未传输的数据分片;
其中,所述接收进度信息为接收位图bitmap,所述接收位图中的每一个点用于表示一个数据分片的接收状态;接收位图中被赋值为有效的点表示该点对应的数据分片已被接收,接收位图中被赋值为无效的点表示该点对应的数据分片未被接收;所述接收位图bitmap是由称作像素的单个点组成的,每个点进行排列和染色以构成图样,所述接收节点是根据接收到的数据分片和未接收到的数据分片各自的数据分片标识分别对接收位图bitmap中相应位置的点进行染色,接收位图bitmap中被赋值为无效的点和被赋值为有效的点的颜色值不相同;
其中,所述未传输的数据分片的确定方式包括:
根据在本地发送位图中被赋值为有效的点和所述预设的数据量阈值确定已发送数据的数据分片标识范围;
将所述接收节点返回的接收位图中在所述数据分片标识范围内赋值为无效的点所对应的数据分片确定为未传输的数据分片。
2.如权利要求1所述的方法,其特征在于,所述根据所述数据信息所表示的数据分片标识向接收节点发送任务数据,包括:
若所述数据信息表示的数据分片标识为初始标识,将所述任务信息对应数据目录中的数据发送给所述接收节点;
若所述数据信息表示的数据分片标识为位置标识,从所述任务信息对应数据目录中获取所述位置标识所对应位置的数据分片发送给所述接收节点。
3.如权利要求1所述的方法,其特征在于,所述向所述接收节点发送未传输的数据分片之后,还包括:
检测所述确定的未传输的数据分片是否均成功发送给所述接收节点;
若是,则根据已发送数据的数据分片标识范围,获取未发送的数据发送给所述接收节点。
4.如权利要求1-3任一项所述的方法,其特征在于,所述发送节点向接收节点发送任务数据之前,还包括:
接收数据,并根据已接收到的数据生成本地接收位图;
将已接收到的数据作为任务数据以便于执行所述向接收节点发送任务数据,并检测已发送数据的数据量;
其中,所述本地接收位图中被赋值为有效的点表示该点对应的数据分片已被本节点接收,所述本地接收位图中被赋值为无效的点表示该点对应的数据分片未被本节点接收。
5.如权利要求1-3任一项所述的方法,其特征在于,还包括:
获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量;
根据所述有效数据量和所有数据量计算得到重传率;
若所述重传率高于预置的第一阈值,则降低发送速率;
若所述重传率低于预置的第二阈值,则提升发送速率。
6.一种数据传输装置,其特征在于,包括:
发送模块,用于向接收节点发送任务数据,并检测已发送数据的数据量;
生成模块,用于生成本地发送位图;其中,本地发送位图中被赋值为有效的点表示该点对应的数据分片已被本节点发送,本地发送位图中被赋值为无效的点表示该点对应的数据分片未被本节点发送;
查询模块,用于若已发送数据的数据量达到预设的数据量阈值,则向所述接收节点发送进度查询请求;
处理模块,用于根据所述接收节点响应所述进度查询请求返回的接收进度信息,确定未传输的数据分片,并向所述接收节点发送未传输的数据分片;
其中,所述接收进度信息为接收位图bitmap,所述接收位图中的每一个点用于表示一个数据分片的接收状态;其中,接收位图中被赋值为有效的点表示该点对应的数据分片已被接收,接收位图中被赋值为无效的点表示该点对应的数据分片未被接收;所述接收位图bitmap是由称作像素的单个点组成的,每个点进行排列和染色以构成图样,所述接收节点是根据接收到的数据分片和未接收到的数据分片各自的数据分片标识分别对接收位图bitmap中相应位置的点进行染色,接收位图bitmap中被赋值为无效的点和被赋值为有效的点的颜色值不相同;
所述处理模块包括:
接收单元,用于接收所述接收节点响应所述进度查询请求返回的作为接收进度信息的接收位图;
确定单元,用于根据在本地发送位图中被赋值为有效的点和所述预设的数据量阈值确定已发送数据的数据分片标识范围,根据已发送数据的数据分片标识范围和所述接收位图中赋值为无效的点,确定发送节点已发送而未被接收节点接收的数据分片标识;
控制单元,用于将确定出的数据分片标识对应的未传输的数据分片发送给所述接收节点;
其中,所述发送模块包括:
查询单元,用于在检测到视频数据传输时,向接收节点发送携带任务信息的查询请求;
获取单元,用于接收所述接收节点响应所述查询请求返回的数据信息,所述数据信息用于表示所述接收节点已接收到的所述任务信息对应的视频数据的数据分片标识;
并且所述发送模块在发送数据时,是根据所述数据信息所表示的数据分片标识向接收节点发送视频传输任务的任务数据。
7.如权利要求6所述的装置,其特征在于,所述发送模块还包括:
第一发送单元,用于若所述数据信息表示的数据分片标识为初始标识,将所述任务信息对应数据目录中的数据发送给所述接收节点;
第二发送单元,用于若所述数据信息表示的数据分片标识为位置标识,从所述任务信息对应数据目录中获取所述位置标识所对应位置的数据分片发送给所述接收节点。
8.如权利要求6所述的装置,其特征在于,所述处理模块还包括:
检测单元,用于检测所述确定出的数据分片标识对应的数据分片是否均成功发送给所述接收节点;
处理单元,用于在检测单元的检测结果为是时,根据已发送数据的数据分片标识范围,获取未发送的数据发送给所述接收节点。
9.如权利要求6所述的装置,其特征在于,还包括:
接收模块,用于接收数据,将已接收到的数据作为任务数据以便于执行所述向接收节点发送任务数据,并检测已发送数据的数据量;
所述生成模块,还用于根据已接收到的数据生成本地接收位图。
10.如权利要求9所述的装置,其特征在于,所述接收模块包括:
接收单元,用于接收数据;
数据分片确定单元,用于根据本地接收位图确定已被接收的数据分片,将已被接收的数据分片作为任务数据。
11.如权利要求6-10任一项所述的装置,其特征在于,还包括:
获取模块,用于获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量;
计算模块,用于根据所述有效数据量和所有数据量计算得到重传率;
速率处理模块,用于若所述重传率高于预置的第一阈值,则降低发送速率,若所述重传率低于预置的第二阈值,则提升发送速率。
12.一种数据传输系统,其特征在于,包括:第一节点、第二节点,其中,
所述第一节点,用于在检测到视频数据传输时,向第二节点发送携带任务信息的查询请求;接收所述第二节点响应所述查询请求返回的数据信息,所述数据信息用于表示所述第二节点已接收到的所述任务信息对应的视频数据的数据分片标识;根据所述数据信息所表示的数据分片标识向第二节点发送视频传输任务的任务数据,并生成本地发送位图,所述本地发送位图中的每一个点用于表示一个数据分片的发送状态;其中,本地发送位图中被赋值为有效的点表示该点对应的数据分片已被本节点发送,本地发送位图中被赋值为无效的点表示该点对应的数据分片未被本节点发送;
所述第一节点,还用于检测已发送数据的数据量;若已发送数据的数据量达到预设的数据量阈值,则向所述第二节点发送进度查询请求;
所述第二节点,用于在接收到所述第一节点的进度查询请求时,生成用于指示所述第二节点已接收数据的各数据分片标识的接收进度信息,并向所述第一节点返回所述接收进度信息;其中,所述接收进度信息为接收位图bitmap,所述接收位图中的每一个点用于表示一个数据分片的接收状态;接收位图中被赋值为有效的点表示该点对应的数据分片已被接收,接收位图中被赋值为无效的点表示该点对应的数据分片未被接收;所述接收位图bitmap是由称作像素的单个点组成的,每个点进行排列和染色以构成图样,所述第二节点是根据接收到的数据分片和未接收到的数据分片各自的数据分片标识分别对接收位图bitmap中相应位置的点进行染色,接收位图bitmap中被赋值为无效的点和被赋值为有效的点的颜色值不相同;
所述第一节点,还用于根据所述接收进度信息,确定未传输的数据分片,并向所述第二节点发送未传输的数据分片;
其中,所述第一节点在确定未传输的数据分片时,具体用于根据在本地发送位图中被赋值为有效的点和所述预设的数据量阈值确定已发送数据的数据分片标识范围;将所述接收节点返回的接收位图中在所述数据分片标识范围内赋值为无效的点所对应的数据分片确定为未传输的数据分片。
13.如权利要求12所述的系统,其特征在于,
所述第一节点,还用于接收数据,并根据已接收到的数据生成本地接收位图;将已接收到的数据作为任务数据。
14.如权利要求12或13所述的系统,其特征在于,
所述第一节点,还用于获取已发送的有效数据量和已发送的所有数据量,所述已发送的所有数据量包括已发送的有效数据和重复发送数据的数据量;根据所述有效数据量和所有数据量计算得到重传率;若所述重传率高于预置的第一阈值,则降低发送速率;若所述重传率低于预置的第二阈值,则提升发送速率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310554619.2A CN104639298B (zh) | 2013-11-08 | 2013-11-08 | 一种数据传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310554619.2A CN104639298B (zh) | 2013-11-08 | 2013-11-08 | 一种数据传输方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639298A CN104639298A (zh) | 2015-05-20 |
CN104639298B true CN104639298B (zh) | 2019-11-22 |
Family
ID=53217659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310554619.2A Active CN104639298B (zh) | 2013-11-08 | 2013-11-08 | 一种数据传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639298B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302604B (zh) * | 2015-06-05 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 数据传输方法及装置 |
CN105095384B (zh) * | 2015-07-01 | 2018-09-14 | 北京京东尚科信息技术有限公司 | 数据结转的方法和装置 |
US10896178B2 (en) * | 2016-03-30 | 2021-01-19 | Microsoft Technology Licensing, Llc | High performance query processing and data analytics |
CN106331117B (zh) * | 2016-08-26 | 2019-05-03 | 中国科学技术大学 | 一种数据传输方法 |
CN107342955B (zh) * | 2017-06-29 | 2020-09-22 | 迈普通信技术股份有限公司 | 一种数据报文分片方法及装置、重组方法及装置 |
CN108829735B (zh) * | 2018-05-21 | 2021-06-29 | 上海达梦数据库有限公司 | 并行执行计划的同步方法、装置、服务器及存储介质 |
CN108924048B (zh) * | 2018-06-26 | 2021-08-24 | 新华三技术有限公司 | 一种路由报文发送方法、装置及路由设备 |
CN109561145B (zh) * | 2018-11-27 | 2022-04-05 | 泰康保险集团股份有限公司 | 文件处理方法、装置、电子设备及存储介质 |
CN111741013B (zh) * | 2020-07-21 | 2021-02-26 | 炬芯科技股份有限公司 | 数据传输方法及装置 |
CN114221905A (zh) * | 2020-09-03 | 2022-03-22 | 阿里巴巴集团控股有限公司 | 处理单元及流控制单元、以及相关方法 |
CN114124940A (zh) * | 2021-11-30 | 2022-03-01 | 上海御渡半导体科技有限公司 | 一种基于udp协议的数据定制传输的方法 |
CN114501548A (zh) * | 2022-02-16 | 2022-05-13 | 北京升哲科技有限公司 | 一种数据级联的传输方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047484A (zh) * | 2006-06-21 | 2007-10-03 | 华为技术有限公司 | 一种传输层重传方法和系统 |
CN101364204A (zh) * | 2008-09-28 | 2009-02-11 | 北大方正集团有限公司 | 栅格图像处理器错误代码定位方法及装置 |
CN101877882A (zh) * | 2009-04-29 | 2010-11-03 | 联芯科技有限公司 | 无线链路控制层确认模式实体的超域类型选择方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304381B (zh) * | 2008-07-03 | 2011-08-31 | 中国移动通信集团设计院有限公司 | P2p网络中文件传输的方法、系统及装置 |
CN102647251A (zh) * | 2012-03-26 | 2012-08-22 | 北京星网锐捷网络技术有限公司 | 数据传输方法及系统、发送端设备与接收端设备 |
CN102647353B (zh) * | 2012-04-06 | 2015-01-21 | 华为技术有限公司 | 报文分片获取方法及装置 |
US20130332521A1 (en) * | 2012-06-07 | 2013-12-12 | United Video Properties, Inc. | Systems and methods for compiling media information based on privacy and reliability metrics |
-
2013
- 2013-11-08 CN CN201310554619.2A patent/CN104639298B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047484A (zh) * | 2006-06-21 | 2007-10-03 | 华为技术有限公司 | 一种传输层重传方法和系统 |
CN101364204A (zh) * | 2008-09-28 | 2009-02-11 | 北大方正集团有限公司 | 栅格图像处理器错误代码定位方法及装置 |
CN101877882A (zh) * | 2009-04-29 | 2010-11-03 | 联芯科技有限公司 | 无线链路控制层确认模式实体的超域类型选择方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104639298A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104639298B (zh) | 一种数据传输方法、装置及系统 | |
CN107979592B (zh) | 一种发送业务请求消息的方法及装置 | |
CN111031565B (zh) | 一种识别ZigBee设备离在线状态的方法及装置 | |
WO2017161760A1 (zh) | 数据传输方法及装置 | |
CN102857354B (zh) | 告警信息上报方法、装置及系统 | |
CN105391486B (zh) | 一种星载数据的通信方法和装置 | |
CN114629822B (zh) | 链路检测方法、装置、电子设备及存储介质 | |
CN108322836A (zh) | 一种数据传输的方法及装置 | |
CN107567107A (zh) | 一种传输数据的方法及装置 | |
CN105357329B (zh) | 跨idc网络环境下业务数据的传输方法、装置及系统 | |
CN105516658A (zh) | 一种监控设备控制方法及装置 | |
CN103517155A (zh) | 一种基于监控业务的流量动态控制的方法及装置 | |
CN107707385A (zh) | 一种数据上报方法及系统 | |
CN109561487B (zh) | 降低移动终端能耗的方法、装置以及移动终端 | |
CN104427473B (zh) | 通信设备和通信方法 | |
CN107104892A (zh) | 网络加速的方法和装置 | |
CN104796388A (zh) | 一种对网络设备进行扫描的方法、相关装置及系统 | |
CN105791036B (zh) | 一种ap接入检测方法及装置 | |
CN113965466B (zh) | 一种自适应网络带宽的数据传输系统 | |
CN109561482A (zh) | 一种数据获取方法、数据获取装置及智能终端 | |
CN107959554B (zh) | 一种数据的重传方法及装置 | |
CN112637055B (zh) | 基于vpn隧道的多链路聚合方法、系统及存储介质 | |
US9999079B2 (en) | Communication device, communication control method, and non-transitory computer readable medium | |
CN106936872A (zh) | 基于分布式存储系统的消息处理方法及系统 | |
CN101800667A (zh) | 告警消息发送方法、网络设备和告警系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |