CN110768900B - 一种数据传输方法及电子设备 - Google Patents
一种数据传输方法及电子设备 Download PDFInfo
- Publication number
- CN110768900B CN110768900B CN201910880227.2A CN201910880227A CN110768900B CN 110768900 B CN110768900 B CN 110768900B CN 201910880227 A CN201910880227 A CN 201910880227A CN 110768900 B CN110768900 B CN 110768900B
- Authority
- CN
- China
- Prior art keywords
- tcp connection
- tcp
- kpi
- connection
- mptcp
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0011—Control or signalling for completing the hand-off for data sessions of end-to-end connection
- H04W36/0027—Control or signalling for completing the hand-off for data sessions of end-to-end connection for a plurality of data sessions of end-to-end connections, e.g. multi-call or multi-bearer end-to-end data connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0083—Determination of parameters used for hand-off, e.g. generation or modification of neighbour cell lists
- H04W36/0085—Hand-off measurements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/24—Reselection being triggered by specific parameters
- H04W36/30—Reselection being triggered by specific parameters by measured or perceived connection quality data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/08—Upper layer protocols
- H04W80/12—Application layer protocols, e.g. WAP [Wireless Application Protocol]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
Abstract
一种数据传输方法及电子设备,涉及终端技术领域。该方法包括电子设备针对第一应用程序,基于第一TCP连接和第二TCP连接进行数据传输,第一TCP连接和第二TCP连接是基于MPTCP建立的;监测第一TCP连接的KPI、以及第二TCP连接的KPI;当第一TCP连接的KPI与第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,第三TCP连接和第四TCP连接为基于MPHTTP建立的。这种技术方案有助于在电子设备支持MPTCP和MPHTTP时,能够提高数据的传输效率。
Description
技术领域
本申请涉及终端技术领域,特别涉及一种数据传输方法及电子设备。
背景技术
多路聚合带宽指的是聚合两路或更多路传输控制协议(transmission controlprotocol,TCP)连接的带宽,以提高数据的传输速率。例如,用户在观看视频时,手机通过无线保真(wireless fidelity,Wi-Fi)网络和蜂窝网络分别对应的TCP连接同时传输数据流,从而达到聚合带宽的目的,有助于提高下载速率,减少卡顿,使得视频播放更加流畅。
其中,基于多路径传输控制协议(multipath transmission control protocol,MPTCP)可以在传输层实现多路聚合带宽,基于多路径超文本传输协议(multipathhypertext transfer protocol,MPHTTP)可以在应用层实现多路聚合带宽。然而,在手机同时支持MPTCP和MPHTTP的情况下,对于如何实现多路聚合带宽,以提高数据流传输速率的研究,对于提高用户体验有重要意义。
发明内容
本申请实施例提供一种数据传输方法及电子设备,有助于在电子设备支持MPTCP和MPHTTP时,能够提高数据的传输效率。
第一方面,本申请实施例提供的一种数据传输的方法,所述方法包括:
电子设备针对第一应用程序,基于第一TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于MPTCP建立的TCP连接;电子设备监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于MPHTTP建立的TCP连接。
由于电子设备在基于MPTCP建立的第一TCP连接和第二TCP连接之间的KPI差异较大时,使用第一TCP连接和第二TCP连接进行数据传输时收益较小,甚至为负收益,而本申请实施例能够在第一TCP连接和第二TCP连接之间的KPI差异较大时切换到MPHTTP上,因而有助于提高数据传输效率。
在一种可能的设计中,电子设备当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,回退所述第一TCP连接和所述第二TCP连接中的一个TCP连接、以及建立第三TCP连接,所述第四TCP连接为所述第一TCP连接和所述第二TCP连接中未被回退的TCP连接。从而有助于简化实现方式。
在一种可能的设计中,所述第一TCP连接和所述第二TCP连接中被回退的TCP连接为所述第一TCP连接和所述第二TCP连接中带宽较小的TCP连接。有助于进一步提高数据传输效率。
在一种可能的设计中,所述电子设备监测所述第三TCP连接的KPI和所述第四TCP连接的KPI;当所述第三TCP连接的KPI与所述第四TCP连接的KPI之间的差异未超过第二临界条件时,切换到所述第一TCP连接和所述第二TCP连接上。
由于电子设备在基于MPHTTP建立的第三TCP连接和第四TCP连接之间的KPI差异较小时,使用第三TCP连接和第四TCP连接进行数据传输时收益较小,甚至为负收益,而本申请实施例能够在第三TCP连接和第四TCP连接之间的KPI差异较大时切换到MPTCP上,因而有助于提高数据传输效率。
在一种可能的设计中,所述电子设备在内核空间中检测到所述第一应用程序需要发送的数据,将所述数据导流到用户空间中;并对所述用户空间中的数据进行处理,并基于所述第一TCP和所述第二TCP进行数据传输。从而有助于使得电子设备能够在MPTCP和MPHTTP之间切换时能够不中断数据传输。
第二方面,本申请实施例提供的另一种数据传输的方法,所述方法包括:
电子设备针对第一应用程序,基于第一TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于MPHTTP建立的TCP连接;电子设备监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异未超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于MPTCP建立的TCP连接。
由于电子设备在基于MPHTTP建立的第一TCP连接和第二TCP连接之间的KPI差异较小时,使用第一TCP连接和第二TCP连接进行数据传输时收益较小,甚至为负收益,而本申请实施例能够在第一TCP连接和第二TCP连接之间的KPI差异较小时切换到MPTCP上,因而有助于提高数据传输效率。
第三方面,本申请实施例提供的一种电子设备,包括处理器和收发器;
所述收发器用于针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径传输控制协议MPTCP建立的TCP连接;
所述处理器,用于监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;以及当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径超文本传输协议MPHTTP建立的TCP连接。
在一种可能的设计中,所述处理器,具体用于当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,回退所述第一TCP连接和所述第二TCP连接中的一个TCP连接、以及建立第三TCP连接,所述第四TCP连接为所述第一TCP连接和所述第二TCP连接中未被回退的TCP连接。
在一种可能的设计中,所述第一TCP连接和所述第二TCP连接中被回退的TCP连接为所述第一TCP连接和所述第二TCP连接中带宽较小的TCP连接。
在一种可能的设计中,所述处理器还用于:监测所述第三TCP连接的KPI和所述第四TCP连接的KPI;当所述第三TCP连接的KPI与所述第四TCP连接的KPI之间的差异未超过第二临界条件时,切换到所述第一TCP连接和所述第二TCP连接上。
在一种可能的设计中,所述处理器还用于:在内核空间中检测到所述第一应用程序需要发送的数据,将所述数据导流到用户空间中;对所述用户空间中的数据进行处理,触发所述收发器基于所述第一TCP和所述第二TCP进行数据传输。
第四方面,本申请实施例提供的另一种电子设备,包括处理器和收发器;
所述收发器,用于针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径超文本传输协议MPHTTP建立的TCP连接;
所述处理器,用于监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异未超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径传输控制协议MPTCP建立的TCP连接。
第五方面,本申请实施例提供的一种电子设备,包括执行本申请实施例上述各个方面以及各个方面涉及的任一可能设计的方法的装置。
第六方面,本申请实施例提供的一种芯片,包括:处理器和接口,用于从存储器中调用并运行所述存储器中存储的程序指令,执行本申请实施例上述各个方面以及各个方面涉及的任一可能设计的方法。
第七方面,本申请实施例的一种计算机存储介质,该计算机存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得电子设备执行本申请实施例上述各个方面以及各个方面涉及的任一可能设计的方法。
第八方面,本申请实施例的一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本申请实施例上述各个方面以及各个方面涉及的任一可能设计的方法。
另外,第三方面至第八方面中任一种可能设计方式所带来的技术效果可参见方法部分相关中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例的一种通信系统的架构示意图;
图2为本申请实施例的一种数据传输的示意图;
图3A为本申请实施例的MPTCP所在协议栈的示意图;
图3B为本申请实施例的MPHTTP所在协议栈的示意图;
图4为本申请实施例的另一数据传输的示意图;
图5为本申请实施例的一种电子设备的硬件架构示意图;
图6为本申请实施例的一种软件架构示意图;
图7为本申请实施例的一种数据传输方法的流程示意图;
图8为本申请实施例的另一数据传输方法的流程示意图;
图9为本申请实施例的一种数据传输的示意图;
图10为本申请实施例的另一数据传输的示意图;
图11为本申请实施例的一种装置的结构示意图;
图12为本申请实施例的另一装置的结构示意图。
具体实施方式
目前,终端可以接入Wi-Fi网络和蜂窝网络。终端在接入Wi-Fi网络和蜂窝网络的情况下,通常,使用Wi-Fi网络和蜂窝网络中其中一个网络为用户提供服务。基于MPTCP或者MPHTTP,终端在接入Wi-Fi网络和蜂窝网络时,可以同时使用Wi-Fi网络和蜂窝网络为用户提供服务。具体的,终端可以通过聚合Wi-Fi网络和蜂窝网络分别对应的TCP连接的带宽,进行相应的传输,有助于提高传输的速率,减少卡顿,提高用户体验。
其中,基于MPTCP是在传输层实现多路聚合带宽的,基于MPHTTP是在应用层实现多路聚合带宽的。在终端支持MPTCP和MPHTTP的情况下,为了使得终端能够在使用多路聚合带宽时,提高数据流的传输效率,本申请实施例提供了一种数据传输的方法。
应理解,本申请中除非另有说明,“/”表示或的意思。例如,A/B可以表示A或B。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B三种情况。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。
在本申请中,“示例的”、“在一些实施例中”、“在另一些实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
另外,本申请中涉及的“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,也不能理解为指示或暗示顺序。
如图1所示,为本申请实施例适用的一种无线通信系统的网络架构示意图。无线通信系统中终端和应用服务器之间进行数据交互,终端通过空口接入到无线接入网(radioaccess network,RAN),经由核心网连接到应用服务器,其中,终端与RAN之间的网络可称为无线网络,RAN与应用服务器之间的网络可称为有线网络。应用服务器与终端之间建立TCP连接并进行数据传输。
其中,在终端支持MPTCP或者MPHTTP的情况下,终端与应用服务器之间的TCP连接可以包括两个或多个通信网络分别对应的TCP连接。以终端与应用服务器之间的TCP连接包括第一通信网络对应的TCP连接、和第二通信网络对应的TCP连接为例,第一通信网络可以为无线局域网,例如Wi-Fi网络、蓝牙网络、zigbee网络或近场通信(near fieldcommunication,NFC)网络等近距离通信网络。第二通信网络可以为蜂窝网络,例如,第三代移动通信技术(3rd-generation wireless telephone technology,3G)网络、第四代移动通信技术(the 4th generation mobile communication technology,4G)网络、第五代移动通信技术(5th-generation mobile communication technology,5G)网络、未来演进的公共陆地移动网络(public land mobile network,PLMN)或因特网等。
例如,以第一通信网络为Wi-Fi网络,第二通信网络为长期演进(long termevolution,LTE)网络为例,如图2所示,终端接入Wi-Fi网络和LTE网络,可以同时使用Wi-Fi网络和LTE网络,为用户提供上网服务。其中,终端接入Wi-Fi网络,通过演进的分组数据网关(evolved packet data gateway,ePDG)或被信任网关(trusted gateway,TGW)与应用服务器进行数据传输;终端接入LTE网络,通过服务网关(serving Gateway,SGW)或分组数据网关(packet data network gateway,PGW)与应用服务器进行数据传输。
图3A示出了MPTCP所在的网络协议栈的示意图。在MPTCP所在的网络协议栈中,传输层被划分为两个子层:MPTCP层和TCP层,应用层的数据流经由MPTCP层分解为两个TCP子流独立传送。图3B示出了MPHTTP所在的网络协议栈的示意图。在MPHTTP所在的网络协议栈中,应用层被划分为MPHTTP层和HTTP层。数据流经过MPHTTP层分解为两个HTTP子流独立传送。
图4示出了MPTCP的使用场景示意图。图4中终端和应用服务器之间建立了两条TCP连接,一个Wi-Fi网络对应的TCP连接,一个LTE网络对应的TCP连接。其中,Wi-Fi网络对应的TCP连接使用Wi-Fi网络资源,LTE网络对应的TCP连接使用LTE网络资源。终端在MPTCP层将数据流分解为两个TCP子流后通过这两个TCP连接分别独立传送至应用服务器。
应理解,本申请实施例的终端可以是还包含其他功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴设备(如智能手表)等。便携式电子设备的示例性实施例包括但不限于搭载或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本申请其他一些实施例中,上述终端也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
示例性地,以终端为电子设备100为例,对终端的硬件架构进行具体说明。如图5所示,电子设备100包括处理器110、内部存储器121、外部存储器接口122、摄像头130、显示屏140、传感器模块150、音频模块160、扬声器161、受话器162、麦克风163、耳机接口164、用户标识模块(subscriber identification module,SIM)卡接口171、通用串行总线(universal serial bus,USB)接口172、充电管理模块180、电源管理模块181、电池182、移动通信模块191和无线通信模块192。此外,在另一些实施例中,电子设备100还可以包括马达、指示器、按键等。
应理解,图5所示的硬件结构仅是一个示例。本申请实施例的电子设备可以具有比图中所示电子设备更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
其中,处理器110可以包括一个或多个处理单元。例如,处理器110可以包括应用处理器(application processor,AP)、调制解调器、图形处理器(graphics processingunit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、和/或神经网络处理器(neural-network processing unit,NPU)等。在具体实现时,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一些实施例中,处理器110中还可以设置缓存器,用于存储程序和/或数据。需要说明的是,本申请实施例中的程序又可以称之为程序指令、计算机程序、代码指令、指令等,对此不作限定。示例的,处理器110中的缓存器可以为高速缓冲存储器。该缓存器可以用于保存处理器110刚用过的、生成的、或循环使用的程序和/或数据。如果处理器110需要使用该程序和/或数据,可从该缓存器中直接调用。有助于减少了处理器110获取程序或数据的时间,从而有助于提高系统的效率。
内部存储器121可以用于存储程序和/或数据。在一些实施例中,内部存储器121包括存储程序区和存储数据区。其中,存储程序区可以用于存储操作系统(如android、ios等操作系统)、至少一个功能(通信功能、显示功能等)所需的程序等。存储数据区可以用于存储电子设备使用过程中所创建、采集的或者预先配置的数据(比如网络协议栈)等。示例的,处理器110可以通过调用内部存储器121中存储的程序和/或数据,使得电子设备执行相应的方法,从而实现一种或多种功能。例如,处理器110调用内部存储器中的某些程序和/或数据,使得电子设备执行本申请实施例中所提供的数据传输方法,从而有助于提高数据传输的效率。其中,内部存储器121可以采用高速随机存取存储器、和/或非易失性存储器等。例如,非易失性存储器可以包括一个或多个磁盘存储器件、闪存器件、和/或通用闪存存储器(universal flash storage,UFS)等中的至少一个。
外部存储器接口122可以用于连接外部存储卡(例如,Micro SD卡),实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口122与处理器110通信,实现数据存储功能。例如,电子设备100可以通过外部存储器接口122将图像、音乐、视频等文件保存在外部存储卡中。
摄像头130可以用于捕获动、静态图像等。通常情况下,摄像头130包括镜头和图像传感器。其中,物体通过镜头生成的光学图像投射到图像传感器上,然后转换为电信号,在进行后续处理。示例的,图像传感器可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。图像传感器把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。需要说明的是,本申请实施例中,电子设备100可以包括一个或多个摄像头130,对此不作限定。示例的,电子设备100包括5个摄像头130,例如,3个后置摄像头和2个前置摄像头。又示例的,电子设备100包括3个摄像头130,例如2个后置摄像头和1个前置摄像头。
显示屏140可以包括显示面板。用户可以根据自身的需要,使得显示屏140用于显示不同的用户界面,从而满足用户的需求。具体的,显示面板可以采用液晶显示屏(liquidcrystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emittingdiode,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、Miniled、MicroLed、Micro-oLed、量子点发光二极管(quantum dot light emitting diodes,QLED)等。示例的,电子设备100可以通过GPU、显示屏140、应用处理器等实现显示功能。
传感器模块150可以包括一个或多个传感器。例如,触摸传感器150A、压力传感器150B等。在另一些实施例中,传感器模块150还可以包括陀螺仪、加速度传感器、指纹传感器、环境光传感器、距离传感器、接近光传感器、骨传导传感器、温度传感器等中的一个或多个,对此不作限定。
触摸传感器150A也可称为“触控面板”。触摸传感器150A可以设置于显示屏140。当触摸传感器150A设置于显示屏140时,由触摸传感器150A与显示屏140组成触摸屏,也称“触控屏”。触摸传感器150A用于检测作用于其上或附近的触摸操作。触摸传感器150A可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。电子设备100可以通过显示屏140提供与触摸操作相关的视觉输出等。例如,电子设备100可以响应于触摸器150A检测到作用于其上或附近的触摸操作,进行界面切换,并在显示屏140上显示切换后的用户界面。在另一些实施例中,触摸传感器150A也可以设置于电子设备的表面,与显示屏140所处的位置不同。
压力传感器150B用于感受压力信号,可以将压力信号转换成电信号。示例的,压力传感器150B可以设置于显示屏140。其中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
电子设备100可以通过音频模块160、扬声器161、受话器162、麦克风163、耳机接口164以及应用处理器等实现音频功能。例如,音频播放功能、录音功能、语音唤醒功能等。
音频模块160可以用于对音频数据进行数模转换、和/或模数转换,还可以用于对音频数据进行编码和/或解码。示例的,音频模块160可以设置于处理器110中,或将音频模块160的部分功能模块设置于处理器110中。
扬声器161,也称“喇叭”,用于将音频数据转换为声音,并播放声音。例如,电子设备100可以通过扬声器161收听音乐、接听免提电话、或者发出语音提示等。
受话器162,也称“听筒”,用于将音频数据转换成声音,并播放声音。例如,当电子设备接听电话时,可以通过将受话器162靠近人耳进行接听。
麦克风163,也称“话筒”、“传声器”,用于采集声音(例如周围环境声音,包括人发出的声音、设备发出的声音等),并将声音转换为音频电数据。当拨打电话或发送语音时,用户可以通过人嘴靠近麦克风163发出声音,麦克风163采集用户发出的声音。需要说明的是,电子设备100可以设置至少一个麦克风163。例如,电子设备100中设置两个麦克风163,除了采集声音,还可以实现降噪功能。又示例如,电子设备100中还可以设置三个、四个或更多个麦克风163,从而可以在实现声音采集、降噪的基础上,还可以实现声音来源的识别、或定向录音功能等。
耳机接口164用于连接有线耳机。耳机接口164可以是USB接口170,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口、美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口等。
SIM卡接口171用于连接SIM卡。SIM卡可以通过插入SIM卡接口171,或从SIM卡接口171拔出,实现和电子设备的接触和分离。电子设备可以支持1个或K个SIM卡接口171,K为大于1的正整数。SIM卡接口171可以支持Nano SIM卡、Micro SIM卡、和/或SIM卡等。同一个SIM卡接口171可以同时插入多张SIM卡。所述多张SIM卡的类型可以相同,也可以不同。SIM卡接口171也可以兼容不同类型的SIM卡。SIM卡接口171也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备还可以采用eSIM卡,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备中,不能和电子设备分离。
USB接口172是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。USB接口172可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放声音。示例的,USB接口172除了可以为耳机接口164以外,还可以用于连接其他电子设备,例如AR设备、计算机等。
充电管理模块180用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块180可以通过USB接口170接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块180可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块180为电池182充电的同时,还可以通过电源管理模块180为电子设备100供电。
电源管理模块181用于连接电池182、充电管理模块180与处理器110。电源管理模块181接收电池182和/或充电管理模块180的输入,为处理器110、内部存储器121、摄像头130、显示屏140等供电。电源管理模块181还可以用于监测电池容量、电池循环次数、电池健康状态(漏电、阻抗)等参数。在其他一些实施例中,电源管理模块181也可以设置于处理器110中。在另一些实施例中,电源管理模块181和充电管理模块180也可以设置于同一个器件中。
移动通信模块191可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块191可以包括滤波器、开关、功率放大器、低噪声放大器(lownoise amplifier,LNA)等。
无线通信模块192可以提供应用在电子设备100上的包括WLAN(如Wi-Fi网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。无线通信模块192可以是集成至少一个通信处理模块的一个或多个器件。
在一些实施例中,电子设备100的天线1和移动通信模块191耦合,天线2和无线通信模块192耦合,使得电子设备100可以与其他设备通信。具体的,移动通信模块191可以通过天线1与其它设备通信,无线通信模块193可以通过天线2与其它设备通信。
电子设备100的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图6为本申请实施例的电子设备100的软件结构示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层、框架层、系统库(libraries)、以及内核层(kernal)。
应用程序层可以包括一个或多个应用程序(application,APP)。例如,相机、图库、日历、通话、地图、导航、蓝牙、音乐、视频、短信息等APP。
框架层为应用程序层的应用程序提供应用编程接口(application programminginterface,API)和编程框架。框架层包括一些预先定义的函数。例如,窗口管理器、内容提供器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频,拨打和接听的电话、浏览历史和书签、电话簿等。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。
以电子设备100支持MPTCP为例。如图6所示,电子设备100在内核层接收到来自应用程序层上的APP1针对某一业务发送的数据时,通过MPTCP所在的协议栈中的MPTCP层将数据划分为两个TCP子流,分别通过Wi-Fi网络对应的MPTCP连接、和蜂窝网络对应的MPTCP连接传输。需要说明的是,MPTCP连接可以理解为基于MPTCP建立的TCP连接。以电子设备100支持MPHTTP为例。如图6所示,电子设备100在内核层接收到来自应用程序层上的APP2针对某一业务发送的数据时,通过TUN/TAPS将数据导流到系统库层中的MPHTTP层,由MPHTTP层将数据划分为两个子流,然后分别通过在内核层中建立的Wi-Fi网络对应的TCP连接、蜂窝网络对应的TCP连接传输。
以下实施例均可以在具有上述硬件结构和软件结构的电子设备中实现。
对于MPTCP来说,Wi-Fi网络对应的TCP连接的网络性能指标(key performanceindicator,KPI)和蜂窝网络对应的TCP连接的KPI的差异越大,聚合呈现的正收益越小,当达到临界条件后,聚合呈现负收益。而对于MPHTTP来说,Wi-Fi网络对应的TCP连接的网络性能指标(key performance indicator,KPI)和蜂窝网络对应的TCP连接的KPI的差异较小时,聚合呈现的收益不如MPTCP,而Wi-Fi网络对应的TCP连接的网络性能指标(keyperformance indicator,KPI)和蜂窝网络对应的TCP连接的KPI的差异越大,聚合呈现的收益超过MPTCP。示例的,KPI可以包括带宽、往返时延(round trip time,RTT)和吞吐率中的至少一个。
因此,在支持MPTCP和MPHTTP的情况下,终端在基于MPTCP实现多路聚合带宽时,如果Wi-Fi网络对应的TCP连接的KPI和蜂窝网络对应的TCP连接的KPI之间差异超过临界条件时,切换到MPHTTP。在基于MPTCP实现多路聚合带宽时,如果Wi-Fi网络对应的TCP连接的KPI和蜂窝网络对应的TCP连接的KPI之间差异未达到临界条件,则切换到MPTCP。
示例的,如图7所示,为本申请实施例的一种数据传输方法的流程示意图,具体包括以下步骤。
步骤701,电子设备100针对应用程序1,基于第一TCP连接和第二TCP连接进行数据传输;其中,第一TCP连接与第二TCP连接是基于MPTCP建立的TCP连接。
示例的,第一TCP连接为Wi-Fi网络对应的TCP连接,第二TCP连接为蜂窝网络对应的TCP连接。
步骤702,电子设备100监测第一TCP连接的网络性能指标(key performanceindicator,KPI)、以及第二TCP连接的KPI。
步骤703,电子设备100当第一TCP连接的KPI与第二TCP连接的KPI之间的差异超过第一临界条件时,切换到基于MPHTTP建立的第三TCP连接和第四TCP连接上。
以KPI为带宽为例。例如,电子设备100分别监测第一TCP连接的带宽,以及第二TCP连接的带宽。第一临界条件可以为第一TCP连接的带宽与第二TCP连接的带宽之间差异为3倍的较小的带宽。例如,第一TCP连接的带宽为带宽1,第二TCP连接的带宽为2倍的带宽1,则第一TCP连接的带宽与第二TCP连接的带宽之间的差异为1倍的带宽1,未超过第一临界条件。例如,第一TCP连接的带宽为带宽1,第二TCP连接的带宽为5倍的带宽1,则第一TCP连接的带宽与第二TCP连接的带宽之间的差异为4倍的带宽1,超过第一临界条件。
以KPI为丢包率为例。例如,电子设备100分别监测第一TCP连接的丢包率,以及第二TCP连接的丢包率。第一临界条件可以为第一TCP连接的丢包率与第二TCP连接的丢包率之间差异为3%。例如,第一TCP连接的丢包率为1%,第二TCP连接的丢包率为2%,则第一TCP连接的丢包率与第二TCP连接的丢包率之间的差异为1%,未超过第一临界条件。再例如,第一TCP连接的丢包率为12%,第二TCP连接的丢包率为4%,则第一TCP连接的丢包率与第二TCP连接的丢包率之间的差异为8%,超过第一临界条件。
以KPI为RTT为例。例如,电子设备100分别监测第一TCP连接的RTT,以及第二TCP连接的RTT。第一临界条件可以为第一TCP连接的RTT与第二TCP连接的RTT之间差异为10倍较小的RTT。例如,第一TCP1连接的RTT为T1,第二TCP连接的RTT为2倍的T1,则第一TCP连接的RTT与第二TCP连接的RTT之间的差异为1倍的T1,未超过第一临界条件。例如,第一TCP连接的RTT为T1,第二TCP连接的RTT为12倍的T1,则第一TCP连接的RTT与第二TCP连接的RTT之间的差异为11倍的T1,超过第一临界条件。
以KPI包括带宽、丢包率和RTT为例。电子设备100分别监测第一TCP连接的带宽、丢包率和RTT,以及第二TCP连接的带宽、丢包率和RTT。针对带宽、丢包率和RTT中的一个或多个,第一TCP连接和第二TCP连接之间的差异超过第一临界条件,则第二TCP连接1的KPI与第MPTCP连接2的KPI之间的差异超过第一临界条件。针对带宽、丢包率和RTT中,第一TCP连接和第二TCP连接之间的差异均未超过第一临界条件,则第一TCP连接的KPI与第二TCP连接的KPI之间的差异未超过第一临界条件。
需要说明的是,第三TCP连接和第四TCP连接中的一个TCP连接可以与第一TCP连接和第二TCP连接中的一个TCP连接相同,也可以都不相同。
示例的,电子设备100可以通过改变第一TCP连接和第二TCP连接中其中一个TCP连接的MPTCP优先级(priority),实现TCP连接的回退(backup),使得电子设备100暂停使用该TCP连接进行数据传输。电子设备100建立第三TCP连接,由第三TCP连接和第一TCP连接和第二TCP连接中未被回退的TCP连接组成基于MPHTTP建立的TCP连接。以第一TCP连接为Wi-Fi网络对应的TCP连接、第二TCP连接为蜂窝网络对应的TCP连接为例,若第一TCP连接和第二TCP连接中被回退的TCP连接为第一TCP连接,电子设备100建立的第三TCP连接为与Wi-Fi网络对应的TCP连接。
示例的,电子设备100可以改变第一TCP连接和第二TCP连接中吞吐量较差的TCP连接。或者,电子设备100还可以改变第一TCP连接和第二TCP连接中带宽较小的MPTCP连接。本申请实施例对改变第一TCP连接和第二TCP连接中哪个TCP连接MPTCP的priority不作限定。
进一步的,本申请实施例数据传输的方法还包括以下步骤:
步骤704,电子设备100监测第三TCP连接的KPI和第四TCP连接的KPI。
步骤705,电子设备100当第三TCP连接的KPI与第四TCP连接的KPI之间的差异未超过第二临界条件时,切换到基于MPTCP建立的第一TCP连接和第二TCP连接上。
示例的,以第四TCP连接为第一TCP连接和第二TCP连接中未被回退的第二TCP连接为例,电子设备100可以通过恢复第一TCP连接的MPTCP的priority,并断开第三TCP连接,从而切换到基于MPTCP建立的第一TCP连接和第二TCP连接上。例如,电子设备100还可以通过向应用服务器发送标准的MPTCP的priority控制报文,恢复第一TCP连接的MPTCP的priority。例如,电子设备100可以通过在第三TCP连接上向应用服务器发送重置命令(例如HTTP-RESET命令),从而使得电子设备100断开第三TCP连接。
进一步的,电子100在执行步骤705后,继续返回步骤702,监测第一TCP连接和第二TCP连接。
需要说明的是,第二临界条件与第一临界条件可以相同,也可以不同,对此不作限定。其中,第一临界条件和第二临界条件可以是电子设备100在出厂之前预先设置好的,也可以是用户根据需要设置的,还可以是电子设备100从云端或服务器获取的,对此不作限定。
在一些实施例中,电子设备100当检测到应用程序1启动到前台,基于MPTCP建立第一TCP连接和第二TCP连接。或者,电子设备100当检测到应用程序1启动到前台,基于MPHTP建立第三TCP连接和第四TCP连接。又示例的,电子设备100当检测到退出应用程序1后,释放TCP连接。例如,电子设备100当针对应用程序1使用的是基于MPHTTP建立的第三TCP连接和第四TCP连接,如果检测到退出应用程序1,则释放第三TCP连接和第四TCP连接。再例如,电子设备100当针对应用程序1使用的是基于MPTCP建立的第一TCP连接和第二TCP连接,如果检测到退出应用程序1,则释放第一TCP连接和第二TCP连接。
然而,由于MPTCP和MPHTTP是在不同网络层实现多路聚合带宽,因此,终端在MPTCP和MPHTTP之间切换,容易导致数据传输中断。在另一些实施例中,电子设备100针对应用程序1,在内核空间中检测到针对应用程序1需要发送数据,则将需要发送的数据导流到用户空间中。从而有助于终端在数据传输不中断的情况下实现MPTCP和MPHTTP之间的动态切换。
示例的,电子设备100的应用程序1需要向应用服务器发送业务请求等数据时,首先,应用程序1将需要发送的数据发送到内核空间中,然后再将内核空间中的数据导流到用户空间中。需要说明的是,内核层位于内核空间中,系统库位于用户空间中。此外,位于内核空间中的数据可以称之为内核态数据,位于用户空间中的数据可以称之为用户态数据。示例的,电子设备100可以通过iptables将内核空间中的数据导流到用户空间中。
以针对APP0的业务为例,示例的,本申请实施例的数据传输的方法,如图8所示,具体包括以下步骤。
步骤801,电子设备100检测到启动APP0到前台。
示例的,电子设备100可以响应于用户的操作,启动APP0到前台。例如,用户的操作可以为点击APP0的图标的操作、快捷手势操作或者语音指令操作等,对此不作限定。又示例的,电子设备100还可以在开机后,自动启动APP0到前台。
步骤802、电子设备100基于MPTCP建立与蜂窝网络对应的MPTCP连接1,以及与Wi-Fi网络对应的MPTCP连接2。
步骤803、电子设备100分别监测MPTCP连接1的KPI、以及MPTCP连接2的KPI。
其中,KPI可以包括丢包率、RTT、带宽等中的一个或多个。
步骤804、电子设备100当MPTCP连接1的KPI与MPTCP连接2的KPI之间的差异未超过第一临界条件时,若在内核空间中检测到针对APP0需要发送数据,则将需要发送的数据导流到用户空间中。
示例的,电子设备100的APP0需要向应用服务器发送业务请求等数据时,首先,APP0将需要发送的数据发送到内核空间中,然后再将内核空间中的数据导流到用户空间中。需要说明的是,内核层位于内核空间中,系统库位于用户空间中。此外,位于内核空间中的数据可以称之为内核态数据,位于用户空间中的数据可以称之为用户态数据。在一些实施例中,电子设备100可以通过iptables将内核空间中的数据导流到用户空间中。
步骤805、电子设备100基于MPTCP对用户空间中的数据进行相应的处理,得到TCP子流1和TCP子流2,并通过MPTCP连接1传输TCP子流1,以及通过MPTCP连接2传输TCP子流2。
需要说明的是,对于MPTCP来说,电子设备100将APP0需要发送的数据导流到用户空间后,再将用户空间中的数据发送到内核层,由内核层在MPTCP层将数据划分为TCP子流1和TCP子流2,并通过MPTCP连接1传输TCP子流1,以及通过MPTCP连接2传输TCP子流2。
步骤806,电子设备100当MPTCP连接1的KPI与第MPTCP连接2的KPI之间的差异超过第一临界条件时,建立TCP连接3,以及回退(backup)MPTCP连接1和MPTCP连接2中的一个MPTCP连接。从而切换到基于MPHTTP建立的TCP连接上。例如,回退MPTCP连接1,则TCP连接3为与蜂窝网络对应的TCP连接。再例如,回退MPTCP连接2,则TCP连接3为与Wi-Fi网络对应的TCP连接。
示例的,电子设备100可以backup MPTCP连接1和MPTCP连接2中吞吐量较差的MPTCP连接。或者,电子设备100还可以backup MPTCP连接1和MPTCP连接2中带宽较小的MPTCP连接。本申请实施例对backup MPTCP连接1和MPTCP连接2中其中一个MPTCP连接的方式不作限定。
此外,电子设备100可以先确定backup MPTCP连接1和MPTCP连接2中的哪个MPTCP连接,然后先建立TCP连接3,然后在backup确定的MPTCP连接,从而有助于使得电子设备100保持在两个TCP连接上进行数据传输。
示例的,电子设备100可以通过改变MPTCP的优先级(MP-priority),实现MPTCP连接的backup。
示例的,如图9所示,电子设备100在应用程序层检测到APP0在前台启动,则触发在内核层基于MPTCP建立MPTCP连接1和MPTCP连接2。电子设备100监测MPTCP连接1的KPI、以及MPTCP连接2的KPI。当MPTCP连接1的KPI与MPTCP连接2的KPI之间的差异未超过第一临界条件时,若APP0将需要发送的数据发送到内核层中的TUN/TAPS,则由内核层中的TUN/TAPS通过ip tables将数据导流到用户空间中的MPHTTP层,通过MPHTTP层将数据通过HTTP层发送到MPTCP层。然后在MPTCP层将数据划分为TCP子流1和TCP子流2,并通过MPTCP连接1发送TCP子流1,以及通过MPTCP连接2发送TCP子流2。当MPTCP连接1的KPI与MPTCP连接2的KPI超过第一临界条件时,建立TCP连接3,以及通过改变MPTCP连接1的MP-priority来回退该MPTCP连接1,从而切换到MPHTTP上。
步骤807,电子设备100分别监测TCP连接3的KPI、以及MPTCP连接1和MPTCP连接2中未被回退的MPTCP连接的KPI。
步骤808,电子设备100当TCP连接3的KPI与MPTCP连接1和MPTCP连接2中未被回退的MPTCP连接的KPI之间的差异超过第二临界条件时,若在内核空间中检测到针对APP0需要发送数据,则将需要发送的数据导流到用户空间中。
其中,第二临界条件与第一临界条件可以相同,也可以不同,对此不作限定。以MPTCP连接1和MPTCP连接2中被回退的MPTCP连接为MPTCP连接1,则电子设备100当TCP连接3的KPI和MPTCP连接2的KPI之间的差异较大时,若在内核空间中检测到针对APP0需要发送数据,则将需要发送的数据导流到用户空间中。
步骤809,电子设备100对用户空间中的数据进行处理,得到TCP子流1和TCP子流2,并通过TCP连接3发送TCP子流1,以及通过MPTCP连接1和MPTCP连接2中未被回退的MPTCP连接。
步骤810,电子设备100当TCP连接3的KPI与MPTCP连接1和MPTCP连接2中未被回退的MPTCP连接的KPI之间的差异未超过第二临界条件时,断开TCP连接3,以及恢复MPTCP连接1和MPTCP连接2中的被回退的MPTCP连接。从而再次切换回基于MPTCP建立的MPTCP连接上。并返回步骤703。
也就是说,电子设备100当TCP连接3的KPI和MPTCP连接1和MPTCP连接2中未被回退的MPTCP连接的KPI之间的差异较小时,切换到基于MPTCP建立的MPTCP连接上。然后继续检测两个MPTAP连接的KPI。
示例的,以MPTCP连接1和MPTCP连接2中的被回退的MPTCP连接为MPTCP连接1为例,电子设备100可以通过恢复MPTCP连接1的MP-priority,恢复MPTCP连接。例如,电子设备100可以通过向应用服务器发送标准MPTCP的priority控制报文,恢复MPTCP连接1的MP-priority。
在一些实施例中,电子设备100可以通过TCP连接3向应用服务器发送重置命令(HTTP-RESET命令),实现断开TCP连接3。
示例的,如图10所示,电子设备100监测TCP连接3的KPI、以及MPTCP连接2的KPI。当TCP连接3的KPI与MPTCP连接2的KPI之间的差异超过第二临界条件时,若APP0将需要发送的数据发送到内核层中的TUN/TAPS,则由内核层中的TUN/TAPS通过ip tables将数据导流到用户空间中的MPHTTP层,通过MPHTTP层根据range将数据拆分为两个子流,然后将子流分别传输到TCP层,得到TCP子流1和TCP子流2,并通过TCP连接3发送TCP子流1,以及通过MPTCP连接2发送TCP子流2。当TCP连接3的KPI与MPTCP连接2的KPI未超过第二临界条件时,断开TCP连接3,以及通过改变MPTCP连接1的MP-priority来恢复该MPTCP连接1,从而切换到MPTCP上。
上述是以电子设备100在检测到启动APP0到前台后,先基于MPTCP建立TCP连接为例进行的说明的,此外,本申请实施例中电子设备100还可以在检测到启动APP0到前台后,先基于MPHTTP建立TCP连接,对此不作限定。
本申请实施例中,由于电子设备100无论基于MPTCP还是基于MPHTTP传输数据时,均将数据导流到用户空间,因此,从而使得在数据不中断的情况下实现MPTCP和MPHTTP的动态切换。
以APP0为爱奇艺为例,用户对电子设备100操作,打开爱奇艺,使得电子设备100在显示屏上显示爱奇艺的界面,基于MPTCP建立蜂窝网络和Wi-Fi网络分别对应的TCP连接,用户使用爱奇艺观看视频时,可以使用基于MPTCP建立的TCP连接传输数据流,以及监测分别蜂窝网络与Wi-Fi网络对应的TCP连接的KPI,当蜂窝网络和Wi-Fi网络的网络情况差异较大时,例如,蜂窝网络较好,而Wi-Fi网络变差,由于电子设备100使用基于MPTCP建立的TCP连接进行数据传输时收益变差,甚至变为负收益,采用本申请实施例数据传输的方法,可以切换到基于MPHTTP建立的蜂窝网络和Wi-Fi网络分别对应的TCP连接上,使得电子设备100可以在蜂窝网络和Wi-Fi网络的网络情况差异较大时,在基于MPHTTP建立的蜂窝网络和Wi-Fi网络分别对应的TCP连接上传输数据流,从而有助于提高数据流传输的效率。电子设备100当蜂窝网络和Wi-Fi网络的网络情况差异变小时,例如,蜂窝网络和Wi-Fi网络均较好时,由于电子设备100使用基于MPHTTP建立的TCP连接进行数据传输时收益变差,甚至变为负收益,因此,电子设备100重新切换到基于MPTCP建立的TCP连接上进行相应的数据传输。进一步的,电子设备100当检测到退出爱奇艺时,释放基于MPTCP或MPHTTP建立的TCP连接。
另外,需要说明的是,电子设备100当仅接入一个网络时,例如蜂窝网络,电子设备100可以建立与蜂窝网络对应的TCP连接,并基于该TCP连接进行数据传输即可。然而,电子设备在接入某一个网络后,例如Wi-Fi网络后,检测到又接入蜂窝网络,则可以采用本申请实施例数据传输的方法。
上述各个实施例可以单独使用,也可以相互结合使用,以达到不同的技术效果。
上述本申请提供的实施例中,从电子设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
基于相同的构思,图11所示为本申请提供的一种装置1100,用于执行图7、或图8所示的数据传输方法。示例的,该装置1100可以为电子设备,也可以为芯片。示例的,装置1100包括处理模块1101和通信模块1102。
示例的,处理模块1101用于检测基于MPTCP建立的TCP连接的KPI、或者监测基于MPTCP建立的TCP连接的KPI。通信模块1120用于基于TCP连接进行数据传输。例如,装置1100为电子设备时,通信模块1120可以为收发器。再例如,装置1100为芯片时,通信模块1120可以为接口。
基于相同的构思,图12所示为本申请提供的一种装置1200。装置1200包括至少一个处理器1201、和通信接口1202。示例的,该装置1200可以为电子设备,也可以为芯片.在本申请实施例中,处理器1201可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
通信接口1202用于通过TCP连接和其它设备进行通信。示例性地,通信接口1202可以是收发器、电路、总线、模块或其它类型的通信接口等。例如,装置1200为电子设备时,通信接口1202为收发器。再例如,装置1200为芯片时,通信接口1202为接口。
在一些实施例中,装置1200还包括存储器1203。存储器1203用于存储程序指令和/或数据。在本申请实施例中,存储器1203可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
其中,处理器1201与存储器1203和通信接口1202耦合,本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。本申请实施例中不限定上述通信接口1202、处理器1201以及存储器1203之间可以通过总线连接,所述总线可以分为地址总线、数据总线、控制总线等。
应理解,该装置1100和装置1200可以用于实现本申请实施例的图7和图8所示的方法,相关特征可以参照上文,此处不再赘述。
所属领域的技术人员可以清楚地了解到本申请实施例可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、电可擦可编程只读存储器(electrically erasableprogrammable read only memory,EEPROM)、只读光盘(compact disc read-Only memory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(digital subscriber line,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本申请实施例所使用的,盘(disk)和碟(disc)包括压缩光碟(compact disc,CD)、激光碟、光碟、数字通用光碟(digital video disc,DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡根据本申请的揭露,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种数据传输的方法,其特征在于,所述方法包括:
电子设备针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径传输控制协议MPTCP建立的TCP连接;
所述电子设备监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;
所述电子设备当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径超文本传输协议MPHTTP建立的TCP连接。
2.如权利要求1所述的方法,其特征在于,所述电子设备当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,包括:
所述电子设备当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,回退所述第一TCP连接和所述第二TCP连接中的一个TCP连接、以及建立第三TCP连接,所述第四TCP连接为所述第一TCP连接和所述第二TCP连接中未被回退的TCP连接。
3.如权利要求2所述的方法,其特征在于,所述第一TCP连接和所述第二TCP连接中被回退的TCP连接为所述第一TCP连接和所述第二TCP连接中带宽较小的TCP连接。
4.如权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
所述电子设备监测所述第三TCP连接的KPI和所述第四TCP连接的KPI;
所述电子设备当所述第三TCP连接的KPI与所述第四TCP连接的KPI之间的差异未超过第二临界条件时,切换到所述第一TCP连接和所述第二TCP连接上。
5.如权利要求1至3任一所述的方法,其特征在于,所述电子设备针对所述第一应用程序,基于第一TCP连接和第二TCP连接进行数据传输,包括:
所述电子设备在内核空间中检测到所述第一应用程序需要发送的数据,将所述数据导流到用户空间中;
所述电子设备对所述用户空间中的数据进行处理,并基于所述第一TCP和所述第二TCP进行数据传输。
6.一种数据传输的方法,其特征在于,所述方法包括:
电子设备针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径超文本传输协议MPHTTP建立的TCP连接;
所述电子设备监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;
所述电子设备当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异未超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径传输控制协议MPTCP建立的TCP连接。
7.一种电子设备,其特征在于,包括:处理器和收发器;
所述收发器用于针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径传输控制协议MPTCP建立的TCP连接;
所述处理器,用于监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;以及当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径超文本传输协议MPHTTP建立的TCP连接。
8.如权利要求7所述的电子设备,其特征在于,所述处理器,用于当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,具体包括:
所述处理器,用于当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异超过第一临界条件时,回退所述第一TCP连接和所述第二TCP连接中的一个TCP连接、以及建立第三TCP连接,所述第四TCP连接为所述第一TCP连接和所述第二TCP连接中未被回退的TCP连接。
9.如权利要求8所述的电子设备,其特征在于,所述第一TCP连接和所述第二TCP连接中被回退的TCP连接为所述第一TCP连接和所述第二TCP连接中带宽较小的TCP连接。
10.如权利要求7至9任一所述的电子设备,其特征在于,所述处理器,还用于:
监测所述第三TCP连接的KPI和所述第四TCP连接的KPI;
当所述第三TCP连接的KPI与所述第四TCP连接的KPI之间的差异未超过第二临界条件时,切换到所述第一TCP连接和所述第二TCP连接上。
11.如权利要求7至9任一所述的电子设备,其特征在于,所述处理器,还用于:
在内核空间中检测到所述第一应用程序需要发送的数据,将所述数据导流到用户空间中;
对所述用户空间中的数据进行处理,触发所述收发器基于所述第一TCP和所述第二TCP进行数据传输。
12.一种电子设备,其特征在于,包括处理器和收发器;
所述收发器,用于针对第一应用程序,基于第一传输控制协议TCP连接和第二TCP连接进行数据传输,所述第一TCP连接和所述第二TCP连接是基于多路径超文本传输协议MPHTTP建立的TCP连接;
所述处理器,用于监测所述第一TCP连接的网络性能指标KPI、以及所述第二TCP连接的KPI;当所述第一TCP连接的KPI与所述第二TCP连接的KPI之间的差异未超过第一临界条件时,切换到第三TCP连接和第四TCP连接上,所述第三TCP连接和所述第四TCP连接为基于多路径传输控制协议MPTCP建立的TCP连接。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括程序指令,当所述程序指令在设备上运行时,使得所述设备执行如权利要求1至6任一项所述的方法。
14.一种芯片,其特征在于,包括:处理器和接口,用于从存储器中调用并运行所述存储器中存储的程序指令,执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880227.2A CN110768900B (zh) | 2019-09-18 | 2019-09-18 | 一种数据传输方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880227.2A CN110768900B (zh) | 2019-09-18 | 2019-09-18 | 一种数据传输方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110768900A CN110768900A (zh) | 2020-02-07 |
CN110768900B true CN110768900B (zh) | 2021-06-22 |
Family
ID=69330412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910880227.2A Active CN110768900B (zh) | 2019-09-18 | 2019-09-18 | 一种数据传输方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110768900B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112020112B (zh) * | 2020-07-27 | 2021-10-01 | 北京邮电大学 | Sdn架构下基于mptcp的异构网络切换方法和系统 |
CN112333800A (zh) * | 2020-11-13 | 2021-02-05 | Oppo广东移动通信有限公司 | 网络切换方法、装置、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417509A (zh) * | 2016-05-13 | 2019-03-01 | 瑞典爱立信有限公司 | 多路径网络中改善的资源使用 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10021034B2 (en) * | 2014-09-25 | 2018-07-10 | Hughes Network Systems, Llc | Application aware multihoming for data traffic acceleration in data communications networks |
CN105490933B (zh) * | 2015-12-28 | 2019-06-11 | 中国电子科技集团公司第五十四研究所 | 基于多路径传输协议mptcp的路径管理方法及装置 |
CN105915466B (zh) * | 2016-04-15 | 2019-03-19 | 北京邮电大学 | 一种mptcp路径选择的方法及装置 |
US10348796B2 (en) * | 2016-12-09 | 2019-07-09 | At&T Intellectual Property I, L.P. | Adaptive video streaming over preference-aware multipath |
WO2018165190A1 (en) * | 2017-03-07 | 2018-09-13 | Akamai Technologies, Inc. | Cooperative multipath |
CN109729007B (zh) * | 2017-10-28 | 2022-07-22 | 华为技术有限公司 | 一种传输数据的方法、装置和设备 |
CN110049505B (zh) * | 2019-04-08 | 2021-08-24 | Oppo广东移动通信有限公司 | 数据传输方法及相关装置 |
-
2019
- 2019-09-18 CN CN201910880227.2A patent/CN110768900B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417509A (zh) * | 2016-05-13 | 2019-03-01 | 瑞典爱立信有限公司 | 多路径网络中改善的资源使用 |
Also Published As
Publication number | Publication date |
---|---|
CN110768900A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934352B2 (en) | Card rendering method and electronic device | |
US11711623B2 (en) | Video stream processing method, device, terminal device, and computer-readable storage medium | |
JP7235871B2 (ja) | データ伝送方法と電子デバイス | |
WO2022257977A1 (zh) | 电子设备的投屏方法和电子设备 | |
CN112394895B (zh) | 画面跨设备显示方法与装置、电子设备 | |
JP7369281B2 (ja) | デバイス能力スケジューリング方法および電子デバイス | |
CN112398855B (zh) | 应用内容跨设备流转方法与装置、电子设备 | |
CN111182614B (zh) | 建立网络连接的方法和装置以及电子设备 | |
WO2021057673A1 (zh) | 一种图像显示方法及电子设备 | |
JP7181990B2 (ja) | データ伝送方法及び電子デバイス | |
EP4152782A1 (en) | Message pushing method and apparatus | |
CN110768900B (zh) | 一种数据传输方法及电子设备 | |
EP3890406B1 (en) | Communication data processing method and apparatus, electronic device and storage medium | |
WO2020078297A1 (zh) | 一种冻屏处理方法及终端 | |
CN113395364A (zh) | 一种应用服务器的访问方法及终端 | |
CN116231815A (zh) | 控制充电的方法及电子设备 | |
CN114979261B (zh) | 业务交互方法、终端、服务器及系统 | |
CN109710576B (zh) | 文件展示的方法、终端及存储介质 | |
CN113271577B (zh) | 媒体数据播放系统、方法及相关装置 | |
CN117041465B (zh) | 一种视频通话的优化方法、电子设备及存储介质 | |
EP4290375A1 (en) | Display method, electronic device and system | |
WO2023280160A1 (zh) | 一种通道切换方法及装置 | |
WO2022179343A1 (zh) | 一种菜单列表更新方法和电子设备 | |
CN114915996A (zh) | 通信异常处理方法及相关装置 | |
CN118819381A (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 |