CN112422251A - 数据传输方法及装置、终端、存储介质 - Google Patents

数据传输方法及装置、终端、存储介质 Download PDF

Info

Publication number
CN112422251A
CN112422251A CN202011232397.9A CN202011232397A CN112422251A CN 112422251 A CN112422251 A CN 112422251A CN 202011232397 A CN202011232397 A CN 202011232397A CN 112422251 A CN112422251 A CN 112422251A
Authority
CN
China
Prior art keywords
data transmission
threads
data
transmission channel
bandwidth
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
Application number
CN202011232397.9A
Other languages
English (en)
Other versions
CN112422251B (zh
Inventor
卢阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Shenzhen Huantai Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd, Shenzhen Huantai Technology Co Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011232397.9A priority Critical patent/CN112422251B/zh
Priority to CN202310268133.6A priority patent/CN116318585A/zh
Publication of CN112422251A publication Critical patent/CN112422251A/zh
Application granted granted Critical
Publication of CN112422251B publication Critical patent/CN112422251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/0001Arrangements for dividing the transmission path
    • H04L5/0003Two-dimensional division
    • H04L5/0005Time-frequency
    • H04L5/0007Time-frequency the frequencies being orthogonal, e.g. OFDM(A), DMT
    • H04L5/001Time-frequency the frequencies being orthogonal, e.g. OFDM(A), DMT the frequencies being arranged in component carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0058Allocation criteria
    • H04L5/0064Rate requirement of the data, e.g. scalable bandwidth, data priority
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本申请实施例公开了一种数据传输方法及装置、终端和存储介质,其中,所述方法包括:确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。

Description

数据传输方法及装置、终端、存储介质
技术领域
本申请实施例涉及通信技术,涉及但不限于一种数据传输方法及装置、终端、存储介质。
背景技术
目前,互联网流量己经呈现爆发式增长,越来越多的业务都表现出对于高带宽的巨大需求,如高清视频流媒体业务等。在这样的情况之下,传统使用单一路径的传输方法可能无法满足业务的高带宽需求,例如,当前同时具有无线网络和LTE(Long TermEvolution,长期演进)网络,移动终端上网时,通常默认使用无线网络的数据通道加载数据,而LTE网络则关闭。并且,运营商在面对巨大网络流量时也会考虑将流量进行多路径分拆,以降低运营和设备维护的成本。
因此,本领域技术人员提出了各种方案来解决上述问题,例如提出了MPTCP(MultiPath TCP,多路传输控制协议)协议,以允许TCP(Transmission Control Protocol,传输控制协议)连接使用多个路径来最大化信道资源的使用。又如,提出了系统级SLA(Static Link Aggregation,静态链路聚合),通过将套接字连接随机分配到数据网络或WIFI(Wi-Fi,无线上网)网络接口上,并将TCP连接分配到不同的网卡,以建立不同的物理链路,从而增加数据的网络资源分配。但是,这些方案都从在各种各样的问题,并不能满足用户的实际使用需求。
发明内容
有鉴于此,本申请实施例提供一种数据传输方法及装置、终端、存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据传输方法,所述方法包括:
确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
第二方面,本申请实施例提供一种数据传输装置,所述装置包括:
第一确定单元,用于确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
检测单元,用于检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
第二确定单元,用于根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
控制单元,用于为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
第三方面,本申请实施例提供一种终端,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述数据传输方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述所述数据传输方法中的步骤。
本申请实施例提供一种数据传输方法及装置、终端、存储介质,通过确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输,如此,能够通过多条数据传输通道增加客户端网络的可用性,提升下载成功率;同时,通过为每一数据传输通道动态的分配传输数据的线程,提升了数据的传输速度、减少了数据的传输耗时。
附图说明
图1为本申请实施例数据传输方法的实现流程示意图一;
图2为本申请实施例数据传输方法的实现流程示意图二;
图3为本申请实施例数据传输方法的实现流程示意图三;
图4为本申请实施例三通道下载的示意图;
图5为本申请实施例终端设备的系统架构示意图;
图6为本申请实施例连接监听的实现流程示意图;
图7为本申请实施例网络获取的实现流程示意图;
图8为本申请实施例三通道下载的网络架构示意图;
图9为本申请实施例连接复用的原理示意图;
图10为本申请实施例最优带宽效率的分配模型示意图;
图11为本申请实施例数据传输装置的组成结构示意图;
图12为本申请实施例终端的一种硬件实体示意图。
具体实施方式
一般地,多路径传输方案主要有以下几类:
(1)MPTCP协议:MPTCP是互联网工程任务组的多路径TCP工作组主导确定的协议,该协议旨在允许TCP连接使用多条路径来最大化资源的使用。MPTCP协议能够在单个TCP连接上使用多个物理网络通道,MPTCP兼容TCP协议,因此应用程序只要可以运行在TCP环境下就能享受到MPTCP的优势。
(2)系统级SLA:系统级SLA通过将应用层发起的套接字连接随机分配到数据网络或接口上,应用在不知情的情况下,TCP连接被分配到不同的网卡(即数据网络和无线网络),并建立不同的物理链路。通过这种方式,增加应用的网络资源分配。
(3)系统级的双无线WIFI方案:安卓设备具备两个物理无线网卡,能够同时连接到用户创建的2.4GHz(千兆赫兹)和5GHz的AP(Access Point,无线接入点)上,或连接到两个完全独立的AP上。系统级的双无线WIFI方案能够通过将应用层发起的套接字连接随机分配到无线WIFI网络1和无线WIFI网络2上,并建立独立的物理链路。
但是,以上三种多路径传输方案存在如下缺陷:(1)MPTCP:需要同时修改客户端Linux(一种操作系统)内核和服务端内核的TCP实现,因此修改、后期迭代以及维护成本都非常高。并且,目前市场上的智能终端很少有支持MPTCP协议的。对于互联网服务来说,许多服务是第三方的,或者部署在云服务商的,修改内核以支持MPTCP难度极高,这也是目前没有大规模商用的重要原因。在下载场景上,如果随机分配了一个质量差的连接,将会降低下载速度,影响使用体验。(2)系统级SLA:系统不知道应用使用连接的具体场景,随机分配连接会造成预期之外的不良结果。比如WIFI网络信号较好、数据网络质量较差的前提下,把一个用户可见页面的请求连接分配到了数据网络,而一个后台请求连接分配到了WIFI网络,会造成用户长时间的等待,甚至接口请求超时,反而不如直接使用单个WIFI网络体验更好。此外,系统级SLA没有办法针对接口请求、下载等具体的场景做策略优化,简单粗暴的分配连接可能会耗尽应用的重试次数,适得其反。(3)系统级的双无线WIFI方案:类似系统级SLA,随机分配连接到两个WIFI网络上可能会造成下载速度变慢。
因此,本申请实施例提出了一种新的数据传输方案,通过制定合理、灵活的下载策略,应对网络质量的动态变化,实现带宽利用率的最优。同时,本申请实施例中的数据传输方案跳出了现有方案的局限和缺点,发挥应用层SLA的优势,以便在不依赖系统和服务的前提下实现功能,从而能够快速灵活的迭代。并且,本申请实施例中还定义了带宽利用率指标,以便达到下载速度最优的目的。
下面结合附图和实施例对本申请的技术方案进一步详细阐述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
本申请实施例提供一种数据传输方法,该方法应用于终端,该方法所实现的功能可以通过所述终端中的处理器调用程序代码来实现,当然程序代码可以保存在所述终端的存储介质中。图1为本申请实施例数据传输方法的实现流程示意图一,如图1所示,所述方法包括:
步骤S101、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
这里,所述终端可以为各种类型的具有信息处理能力的设备,例如手机、平板电脑、笔记本电脑,固定终端如个人计算机和服务器集群等具有信息处理能力的计算设备。
本申请实施例中,所述传输目标数据的线程的数量,可以通过终端的CPU(CentralProcessing Unit,中央处理器)核数和终端包括的数据传输通道的条数来确定。例如,终端的CPU核数为8,且包括三条数据传输通道,则传输所述目标数据的线程的数量满足以下条件,即Max(3*n≤8)。当n取值为2时,满足公式Max(3*n≤8)值最大,因此,所述线程的数量就为3*2=6个线程。当获取到目标数据传输指令后,就确定传输所述目标数据的线程的数量,进而为所述目标数据建立所述数量的线程。建立所述数量的线程的目的,就是为了多线程的传输所述目标数据。
以数据下载场景进行举例说明,当用户点击某个链接、打开某个页面或下载某个文件时,终端即接收到相应的数据下载指令,随即获取待下载的目标数据的大小,并根据一定的规则确定下载所述目标数据的线程数量,并建立相应数量的线程,以将待下载的数据分成多个数据块,每个线程负责加载一个数据块。
其中,每个正在系统上运行的程序都是一个进程,进程也可能是整个程序或者是部分程序的动态执行,每个进程包含一个至多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。线程相当于轻量级的进程,它负责在单个程序里执行多任务,通常由操作系统负责多个线程的调度和执行。多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率,线程是在同一时间需要完成多项任务的时候被实现的。
步骤S102、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
这里,所述数据传输通道为不同网络对应的数据传输通道。所述不同网络可以是2G(2rd-Generation,第二代移动通信技术)数据网络、3G(3rd-Generation,第三代移动通信技术)数据网络、4G(4rd-Generation,第四代移动通信技术)数据网络或5G(5rd-Generation,第五代移动通信技术)数据网络等,例如:LTE网络、GSM(Global System forMobile Communications,全球移动通信系统)网络、GPRS(General Packet RadioService,通用分组无线服务)网络、CDMA(Code Division Multiple Access,码分多址)网络、EDGE(Enhanced Data Rate for GSM Evolution,强型数据速率GSM演进技术)网络、CDMA-2000网络、TD-SCDMA(Time Division-Synchronous Code Division MultipleAccess,时分同步码分多址)网络、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)网络等。当然,也可以为无线网络,例如WIFI网络、WLAN(Wireless Local AreaNetworks,无线局域网)网络等。本申请实施例中对数据传输通道对应的网络类型并不做限制。
终端上的每一网络都对应一条数据传输通道,并且,每一网络的带宽是不一样的,不同带宽的网络对应不同的传输速度。带宽可以用来标识信号的数据传输能力、标识单位时间内通过链路的数据量、标识显示器的显示能力。在实际应用中,不同网络具有不同的带宽,同一网络的实际带宽也是在实时变化的。因此,本申请实施例中,可以实时监测不同网络上的带宽,也可以根据预设时间间隔,对不同网络上的带宽进行检测。例如,每隔10秒对不同网络上的带宽进行一次检测。
步骤S103、根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
例如,当用户下载某个文件时,终端即接收到相应的数据下载指令,随即获取待下载的目标数据的大小,并根据CPU核数等确定下载所述目标数据的线程数量,同时对终端上多个可用网络的带宽进行检测,根据所述线程数量和某一网络的带宽,确定对应网络(即对应的数据传输通道)上线程的数量。
步骤S104、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
这里,所述步骤S104、为所述每一数据传输通道分配对应数量的线程指的是,根据步骤S103中确定出的线程的数量,为相应的网络(即数据传输通道)分配所述数量的线程。
本申请实施例中,终端控制各线程通过各自的数据传输通道分别与服务器建立连接,并且,所述N条数据传输通道是同时进行数据传输的。如此,能够提高所述目标数据的下载速度,降低所述目标数据的下载时间。
在一些实施例中,所述N条数据传输通道对应的链路聚合在所述终端的应用层实现。
在一些实施例中,所述终端包括:数据网络对应的数据传输通道、第一无线网络对应的数据传输通道和第二无线网络对应的数据传输通道。
本申请实施例中,通过根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输,如此,能够根据网络质量的动态变化,为每个数据传输通道分配合理数量的传输线程,从而实现多通道的数据传输,提高了数据传输的速度,同时网络的带宽利用率达到最优。
基于前述的实施例,本申请实施例再提供一种数据传输方法,图2为本申请实施例数据传输方法的实现流程示意图二,如图2所示,所述方法包括:
步骤S201、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S202、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S203、根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
步骤S204、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输;
步骤S205、在所述目标数据的传输过程中,按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,得到检测结果;
在实际的应用中,不但不同的数据传输通道的带宽不同,同一数据传输通道在不同时刻的带宽也可能是不同的。因此,本申请实施例中,基于动态的方法,每预设时间间隔后,都对所述N条数据传输通道中每一数据传输通道的带宽进行检测,根据检测结果,重新执行所述步骤S202至所述步骤S204,对每一数据传输通道上的线程的数量重新进行计算和分配。例如,可以每隔10秒钟就对每一数据传输通道的带宽进行重新检测,并根据新的检测结果,重新计算每一数据传输通道上带宽的待分配数量。
步骤S206、根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整。
本申请实施例中,通过动态的检测方法,即按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,并根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整,如此,能够应对网络质量的动态变化,定制实时的、合理的下载策略,达到下载速度最快,下载时间最短,以及带宽利用率最高的目的。
基于前述的实施例,本申请实施例再提供一种数据传输方法,所述方法包括:
步骤S211、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S212、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S213、根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
步骤S214、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输;
步骤S215、在所述目标数据的传输过程中,按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,得到检测结果;
步骤S216、根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整;
步骤S217、利用公式
Figure BDA0002765645430000071
确定当前时刻的带宽利用率;
这里,所述当前时刻的带宽利用率,可以是每一数据传输通道的带宽利用率,也可以是终端上所有网络(即所有数据传输通道)的一个整体的带宽利用率。当所述带宽利用率为某个数据传输通道的带宽利用率时,所述F为当前时刻这个数据传输通道中已传输数据的大小。当所述带宽利用率为所有数据传输通道的一个整体的带宽利用率时,所述F为当前时刻所有数据传输通道中已传输数据的大小。
步骤S218、根据所述带宽利用率,调整所述预设时间间隔;其中,P为当前时刻的带宽利用率,F为当前时刻所述目标数据中已传输数据的大小,T为传输所述已传输数据所耗费的时间,Wi为所述第i条数据传输通道的带宽。
本申请实施例中,通过定义带宽利用率指标,并且根据所述带宽利用率指标实时地对所述预设时间间隔进行调整,如此,能够应对网络质量的动态变化,实现带宽利用率的最优,以便达到下载速度最优的目的。
基于前述的实施例,本申请实施例再提供一种数据传输方法,图3为本申请实施例数据传输方法的实现流程示意图三,如图3所示,所述方法包括:
步骤S301、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S302、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S303、确定所述N条数据传输通道的带宽总量;
这里,所述N条数据传输通道的带宽总量,指的是N条数据传输通道中每一数据传输通道的带宽之和。
步骤S304、根据所述目标数据的线程的数量、所述每一数据传输通道的带宽和所述带宽总量,确定所述每一数据传输通道上线程的数量;
举例来说,一个待传输的目标数据对应的线程数量是M个,终端中包括三条数据传输通道:第一数据传输通道、第二数据传输通道和第三数据传输通道。所述第一数据传输通道的带宽为W1,所述第二数据传输通道的带宽为W2,所述第三数据传输通道的带宽为W3,所述带宽总量为W=W1+W2+W3。则所述第一数据传输通道上线程的数量是根据M、W1和W确定的,所述第二数据传输通道上线程的数量是根据M、W2和W确定的,所述第二数据传输通道上线程的数量是根据M、W3和W确定的。
步骤S305、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
本申请实施例中,通过根据所述目标数据的线程的数量、所述每一数据传输通道的带宽和所述带宽总量,确定所述每一数据传输通道上线程的数量;为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输,如此,能够根据网络质量的动态变化,为每个数据传输通道分配合理的传输线程数量,从而实现多通道的数据传输,提高了数据传输的速度,同时网络的带宽利用率达到最优。
基于前述的实施例,本申请实施例再提供一种数据传输方法,所述方法包括:
步骤S311、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S312、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S313、确定所述N条数据传输通道的带宽总量;
步骤S314、利用公式
Figure BDA0002765645430000081
确定第i条数据传输通道上线程的数量;其中,Mi为所述第i条数据传输通道上线程的数量,M为所述目标数据的线程的数量,Wi为所述第i条数据传输通道的带宽;
这里,
Figure BDA0002765645430000082
为所有数据传输通道的带宽之和,即带宽总量。
步骤S315、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
基于前述的实施例,本申请实施例再提供一种数据传输方法,所述方法包括:
步骤S321、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S322、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S323、根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
步骤S324、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
步骤S325、如果第一线程发起连接链路建立请求,确定所述请求中请求地址携带的参数信息;
本申请实施例中,所述第一线程指的是所有线程中的任一线程,如果第一线程发起连接链路建立请求,则先查看所述请求中的参数信息,如果所述参数信息与连接池中已建立的第一连接的参数信息匹配,则将这个第一连接作为所述第一线程的连接,如此,能够使得大部分请求使用连接池中的已有连接,减少下载请求的时间。
步骤S326、如果所述参数信息与已存在的第一连接的参数信息匹配,将所述第一连接作为所述第一线程的连接链路;其中,所述参数信息至少包括:互联网协议地址、域名和网络类型。
当然,本申请实施例中,所述参数信息除了互联网协议地址、域名和网络类型以外,还可以包括其他的信息,本申请实施例对此并不做限定。
在一些实施例中,所述方法还包括:
步骤S31、如果第二线程的传输任务完成,确定所述目标数据对应的线程中传输速度最小的第三线程;
这里,所述第二线程指的是所有线程中的任一线程。
步骤S32、确定所述第三线程中未传输的剩余数据;
步骤S33、利用所述第二线程传输所述剩余数据。
基于前述的实施例,本申请实施例再提供一种数据传输方法,所述方法包括:
步骤S331、确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
步骤S332、检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
步骤S333、确定所述N条数据传输通道的带宽总量;
步骤S334、利用公式
Figure BDA0002765645430000091
确定第i条数据传输通道上线程的数量;
其中,Mi为所述第i条数据传输通道上线程的数量,M为所述目标数据的线程的数量,Wi为所述第i条数据传输通道的带宽;
步骤S335、为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输;
步骤S336、在所述目标数据的传输过程中,按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,得到检测结果;
步骤S337、根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整;
步骤S338、利用公式
Figure BDA0002765645430000092
确定当前时刻的带宽利用率;
步骤S339、根据所述带宽利用率,调整所述预设时间间隔;
其中,P为当前时刻的带宽利用率,F为当前时刻所述目标数据中已传输数据的大小,T为传输所述已传输数据所耗费的时间,Wi为所述第i条数据传输通道的带宽;
步骤S340、如果第一线程发起连接链路建立请求,确定所述请求中请求地址携带的参数信息;
步骤S341、如果所述参数信息与已存在的第一连接的参数信息匹配,将所述第一连接作为所述第一线程的连接链路;
其中,所述参数信息至少包括:互联网协议地址、域名和网络类型。
步骤S342、如果第二线程的传输任务完成,确定所述目标数据对应的线程中传输速度最小的第三线程;
步骤S343、确定所述第三线程中未传输的剩余数据;
步骤S344、利用所述第二线程传输所述剩余数据。
这里,考虑到实际的带宽一直波动,因此每个下载线程独立测速,当一个下载线程完成时,接替当前下载最慢的线程,以此类推,直至完成。
在一些实施例中,所述N条数据传输通道对应的链路聚合在所述终端的应用层实现。
这里,所述N条数据传输通道对应的链路聚合在所述终端的应用层实现,并且,通过应用层来发起和调度所述数据传输方法中的步骤(即在应用层来管理多个数据传输通道,并观察它们的状态以及选择使用哪个网络)。如此,能够通过层层API调用,最终实现了应用层对于下载使用的网络智能调度策略,充分发挥应用层SLA的优势,在不依赖系统和服务的前提下实现功能,以及快速灵活的迭代。
在一些实施例中,所述终端包括:数据网络对应的数据传输通道、第一无线网络对应的数据传输通道和第二无线网络对应的数据传输通道。
基于前述的实施例,本申请实施例再提供一种数据传输方法,所述数据传输方法主要应用于下载场景。下载场景是对速度性能指标非常敏感的网络使用场景,因此本申请实施例中通过使用应用层SLA技术实现三通道下载,所述三通道可以包括终端上的移动数据对应的传输通道,以及两个无线网络对应的传输通道。图4为本申请实施例三通道下载的示意图,如图4所示,终端中包括三条连接链路,即第一连接链路41、第二连接链路42和第三连接链路43。并且主要的实现均在应用层44完成,通过层层API(Application ProgrammingInterface,应用程序接口)调用,最终实现了应用层44对于下载使用的网络智能调度策略。这里,所述主要的实现均在应用层44完成,本质上来说指的是通过应用层44来发起和调度,同时在传输的过程中对每条连接链路都进行实测吞吐量。也就是说,终端的应用层44来管理所述三条连接链路对应的网络,观察所述三条连接链路对应的网络的状态并且根据一定的策略选择网络的使用情况。当然,在数据传输的过程中,除了所述应用层44,还包括所述三条连接链路各自对应的TCP协议层45、IP(Internet Protocol,网际互联协议)协议层46和NIC 47(network interface controller,网络适配器)。
下面,从各个方面对本申请实施例中关于下载场景的数据传输方法进行说明。当然,本申请实施例中的方法同样适用于其他的数据传输场景。
(1)分层设计:
应用层下载SLA的分层设计从下到上分别是Linux内核、安卓系统架构、网络模块和下载模块。其中,Linux内核和安卓系统架构实际是属于系统的。Linux内核主要负责网络的物理连接,包括收发数据包。安卓系统架构主要负责将网络连接能够做一下封装,封装成接口。网络模块主要负责网络监听、网络管理、连接管理。下载模块主要负责文件分片策略,连接调度策略。图5为本申请实施例终端设备的系统架构示意图,如图5所示,所述终端设备的系统架构主要包括Download Module 501(下载模块501)、Network Module 502(网络模块502)、Android Framework 503(安卓架构503)和Linux Kernel 504(Linux内核504)。其中,所述下载模块501包括:Speed Monitor(速度监控器)、Retry Strategy(重试策略模块)、File Splitter(文件分割模块)、Job Persistence(任务持久化模块)、DownloadThread Manager(下载线程管理器)和Download Thread(下载线程)。所述网络模块502包括:Network Monitor(网络监控器)、Network Manager(网络管理器)和Connection Pool(连接池)。所述安卓架构503包括:Connectivity Manager(连接管理器)、Network(网络)和Socket(套接字)。所述Linux内核504包括:TCP协议、WIFI1(无线网络1)、WIFI2(无线网络2)和LTE网络。这里,对一些模块进行说明,下载模块501中:速度监控器主要用于对下载速度进行监测,重试策略模块主要用于在一段时间后根据所述下载速度重新进行下载策略的调整。文件分割模块,主要用于对下载的数据进行分割,将所述下载数据分割为多个线程,每个线程中下载一部分数据。任务持久化模块主要用于保存进度之类。所述网络模块502中:连接池主要用于保存已建立的连接链路。
(2)连接监听和管理:
图6为本申请实施例连接监听的实现流程示意图,如图6所示,所述连接监听的实现流程包括:步骤S601、在网络变化的情况下,检测是否打开WIFI开关;步骤S602、如果WIFI开关打开,则检测WIFI网络是否连接;步骤S603、如果WIFI网络已连接,则通知WIFI网络处于可用状态;步骤S604、如果WIFI开关未打开,或者WIFI开关打开但是处于未连接状态,则通知WIFI网络处于不可用状态;步骤S605、在网络变化的情况下,检测是否打开数据开关;步骤S606、如果数据开关打开,则检测数据网络是否连接;步骤S607、如果数据网络已连接,或者数据网络未连接但是请求使用数据网络成功,则通知数据网络处于可用状态;步骤S608、如果数据开关未打开,或者数据网络未连接且请求使用数据网络失败,则通知数据网络处于不可用状态。
(3)网络获取:
根据当前网络状态(所述网络状态与网络质量相关),返回可用的网络,如果请求网络不可用,则使用默认网络。
举例来说,图7为本申请实施例网络获取的实现流程示意图,如图7所示,所述网络获取的实现流程包括:步骤S701、请求WIFI网络;步骤S702、如果所述WIFI网络可用,返回可用的WIFI网络;步骤S703、请求LTE网络;步骤S704、如果所述LTE网络不可用,返回默认网络,所述默认网络为所述WIFI网络。
这里,确定所述WIFI网络或者所述LTE网络是否为可用网络,是在图5中网络模块502的网络管理器中实现的。
(4)连接复用:
在实际的下载过程中,连接链路的建立是有成本的,因此需要设计连接复用。本申请实施例中,所述连接复用的原理是:下载过程中涉及到的网络地址是由四元组确定的,即客户端的IP地址、客户端的端口、待下载数据所在服务端的IP地址和待下载数据所在服务端的端口,其中,所述客户端可以为终端。在本申请实施例的三通道下载技术中,客户端的应用层实现的三通道SLA,实际上是建立了三条连接链路,只是请求到所述服务端的源网络地址不同。例如,三条连接链路,一条使用的是数据网络对应的连接链路,另一条使用的是WIFI网络1对应的连接链路,另一条使用的是WIFI网络2对应的连接链路。则这三条链路对应的运营商肯定是不一样的,进而服务端的网络地址(即源网络地址)也肯定是不一样的。图8为本申请实施例三通道下载的网络架构示意图,如图8所示,客户端801支持三个网络,分别是网络A、网络B和网络C。分配服务器802主要用于将下载数据进行分配(即分别分配给不同的网络进行传输),并控制各线程(一个下载数据可以被分割成多个数据块,每一数据块对应一个线程)通过相应的数据传输通道(每个网络都对应一个数据传输通道)建立连接链路,通过各连接链路分块下载所述数据。其中,通过网络A对应的数据传输通道可以建立连接链路A,通过网络B对应的数据传输通道可以建立连接链路B,通过网络C对应的数据传输通道可以建立连接链路C。
本申请实施例中,为了支持连接复用,设计一个连接池,所述连接池支持源IP/端口/网络与目的IP/端口/网络的映射模式。
连接池的具体设计如下:请求地址和连接池中的连接一一对应,即只有IP地址/域名/网络与目的IP地址/域名/网络一致才能够复用连接。其中,所述请求地址,指的是数据所在服务器对应的请求地址。连接复用指的是复用上一次创建的已有连接。向服务端发起连接建立请求后,所述连接建立请求中携带地址信息(即请求地址),所述地址信息中包括IP地址、域名和网络,其中,网络为当前使用的网络,IP地址和域名可以看作为服务端的标识。
举例来说,图9为本申请实施例连接复用的原理示意图,如图9所示,请求地址中包括三个参数值,第一个参数值是域名“www.A.com”,第二个参数值是IP地址“8.8.8.8”,第三个参数值是网络“蜂窝网”。连接池中的第一连接也包括三个参数值,第一个参数值是域名“www.A.com”,第二个参数值是IP地址“8.8.8.8”,第三个参数值是网络“无线网络”。可以看出,请求地址中的第三个参数值与第一连接中的第三个参数值并不相同,因此,所述请求地址与所述第一连接不匹配,无法复用。连接池中的第二连接也包括三个参数值,第一个参数值是域名“www.A.com”,第二个参数值是IP地址“8.8.8.8”,第三个参数值是网络“蜂窝网”。可以看出,请求地址中的三个参数值与第二连接中的三个参数值都相同,因此,所述请求地址与所述第二连接匹配,可以对所述第二连接进行复用。
本申请实施例中,通过设计一个连接池,能够使得大部分请求使用连接池中的已有连接,减少下载请求的时间。
(5)网络分配规则:
初始线程数:满足条件:3*n≤CPU核数,n为大于等于1的自然数。其中,3*n个线程里面2*n个线程使用无线WIFI网络、n个线程使用数据网络(需要说明的是,2*n个线程使用无线WIFI网络、n个线程使用数据网络仅为初始非配规则)。
举例来说,终端的CPU核数为8,则满足条件“3*n≤CPU核数”时,n的最大取值为2,则总的线程数为6个。其中,4个线程使用无线WIFI网络,2个线程使用数据网络。又如CPU核数为12,则满足条件“3*n≤CPU核数”时,n的最大取值为4,则总的线程数为12个。其中,8个线程使用无线WIFI网络,4个线程使用数据网络。
这里,CPU核数指的是CPU处理核心的数量,有单核、双核、多核等。多核CPU相当于在一个CPU上集成多个完整的计算引擎(即核心),它们共享缓存、内存、寄存器等。
(6)带宽利用率:
假设无线WIFI网络1、无线WIFI网络2和数据网络的带宽分别为W1、W2和W3。下载一个大小为F的文件耗时为T,则下载速度为S=F/T。因此,本申请实施例中,带宽利用率定义为:P=S/(W1+W2+W3)=F/T(W1+W2+W3)。
最优带宽效率多网络下载模型举例如下:以一个无线WIFI网络和一个数据网络为例,三个网络同理。假设所述无线WIFI网络的带宽为W1,所述数据网络的带宽为W2,待下载文件大小为F,下载速度W1>=W2;所述待下载文件建立的模拟线程数为2。则理想状态下,所述无线WIFI网络下载的数据量为F*W1/(W1+W2),所述数据网络下载的数据量F*W2/(W1+W2)时,带宽效率最优。其中,下载时间:T=F/(W1+W2),下载的平均下载速度:S=W1+W2
举例来说,图10为本申请实施例最优带宽效率的分配模型示意图,如图10所示,一个30M(兆)大小的文件,当无线WIFI网络带宽为1M和数据网络带宽为2M时,如果文件分配为10M和20M则下载速度达到最大3M。其中,坐标图101表示了无线WIFI网络的数据下载情况,坐标图102表示了数据网络的数据下载情况,坐标103表示了终端在多通道即两个网络下的数据下载情况。可以看出,当采用两个通道同时下载文件,且无线WIFI网络负责下载所述文件中的10M,数据网络负责下载所述文件中的20M时,文件的下载速度最快,整个文件的下载时间最短。
(7)调度策略:
本申请实施例提出了一种基于测速动态分配数据的数据传输方法。
举例来说,假设下载600M的文件,无线WIFI网络1的带宽为3M,无线WIFI网络2的带宽为2M,数据网络的带宽为1M,那么基于最优带宽效率多网络下载模型中的结论,应该给上述三个网络分别分配300M,200M,100M的下载数据对应的下载速度最快。
然而在数据下载之前,并不知道实际带宽,因此需要在启动下载后,每隔5秒测一次速度,基于每个网络的测速结果,动态分配线程。假设初始线程数为6个,每个线程下载100M,则分配线程使用的网络即可改变文件分配的大小。例如:第一次测速结果为无线WIFI网络1的带宽为3.4M、无线WIFI网络2的带宽为1.6M、数据网络的带宽为1.4M,总带宽6.4M。
对此,采用上述的基于测速动态分配数据的数据传输方法,给无线WIFI网络1分配的线程数为:6个*(3.4M/6.4M)=3.2个,四舍五入为3个。给无线WIFI网络2分配的线程数为:6个*(1.6M/6.4M)=1.5个,四舍五入为2个。给数据网络分配的线程数为:6个*(1.4M/6.4M)=1.3个,四舍五入为1个。因此,为了接近最优带宽效率,按无线WIFI网络1包括3个线程,无线WIFI网络2包括2个线程,数据网络包括1个线程,来重新分配线程使用的网络。并且,在每隔5s对三个网络的带宽速度测量完后,都按上述方法重新计算每个网络的线程分配数量。当然,本申请实施例中,如果确定出的线程数量不是自然数,除了可以用四舍五入的方法将其“取整”,也可以采用其他的计数保留法。
需要说明的是,本申请实施例中,为了保证三个网络同时下载覆盖大多数时间,并且考虑实际情况,如果某个网络计算后的线程数小于0.5,并不根据四舍五入法将其调整为0。而是当且仅当计算后的线程数小于0.1时,才将该网络的线程数调整为0。如此,能够使用多个网络同时下载,提高总的下载速度,缩短下载时间。
并且,考虑到实际的带宽一直在波动,每个下载线程独立测速,当一个下载线程完成时,接替当前下载最慢的线程,以此类推,直至完成。
表1本申请实施例数据传输方法与相关方法的对比
对比项/方案 MPTCP 系统级SLA 本申请方案
服务端是否需要修改
依赖安卓系统
带宽利用率
升级迭代成本 极高
从表1中可以看出,本申请实施例中的数据传输方案,相比于现有技术中的MPTCP方案,服务端是不需要修改的、且不依赖于安卓系统,同时具有很低的升级迭代成本。相比于现有技术中的系统级SLA方案,不依赖于安卓系统、且带宽利用率高,同时具有很低的升级迭代成本。
也就是说,本申请实施例中的数据传输方案,(1)跳出了现有方案的局限和缺点,发挥了应用层SLA的优势,能够在不依赖系统和服务的前提下实现功能,并且能够快速灵活迭代。(2)定义了带宽利用率指标,制定了合理、灵活的下载策略,能够应对网络质量的动态变化,实现带宽利用率最优,以便达到下载速度最优的目的。(3)利用安卓设备的硬件,同时使用三个网络带宽,拓展了带宽极限。
如此,可以提升下载速度峰值,下载速度的峰值相当于三个带宽之和,平均下载速度提升30%以上。相应地也减少了下载时间,将下载时间减少了23%以上。同时,三通道增加了客户端网络的可用性,提升了下载成功率,相同时间内增加了软件商店的分发数量。
基于前述的实施例,本申请实施例提供一种数据传输装置,该装置包括所包括的各单元、以及各单元所包括的各模块、以及各模块所包括的各部件,可以通过终端设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为CPU、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或FPGA(Field Programmable Gate Array,现场可编程门阵列)等。
图11为本申请实施例数据传输装置的组成结构示意图,如图11所示,所述数据传输装置110包括:
第一确定单元111,用于确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
检测单元112,用于检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
第二确定单元113,用于根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
控制单元114,用于为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
在一些实施例中,所述装置110还包括:
间隔检测单元,用于在所述目标数据的传输过程中,按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,得到检测结果;
第一调整单元,用于根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整。
在一些实施例中,所述第二确定单元113,包括:
带宽总量确定模块,用于确定所述N条数据传输通道的带宽总量;
数量确定模块,用于根据所述目标数据的线程的数量、所述每一数据传输通道的带宽和所述带宽总量,确定所述每一数据传输通道上线程的数量。
在一些实施例中,所述数量确定模块,包括:
数据确定部件,用于利用公式
Figure BDA0002765645430000151
确定第i条数据传输通道上线程的数量;
其中,Mi为所述第i条数据传输通道上线程的数量,M为所述目标数据的线程的数量,Wi为所述第i条数据传输通道的带宽。
在一些实施例中,所述装置110还包括:
带宽利用率确定单元,用于利用公式
Figure BDA0002765645430000152
确定当前时刻的带宽利用率;
第二调整单元,用于根据所述带宽利用率,调整所述预设时间间隔;
其中,P为当前时刻的带宽利用率,F为当前时刻所述目标数据中已传输数据的大小,T为传输所述已传输数据所耗费的时间,Wi为所述第i条数据传输通道的带宽。
在一些实施例中,所述装置110还包括:
参数确定单元,用于如果第一线程发起连接链路建立请求,确定所述请求中请求地址携带的参数信息;
处理单元,用于如果所述参数信息与已存在的第一连接的参数信息匹配,将所述第一连接作为所述第一线程的连接链路;
其中,所述参数信息至少包括:互联网协议地址、域名和网络类型。
在一些实施例中,所述装置110还包括:
线程确定单元,用于如果第二线程的传输任务完成,确定所述目标数据对应的线程中传输速度最小的第三线程;
剩余数据确定单元,用于确定所述第三线程中未传输的剩余数据;
替换单元,用于利用所述第二线程传输所述剩余数据。
在一些实施例中,所述N条数据传输通道对应的链路聚合在所述终端的应用层实现。
在一些实施例中,所述终端包括:数据网络对应的数据传输通道、第一无线网络对应的数据传输通道和第二无线网络对应的数据传输通道。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据传输方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、ROM(Read Only Memory,只读存储器)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种终端,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的数据传输方法中的步骤。
对应地,本申请实施例提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据传输方法中的步骤。
这里需要指出的是:以上存储介质和终端实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和终端设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图12为本申请实施例终端的一种硬件实体示意图,如图12所示,该终端120的硬件实体包括:处理器121、通信接口122和存储器123,其中
处理器121通常控制终端120的总体操作。
通信接口122可以使终端120通过网络与其他设备或服务器通信。
存储器123配置为存储由处理器121可执行的指令和应用,还可以缓存待处理器121以及终端120中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过FLASH(闪存)或RAM(Random Access Memory,随机访问存储器)实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种数据传输方法,其特征在于,所述方法包括:
确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标数据的传输过程中,按预设时间间隔对所述N条数据传输通道中每一数据传输通道的带宽进行检测,得到检测结果;
根据所述检测结果,对每一数据传输通道被分配的线程的数量进行调整。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
利用公式
Figure FDA0002765645420000011
确定当前时刻的带宽利用率;
根据所述带宽利用率,调整所述预设时间间隔;
其中,P为当前时刻的带宽利用率,F为当前时刻所述目标数据中已传输数据的大小,T为传输所述已传输数据所耗费的时间,Wi为所述第i条数据传输通道的带宽。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量,包括:
确定所述N条数据传输通道的带宽总量;
根据所述目标数据的线程的数量、所述每一数据传输通道的带宽和所述带宽总量,确定所述每一数据传输通道上线程的数量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标数据的线程的数量、所述每一数据传输通道的带宽和所述带宽总量,确定所述每一数据传输通道上线程的数量,包括:
利用公式
Figure FDA0002765645420000012
确定第i条数据传输通道上线程的数量;
其中,Mi为所述第i条数据传输通道上线程的数量,M为所述目标数据的线程的数量,Wi为所述第i条数据传输通道的带宽。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果第一线程发起连接链路建立请求,确定所述请求中请求地址携带的参数信息;
如果所述参数信息与已存在的第一连接的参数信息匹配,将所述第一连接作为所述第一线程的连接链路;
其中,所述参数信息至少包括:互联网协议地址、域名和网络类型。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果第二线程的传输任务完成,确定所述目标数据对应的线程中传输速度最小的第三线程;
确定所述第三线程中未传输的剩余数据;
利用所述第二线程传输所述剩余数据。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述N条数据传输通道对应的链路聚合在所述终端的应用层实现。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述终端包括:数据网络对应的数据传输通道、第一无线网络对应的数据传输通道和第二无线网络对应的数据传输通道。
10.一种数据传输装置,其特征在于,所述装置包括:
第一确定单元,用于确定传输目标数据的线程的数量,并为所述目标数据建立所述数量的线程;
检测单元,用于检测终端上N条数据传输通道中每一数据传输通道的带宽,N为大于1的自然数;
第二确定单元,用于根据所述目标数据的线程的数量和所述每一数据传输通道的带宽,确定所述每一数据传输通道上线程的数量;
控制单元,用于为所述每一数据传输通道分配对应数量的线程,并控制所述N条数据传输通道同时进行所述目标数据的传输。
11.一种终端,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至9任一项所述数据传输方法中的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至9任一项所述数据传输方法中的步骤。
CN202011232397.9A 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质 Active CN112422251B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011232397.9A CN112422251B (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质
CN202310268133.6A CN116318585A (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011232397.9A CN112422251B (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310268133.6A Division CN116318585A (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质

Publications (2)

Publication Number Publication Date
CN112422251A true CN112422251A (zh) 2021-02-26
CN112422251B CN112422251B (zh) 2023-03-31

Family

ID=74782034

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011232397.9A Active CN112422251B (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质
CN202310268133.6A Pending CN116318585A (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310268133.6A Pending CN116318585A (zh) 2020-11-06 2020-11-06 数据传输方法及装置、终端、存储介质

Country Status (1)

Country Link
CN (2) CN112422251B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438324A (zh) * 2021-08-25 2021-09-24 北京拙成科技发展有限公司 一种数字信息传输方法及系统
CN116450564A (zh) * 2023-06-15 2023-07-18 支付宝(杭州)信息技术有限公司 一种多处理卡间的数据传输方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091922A1 (en) * 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
CN105101173A (zh) * 2015-07-20 2015-11-25 努比亚技术有限公司 基于多数据通道的数据加载装置和方法
CN110225291A (zh) * 2019-05-22 2019-09-10 深圳壹账通智能科技有限公司 一种数据传输方法、装置、及计算机设备
CN110674942A (zh) * 2019-09-26 2020-01-10 深圳前海达闼云端智能科技有限公司 一种带宽管理的方法、装置、电子设备和可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070091922A1 (en) * 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
CN105101173A (zh) * 2015-07-20 2015-11-25 努比亚技术有限公司 基于多数据通道的数据加载装置和方法
CN110225291A (zh) * 2019-05-22 2019-09-10 深圳壹账通智能科技有限公司 一种数据传输方法、装置、及计算机设备
CN110674942A (zh) * 2019-09-26 2020-01-10 深圳前海达闼云端智能科技有限公司 一种带宽管理的方法、装置、电子设备和可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张箐: "影响卫星数据文件地面传输效率的因素", 《遥感信息》 *
郑石平等: "基于TCP的跨网段文件传输", 《计算机工程与设计》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438324A (zh) * 2021-08-25 2021-09-24 北京拙成科技发展有限公司 一种数字信息传输方法及系统
CN116450564A (zh) * 2023-06-15 2023-07-18 支付宝(杭州)信息技术有限公司 一种多处理卡间的数据传输方法和系统
CN116450564B (zh) * 2023-06-15 2023-11-28 支付宝(杭州)信息技术有限公司 一种多处理卡间的数据传输方法和系统

Also Published As

Publication number Publication date
CN112422251B (zh) 2023-03-31
CN116318585A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
EP3530037B1 (en) System and method for network slice management in a management plane
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
US9652150B2 (en) Global memory sharing method and apparatus, and communications system
EP3115897B1 (en) Intelligent load balancer selection in a multi-load balancer environment
CN103051564B (zh) 资源动态调配的方法和装置
US10652360B2 (en) Access scheduling method and apparatus for terminal, and computer storage medium
US20200015102A1 (en) Network slice instance management method, apparatus, and system
WO2015141337A1 (ja) 受信パケット分散方法、キュー選択器、パケット処理装置、および記録媒体
CN112422251B (zh) 数据传输方法及装置、终端、存储介质
KR102172169B1 (ko) 분산형 클라우드 기반 어플리케이션 실행 시스템, 이에 적용되는 장치 및 장치의 동작 방법
CN112905305B (zh) 基于vpp的集群式虚拟化数据转发方法、装置及系统
EP3605991B1 (en) Data distribution method, device and system
CN112703774B (zh) 管理电信网络中的处理资源的方法和电信网络及存储介质
Albert et al. An efficient kernel FCM and artificial fish swarm optimization-based optimal resource allocation in cloud
CN105024842A (zh) 服务器的扩容方法及装置
CN111371694B (zh) 一种分流方法、装置和系统、处理设备和存储介质
US20160254958A1 (en) Method, apparatus and system for virtualizing a policy and charging rules function
CN110198267A (zh) 一种流量调度方法、系统及服务器
Li et al. Dynamic computation offloading based on graph partitioning in mobile edge computing
CN104714845A (zh) 资源动态调整方法、装置及多内核操作系统
WO2022142277A1 (zh) 一种通信架构的动态调节方法及系统
WO2017054631A1 (zh) 配置资源的方法及网络设备
CN109739634A (zh) 一种原子任务执行方法及装置
KR20170028228A (ko) 적응적으로 캐시를 관리하는 방법 및 장치
CN112749012A (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