一种多通道数据动态传输方法
技术领域
本发明属于计算机通信技术领域,具体涉及一种多通道数据动态传输方法。
背景技术
现如今人们处在信息爆炸时代,大量数据涌现,出现了大数据概念。大数据受到人们的广泛关注,数据的传输速度影响着数据的流通速度,而数据信息传输速度慢的问题日益突出。传统的提升数据传输速度的方法主要是通过缓存机制、异步传输以及物理接口最优化。但随着计算机以及网络技术的不断发展,数据信息存储需求量越来越大,各类数据信息转储频度不断提升,对数据传输速度的要求也不断提高,传统的传输方法已无法满足其要求,物理接口已经成为数据传输的最大瓶颈。
一般的计算机设备上都存在着多个物理数据传输通道,人们在实际使用中只用USB接口传输数据,USB接口的传输速率有限,对于几个G的数据往往需要很长的时间才能传输完毕。此种通过单个物理数据传输接口进行数据传输的时间长,速度有限,若能将多个物理数据传输接口都利用起来,使得各个物理数据传输接口能够并行进行数据传输,就可以使得数据传输的速度达到各个传输接口的传输速度之和。
参考专利文献CN102063399B公开了一种多通道数据传输方法,主机配置的至少两个通用串行总线USB接口分别连接到至少两个USB数据板,该至少两个USB数据板连接到一个处理设备。该专利使用多个同一类型的传输接口传输数据,但计算机上还有其他类型的数据传输接口,例如1394接口、外部串行高级技术附件eSATA接口都处于空闲状态,并没有被充分利用起来。
发明内容
针对现有技术存在的不足之处,本发明提出了一种多通道数据动态传输方法。该方法首次检测数据传输接口数量,以及每个数据传输接口的传输速率,将源数据分割成与数据传输接口相同的数据块,将数据块通过数据传输接口传输至目标路径,实现多通道数据传输。
本发明采用如下技术方案:
一种多通道数据动态传输方法,它包括以下步骤,
S110,获取源数据的属性信息和数据传输接口P1、P2、…、Pn对应的传输速率V1、V2、…、Vn,其中,n为数据传输接口的数量;
S111,将源数据分割成n个数据块D1、D2、…、Dn,并获取所有数据块的位置信息,数据块Di的大小与数据传输接口Pi的传输速率Vi成一定比例,i=1、2、…、n;
S112,为每个数据块Di添加数据头,数据头包括对应数据块Di的位置信息和大小;
S113,将数据块Di的数据头经过数据传输接口Pi传输至目标路径,对数据头进行解析后,在目标路径为每个数据块Di预留存储空间;
S114,将数据块Di通过数据传输接口Pi传输至目标路径预留的存储空间。
进一步的,步骤S113包括以下步骤,
S1131,数据块Di的数据头经过数据传输接口Pi传输至目标路径;
S1132,对接收到的数据头进行解析后,获取数据块Di的位置信息和大小;
S1133,在目标路径按数据块Di的位置信息顺序为每个数据块Di预留与其大小相同的存储空间。
更进一步的,步骤S110中源数据的属性信息为本地数据、远程数据或虚拟数据。
进一步的,步骤S110中数据传输接口包括USB接口、1394接口、外部串行高级技术附件eSATA接口、网卡接口NIC或雷电接口的一种或多种组合。
进一步的,步骤S110中源数据的属性信息包含数据标识、数据大小和数据校验码。
进一步的,步骤S113和步骤114中的目标路径为本地存储、远程存储或虚拟存储。
本发明相对于现有技术,充分利用计算机上的所有数据传输接口,使数据传输速度达到所有数据传输接口的传输速率之和,大大提高了数据传输速率,节省了数据传输时间。且经过多通道传输过来的数据存储在同一目标路径,不需要经过数据还原。
附图说明
图1是多通道数据动态传输方法的流程图;
图2是数据块存储空间预留的流程图;
图3是源数据分割数据块结构图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。
参阅图1至图3所示,本发明提出了一种多通道数据动态传输方法,该方法包括以下步骤:
S110,获取源数据的属性信息和数据传输接口P1、P2、…、Pn对应的传输速率V1、V2、…、Vn,其中,n为数据传输接口的数量。
该实施例需要传输的源数据为本地数据、远程数据、虚拟数据等所有二进制数据或文本数据。其中,源数据的属性信息包含数据标识、数据大小S和数据校验码等信息。数据传输接口有n个,为每个数据传输接口编号,即数据传输接口P1、P2、…、Pn,检测每个数据传输接口的传输速率,定义数据传输接口P1、P2、…、Pn对应的数据传输速率为V1、V2、…、Vn。
需要说明的是,数据传输接口包括USB接口、1394接口、外部串行高级技术附件eSATA接口、网卡接口NIC或雷电接口的一种或多种组合。该实施例的数据传输接口有三个,n=3,P1为1394接口,P2为USB接口,P3为外部串行高级技术附件eSATA接口。本领域技术人员可知,数据传输接口的组合有多种,不限于该实施例给出这一种组合。
其中,USB接口的传输速率为:5Gb/s,1394接口的传输速率为:400Mb/s,外部串行高级技术附件eSATA接口的传输速率为:6.0Gb/s。即数据传输接口的传输速率排序为V3﹥V2﹥V1。
S111,将源数据分割成n个数据块D1、D2、…、Dn,并获取所有数据块的位置信息,数据块Di的大小与数据传输接口Pi的传输速率Vi成一定比例,i=1、2、…、n。
参阅图3所示,为源数据分割数据块结构图。由于该实施例的数据传输接口有三个,故源数据分割成3个数据块:D1、D2、D3,并获取所有数据块在源数据中的位置信息。数据块Di与数据传输接口Pi一一对应,为了实现所有数据块同时传输到目标路径,该实施例要求数据块Di的大小Si与数据传输接口Pi的传输速率Vi成一定比例,i=1、2、3。即
Si=k*Vi,
k=S/(S1+S2+S3)。
由于V3﹥V2﹥V1,故S3﹥S2﹥S1。
S112,为每个数据块Di添加数据头,数据头包括对应数据块Di的位置信息和大小。
将每个数据块Di的位置信息和大小Si构成该数据块Di的数据头,数据头还可包括数据块Di的其他信息。
S113,将数据块Di的数据头经过数据传输接口Pi传输至目标路径,对数据头进行解析后,在目标路径为每个数据块Di预留存储空间。该步骤具体包括以下详细步骤:
S1131,数据块Di的数据头经过数据传输接口Pi传输至目标路径;虽然数据传输接口Pi的传输速率Vi不同,数据块Di的数据头大小相同,但是数据块Di的数据头大小比较小,故数据块Di的数据头传输到目标路径的时间差不多。
S1132,对接收到的数据头进行解析后,获取数据块Di的位置信息和大小;解析所有的数据块Di的数据头,得到数据头里所包含的信息,即数据块Di的位置信息和数据块的大小Si。
S1133,在目标路径按数据块Di的位置信息顺序为每个数据块Di预留与其大小相同的存储空间。在获得数据块Di的位置信息后即可知数据块的排列顺序,获得数据块Di的大小Si即可知数据块所需要占用的存储空间。在目标位置按照数据块Di的顺序为数据块Di预留大小为Si的存储空间。
S114,将数据块Di通过数据传输接口Pi传输至目标路径预留的存储空间。
该实施例将数据块Di通过其对应的数据传输接口Pi传输到目标路径上预留的存储空间,由于数据块Di在目标路径上的存储是按照源数据分割时的顺序存储的,且所有的数据块都传输到同一目标路径,故目标路径上存储的数据与源数据一样。无需将数据块再转存在一起还原,不仅提高了传输效率,而且节省了存储空间。
需要说明的是,该实施例的步骤S113和步骤114中的目标路径为本地存储、远程存储或虚拟存储。用户可根据需要将源数据传输至所需存储位置。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。