数据传输方法及装置、电子设备及可读存储介质与流程

文档序号:19873919发布日期:2020-02-08 06:10阅读:187来源:国知局
数据传输方法及装置、电子设备及可读存储介质与流程

本申请涉及电子设备技术领域,具体涉及一种数据传输方法及装置、电子设备及可读存储介质。



背景技术:

在数据传输时,现有方案通常采用高速串行计算机扩展总线标准(peripheralcomponentinterconnectexpress,pcie)或其他高速接口进行数据传输。然而,该种方案一方面需要购买特定的高速接口,且调试通常耗费大量时间,成本非常高;另一方面当现有高速接口也无法满足传输带宽要求,将降低数据传输效率。



技术实现要素:

本申请实施例提供一种数据传输方法及装置、电子设备及可读存储介质,可以有效降低数据传输的成本,且改善数据传输的效率。

第一方面,本申请实施例提供了一种数据传输方法,所述方法包括:

获取待传输数据实际传输时的带宽需求,根据所述带宽需求及已有的各条链路的带宽,选择至少两条目标链路;

根据所述待传输数据的数据大小及所述目标链路的带宽,对所述待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据;

为所述第一切片数据分配序号,得到第二切片数据;

依次将所述第二切片数据通过所述目标链路发送给接收端,所述接收端用于对接收到的第二切片数据进行重组。

第二方面,本申请实施例还提供了一种数据传输装置,所述装置包括:

获取选择模块,用于获取待传输数据实际传输时的带宽需求,根据所述带宽需求及已有的各条链路的带宽,选择至少两条目标链路;

切片模块,用于根据所述待传输数据的数据大小、所述目标链路的带宽,对所述待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据;

分配模块,用于为所述第一切片数据分配序号,得到第二切片数据;

发送模块,用于依次将所述第二切片数据通过所述目标链路发送给接收端,所述目标链路用于将所述第二切片数据传输给接收端,所述接收端用于对接收到的第二切片数据进行重组。

第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前述的数据传输方法中的各个步骤。

第四方面,本申请实施例还提供一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如前述的数据传输方法中的各个步骤。

本申请实施例提供的数据传输方法,该方法根据获取的待传输数据的带宽需求,及已有的各条链路的带宽,选择至少两条目标链路,根据该待传输数据的数据大小、目标链路的带宽,对待传输数据进行切片,得到按照切片数据依次排列的各第一切片数据,并为各第一切片数据分配序号,得到第二切片数据,再将该第二切片数据通过目标链路发送给接收端,由该接收端对该第二切片数据进行重组。通过选择多条目标链路的方式,使得能够通过对待传输数据切片实现第二切片数据的并行传输,且通过由接收端进行重组,使得能够实现第二切片数据的有效恢复,该方法不需要使用到高速接口,能够有效降低成本,且能够在满足待传输数据的带宽需求的同时实现并行传输,有效改善传输效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为为本申请实施例中数据传输方法的一流程示意图;

图2为图1所示实施例中步骤102的细化步骤的一流程示意图;

图3为图1所示实施例中步骤103的细化步骤的一流程示意图;

图4为本申请实施例中数据传输方法的示意图;

图5为本申请实施例中数据传输装置的结构示意图;

图6为本申请实施例中电子设备的结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明,以下所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,为本申请实施例中数据传输方法的一流程示意图,包括:

步骤101、获取待传输数据实际传输时的带宽需求,根据所述带宽需求及已有的各条链路的带宽,选择至少两条目标链路;

在本发明实施例中,上述数据传输方法由数据传输装置实现,该数据传输装置属于电子设备,例如,可以是芯片、服务器、手机终端、平板电脑等。且上述数据传输装置存储于电子设备的可读存储介质内,当需要使用该数据传输装置时,可以有电子设备的处理器读取并运行该数据传输装置。

其中,本申请中的数据传输方法适用于两个电子设备之间进行跨设备的数据传输,该两个电子设备一个为发送端,一个为接收端,且发送端和接收端之间存储多条链路,需要说明的是,该两个电子设备的物理结构是具备实现多条链路的物理结构。

本申请中的数据传输方法是从发送端进行描述,当发送端具有待传输数据需要发送给接收端时,其将获取待传输数据实际传输时的带宽需求,其中,该带宽数据可以是预先设置在发送端内部的,或者也可以是基于预设的带宽计算算法计算得到的带宽需求,在实际应用中可以基于需要设定,此次不做限定。

发送端获取到带宽需求之后,将根据该带宽需求及已有的各条链路的带宽,选择至少两条目标链路,其中,发送端与接收端之间有多条链路,且该多条链路的带宽可以相同,也可以有不同,可以从已有的各条链路中进行选择,使得选择的目标链路的带宽的和大于或等于带宽需求。

步骤102、根据所述待传输数据的数据大小、所述目标链路的带宽,对所述待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据;

在选择目标链路之后,发送端将统计待传输数据的数据大小,并利用该待传输数据的数据大小,及已选择的目标链路的带宽,对待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据,其中,待传输数据中包含多个数据块,每个数据块的数据大小可以相同,也可以不同,且由于待传输数据在接收端需要恢复,因此在划分的时候,按照待传输数据中各数据块的顺序依次进行划分,且切片得到的第一切片数据也按照切片顺序依次排列。可以理解的是,由于数据块的大小并不能确保是切片大小的整数倍,因此,是可以存着大小小于切片大小的第一切片数据的,对于这类数据,可以通过补零的方式使得满足对切片大小的要求。

步骤103、为所述第一切片数据分配序号,得到第二切片数据;

步骤104、依次将所述第二切片数据通过所述目标链路发送给接收端,所述接收端用于对接收到的第二切片数据进行重组。

在本申请中,将为第一切片数据分配序号,将具有序号的第一切片数据作为第二切片数据,其中,该序号通常位于第二切片数据的前端,通过字节的方式携带。进一步的,发送端将第二切片数据通过目标链路发送给接收端,其中,接收端为各目标链路都有分配缓存空间,且由于带宽大的目标链路在相同的时间内相对于带宽小的目标链路传输的数据多,因此,在接收端,带宽大的目标链路所分配得到的缓存空间也相应的大。接收端在接收到第二切片数据之后,将该第二切片数据缓存至相应的缓存空间内,且在完成待传输数据的缓存之后,接收端将从各目标链路对应的缓存空间中读取第二切片数据,并基于序列号及缓存时间的先后关系,进行重组,以实现数据的恢复。可以理解的是,接收端在对第二切片数据进行重组时,需要去除第二切片数据中的序号之后再重组,即重组后得到的数据中不包含序号。

其中,将第二切片数据通过目标链路发送给接收端具体可以包括:发送端对目标链路进行监测;若监测到空闲目标链路,则发送第二切片数据至空闲目标链路。例如,若有三条目标链路,在初始的时候将前三片第二切片数据同时发送给三条目标链路,并对该三条目标链路进行监测,若监测到第三条目标链路完成传输,则将第四片第二切片数据发送给第三条目标链路,并以此类推,使得每条目标链路都能够连续进行切片数据的传输,改善传输效率。

在本申请实施例中,通过选择多条目标链路的方式,使得能够通过对待传输数据切片实现第二切片数据的并行传输,且通过由接收端进行重组,使得能够实现第二切片数据的有效恢复,该方法不需要使用到高速接口,能够有效降低成本,且能够在满足待传输数据的带宽需求的同时实现并行传输,有效改善传输效率。

在图1所示实施例的基础上,请参阅图2,为本申请图1所示实施例中步骤102的细化步骤的流程示意图,包括:

步骤201、确定待传输数据中包含的数据块的最大值及最小值;

步骤202、根据最大值、最小值,及目标链路的带宽确定切片大小;

步骤203、按照切片大小对待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据。

在本申请实施例中,待传输数据中包含多个数据块,发送端将依次遍历每个数据块,并确定各个数据大的大小,以确定出最大值和最小值,且根据该最大值、最小值及目标链路的带宽确定切片大小,在一种可行的实现方式中,确定切片大小的方式可以是:确定数据块的最大值和最小值之间的差值,当该差值大于预设阈值时,确定带宽最小的目标链路传输最小值所需要的时长是否小于预设时长,若小于预设时长,则确定最小值为切片大小,若大于预设时长,则以带宽最小的目标链路在预设时间内能传输的数据大小作为切片大小。而当该差值小于预设阈值时,以带宽最小的目标链路在预设时间内能传输的数据大小作为切片大小。

可以理解的是,上述预设时长的设置是为了避免切片后的数据传输时间过长,不利于并行传输,在设置上述预设时长时,可以通过实验的方式确定在确保并行传输的效率较优且切片不会过大或过小时的预设时长。

可以理解的是,在差值大于预设阈值时,表明最大值和最小值之间的差距较大,在该种情况下,需要以最小值为主进行切片大小的确定,以避免数据块无法进行切片。而在差值小于预设阈值时,表明最大值和最小值之间的差距较小,数据块的大小比较集中,此时,将以带宽的传输能力为主确定切片大小。

在本申请实施例中,通过综合考虑待传输数据的数据大小及目标链路的带宽确定切片大小,使得得到的切片大小能够和目标链路匹配,且具有较优的传输效率。

基于图1所述实施例,请参阅图3,图3为图1所示实施例中步骤103的细化流程的示意图,包括:

步骤301、根据目标链路的带宽确定序号池的大小;

步骤302、按照序号池的大小依次为各第一切片数据分配序号,得到各第二切片数据。

在本申请实施例中,考虑到待传输数据的数据量大时,若按照切片的数量依次分配序号,则可能导致序号的数据太大,例如,若切片数据为5万片,则依次分配序号,最大的序号为49999,该序号的数据量过大,导致占用过多带宽。因此,为了避免该问题,发送端在完成切片之后,还将根据目标链路的带宽确定序号池的大小,通过循环使用序号池中的序号的方式,使得能够有效控制序号的大小,降低增加序号对传输效率的影响。

其中,根据目标链路的带宽确定序号池的大小的一种可行的实现方式如下:

步骤a、计算各目标链路传输一片第二切片数据所需要的传输时间;

步骤b、获取目标链路的最大传输时间,并确定以最大传输时间为准,各目标链路可传输的第二切片数据的数量;

步骤c、将各目标链路可传输的第二切片数据的数量的总数,作为序号池的大小。

在步骤a中,该一片第二切片数据的大小优选是步骤202中确定的切片大小。其中,影响传输时间的因素包括链路的长度及带宽的大小,在各目标链路的链路长度及带宽的大小相同的情况下,传输时间相同,在链路的长度或者带宽的大小存在不同的情况下,传输时间就会不同,各链路之间则会存在延时差。为了表明延时差具有相同序号的第二切片数据同时间存储,导致重组出错的问题,则需要确定序号池的大小。

具体的,确定多条目标链路中传输一片切片大小的数据所需要的传输时间,获取最大传输时间,并确定以最大传输时间为准,各目标链路可传输的第二切片的数量,例如,对于链路abc,链路a传输一片切片大小的传输时间最大,为10s,则确定对于链路b和链路c,在10s内可传输的切片的数量,分别为5片和10片,则将各目标链路可传输的第二切片数据的数量的总数,作为序号池的大小。例如,对于链路abc,在10s内可传输的切片的数量分别为1、5、10,则可确定序号池的大小为16。

可以理解的是,在确定序号池的大小的情况下,初始值可以是0,也可以1,例如,若序号池的大小为10,则序号可以是0至9,或者1至10。

可以理解的是,若以最大传输时间为准,确定的各目标链路可传输的第二切片数据的数量中存在非整数,则可以通过得到最小整数的方式确定一个整数的序号池的大小。例如,若链路acb在10s内可传输的切片的数量分别为1、2.5、4,则总数为7.5,则可以将序号池的大小确定为7.5的2倍,即15。

可以理解的是,在确定序号池时,且为了使得不会出现具有相同序号的不同切片的保存时间相同导致重组出错,可以设置序号池的大小大于或等于目标链路的条数,具体的,上述步骤c可以是:计算各目标链路可传输的第二切片数据的数量的总数;若总数大于或等于目标链路的条数,则确定总数为序号池的大小。

在一种应用场景中,若第一切片数据的大小为120片,确定的序号池的大小为10,且序号为0至9,则可以先将第一切片数据按照10为单位划分为组,即可划分为12组,对于每一组都依次按照0至9的顺序分配序号,以得到具有序号的第二切片数据。

在本申请实施例中,通过利用目标链路的带宽确定序号池的大小,使得在对第一切片数据进行序号分配之后,能够有效避免由于传输问题导致的重组错误。

为了更好的理解本申请实施例中的技术方案,请参阅图4,为本申请实施例中的数据传输方法的示意图,如图4所示,发送端将对待传输数据进行切片及序号分配,得到若干个第二切片数据,然后发送端通过三条链路发送将得到的若干个第二切片数据发送给接收端,接收端接收到第二切片数据之后,进行缓存,且在完成待传输数据的接收之后,接收端从缓存中获取各链路传输的第二切片数据,并进行重组,以恢复到原始数据。

请参阅图5,为本申请实施例中数据传输装置的结构示意图,包括:

获取选择模块501,用于获取待传输数据实际传输时的带宽需求,根据所述带宽需求及已有的各条链路的带宽,选择至少两条目标链路;

切片模块502,用于根据所述待传输数据的数据大小、所述目标链路的带宽,对所述待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据;

分配模块503,用于为所述第一切片数据分配序号,得到第二切片数据;

发送模块504,用于依次将所述第二切片数据通过所述目标链路发送给接收端,所述目标链路用于将所述第二切片数据传输给接收端,所述接收端用于对接收到的第二切片数据进行重组。

在本申请实施例中,根据获取的待传输数据的带宽需求,及已有的各条链路的带宽,选择至少两条目标链路,根据该待传输数据的数据大小、目标链路的带宽,对待传输数据进行切片,得到按照切片数据依次排列的各第一切片数据,并为各第一切片数据分配序号,得到第二切片数据,再将该第二切片数据通过目标链路发送给接收端,由该接收端对该第二切片数据进行重组。通过选择多条目标链路的方式,使得能够通过对待传输数据切片实现第二切片数据的并行传输,且通过由接收端进行重组,使得能够实现第二切片数据的有效恢复,该方法不需要使用到高速接口,能够有效降低成本,且能够在满足待传输数据的带宽需求的同时实现并行传输,有效改善传输效率。

进一步的,基于图5所示实施例中的数据传输装置,分配模块503包括:

确定模块,用于根据所述目标链路的带宽确定序号池的大小;

序号分配模块,用于按照所述序号池的大小依次为各所述第一切片数据分配序号,得到各第二切片数据。

其中,所述确定模块具体用于:

时间计算模块,用于计算各所述目标链路传输一片所述第二切片数据所需要的传输时间;

数量确定模块,用于获取所述目标链路的最大传输时间,并确定以所述最大传输时间为准,各所述目标链路可传输的第二切片数据的数量;

总数确定模块,用于将各所述目标链路可传输的第二切片数据的数量的总数,作为所述序号池的大小。

所述总数确定模块具体用于:计算各所述目标链路可传输的第二切片数据的数量的总数;若所述总数大于或等于所述目标链路的条数,则确定所述总数为所述序号池的大小。

其中,切片模块502包括:

值确定模块,用于确定所述待传输数据中包含的数据块的最大值及最小值;

大小确定模块,用于根据所述最大值、最小值,及所述目标链路的带宽确定切片大小;

数据切片模块,用于按照所述切片大小对所述待传输数据进行切片,得到按照切片顺序依次排列的各第一切片数据。

所述大小确定模块具体用于:

确定所述最大值与最小值之间的差值;

当所述差值大于预设阈值时,确定带宽最小的目标链路传输所述最小值所需要的时长是否小于预设时长,若小于预设时长,则确定所述最小值为切片大小,若大于预设时长,则以所述带宽最小的目标链路在所述预设时间内能传输的数据大小作为所述切片大小;

当所述差值小于预设值时,以所述带宽最小的目标链路在所述预设时间内能传输的数据大小作为所述切片大小。

在本申请实施例中,通过综合考虑待传输数据的数据大小及目标链路的带宽确定切片大小,使得得到的切片大小能够和目标链路匹配,且具有较优的传输效率。且通过利用目标链路的带宽确定序号池的大小,使得在对第一切片数据进行序号分配之后,能够有效避免由于传输问题导致的重组错误。

本申请还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现方法实施例提供的数据传输方法。

本申请还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现方法实施例提供的数据传输方法。

本申请又一实施例中还提供一种电子设备,本申请实施例提供的数据传输方法可应用于如图6所示的电子设备中。

示例性的,电子设备可以为移动或便携式并执行无线通信的各种类型的计算机系统设备中的任何一种(图6中只示例性的示出了一种形态)。

如图6所示,电子设备可以包括控制电路,该控制电路可以包括存储和处理电路30。该存储和处理电路30可以存储器,例如硬盘驱动存储器,非易失性存储器(例如闪存或用于形成固态驱动器的其它电子可编程只读存储器等),易失性存储器(例如静态或动态随机存取存储器等)等,本申请实施例不作限制。存储和处理电路30中的处理电路可以用于控制电子设备的运转。该处理电路可以基于一个或多个微处理器,微控制器,数字信号处理器,基带处理器,功率管理单元,音频编解码器芯片,专用集成电路,显示驱动器集成电路等来实现。

存储和处理电路30可用于运行电子设备中的软件。这些软件可以用于执行一些控制操作,例如,基于照相机的图像采集,基于环境光传感器的环境光测量,基于接近传感器的接近传感器测量,基于诸如发光二极管的状态指示灯等状态指示器实现的信息显示功能,基于触摸传感器的触摸事件检测,与在多个(例如分层的)显示器上显示信息相关联的功能,与执行无线通信功能相关联的操作,与收集和产生音频信号相关联的操作,与收集和处理按钮按压事件数据相关联的控制操作,以及电子设备中的其它功能等,本申请实施例不作限制。

电子设备还可以包括输入-输出电路42。输入-输出电路42可用于使电子设备实现数据的输入和输出,即允许电子设备从外部设备接收数据和也允许电子设备将数据从电子设备输出至外部设备。输入-输出电路42可以进一步包括传感器32。传感器32可以包括环境光传感器,基于光和电容的接近传感器,触摸传感器(例如,基于光触摸传感器和/或电容式触摸传感器,其中,触摸传感器可以是触控显示屏的一部分,也可以作为一个触摸传感器结构独立使用),加速度传感器,和其它传感器等。

输入-输出电路42还可以包括一个或多个显示器,例如显示器14。显示器14可以包括液晶显示器,有机发光二极管显示器,电子墨水显示器,等离子显示器,使用其它显示技术的显示器中一种或者几种的组合。显示器14可以包括触摸传感器阵列(即,显示器14可以是触控显示屏)。触摸传感器可以是由透明的触摸传感器电极(例如氧化铟锡(ito)电极)阵列形成的电容式触摸传感器,或者可以是使用其它触摸技术形成的触摸传感器,例如音波触控,压敏触摸,电阻触摸,光学触摸等,本申请实施例不作限制。

电子设备还可以包括音频组件。音频组件可以用于为电子设备提供音频输入和输出功能。电子设备中的音频组件可以包括扬声器,麦克风,蜂鸣器,音调发生器以及其它用于产生和检测声音的组件。

通信电路可以用于为电子设备提供与外部设备通信的能力。通信电路可以包括模拟和数字输入-输出接口电路,和基于射频信号和/或光信号的无线通信电路。通信电路中的无线通信电路可以包括射频收发器电路、功率放大器电路、低噪声放大器、开关、滤波器和天线。举例来说,通信电路中的无线通信电路可以包括用于通过发射和接收近场耦合电磁信号来支持近场通信(nearfieldcommunication,nfc)的电路。例如,通信电路可以包括近场通信天线和近场通信收发器。通信电路还可以包括蜂窝电话收发器和天线,无线局域网收发器电路和天线等。

电子设备还可以进一步包括电池,电力管理电路和其它输入-输出单元40。输入-输出单元40可以包括按钮,操纵杆,点击轮,滚动轮,触摸板,小键盘,键盘,照相机,发光二极管和其它状态指示器等。

用户可以通过输入-输出电路42输入命令来控制电子设备的操作,并且可以使用输入-输出电路42的输出数据以实现接收来自电子设备的状态信息和其它输出。

在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本发明所提供的一种数据传输方法及装置、电子设备及可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1