CN111315038A - 数据传输方法、装置、电子设备及存储介质 - Google Patents

数据传输方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111315038A
CN111315038A CN202010092108.3A CN202010092108A CN111315038A CN 111315038 A CN111315038 A CN 111315038A CN 202010092108 A CN202010092108 A CN 202010092108A CN 111315038 A CN111315038 A CN 111315038A
Authority
CN
China
Prior art keywords
network interface
data
terminal
data link
network
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
CN202010092108.3A
Other languages
English (en)
Other versions
CN111315038B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010092108.3A priority Critical patent/CN111315038B/zh
Publication of CN111315038A publication Critical patent/CN111315038A/zh
Application granted granted Critical
Publication of CN111315038B publication Critical patent/CN111315038B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections
    • H04W76/16Involving different core network technologies, e.g. a packet-switched [PS] bearer in combination with a circuit-switched [CS] bearer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Abstract

本申请公开了一种数据传输方法、装置、电子设备及存储介质,涉及通信技术领域,该方法包括:获取待传输的第一数据包;通过第一网络接口建立第一数据链路;通过第二网络接口建立第二数据链路,第二网络接口与第一网络接口具有不同类型;获取与第二数据链路关联的已使用流量值;若已使用流量值未超过预设的流量阈值,对于获取的每个第一数据包,分别通过第一数据链路与第二数据链路传输。本申请实施例可通过网络流量控制实现基于多数据链路的数据传输,通过消耗部分流量来降低单链路传输时链路质量抖动对数据传输稳定性的影响,从而能够在充分利用终端的接入网络资源,提升数据传输的稳定性的同时,控制网络流量不超过流量预算,提升用户体验。

Description

数据传输方法、装置、电子设备及存储介质
技术领域
本申请涉及通信技术领域,更具体地,涉及一种数据传输方法、装置、电子设备及存储介质。
背景技术
目前,终端与其他设备(可称为:终端的通信对端)之间可以通过预先建立的数据链路传输数据,但是,链路质量会随着接入网的质量和网络节点拥塞状态的改变而变化,导致链路质量产生抖动,而链路质量抖动会造成终端与其通信对端之间的数据传输不稳定。
发明内容
本申请实施例提出了一种数据传输方法、装置、电子设备及存储介质,能够提升数据传输的稳定性。
第一方面,本申请实施例提供了一种数据传输方法,应用于终端,所述方法用于与一个通信对端进行数据传输,该方法包括:获取待传输的第一数据包;通过第一网络接口建立第一数据链路;通过第二网络接口建立第二数据链路,所述第二网络接口与所述第一网络接口具有不同类型;获取与所述第二数据链路关联的已使用流量值;以及若所述已使用流量值未超过预设的流量阈值,对于获取的每个所述第一数据包,分别通过所述第一数据链路与所述第二数据链路传输。
第二方面,本申请实施例提供了一种数据传输装置,应用于终端,所述装置用于与一个第二终端进行数据传输,该装置包括:数据包获取模块,用于获取待传输的第一数据包;第一建立模块,用于通过第一网络接口建立第一数据链路,所述第二网络接口与所述第一网络接口具有不同类型;第二建立模块,用于通过第二网络接口建立第二数据链路;流量获取模块,用于获取与所述第二数据链路关联的已使用流量值;以及数据传输模块,用于若所述已使用流量值未超过预设的流量预置阈值,对于获取的每个所述第一数据包,分别通过所述第一数据链路与所述第二数据链路传输。
第三方面,本申请实施例提供了一种电子设备,包括:存储器;一个或多个处理器,与所述存储器耦接;一个或多个应用程序,其中,一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个应用程序配置用于执行上述第一方面提供的数据传输方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面提供的数据传输方法。
本申请实施例提供的数据传输方法、装置、电子设备及存储介质,通过获取待传输的第一数据包,通过第一网络接口建立第一数据链路,通过第二网络接口建立第二数据链路,其中,第二网络接口与第一网络接口具有不同类型,通过获取与第二数据链路关联的已使用流量值,并在已使用流量值未超过预设的流量阈值时,对于获取的每个第一数据包,分别通过第一数据链路与第二数据链路传输。由此,本申请实施例可通过网络流量控制实现基于多数据链路的数据传输,通过消耗部分流量来降低单链路传输时链路质量抖动对数据传输稳定性的影响,从而能够在充分利用移动终端的接入网络资源,提升数据传输的稳定性的同时,控制网络流量不超过流量预算,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的数据传输系统的架构示意图。
图2示出了图1所示的数据传输系统的更加详细的架构示意图,
图3示出了本申请一个示例性实施例中基于IOS操作系统建立WiFi链路的方法的流程示意图。
图4示出了本申请一个示例性实施例中基于IOS操作系统建立蜂窝数据链路的方法的流程示意图。
图5示出了本申请一个示例性实施例中基于安卓操作系统建立WiFi链路、蜂窝数据链路的方法的流程示意图。
图6示出了本申请一个示例性实施例中基于安卓操作系统建立WiFi链路、蜂窝数据链路的方法的流程示意图。
图7示出了本申请一个示例性实施例中图2所示的系统进行多链路流量预算控制的方法的流程示意图。
图8示出了本申请一个示例性实施例中提供的流量阈值输入页面的页面示意图。
图9示出了本申请一个示例性实施例提供的数据传输方法的流程示意图。
图10示出了本申请一个示例性实施例中图9所示的方法中步骤S120的详细步骤示意图。
图11示出了本申请一个示例性实施例中图10所示的方法中步骤S230的详细步骤示意图。
图12示出了本申请一个示例性实施例中图11所示的方法中步骤S320的详细步骤示意图。
图13示出了本申请一个示例性实施例中图9所示的方法中步骤S130的详细步骤示意图。
图14示出了本申请一个示例性实施例中图13所示的方法中步骤S430的详细步骤示意图。
图15示出了本申请一个示例性实施例中建立第二数据链路的流程示意图。
图16示出了本申请一个示例性实施例中终端接收数据包的流程示意图。
图17示出了本申请一个示例性实施例中获取预设的流量阈值的方法的详细步骤示意图。图18示出了本申请一个示例性实施例中聊天界面的示意图。
图19示出了本申请一个示例性实施例中视频通话请求界面的示意图。
图20示出了本申请一个示例性实施例提供的数据传输装置的模块框图。
图21示出了本申请一个示例性实施例提供的一种电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
术语定义
网际协议语音或视频技术(Voice and Video over IP,VVoIP):指基于IP网络(IPNetwork),在不同终端(比如PC、手机等)之间实时传送语音和图像的一种通信方式。
通信对端:又称通信对端节点(Correspondent Node),是指与一个节点通信的对等实体。通信对端可以是移动节点或者固定节点。例如,若第一用户基于一个应用程序向第二用户发送数据,则当第一用户所操作的第一终端与第二用户所操作的第二终端之间直接连接时,若将第一终端视为本端,则可将第二终端视为与第一终端通信的通信对端;当第一终端与第二终端之间通过服务器进行通信时,即第一终端获取第一用户输入的数据,需将该数据发送至服务器,再由服务器发送至第二终端,此时,若将第一终端视为本端,则可将服务器视为与第一终端通信的通信对端。此外,从逻辑意义上来说,也可以将运行在通信对端内负责具体接收数据的软件或者应用程序理解为上述通信对端,此处的软件或者应用程序例如可包括VVoIP应用程序。
数据链路:指VVoIP业务产生的音视频数据传输到通信对端所经过的网络路径。
蜂窝数据网络(Cellular network):又称移动网络(mobile network)是一种移动通信硬件架构。具体地,网络服务区被划分成许多小区(cell,也就是“蜂窝”),每个小区设置一个基站,该基站负责本小区各个移动站的联络与控制。蜂窝数据网络可以是5G(5thGeneration,5G)通信系统(或称为新空口(New Radio,NR)系统)、长期演进(LTE,Long TermEvolution)网络、通用分组无线服务(GPRS,General Packet Radio Service)系统、全球移动通信(GSM,Global System for Mobile communications)网络或通用移动通信网络(UMTS,Universal Mobile Telecommunications System),当然也可以是其它蜂窝数据网络。
无线网络:可以是无线局域网(WLAN,Wireless Local Area Networks),具体可以是Wi-Fi(Wireless Fidelity,无线保真)。
接入点(Access Point):VVoIP业务中数据链路的第一跳。对于移动终端来说,一般包括两种接入方式:第一种是通过无线网卡和近端无线路由器进行数据交互,属于WiFi接入;另外一种是通过无线基带和最近的基站进行数据交互,属于蜂窝数据网络接入(比如4G)。
套接字(Socket):是链路层和应用层中间的抽象层,是一个通信端点,用于实现网络通信,套接字包括连接使用的协议、本地主机的IP地址、本地进程的协议端口、远地主机的IP地址以及远地进程的协议端口。另外,每个套接字都有一个套接字序号,包括本地主机的IP地址与一个16位的本地进程的协议端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么可得到套接字(210.37.145.1:23)。
随着移动终端技术的发展和网络带宽的提升,越来越多的用户选择使用VVoIP服务来进行远程通信。在VVoIP中,声音和画面通过数据流的形式在用户之间的数据链路进行传输,数据流需要具备低延时、高稳定性等特点才能提供高品质的VVoIP服务。
根据数据流传输的途径的不同,VVoIP数据链路分为直连传输和中转传输两种方式。直连传输方式为用户设备与用户设备直接进行点对点的(point to point,P2P)数据传输,传输途径中没有服务器节点。中转传输方式是在两个用户设备之间加入VVoIP中转服务器,数据流需要通过服务器传输到通信对端。
请参阅图1,其示出了本申请一个示例性的实施例提供的数据传输系统的架构示意图,该系统包括:多个终端100以及服务器200。
其中,终端100用于与一个通信对端进行数据传输,例如,终端100可将数据流传输至通信对端,也可接收通信对端发送的数据流。其中,多个终端100包括第一终端110和第二终端120。
在一个示例性的实施例中,第一终端110和第二终端120之间可直接通过网络连接,以直接进行点对点的数据传输。
在另一个示例性的实施例中,第一终端110和第二终端120也可分别与服务器200连接,即第一终端110与第二终端120之间的数据传输,可以由服务器200实现。例如,第一终端110可以将数据发送至服务器200,服务器200将该数据发送至第二终端120,以实现第一终端110将数据发送至第二终端120。
需要说明的是,本申请实施例中所述的通信对端可以指终端100,也可指服务器200。具体地,若本申请实施例的执行主体为第一终端110,在第一终端110与第二终端120之间进行点对点的数据传输时,第一终端110的通信对端可以为第二终端120;在第一终端110基于服务器200与第二终端120进行数据传输时,第一终端110的通信对端可以为服务器200。
其中,第一终端110和第二终端120可以是移动终端,例如,智能手机、平板电脑、电子书阅读器、膝上型便携计算机、车载电脑、穿戴式移动终端等等。在一些实施例中,第一终端110和第二终端120均安装有客户端,第一用户操作第一终端110的客户端与操作第二终端120的客户端的第二用户实现视频通话或者语音通话等数据交互。
对于第一终端110或第二终端120均可以具有两种接入网络,分别为无线网络接入和蜂窝数据网络接入。其中,无线网络接入是指终端通过无线网卡和近端无线路由器与其他终端进行数据交互;蜂窝数据网络接入是指终端通过无线基带和基站与其他终端进行数据交互。
随着硬件设备和音视频编解码技术的发展,数据链路的质量成为影响VVoIP服务质量的关键因素。然而,目前的数据链路的质量始终不太令用户满意。其一些原因是目前VVoIP服务中,终端一般采用单接入点数据链路来传输音视频流。例如,在终端同时启动Wi-Fi网络和蜂窝数据网络的情况下,终端只会使用Wi-Fi网络传输数据。随着Wi-Fi信号强度、信号干扰以及网络节点拥塞状态的改变,会导致该传输数据的链路发生丢包和延时等状况。然而,由于VVoIP业务使用的是用户数据报协议(User Datagram Protocol,UDP)而并非传输控制协议(Transmission Control Protocol,TCP),所以,TCP协议的丢包重传机制和拥塞控制策略不适用于VVoIP业务。因此,丢包和延时等状况的发生会导致链路质量下降,而大大降低用户的体验质量(Quality of Experience,QoE)。
因此,基于克服上述问题,本申请实施例提供了数据传输方法、装置、电子设备及计算机可读取存储介质,使得移动终端可通过网络流量控制实现基于多接入点的数据传输,通过消耗部分流量来降低单接入点传输时链路质量抖动对数据传输稳定性的影响,能够充分利用移动终端的接入网络资源提升数据传输的稳定性的同时,控制网络流量不超过流量预算,进而提升用户QoE。需要说明的是,于本申请实施例中,第一终端和第二终端中的“第一”和“第二”并没有特别指代,而是指两个用户设备。
而近年来,数据网络(如4G)资费不断下降,不少运营商也推出无限流量套餐、定向免流套餐等,因此本申请实施例提出的通过消耗部分数据网络流量来提升VVoIP服务质量的方法也将具有更广泛的应用场景。
请参阅图2,其示出了图1所示的数据传输系统的更加详细的架构示意图,该系统包括三层:应用层101、链路层102以及接入层103。
其中,应用层101包括VVoIP应用,VVoIP应用对音视频数据进行采集和编码,产生VVoIP音视频数据包11,以用于发送至通信对端。另外,应用层101也用于对从通信对端接收VVoIP音视频数据包11进行解码和播放。
另外,应用层101还包括多链路流量预算12,该模块用于限制蜂窝数据网络的使用。
在一个示例性的实施例中,多链路流量预算12用于限制蜂窝数据网络作为非默认网络时的使用。例如,在WiFi网络和蜂窝数据网络同时开启时,若WiFi网络作为默认网络,此时,蜂窝数据网络即为非默认网络,终端在使用网络服务时,优先使用WiFi网络进行数据传输,而此时若终端需将WiFi网络切换为蜂窝数据网络、或同时使用WiFi网络和蜂窝数据网络进行数据传输,多链路流量预算12可用于限制蜂窝数据网络的使用,以避免蜂窝数据网络所消耗的网络流量过高,导致流量资费过高。
其中,链路层102包括WiFi链路13和蜂窝数据链路14。具体地,根据数据链路接入点的不同进行划分,若数据链路采用WiFi网络进行数据传输,那么该数据链路属于WiFi链路13;若数据链路采用蜂窝数据网络进行数据传输,那么该数据链路属于蜂窝数据链路14。应用层101产生的VVoIP音视频数据包11通过WiFi链路13和蜂窝数据链路14中的至少一个进行发送,应用层101也可通过WiFi链路13和蜂窝数据链路14中的至少一个接收通信对端发送的VVoIP音视频数据包11。
其中,接入层103包括无线网卡15和无线基带16。具体地,WiFi链路13绑定到终端的无线网卡15,无线网卡和路由器17之间进行数据传输;蜂窝数据链路14绑定到终端的无线基带16,无线基带16用于与基站18之间进行数据传输。
终端在建立数据链路实现与通信对端的数据传输时,可在链路层102建立WiFi链路13和蜂窝数据链路14,基于不同的操作系统建立不同的数据链路的方式存在差异。本申请实施例针对不同操作系统分别提供了WiFi链路和蜂窝数据链路的建立方法,并以目前市面上使用率较高的操作系统:IOS操作系统以及安卓(Android)操作系统为例进行说明。具体地,可参阅图3至6,其中,图3至4分别示出了本申请一个示例性实施例中基于IOS操作系统建立WiFi链路、蜂窝数据链路的方法的流程示意图,图5至6分别示出了本申请一个示例性实施例中基于安卓操作系统建立WiFi链路、蜂窝数据链路的方法的流程示意图。
请参阅图3,其示出了本申请一个示例性实施例提供的基于IOS操作系统建立WiFi链路的方法的流程示意图。该方法包括以下步骤:
步骤S11,获取网络接口列表。
在一个示例中,终端可通过调用系统应用程序编程接口(ApplicationProgramming Interface,API)获取网络接口列表。
操作系统为提供各种功能供用户使用,将各种功能的实现代码封装成一个个函数,这些函数可称为API,若需使用某个功能,只需调用相应函数,也就是调用相应API即可,本实施例中,可通过调用系统API来获取网络接口列表。
在一种实施方式中,可获取所有网络接口列表,在另一种实施方式中,也可获取部分网络接口列表,例如可用的网络接口列表,在此不做限定。
步骤S12,对网络接口列表里的网络接口进行过滤,保留地址非空、协议栈为IPv4/IPv6和非回环的网络接口,以对网络接口列表进行清洗,并得到清洗后的新的网络接口列表。
步骤S13,在新的网络接口列表中查找名字包括en0的网络接口I。
其中,由于IOS操作系统中WiFi网络对应的网络接口的名字(或标识)包含“en0”,因而通过在新的网络接口列表中查找名字包括en0的网络接口可得到用于建立WiFi链路的网络接口。在一个示例中,终端可基于字段“en0”检索新的网络接口列表,得到返回的包含“en0”的网络接口I的IP地址。
步骤S14,检索是否可在新的网络接口列表中查找到名字包括en0的网络接口I,若无法在新的网络接口列表中查找到名字包括en0的网络接口I,则本次链路创建失败,若可查找到名字包括en0的网络接口I,可继续执行步骤S15。
步骤S15,创建基于原生UDP协议的套接字S(即socket S),并将socket S绑定到网络接口I的IP地址。例如,socket S绑定的IP地址为<IP1,Port1>,其中,Port1为一个随机且未被占用的端口。由此,可得到新的基于socket S进行数据传输的数据链路。此时,通过socket S发送的数据包都会从<IP1,Port1>发出,另外,从<IP1,Port1>接收到的数据包也都会由socket S处理。
步骤S16,将socket S作为新的数据链路即WiFi链路的收发包socket,则该WiFi链路将采用WiFi网络收发数据包。由此可完成新的WiFi链路的建立,以基于WiFi链路与通信对端进行数据传输。
请参阅图4,其示出了本申请一个示例性实施例提供的基于IOS操作系统建立蜂窝数据链路的方法的流程示意图。该方法包括以下步骤:
步骤S21,获取网络接口列表。
步骤S22,对网络接口列表里的网络接口进行过滤,保留地址非空、协议栈为IPv4/IPv6和非回环的网络接口,以对网络接口列表进行清洗,并得到清洗后的新的网络接口列表。
步骤S23,查找名字包括pdq_ip0的网络接口I。
其中,由于IOS操作系统中蜂窝数据网络对应的网络接口的名字(或标识)包含“pdq_ip0”,因而通过在新的网络接口列表中查找名字包括pdq_ip0的网络接口可得到用于建立蜂窝数据链路的网络接口I。
在一个示例中,终端可基于字段“pdq_ip0”检索新的网络接口列表,得到返回的包含“pdq_ip0”的网络接口I的IP地址。另外,在没有返回值时可判定无法查找到名字包括pdq_ip0的网络接口I。
步骤S24,检索是否可在新的网络接口列表中查找到名字包括pdq_ip0的网络接口I,若无法在新的网络接口列表中查找到名字包括pdq_ip0的网络接口I,则本次链路创建失败,若可查找到名字包括pdq_ip0的网络接口I,可继续执行步骤S25。
步骤S25,创建socket S,并将socket S绑定到网络接口I的IP地址。
步骤S26,将socket S作为蜂窝数据链路的收发包socket,则该蜂窝数据链路将采用蜂窝数据网络收发数据包。由此可完成蜂窝数据链路的建立,以基于蜂窝数据链路与通信对端进行数据传输。
需要说明的是,本实施例未详细说明的部分可参考前述实施例的相应步骤,在此不再赘述。
基于上述图3和图4所示的基于IOS操作系统建立WiFi链路和蜂窝数据链路的方法,可在运行IOS操作系统的终端中同时建立WiFi链路和蜂窝数据链路,以同时使用WiFi链路和蜂窝数据链路进行数据传输,例如对VVoIP音视频数据包进行传输,充分利用终端的接入网络资源,提升用户QoE。
请参阅图5,其示出了本申请一个示例性实施例提供的基于安卓操作系统建立WiFi链路的方法的流程示意图。该方法包括以下步骤:
步骤S31,获取网络接口列表。
步骤S32,对网络接口列表里的网络接口进行过滤,保留地址非空、协议栈为IPv4/IPv6和非回环的网络接口,以对网络接口列表进行清洗,并得到清洗后的新的网络接口列表。
步骤S33,查找名字包括wlan0的网络接口I。
其中,由于安卓操作系统中WiFi网络对应的网络接口的名字(或标识)包含“wlan0”,因而通过在新的网络接口列表中查找名字包括wlan0的网络接口可得到用于建立WiFi链路的网络接口。
在一个示例中,终端可基于字段“wlan0”检索新的网络接口列表,得到返回的包含“wlan0”的网络接口I的IP地址。
步骤S34,检索是否可在新的网络接口列表中查找到名字包括wlan0的网络接口I,若无法在新的网络接口列表中查找到名字包括wlan0的网络接口I,则本次链路创建失败,若可查找到名字包括wlan0的网络接口I,可继续执行步骤S35。
步骤S35,创建socket S,并绑定socket S到网络接口I的IP地址。
步骤S36,将socket S作为新的数据链路即WiFi链路的收发包socket,则该WiFi链路将采用WiFi网络收发数据包。由此可完成新的WiFi链路的建立,以基于WiFi链路与通信对端进行数据传输。
需要说明的是,本实施例未详细说明的部分可参考前述实施例的相应步骤,在此不再赘述。
请参阅图6,其示出了本申请一个示例性实施例提供的基于安卓操作系统建立蜂窝数据链路的方法的流程示意图。该方法包括以下步骤:
步骤S41,获取蜂窝数据网络network N。
在一个示例中,终端饿可调用安卓操作系统的应用程序编程接口(Android API)获取蜂窝数据网络network N。
步骤S42,根据S41获取蜂窝数据网络是否获取成功,可在获取成功时,继续执行步骤S43;在获取失败(比如蜂窝数据网络处于关闭状态)时,本次链路创建失败。
步骤S43,获取网络接口列表。
步骤S44,对网络接口列表里的网络接口进行过滤,保留地址非空、协议栈为IPv4/IPv6和非回环的网络接口,以对网络接口列表进行清洗,并得到清洗后的新的网络接口列表。
步骤S45,在新的网络接口列表中查找名字包括rmnet/ccmni开头的网络接口I。
由于安卓操作系统中蜂窝数据网络对应的网络接口一般以rmnet(高通芯片机器)或ccmni(联发科芯片机器)开头,因此,可通过在新的网络接口列表中查找名字以“rmnet”或“ccmni”开头的网络接口I得到用于建立蜂窝数据链路的网络接口I。
在一个示例中,终端可基于字段“rmnet”和“ccmni”检索新的网络接口列表,得到返回名字以“rmnet”和“ccmni”开头的网络接口,并从中获取一个网络接口I的IP地址。另外,在没有返回值时可判定无法查找到名字以“rmnet”和“ccmni”开头的网络接口I。
步骤S46,检索是否可在新的网络接口列表中查找到名字以rmnet或ccmni开头的网络接口I,若无法在新的网络接口列表中查找到名字以rmnet或ccmni开头的网络接口I,则本次链路创建失败,若可查找到名字以rmnet或ccmni开头的网络接口I,可继续执行步骤S47。
步骤S47,创建socket S,并绑定socket S到网络接口I的IP地址。
步骤S48,检测Wifi网络是否启用。
若终端当前WiFi网络处于启用状态,可执行步骤S49;若WiFi网络未处于启用状态,可执行步骤S50。另外,若终端当前WiFi网络处于关闭状态,可直接执行步骤S50。
步骤S49,把socket S绑定到蜂窝数据网络network N,并再通过执行步骤S50以通过蜂窝数据网络收发数据包。
步骤S50,将socket S作为蜂窝数据链路的收发包socket,则该蜂窝数据链路将采用蜂窝数据网络收发数据包。由此可完成蜂窝数据链路的建立,以基于蜂窝数据链路与通信对端进行数据传输。
需要说明的是,本实施例未详细说明的部分可参考前述实施例的相应步骤,在此不再赘述。
基于上述图5和图6所示的基于安卓操作系统建立WiFi链路和蜂窝数据链路的方法,可在运行安卓操作系统的终端中同时建立WiFi链路和蜂窝数据链路,以同时使用WiFi链路和蜂窝数据链路进行数据传输,例如对VVoIP音视频数据包进行传输,充分利用终端的接入网络资源,提升用户QoE。
请参阅图7,其示出了本申请一个示例性实施例中图2所示的系统进行多链路流量预算控制的方法的流程示意图。该方法可包括以下步骤:
步骤S51:获取当天多链路的已使用流量值U。
在建立蜂窝网络链路之前,终端首先获取当前多链路流量已经使用的量,即已使用流量值U,其单位可以是kB、MB、GB等,在此不作限定。
由于本申请实施例通过同时使用WiFi链路和蜂窝数据链路传输VVoIP音视频数据包,避免WiFi链路质量不稳定导致传输音视频卡断,而VVoIP音视频数据包传输码率较大,其通过蜂窝数据链路传输将消耗较大流量,若不作限制,可能产生较高的流量资费,影响用户QoE。因此,已使用流量值U可用于累计VVoIP服务在用户启用WiFi网络的同时蜂窝数据链路所消耗的流量,由此,可控制VVoIP在同时使用WiFi链路和蜂窝数据链路进行传输时蜂窝数据链路所消耗的流量。
步骤S52:判断已使用流量值U是否超过预设的流量阈值B。
其中,预设的流量阈值用于限制网络流量的使用情况,即预设的流量阈值可作为预设的流量预算,终端通过判断已使用流量值U是否超过预设的流量阈值B,并在已使用流量值U未超过预设的流量阈值B时,才执行步骤S53建立蜂窝数据链路进行数据传输,否则不使用蜂窝数据链路,只使用WiFi链路,从而可控制已使用流量值U不超过预设的流量阈值B,也就是不超过预设的流量预算。在一个示例中,预设的流量阈值可用字符B标识,表示为预设的流量阈值B,其单位可以是kB、MB、GB等,在此不作限定。
其中,用户在第一次使用VVoIP服务传输数据时,可引导用户设置每天的多链路流量预算值B,使得VVoIP服务在用户启用WiFi网络时能够使用的蜂窝网络流量不能超过B(MB/天)。
请参阅图8,其示出了本申请一个示例性实施例中提供的流量阈值输入页面的页面示意图。如图8所示,流量阈值输入页面60,包括输入框61,用于获取用户输入的信息,即用户可在该输入框61中输入,以使得终端获取用户输入的输入信息,以根据该输入信息设置预设的流量阈值B,例如用户在输入框61中输入“300MB”,则终端可设置预设的流量阈值B为300MB。
步骤S53:建立蜂窝数据链路。
终端在已使用流量值U未超过预设的流量阈值B时,建立蜂窝数据链路进行数据传输。具体建立方式可参见上述实施例所述的方法,在此不再赘述。
步骤S54:循环发送/接收数据。
终端可持续获取音视频数据,并打包成VVoIP音视频数据包传输至通信对端,并接收通信对端传输的VVoIP音视频数据包,由此,终端循环发送/接收数据。记终端一次发包或收包所需消耗的流量值记为T。
步骤S55:更新终端的已使用流量值U=U+T。
步骤S56:判断更新后的已使用流量值U是否超过预设的流量阈值B。
若此时U>B,可执行步骤S57;如果U≤B,那么说明当前的多链路流量使用量还在用户预期范围内,可以继续使用蜂窝数据网络发送音视频数据,即继续返回执行步骤S54。
步骤S57:不使用蜂窝数据链路。
在已使用流量值U超过预设的流量阈值B即U>B时,多链路流量预算耗尽,后续不使用蜂窝数据链路发送VVoIP音视频数据包,所有数据包都采用WiFi链路进行发送,以避免继续使用所带来的超额流量,并通知通信对端调整发送链路(不再向本端蜂窝数据链路发送数据)不使用蜂窝数据链路传输数据包。
由此,在建立蜂窝网络链路之前,终端首先获取当前多链路的已使用流量值,假设是U(MB),此时若U>B,则表示多链路流量预算已耗尽,终端不再建立蜂窝网络链路,只使用WiFi链路;若U<=B,则表示多链路流量预算还未耗尽,此时可按照上述实施例所述的方法建立蜂窝数据链路,并进入收发包阶段。从而WiFi网络和蜂窝数据网络都启用的场景下,可在通过蜂窝数据链路传输数据提升数据传输稳定性的同时,控制VVoIP音视频数据传输所消耗的流量,避免让用户承担高额的流量资费,达到提高用户QoE的目的。
请参阅图9,其示出了本申请一个示例性实施例提供的数据传输方法的流程示意图。该方法可应用于上述终端,该方法具体可包括:
步骤S110:获取待传输的第一数据包。
其中,待传输的第一数据包用于传输至通信对端,通信对端可以是其他终端,也可以是终端与其他终端之间用于中转两个终端之间数据的服务器,在此不作限定。
在一个示例性的实施例中,第一数据包可以是多媒体数据,如音频、视频、音视频数据等,其中,音视频数据包括音频和视频内容。例如基于VVoIP服务的音视频数据包,具体地,终端可获取音视频数据并打包成音视频数据包,并将该音视频数据包作为第一数据包进行传输。另外,通信对端可根据接收到的第一数据包,输出对应的多媒体内容,如音频、视频、音视频内容,使得用户基于通信对端可查看或听到对应的多媒体内容。
在另一个示例性的实施例中,第一数据包也可以是其他类型的多媒体数据,例如还可以是图片数据、文本数据等,在此不作限定。
在一些实施例中,在获取第一数据包时,可检测第一数据包的数据类型,在数据类型为传输码率较大的数据如音视频数据时,才执行后续步骤。由于传输码率较大的数据需要消耗较大流量,由此,可仅在需消耗较大流量时才通过本申请实施例提供的方法控制流量的同时提升数据传输稳定性。
步骤S120:通过第一网络接口建立第一数据链路。其中,第一网络接口与第一数据链路对应,用于建立第一数据链路。在一个示例中,第一数据链路可以是无线链路,例如WiFi链路,第一网络接口可以是对应无线网络的网络接口,例如WiFi网络接口。由此,终端可通过第一网络接口建立第一数据链路。
终端在第一数据链路对应的网络处于开启状态时,可建立与通信对端之间的第一数据链路,通过第一数据链路发送待传输数据至通信对端。
在一个示例性的实施例中,第一数据链路对应的网络为无线网络,通过建立第一数据链路,可通过无线网络并基于第一数据链路发送待传输数据,从而可在不消耗网络流量的情况下,发送待传输数据。例如,若无线网络为WiFi网络,则第一数据链路可为WiFi链路,终端在WiFi网络处于开启状态时,可建立WiFi链路发送待传输数据至通信对端。
在一些可能的实施例中,若在获取待传输数据前未开启第一数据链路对应的网络,在一种实施方式中,终端可生成第一开启提示以提示用户开启,并接收用户输入的第一开启指令进行开启。在另一种实施方式中,终端也可直接开启,以提高传输效率,避免传输卡顿。前述具体开启方式仅为示例,本实施例对此并不做限定。
在一个示例性的实施方式中,通过第一网络接口建立第一数据链路的具体实施方式可包括:创建第一网络接口对应的套接字;将套接字绑定到第一网络接口对应的互联网协议地址;将套接字作为第二数据链路的目标套接字。
其中,目标套接字作为第一数据链路的收发包套接字,用于基于第一数据链路与通信对端进行数据传输。终端将套接字作为第一数据链路的收发包套接字,此时第一数据链路可采用第一数据链路对应的网络收发数据包,由此,可完成第一数据链路的建立,以基于第一数据链路与通信对端进行数据传输。
并在一个示例性的实施例中,记第一网络接口对应的套接字为socket S,则基于IOS操作系统建立第一数据链路的具体示例可参见上述图3所述的实施例,在此不再赘述。基于安卓操作系统建立第一数据链路的具体示例可参见上述图5所述的实施例,在此也不再赘述。
步骤S130:通过第二网络接口建立第二数据链路。
其中,第二网络接口与第一网络接口具有不同类型,不同类型的网络接口对应不同网络,例如第一网络接口可对应数据传输无需消耗流量的网络,如无线网络,例如WiFi网络,第二网络接口可对应数据传输需消耗流量的网络,如蜂窝数据网络。
其中,第二网络接口与第二数据链路对应,用于建立第二数据链路。在一个示例中,第二数据链路可以是蜂窝数据链路,第二网络接口可以是对应蜂窝数据网络的网络接口。由此,终端可通过第二网络接口建立第二数据链路。
终端在第二数据链路对应的网络处于开启状态时,可通过第二数据链路发送第一数据包。
在一个示例性的实施例中,第二数据链路对应的网络为蜂窝数据网络,则第二数据链路可为蜂窝数据链路,通过建立蜂窝数据链路,可通过蜂窝数据网络并基于第二数据链路发送第一数据包,由此,可通过消耗网络流量,与第一数据链路一同发送第一数据包至通信对端,可避免单一采用第一数据链路进行数据传输时,由于第一数据链路的链路质量抖动所可能造成的第一数据包卡顿。
在一些可能的实施例中,若在获取第一数据包前未开启第二数据链路对应的网络,在一种实施方式中,终端可生成第二开启提示以提示用户开启,并接收用户输入的第二开启指令进行开启。在另一种实施方式中,终端也可直接开启,以提高传输效率,避免传输卡顿。前述具体开启方式仅为示例,本实施例对此并不做限定。
在一个示例性的实施方式中,通过第二网络接口建立第二数据链路的具体实施方式可包括:创建第二网络接口对应的套接字;将套接字绑定到第二网络接口对应的互联网协议地址;将套接字作为第二数据链路的目标套接字。
其中,目标套接字作为第二数据链路的收发包套接字,用于基于第二数据链路与通信对端进行数据传输。终端将套接字作为第二数据链路的收发包套接字,此时第二数据链路可采用第二数据链路对应的网络收发数据包,由此,可完成第二数据链路的建立,以基于第二数据链路与通信对端进行数据传输。
在一个示例性的实施方式中,若终端的操作系统类型为预设的目标操作系统类型,可在将套接字绑定到第二网络接口对应的互联网协议地址之后,检测移动终端的无线局域网是否处于开启状态,并在检测到移动终端的无线局域网处于开启状态时,调用系统API将创建的第二网络接口对应的套接字绑定到步骤S620获取的第二网络如蜂窝数据网络,再将该套接字作为第二网络的收发包套接字,以实现基于第二网络发送或接收数据包。由此才可实现同时基于第一数据链路和第二数据链路向通信对端发送待传输数据第一数据包。
在一些实施例中,若检测到移动终端的无线局域网处于关闭状态时,可直接将第二网络接口对应的套接字作为第二网络的收发包套接字,而无需将套接字绑定到第二网络。
另外,在一个示例性的实施例中,若记第二网络接口对应的套接字为socket S,基于IOS操作系统建立第二数据链路的具体示例可参见上述图4所述的实施例,在此不再赘述。基于安卓操作系统建立第二数据链路的具体示例可参见上述图6所述的实施例,在此也不再赘述。
步骤S140:获取与第二数据链路关联的已使用流量值。
其中,与第二数据链路关联的已使用流量值用于与预设的流量阈值比较来控制与第二数据链路关联的流量消耗,其单位可以是kB、MB、GB等,在此不作限定。
需要说明的是,与第二数据链路关联的已使用流量值可以用于累计第二数据链路所消耗的流量值,也可以用于累计第二数据链路对应的网络所消耗的流量值,即若第二数据链路对应的网络是蜂窝数据网络时,与第二数据链路关联的已使用流量值可用于累计蜂窝数据网络所消耗的流量值,即已使用流量值可不仅限于当前所建立的第二数据链路,还可一并累计基于蜂窝数据网络建立的其他数据链路所消耗的流量值,本实施例对此不作限定。
在一个示例性的实施例中,通过第二数据链路发送数据后可记录通过第二数据俩路发送的数据的流量值,已使用流量值可以是上次传输数据时所记录的已使用流量值。例如,上次传输对应时间段处于16:30:12至16:30:18的数据,记录已使用流量值为流量值U1,则本次获取对应时间段处于16:30:19至16:30:25的第一数据包时,可获取已使用流量值为流量值U1。并记录本次传输第一数据包所消耗的流量值为U2,用于更新当前的已使用流量值为流量值U3=U1+U2,则下次获取的已使用流量值,为流量值U3。
其中,已使用流量值可以是终端从预定时间段内所使用的流量值,例如,可以是当天某一时间段,也可以是当天已使用的流量值,还可以是当月已使用的流量值,其单位可以是kB、MB、GB等,在此不作限定。
在一些实施例中,已使用流量值可以按终端上安装的所有应用程序所使用的流量值。
在另一些实施例中,也可以是单个应用程序所使用的流量值,即终端可获取指定应用程序的已使用流量值,例如可以是VVoIP应用(如微信、QQ等可提供VVoIP服务的应用程序)的已使用流量值,由于VVoIP音视频传输码率较大,在数据传输时所需消耗流量较大,因而通过获取VVoIP应用的已使用流量值,可通过后续步骤控制VVoIP应用所使用流量,避免过大消耗,造成过高的流量资费。
在又一些实施例中,还可以是传输预定类型的数据所使用的流量值,例如,已使用流量值可以用于累计传输VVoIP音视频数据包所使用的流量值。由于本申请实施例通过同时使用WiFi链路和蜂窝数据链路传输VVoIP音视频数据包,避免WiFi链路质量不稳定导致传输音视频卡顿,而VVoIP音视频数据包传输码率较大,其通过蜂窝数据链路传输将消耗较大流量,若不作限制,可能产生较高的流量资费,影响用户QoE。因此,为精准控制VVoIP在同时使用WiFi链路和蜂窝数据链路进行传输时蜂窝数据链路所消耗的流量,已使用流量值可用于累计在启用WiFi链路传输VVoIP的同时蜂窝数据链路所消耗的流量。
在一个示例性的实施例中,已使用流量值可以是终端当天已使用的流量值,从而可按天累计流量,对每天的流量使用情况进行监控,以在通过上述方法同时创建WiFi链路和蜂窝数据链路以同时利用WiFi链路和蜂窝数据链路传输数据,提高数据传输稳定性时,还可监控当前已使用的流量值,从而避免过度消耗流量,使用户承担高额的流量资费,可在可控的范围内消耗部分流量,以实现数据传输稳定性的提升,大大提升用户QoE。
在另一个示例性的实施例中,已使用流量值可以是当月已使用的流量值,从而可按月累计流量,与运营商结算周期相匹配,由于运营商结算一般按月结算,因而可使得累计流量与运营商结算的流量资费相匹配,从而可通过后续步骤有效控制流量资费。
在一些实施方式中,当月可以是指当前所处的自然月,即当月已使用的流量值从当月1日开始累计,例如,若当天为8月10日,则已使用流量值可以是自8月1日起至8月10日当前所使用的流量值。
在另一些实施方式中,当月也可以是当前所处的非自然月,即当月已使用的流量值可以从预定日期开始累计,在一些方式中,当月可以由提供网络流量服务的运营商的结算周期确定,例如,结算周期可以是每月5日开始至下一个月的4或5日截止,按终端获取已使用流量值当天所处的结算周期可得到当月已使用的流量值,若当天为8月10日,按前述结算周期,则已使用流量值可以是自8月5日起至8月10日当前所使用的流量值。
作为一种实施方式,终端可向运营商发送流量累计请求,以获得已使用流量值。作为另一种实施方式,终端也可自行累计已使用流量值。本实施例对已使用流量值的获取方式做具体限定。
步骤S150:若第二数据链路的网络流量未超过预设的流量阈值,对于获取的每个第一数据包,分别通过第一数据链路与第二数据链路传输。
其中,预设的流量阈值用于限制网络流量的使用情况,即预设的流量阈值可作为预设的流量预算,通过与已使用流量值的比较来限制与第二数据链路关联的流量使用情况,其单位可以是kB、MB、GB等,在此不作限定。终端通过判断已使用流量值是否超过预设的流量阈值,并在已使用流量值未超过预设的流量阈值时,建立与通信对端之间的第二数据链路进行数据传输,否则不使用第二数据链路,只使用第一数据链路,从而可控制已使用流量值不超过预设的流量阈值,也就是不超过预设的流量预算。
在一些示例性的实施例中,根据已使用流量值的累计方式不同,预设的流量阈值也相应不同。例如,若已使用流量值按天累计,则预设的流量阈值可为每天的流量预算,若已使用流量值按月累计,则预设的流量阈值可为每月的流量预算。
另外,若已使用流量值按终端上所有应用程序累计,则预设的流量阈值可以是对所有应用程序的流量预算。若已使用流量值按单个应用程序累计,则预设的流量阈值可以是对该单个应用程序的流量预算。
在一个示例性的实施例中,预设的流量阈值可以是按终端所使用流量套餐和已使用流量值U的累计方式进行确定。例如,终端所使用流量套餐内流量为10GB,则可根据已使用流量值U的累计方式确定流量,在一些实施方式中,若已使用流量值U按天累计,则预设的流量阈值B可由10GB除以流量结算周期的日期总数得到。
在另一个示例性的实施例中,预设的流量阈值也可以是用户自定义的,在一些实施方式中,在用户首次使用VVoIP服务时,终端可生成流量阈值输入页面,提示用户输入预设的流量阈值B,并获取基于流量阈值输入页面输入的输入信息,根据该输入信息得到预设的流量阈值。例如用户可输入“300MB”,由此终端可设置预设的流量阈值为300MB。
需要说明的是,在本申请实施例中,若已使用流量值未超过预设的流量阈值,终端还通过第二数据链路发送第一数据包,此时终端可对获取的每个第一数据包,分别通过第一数据链路和第二数据链路传输至通信对端,即第一数据包A既通过第一数据链路发送至通信对端,也通过第二数据链路发送至通信对端,从而可以通过消耗部分流量,避免单一采用第一数据链路传输时链路质量抖动可能造成的卡顿,以提升数据传输稳定性。另外,终端也可同时基于第一数据链路和第二数据链路接收通信对端发送的数据,具体可见后续实施例,在此不再赘述。
在一些实施例中,若已使用流量值超过预设的流量阈值,终端可仅使用第一数据链路发送第一数据包,以避免超额流量消耗。在一些实施方式中,可通知通信对端调整发送链路(不再向终端第二数据链路发送数据),使得终端与通信对端之间不使用第二数据链路传输数据。
本申请实施例提供的数据传输方法,通过在同时启用第一数据链路、第二数据链路对应的网络时,建立第一数据链路和第二数据链路,并监控与第二数据链路关联的已使用流量值,在已使用流量值未超过预设的流量阈值时,对每个获取的第一数据包,均分别使用第一数据链路和第二数据链路进行传输,以充分利用终端接入网络资源,避免任一数据链路的链路质量抖动造成第一数据包卡顿,从而通过消耗部分网络流量提升数据传输稳定性,大大提高用户QoE。并在已使用流量值超过预设的流量阈值时,仅使用第一数据链路传输第一数据包,避免造成超额流量消耗。
在一些实施例中,步骤S130可以包括:若已使用流量值未超过预设的流量阈值,通过第二网络接口建立第二数据链路。
即需要说明的是,本申请实施例对步骤S130的执行顺序不作限定,可在判定已使用流量未超过预设的流量阈值后执行,也可在步骤S140之前,即先建立第二数据链路,在已使用流量值未超过预设的流量阈值时再通过第二数据链路传输。另外,若已使用流量值超过预设的流量阈值,则本次可不使用第二数据链路进行传输,从而可有效准确地控制同时启用两个链路传输数据时的流量消耗,以避免为提升数据稳定性而带来过大流量消耗。
另外,本申请实施例对步骤S120与步骤S130的执行顺序也不做限定,可以先建立第一数据链路再建立第二数据链路,也可先建立第二数据链路再建立第一数据链路,还可以同时建立第一、第二数据链路。
请参阅图10,其示出了本申请一个示例性实施例中图9所示的方法中步骤S120的详细步骤示意图,具体地,步骤S120可包括:
步骤S210:根据终端的操作系统类型获取与第一数据链路对应的第一网络接口特征。
实际应用中,根据终端所运行操作系统的不同,建立第一数据链路的方式可能会有所不同,此时,可根据终端的操作系统类型获取与第一数据链路对应的第一网络接口特征。
其中,第一网络接口特征可以是各种数据,用于确定第一网络接口,例如第一网络接口特征可以与网络接口的标识匹配,网络接口的标识可以是“en0”、“wlan0”等,还可以与其他可用于确定网络接口的特征匹配,只要可根据第一网络接口特征确定与之匹配的第一网络接口即可,除此之外,本实施例不作其他任何限定。
在一个示例性的实施例中,第一数据链路对应WiFi网络,此时,若终端的操作系统类型为IOS操作系统,与第一数据链路对应的第一网络接口特征可与网络接口的标识如“en0”匹配。另外,若操作系统类型为安卓操作系统,第一网络接口特征可与网络接口的标识如“wlan0”匹配。前述仅为示例性描述,针对前述操作系统类型,第一网络接口特征还可包括其他数据,并针对其他操作系统类型,第一网络接口特征还可包括与前述相同或不同的数据,本实施例对此不作限定。
步骤S220:获取终端当前可用的网络接口列表。
在一个示例性的实施方式中,终端基于其所运行的操作系统可调用系统API获取当前可用的网络接口列表。
在一个示例性的实施例中,当前可用的网络接口列表可以是包含当前未被占用的网络接口的网络接口列表。
在另一个示例性的实施例中,当前可用的网络接口列表也可以是所有的网络接口列表。
需要说明的是,步骤S220也可以在步骤S210之前执行,本实施例对步骤S210和步骤S220之间的执行顺序不作限定。
步骤S230:根据第一网络接口特征从可用的网络接口列表中获取匹配的第一网络接口。
根据第一网络接口特征可从可用的网络接口列表中获取匹配的第一网络接口,第一网络接口与第一网络接口特征匹配。
在一个示例性的实施例中,第一网络接口特征可包括第一字符串模式,则根据终端的操作系统类型可获取第一字符串模式,并根据可用网络接口列表中的每个网络接口的标识是否符合第一字符串模式获取第一网络接口,其中,第一网络接口的标识符合第一字符串模式。
其中,第一字符串模式用于从网络接口列表中根据每个网络接口的标识获取第一网络接口,第一字符串模式根据实际需要或系统架构不同可采用不同的模式,且可采用一种或多种模式。例如,字符串A包括在字符串B中,是一个模式;字符串A与字符串B相等,也可以定义其为一个模式,字符串A与某个正则表达式匹配,可以说字符串A符合正则表达式所定义的模式。需要说明的是,前述仅为示例性描述,本实施例对第一字符串模式的具体模式不作限定。
在一些示例性的实施方式中,记第一数据链路对应的第一网络接口的标识为目标标识,终端可从网络接口列表中查找标识包含目标标识的网络接口作为匹配的第一网络接口。在另一些示例性的实施方式中,也可从网络接口列表中查找标识包含目标标识且目标标识在指定位置的网络接口作为匹配的第一网络接口,指定位置可以是开头、末尾等任意位置。在又一些示例性的实施方式中,终端可从网络接口列表中查找标识符合预定正则表达式的网络接口作为匹配的第一网络接口。
在一些示例中,若第一网络接口为标识为“en0”的网络接口,则可检索网络接口列表,并从中根据每个网络接口的标识是否与标识为“en0”的网络接口匹配,获取与标识“en0”的网络接口匹配的网络接口即为符合第一字符串模式的网络接口作为第一网络接口。例如,若网络接口A的标识为“en0”,则该网络接口符合第一字符串模式,可被获取为匹配的第一网络接口。
在一些实施例中,若在网络接口列表中不存在与第一网络接口特征匹配的第一网络接口,则本次第一数据链路建立失败。
由于需进行数据传输的通信双方的互联网协议地址(IP地址)类型相同,才可正常传输数据,因此为保证数据的正常发送,终端还可根据通信对端的互联网协议地址类型来获得第一网络接口,以用于建立第一数据链路。具体实施方式可见后述实施例在此不再赘述。
在一个示例性的实施例中,终端可基于第一字符串模式以及通信对端的互联网协议地址类型来获取第一网络接口,以用于建立第一数据链路。作为一种实施方式,可先根据可用的网络接口列表中的每个网络接口的标识是否符合第一字符串模式获取候选的第一网络接口,再从候选的第一网络接口中获取与互联网协议地址类型匹配的第一网络接口,以用于建立第一数据链路。作为另一种实施方式,也可先获取与通信对端的互联网协议类型匹配的候选的第一网络接口,再从中根据可用的网络接口列表中的每个网络接口的标识是否符合第一字符串模式获取第一网络接口。作为又一种实施方式,还可同时执行前述两个步骤得到重合的网络接口作为第一网络接口以用于建立第一数据链路。本实施例对此不做限定。
步骤S240:通过第一网络接口建立第一数据链路。
根据前述步骤可获取第一网络接口,用于建立第一数据链路,具体建立方式可参见上述实施例,在此不再赘述。
根据本实施例提供的方法,终端可通过第一网络接口建立第一数据链路。
请参阅图11,其示出了本申请一个示例性实施例中图10所示的方法中步骤S230的详细步骤示意图,步骤S230可包括以下步骤:
步骤S310:获取通信对端的互联网协议地址类型。
根据前述实施例建立第一数据链路时,需要把socket绑定到特定网络接口的本地IP地址,如此才可用指定网卡/基带收发数据包。而对于双协议栈(IPv4和IPv6)的网络而言,会同时存在多个同种类型的网络接口,比如,多个网络接口的标识中包含相同的接口标识(如“rmnet”),而该多个网络接口中既包含IPv4地址族的网络接口,也包含IPv6地址族的网络接口。若随意选择其中一个与socket绑定,可能出现IPv4与IPv6之间的兼容问题,例如,如果把一个socket绑定到一个IPv4的本地IP地址,然后用该socket往IPv6的目标IP地址发送数据包,此时会发送失败。因此,本实施例获取通信对端的互联网协议地址(IP地址)类型,可根据通信对端的IP地址类型来确定第一网络接口,从而使得socket绑定到与通信对端的IP地址类型匹配的IP地址,以避免发送失败,提高系统可用性。
在一些方式中,具体地,可获取通信对端的公网IP地址,并根据公网IP地址类型得到通信对端的互联网协议地址类型。
其中,互联网协议地址类型可包括第一地址类型或第二地址类型。在一个示例性的实施例中,第一地址类型可对应IPv4的IP地址,第二地址类型可对应IPv6的IP地址。
步骤S320:获取与互联网协议地址类型匹配的第一网络接口。
在一个示例性的实施例中,在互联网协议地址类型为第一地址类型时,从与第一地址类型匹配的第一候选网络接口中确定第一网络接口。
在互联网协议地址类型为第二地址类型时,从与第二地址类型匹配的第二候选网络接口中确定第一网络接口。
在一个示例性的实施方式中,可通过协议族选择与互联网协议地址类型匹配的第一网络接口,例如,若第一地址类型对应IPv4的IP地址,则可根据IPv4的协议族AF_INET来获取与第一地址类型匹配的第一候选网络接口,此时,第一网络接口的协议族为AF_INET。若第二地址类型对应IPv6的IP地址,则可根据IPv6的协议族AF_INET6来获取与第二地址类型匹配的第二候选网络接口,并从中确定目标网络接口,此时,第二网络接口的协议族为AF_INET6。
无论以什么标准确定用于建立第一数据链路的第一网络接口,与第一地址类型匹配的第一候选网络接口、与第二地址类型匹配的第二候选网络接口可能会有多个,但在一个数据链路中一般用一个套接字进行数据传输,而一个套接字仅绑定到一个网络接口的IP地址。因此,第一网络接口是上述的第一候选网络接口和第二候选网络接口中的某一个。由于IPv6的IP地址还包括全球单播地址以及链路本地地址,因而在一个示例性的实施例中,若通信对端的互联网协议地址类型为第二地址类型,步骤S320还可包括步骤S321至步骤S323,具体地,请参阅图12,其示出了本申请一个示例性实施例中图11所示的方法中步骤S320的详细步骤示意图,步骤S320可包括:
步骤S321:判断在至少一个第二网络接口中是否存在互联网协议地址为全球单播地址的第二网络接口。
需要说明的是,步骤S321仅为示意性说明,终端实际上可无需作判断,仅首先查找IP地址属于全球单播地址的第二候选网络接口,并在可查找到时,执行步骤S322,而在无法查找到IP地址属于全球单播地址的第二候选网络接口时,执行步骤S323。
步骤S322:从互联网协议地址为全球单播地址的第二候选网络接口中确定第一网络接口。
在至少一个第二网络接口中存在互联网协议地址为全球单播地址的第二候选网络接口时,从中确定第一网络接口,在一些实施方式中,终端可查找协议族为AF_INET6并且IP地址属于全球单播地址的网络接口,并从中确定第一网络接口。
步骤S323:从互联网协议地址为链路本地地址的第二网络接口中确定目标网络接口。
根据本实施例的方法,终端基于协议族和IP地址,可在通信对端的IP地址为IPv6的地址时,首先查找协议族为AF_INET6并且IP地址属于全球单播地址的网络接口,并在不存在时,继续查找协议族为AF_INET6并且IP地址属于链路本地地址的网络接口,再从查找的网络接口中确定目标网络接口。由于使用链路本地地址作为源或目的地址的数据包不会被转发到其他链路上,因而在存在IPv6地址属于全球单播地址的网络接口,优先使用该网络接口,可提高数据包转发的灵活性,使得数据包可不限于在一条链路上传输。
请参阅图13,其示出了本申请一个示例性实施例中图9所示的方法中步骤S130的详细步骤示意图,具体地,步骤S130可包括:
步骤S410:根据终端的操作系统类型获取与第二数据链路对应的第二网络接口特征。
实际应用中,根据终端所运行操作系统的不同,建立第二数据链路的方式可能会有所不同,此时,可根据终端的操作系统类型获取与第二数据链路对应的第二网络接口特征。
其中,第二网络接口特征可以是各种数据,用于确定第二网络接口,例如第二网络接口特征可以与网络接口的标识匹配,网络接口的标识可以是“pdq_ip0”等,还可以与其他可用于确定网络接口的特征匹配,只要可根据第二网络接口特征确定与之匹配的第二网络接口即可,除此之外,本实施例不作其他任何限定。
在一个示例性的实施例中,第二数据链路对应蜂窝数据网络,此时,若终端的操作系统类型为IOS操作系统,与第二数据链路对应的第二网络接口特征可与网络接口的标识如“pdq_ip0”匹配。
需要说明的是,前述仅为示例性描述,针对前述操作系统类型,第二网络接口特征还可包括其他数据,并针对其他操作系统类型,第二网络接口特征还可包括与前述相同或不同的数据,本实施例对此不作限定。
步骤S420:获取终端当前可用的网络接口列表。
在一个示例性的实施例中,步骤S420的具体描述可参见上述实施例所述的步骤S320,在此不再赘述。
在一个示例性的实施例中,若终端的操作系统类型为预设的目标操作系统类型,例如安卓操作系统,则在获取终端当前可用的网络接口列表时,需先获取第二数据链路对应的第二网络如蜂窝数据网络,并在获取到第二网络时,才获取可用的网络接口列表。而在一些方式中,若无法获取第二网络,则本次第二数据链路建立失败。
步骤S430:根据第二网络接口特征从可用的网络接口列表中获取匹配的第二网络接口。
根据第二网络接口特征可从可用的网络接口列表中获取匹配的第二网络接口,第二网络接口与第二网络接口特征匹配。
在一个示例性的实施例中,第二网络接口特征可包括第二字符串模式,则根据终端的操作系统类型可获取第二字符串模式,并根据可用网络接口列表中的每个网络接口的标识是否符合第二字符串模式获取第二网络接口,其中,第二网络接口的标识符合第二字符串模式。
在一些示例性的实施方式中,记第二数据链路对应的第二网络接口的标识为目标标识,终端可从网络接口列表中查找标识包含目标标识的网络接口作为匹配的第二网络接口。在另一些示例性的实施方式中,也可从网络接口列表中查找标识包含目标标识且目标标识在指定位置的网络接口作为匹配的第二网络接口,指定位置可以是开头、末尾等任意位置。在又一些示例性的实施方式中,终端可从网络接口列表中查找标识符合预定正则表达式的网络接口作为匹配的第二网络接口。
在一些示例中,若第二网络接口是标识为“pdq_ip0”的网络接口,则可检索网络接口列表,并从中根据每个网络接口的标识是否与标识为“pdq_ip0”的网络接口匹配,获取与标识“pdq_ip0”的网络接口匹配的网络接口即为符合第二字符串模式的网络接口作为第二网络接口。例如,若网络接口A的标识为“pdq_ip0”,则该网络接口符合第二字符串模式,可被获取为匹配的第二网络接口。
在一些实施例中,若在网络接口列表中不存在与第二网络接口特征匹配的第二网络接口,则本次第二数据链路建立失败。
在一个示例性的实施例中,若终端的操作系统类型为预设的目标操作系统类型,可根据终端的芯片类型确定第二字符串模式。其中,芯片类型可包括第一芯片类型或第二芯片类型,并第一芯片类型对应第一芯片标识,第二芯片类型对应第二芯片标识。由于目前安卓操作系统中建立蜂窝数据链路与终端所使用芯片有关,因而在一个示例性的实施例中,根据目前安卓操作系统所常用的芯片,第一芯片标识可为高通芯片机器对应的“rmnet”,第二芯片标识可为联发科芯片机器对应的“ccmni”。
在一个示例性的实施方式中,蜂窝数据网络对应的网络接口一般以上述芯片标识开头,因而可通过设置第二字符串模式为查找标识开头为第一芯片标识或第二芯片标识的网络接口的标识,以从标识以芯片标识开头的网络接口中确定对应的第二网络接口,由此通过仅查找标识开头即可筛选出所需的第二网络接口,可提高第二网络接口的获取效率,从而提高链路建立效率。另外,根据第二字符串模式的不同,也可通过不同方式获取第二网络接口,在此不作限定。
步骤S440:通过第二网络接口建立第二数据链路。
根据前述步骤可获取第二网络接口,用于建立第二数据链路,具体建立方式可参见上述实施例,在此不再赘述。
需要说明的是,在一些示例性的实施例中,第二数据链路与第一数据链路的建立方式大致相同,本实施例中未详细描述的部分可参见上述图10所示的实施例。
根据本实施例的方法,可通过第二网络接口建立第二数据链路,终端可对获取的每个第一数据包,分别通过第一数据链路和第二数据链路传输,即第一数据包A既通过第一数据链路传输至通信对端,也通过第二数据链路传输至通信对端,从而可以通过消耗部分流量,避免单一采用第一数据链路传输时链路质量抖动可能造成的卡顿,以充分利用终端接入网络资源,提升数据传输稳定性。
请参阅图14,其示出了本申请一个示例性实施例中图13所示的方法中步骤S430的详细步骤示意图,步骤S430可包括以下步骤:
步骤S510:获取通信对端的互联网协议地址类型。
步骤S520:获取与互联网协议地址类型匹配的第二网络接口。
需要说明的是,在一些示例性的实施例中,第二网络接口与第一网络接口的获取方式在原理上大致相同,本实施例中未详细描述的部分可参见上述图11-12所示的实施例,在此不再赘述。
请参阅图15,其示出了本申请一个示例性实施例中建立第二数据链路的方法的流程示意图,具体地,于本实施例中,第二数据链路为蜂窝数据链路,该方法可建立基于蜂窝数据网络的中转链路,即第二数据链路是一种中转链路,以实现中转传输。具体地,该方法可包括:
步骤S610:发送蜂窝数据网络标识与用户识别卡信息至信令服务器以使信令服务器返回中转服务器信息。
其中,信令服务器可用于链路创建、管理决策和信息同步。外网地址获取服务器可用于获取蜂窝数据网络的运营商为终端配置的外网地址,以及根据外网地址确定中转服务器的信息。
在一些示例性的实施例中,终端可在检测到蜂窝数据网络启用时,发送蜂窝数据连接请求至信令服务器,蜂窝数据连接请求包括蜂窝数据网络标识,由此通过蜂窝数据连接请求发送蜂窝数据网络标识至信令服务器。
作为一种实施方式,终端在发送蜂窝数据网络标识的时候,将用户识别卡(subscriber identity modula,SIM)信息一同发送至信令服务器。例如,将蜂窝数据网络标识和sim卡信息均通过上述的蜂窝连接请求发送至信令服务器,以便信令服务器在获取到蜂窝数据网络标识的时候,同时也获取到了SIM卡信息。
作为另一种实施方式,信令服务器在获取到蜂窝数据网络标识之后,可发送信息获取请求至终端,指示终端将SIM卡信息发送至信令服务器,此时终端再将SIM卡信息发送至信令服务器。
终端获取SIM卡信息的方式可以是,终端调用终端内的SIM卡信息获取模块获取SIM卡信息。其中,SIM卡信息获取模块可以是预先安装在终端的操作系统内的API。其中,API可以是终端的操作系统内的一个服务组件,例如,该API为TelephonyManager,即操作系统内的一个管理通话状态、电话网络信息的服务类。该类提供了函数获取SIM卡信息。
信令服务器根据所述SIM卡信息为所述终端分配外网地址获取服务器之后,终端可通过所述蜂窝数据网络发送数据包至所述外网地址获取服务器。作为一种实施方式,可以是发送指示信息至终端,终端根据该指示信息通过所述蜂窝数据网络发送数据包至所述外网地址获取服务器。其中,该配置信息可以包括外网地址获取服务器的信息,该外网地址获取服务器的信息可以包括IP地址或者连接端口等信息。
其中,SIM卡信息可以包括SIM卡的卡号,该SIM卡的卡号作为该SIM卡的标识。作为一种实施方式,信令服务器内预先存储SIM卡的卡号与外网地址获取服务器的对应关系。例如,在信令服务器曾经为SIM卡的卡号对应的终端配置外网地址获取服务器之后,该SIM卡的卡号与所配置的外网地址获取服务器的对应关系被存储,则当再次获取到该SIM卡的卡号的时候,根据该对应关系能够查找到该SIM卡的卡号所对应的外网地址获取服务器,作为为所述终端分配的外网地址获取服务器。
另外,该SIM卡信息还包括移动设备国家代码(Mobile Country Code,MCC)和移动设备网络代码(Mobile Network Code,MNC),则根据所述SIM卡信息为所述终端分配外网地址获取服务器的实施方式可以是,根据所述SIM卡信息获取运营商信息;根据所述运营商信息为所述终端分配外网地址获取服务器。
其中,运营商信息用于表征终端的蜂窝网络数据所属的运营商,信令服务器可以根据该运营商信息所确定的蜂窝网络数据所属的运营商,查找部署在该运营商的网地址获取服务器,作为为所述终端分配的外网地址获取服务器。例如,MCC和MNC信息显示终端的蜂窝网络是移动的蜂窝网络,那么直接分配部署在移动的外网地址获取服务器给终端。
另外,需要说明的是,终端可能是多卡多待的终端,即终端具有多个SIM卡的卡槽,能够使用多个SIM卡,则信令服务器所获取的终端发送的SIM卡信息所对应的SIM卡为终端所使用的多个SIM卡中,当前正在使用的SIM卡或者当前用于通过蜂窝数据网络传输数据的SIM卡。
进一步地,信令服务器可获取外网地址获取服务器确定的外网地址。
其中,外网地址为外网地址获取服务器根据所接收的数据包而确定,所述数据包由终端通过所述蜂窝数据网络发送至所述外网地址获取服务器。
在信令服务器为终端分配了外网地址获取服务器之后,外网地址获取服务器可以通过终端在蜂窝数据网络上发送的数据包确定终端的蜂窝数据网络对应的外网地址。
作为一种实施方式,信令服务器将为终端分配的外网地址获取服务器的信息发送至终端,指示终端通过蜂窝数据网络向该外网地址获取服务器发送一个数据包。其中,该数据包可以是UDP协议的socket包。该数据包在蜂窝数据网络传输的过程中,该蜂窝数据网络的运营商为终端分配一个外网地址,并写入该数据包内,外网地址获取服务器在接收到该数据包的时候,解析该数据包获取到该外网地址。作为一种实施方式,该数据包在位于蜂窝数据网络的内网的时候,该数据包内的源地址为内网IP地址,然后在该数据包进入蜂窝数据网络的公网的时候,该数据包的源地址中的内网IP地址为运营商修改为公网IP地址,外网地址获取服务器读取该源地址内的公网IP地址,则该公网IP地址为所述蜂窝数据网络的运营商为所述终端配置的外网地址。
作为一种实施方式,外网地址获取服务器可以直接将所获取的外网地址发送至信令服务器。作为另一种实施方式,为了减少外网地址获取服务器的数据处理的负担以及避免在外网地址获取服务器内设置通信模块,以便通过该通信模块实现与信令服务器的通信,则可以直接使用预先建立的终端与外网获取服务器之间的通信链路以及终端和信令服务器之间的通信链路,则将外网地址通过终端转交给信令服务器。具体地,外网地址获取服务器将外网地址发送至终端,终端将外网地址发送至信令服务器,则信令服务器获取终端发送的所述外网地址。
在一个示例中,外网地址获取服务器的信息可以包括外网地址获取服务器的IP地址和端口,分别记为svr_ip和svr_port。终端可以根据该IP地址和端口向外网地址获取服务器发送数据包。终端在蜂窝数据网络上创建与外网地址获取服务器之间的第二数据链路,终端通过第二数据链路发送数据包至外网地址获取服务器。该数据包携带有目标地址和目标端口以及上述的源地址,并通过UDP协议广播至外网地址获取服务器。其中,目标地址记为dst:svr_ip,其为外网地址获取服务器的IP地址。目标端口记为dst:svr_port,其为外网地址获取服务器的端口。源地址记为src:socket S,在内网的时候,为内网IP,进入外网的时候,该源地址变为运营商所配置的外网地址。
进一步地,信令服务器根据外网地址确定中转服务器的信息。信令服务器能够根据外网地址为终端的蜂窝数据网络配置中转服务器。作为一种实施方式,外网地址能够反应接入网设备(例如,基站)的地理位置,根据该地理位置配置中转服务器。例如,将与接入网设备的地理位置之间的位置关系满足预设条件的服务器作为中转服务器,其中,满足预设条件的服务器可以是距离接入网设备的地理位置最近的服务器。另外,还可以通过外网地址获取到运营商信息,还可以根据运营商信息确定中转服务器的中转服务器信息,或者,还可以将运营商信息与地理位置信息结合来确定中转服务器信息。
在一个示例性的实施方式中,中转服务器信息可包括但不限于通话房间号和链路标识等信息。
其中,通话房间号用于标识一次通话,于本实施例中,以终端和通信对端之间的数据交互为音视频通话为例说明终端和通信对端的链路创建过程。
其中,链路标识用于作为链路的身份信息,便于对链路的管理。其中,链路标识可以是一个数值。作为一种实施方式,该链路标识是递增的,假如当前的链路标识为a,则之后新分配的链路标识为a+1。根据终端和通信对端的接入网络的数量,这里可能会同时分配多条中转链路。例如,信令服务器获取到的终端的接入网络的名称为网卡1和网卡2,信令服务器收到接入网络的名称为网卡1,则信令服务器为分配两个链路标识,分别为终端的网卡1-通信对端的网卡1,链路标识为0;终端的网卡2-通信对端的网卡1,链路标识为1。
信令服务器在获取到终端对应的中转服务器信息后,可将中转服务器信息发送至终端。
具体地,信令服务器可把中转服务器信息同步到中转服务器,指示中转服务器执行初始化操作,并返回确认信息至信令服务器。其中,确认信息为上述用于表示中转服务器处于可连接状态的信息。其中,初始化操作可以是存储初始化,即中转服务器将通话房间号和链路标识对应存储,以便中转服务器知晓所创建的通话房间号,以及所对应的链路标识。后续终端发数据包到中转服务器时,服务器能够根据通话房间号与链路标识的对应关系,判断这个是不是一个合法的数据包。也就是说,在中转服务器完成初始化操作之后,就处于可连接状态,即能够返回确认信息至信令服务器。其中,该确认信息可以是一个参数,例如READY。
另外,信令服务器也将中转服务器信息发送至终端,以使中转服务器可对终端发送的数据的合法性进行确定。
步骤S620:接收中转服务器信息。
步骤S630:根据中转服务器信息建立第二数据链路。
终端接收中转服务器信息,能够根据中转服务器信息建立第二数据链路,以基于第二数据链路,实现与通信对端之间基于蜂窝数据网络及中转服务器的中转传输,从而可以进一步提高数据传输的稳定性。
在一个示例性的实施方式中,终端接收中转服务器信息后可基于蜂窝数据网络创建或者获取连接包,作为新建中转链路的收发包。其中,该连接包可以是基于UDP协议的套接字。作为一种实施方式,终端判断接入网络上是否存在预先创建的连接包,如果存在,则获取该连接包,如果不存在,则创建该连接包。
终端将连接包发送至中转服务器信息对应的中转服务器,中转服务器在获取到该连接包后,获取该连接包内的中转服务器信息,如通话房间号和链路标识,确定与预先存储的中转服务器信息是否匹配,如果匹配,则返回状态信息。该状态信息用于告知终端已经成功和中转服务器建立中转链路,可以发送数据包。该中转链路即为第二数据链路。
终端和中转服务器之间通过中转链路传输数据包。同理通信对端的中转服务器信息与终端的一致,因而也可建立中转链路与中转服务器传输数据包,从而实现终端和通信对端之间基于中转服务器的中转传输,提高数据传输稳定性。
根据本实施例提供的方法,可在终端通过第二网络接口建立第二数据链路时,建立中转链路实现基于第二数据链路的中转传输。
请参阅图16,其示出了本申请一个示例性实施例中终端接收数据包的流程示意图,终端通过本实施例提供的方法可接收来自两个链路的数据包,并根据接收到的数据包输出对应的多媒体内容,以在通过前述方法降低链路质量抖动提高传输稳定性的基础上,实现稳定输出,使得用户可基于终端更为实时地听到或查看来自通信对端的数据流。具体地,该方法可包括:
步骤S710:分别通过第一数据链路和第二数据链路,接收通信对端发送的第二数据包。
在一些实施方式中,第一数据链路可指代基于无线网络传输的数据链路,第二数据链路可指代基于蜂窝数据网络传输的数据链路。
在一个示例性的实施方式中,终端发送数据包和接收数据包时可基于同一数据链路,具体地,终端在通过第一网络接口建立第一数据链路时,可创建套接字,将该套接字绑定到第一网络接口的IP地址以及一个端口,并将该套接字作为收发包套接字,从而完成第一数据链路的建立。此时,通过该套接字发送的数据包都从该端口发出,并从该端口接收通信对端发送数据包,即终端可基于同一端口、即同一第一数据链路发送和接收数据包。同理,终端也可基于同一端口、即同一第二数据链路发送和接收数据包,在此不再赘述。
在另一个示例性的实施方式中,终端在向通信对端发送第一数据包时所建立的第一数据链路、和接收通信对端发送第二数据包时所基于的第一数据链路,可以是基于不同的端口建立的,从而终端可基于一个端口来通过第一数据链路发送数据包,基于另一个端口通过第一数据链路接收数据包。同理,终端也可基于一个端口来通过第二数据链路发送数据包,基于另一个端口通过第二数据链路接收数据包。
例如,终端在通过第一网络接口建立第一数据链路时,可创建套接字S1,并将套接字S1可绑定到第一网络接口的IP地址以及端口8888,将套接字S1作为用于发送数据包的第一数据链路的套接字,此时终端可通过端口8888向通信对端发送第一数据包。另外,还可创建套接字S2,并将套接字S2绑定到第一网络接口的IP地址以及端口9999,将套接字S2作为用于接收数据包的第一数据链路的套接字,此时终端可通过端口9999基于第一数据链路接收通信对端发送的第二数据包。其中,两个套接字可绑定同一第一网络接口的IP地址,也可绑定不同第一网络接口的IP地址,在此不作限定。另,第二数据链路同理,在此不再赘述。
步骤S720:根据由第一数据链路以及第二数据链路接收的第二数据包,输出对应的多媒体内容。
由于第一数据链路和第二数据链路的链路质量有差异,并且基于第一数据链路和第二数据链路均基于UDP协议收发数据包,可能存在丢包。因此,终端通过第一数据链路接收到的第二数据包可能不同于通过第二数据链路接收到的第二数据包,例如,即终端通过第一数据链路可能接收到第二数据包A、第二数据包B、第二数据包C,通过第二数据链路可能接收到第二数据包A、第二数据包C,却并未接收到第二数据包B,即第二数据链路的数据传输中出现丢包,丢失第二数据包B。另外,终端在同一时刻通过第一数据链路接收到的第二数据包可能与通过第二数据链路接收到的数据包存在差异,例如终端通过第一数据链路接收到第二数据包A之前,已通过第二数据链路接收到第二数据包A。
由此,终端根据由第一数据链路以及第二数据链路接收的第二数据包,可获取第一、第二数据链路各自所接收第二数据包的并集,以对由第一数据链路以及第二数据链路接收的第二数据包进行合并处理,并输出对应的多媒体内容。例如,终端通过第一数据链路接收到第二数据包A、B、C,通过第二数据链路接收到第二数据包A、C、D,则可获取第一、第二数据链路所获取第二数据包的并集,即第二数据包A、B、C、D,再根据第二数据包A、B、C、D输出对应的多媒体内容。
其中,多媒体内容可包括音频、视频、音视频等各种形式的内容,在此不做限定。在一些示例中,终端可通过播放音频内容以输出音频内容,显示视频帧以输出视频内容,还可通过播放音视频内容的音频并显示音视频内容的视频帧以输出音视频内容。
在一些示例性的实施例中,每个数据包可包括数据标识,根据数据标识可确定两个数据包是否相同,即是否存储有多媒体内容对应的数据。其中,数据标识可以是用于表征序号的数据ID,也可以是时间戳或基于时间戳生成的标识,本实施例对此不作限定。可以理解的是,一个数据标识对应相同的数据包,不同数据标识对应不同的数据包。
在一个示例性的实施方式中,终端可根据接收到的第二数据包,确定该第二数据包对应的目标帧,并将该第二数据包存储至目标帧对应的目标地址。从而在处理目标帧时,可从该目标地址获取第二数据包进行处理,从而输出目标帧对应的多媒体内容。在一些示例中,若终端接收到第二数据包A,并确定第二数据包A对应的目标帧A,此时目标帧A对应的目标地址如果已经存储有相同的第二数据包A,此时可利用后面获取的第二数据包A覆盖原第二数据包A并存储,也可丢弃后面获取的第二数据包A,在此不做限定。
在另一个示例性的实施方式中,终端在接收到第二数据包时,可检测该第二数据包是否获取过,若未获取过,可将第二数据包存储于目标地址,等待处理;若获取过,则可不处理该第二数据包,不将该第二数据包存储于目标地址,例如可存储于其他地址,还可将该第二数据包丢弃,本实施例对此不作限定。
另外,终端每次基于第二数据链路发送和接收数据包时,可累计并更新已使用流量值,从而在已使用流量值超过预设的流量阈值时,通知通信对端调整发送链路,使得通信对端不再基于第二数据链路向终端发送数据包。在一个示例性的实施方式中,终端可在已使用流量值超过预设的流量阈值时,发送超额提示信息,该超额提示信息用于指示通信对端不通过第二数据链路传输数据包。在一些示例中,通信对端接收到该超额提示信息时可关闭第二数据链路的套接字,以不通过第二数据链路传输数据包至终端。从而可在通过多链路传输数据包以提升数据传输稳定性的同时,避免流量过度消耗。
由此,根据本实施例提供的方法,终端可同时基于第一、第二数据链路接收通信对端发送的第二数据包,并可在考虑数据传输中存在丢包现象,且结合链路质量不同导致传输速度不同等原因,可能终端同时从第一、第二数据链路接收到的第二数据包不同,此时,可根据由第一数据链路以及第二数据链路接收的第二数据包,输出对应的多媒体内容。从而终端不仅可多链路发送数据包还可多链路接收数据包,充分利用终端接入点资源,避免单链路传输时链路质量抖动造成卡顿的同时,还可避免流量过度消耗,提高用户QoE。
请参阅图17,其示出了本申请一个示例性实施例中获取预设的流量阈值的方法的详细步骤示意图,具体地,在图9所示的方法中步骤S110之前,可执行以下步骤,以获取预设的流量阈值:
步骤S810:显示用户界面。
其中,用户界面用于获取用户输入信息,用户可基于用户界面输入用户输入信息。
在一个示例性的实施例中,在检测到指定应用首次用于传输数据时,可显示用户界面。在一些实施方式中,用户界面还可显示流量阈值的输入提示信息。
其中,指定应用用于与通信对端进行数据传输。在一个示例性的实施例中,指定应用可以是可提供VVoIP服务的应用程序,例如指定应用可以是微信、QQ等社交应用程序,在用户首次基于微信点击对应音视频通话的图标时,可检测到微信首次用于传输数据,并在此时可生成流量阈值的输入提示信息。
其中,输入提示信息用于提示输入预设的流量阈值。在一些示例性的实施例中,输入提示信息可以是文字、语音、图片等各种形式的提示信息,例如,输入提示信息可以是文字形式,终端可生成并显示用户界面,并在用户界面上显示输入提示信息,输入提示信息可以为“请设置流量阈值”,并用户界面还包括输入框,用于获取用户输入信息。
在一些可能的实施例中,输入提示信息也可以是语音形式,终端可生成语音如“请设置流量阈值”。
步骤S820:响应于用户在用户界面上的输入,获取并保存流量阈值。
终端响应于用户在用户界面上的输入,可获取用户输入信息,并根据用户输入信息得到流量阈值并保存。其中,在一种实施方式中,用户可直接输入流量阈值,即终端可获取用户输入信息作为流量阈值并进行限定,以用于与已使用流量值进行比较,控制流量消耗;在另一种实施方式中,用户输入信息可包括流量阈值,终端可从用户输入信息中提取流量阈值,在此不作限定。
在一些实施方式中,用户输入信息可以是文字输入也可是语音输入,本实施例对此不作限定。
以第一终端和第二终端之间的视频通话为例,第一终端和第二终端内均安装有具有视频通话功能的社交应用程序,假设登录第一终端的社交应用程序的用户ID为第一用户,登录第二终端的社交应用程序的用户ID为第二用户,第一用户在第一终端的社交应用程序中与第二用户的聊天界面(如图18所示的界面)内点击视频通话按钮70,然后进入视频通话请求界面,如图19所示的界面。第一终端在首次检测到该社交应用程序的视频通话按钮被触发的时候,可生成并显示用户界面80,用户界面80上还可显示有输入框81,用户可基于该输入框81输入用户输入信息。
在一些实施例中,在首次设置后,还可对之前设置的预设的流量阈值进行修改,本实施例对此不作限定。
本实施例提供的方法,通过显示用户界面,并响应于用户在用户界面上的输入,可获取并保存流量阈值,以用于后续与已使用流量值比较,对流量消耗进行控制。并在一种具体实施方式中,可在检测到指定应用首次用于传输数据时,生成流量阈值的输入提示信息,可引导用户设置预设的流量阈值,使得用户可根据实际需要自定义预设的流量阈值,实现灵活的流量控制,从而可进一步提高用户QoE。
请参阅图20,其示出了本申请实施例提供的一种数据传输装置2000的结构框图,该数据传输装置2000用于与一个通信对端进行数据传输,该数据传输装置2000可以包括:数据获取模块2010、第一建立模块2020、第二建立模块2030、流量获取模块2040以及数据传输模块2050。
数据获取模块2010,用于获取待传输的第一数据包;
第一建立模块2020,用于通过第一网络接口建立第一数据链路,所述第二网络接口与所述第一网络接口具有不同类型;
第二建立模块2030,用于通过第二网络接口建立第二数据链路;
流量获取模块2040,用于获取与所述第二数据链路关联的已使用流量值;以及
数据传输模块2050,用于若所述已使用流量值未超过预设的流量预置阈值,对于获取的每个所述第一数据包,分别通过所述第一数据链路与所述第二数据链路传输。
请参考图21,其示出了本申请一个示例性实施例提供的一种电子设备的结构框图。该电子设备2100可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑、台式电脑、头戴式设备,或其他任意终端。电子设备2100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备2100包括有:处理器2101和存储器2102。处理器2101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2101可以采用DSP(DigitalSignal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。
在一个示例性的实施例中,,处理器2101可以在集成有GPU(Graphics ProcessingUnit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一个示例性的实施例中,存储器2102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2101所执行以实现本申请中上述方法实施例提供的数据传输方法。
在一个示例性的实施例中,电子设备2100还可选包括有:外围设备接口2103和至少一个外围设备。
处理器2101、存储器2102和外围设备接口2103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2103相连。具体地,外围设备包括:射频电路2104、触摸显示屏2105、摄像头2106、音频电路2107、定位组件2108和电源2109中的至少一种。
外围设备接口2103可被用于将输入/输出(Input/Output,IO)相关的至少一个外围设备连接到处理器2101和存储器2102。在一个示例性的实施例中,,处理器2101、存储器2102和外围设备接口2103被集成在同一芯片或电路板上;在一些其他实施例中,处理器2101、存储器2102和外围设备接口2103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2104用于接收和发射射频(Radio Frequency,RF)信号,也称电磁信号。射频电路2104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi网络。在一个示例性的实施例中,,射频电路2104还可以包括近距离无线通信(Near Field Communication,NFC)有关的电路,本申请对此不加以限定。
显示屏2105用于显示用户界面(User Interface,UI)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2105是触摸显示屏时,显示屏2105还具有采集在显示屏2105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2101进行处理。此时,显示屏2105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一个示例性的实施例中,显示屏2105可以为一个,设置电子设备2100的前面板;在另一些实施例中,显示屏2105可以为至少两个,分别设置在电子设备2100的不同表面或呈折叠设计;在再一些实施例中,显示屏2105可以是柔性显示屏,设置在电子设备2100的弯曲表面上或折叠面上。甚至,显示屏2105还可以设置成非矩形的不规则图形,也即异形屏。显示屏2105可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等材质制备。
摄像头组件2106用于采集图像或视频。可选地,摄像头组件2106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一个示例性的实施例中,,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(Virtual Reality,VR)拍摄功能或者其它融合拍摄功能。在一个示例性的实施例中,,摄像头组件2106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2101进行处理,或者输入至射频电路2104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备2100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2101或射频电路2104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一个示例性的实施例中,,音频电路2107还可以包括耳机插孔。
定位组件2108用于定位电子设备2100的当前地理位置,以实现导航或基于位置的服务(Location Based Service,LBS)。定位组件2108可以是基于美国的全球定位系统(Global Positioning System,GPS)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源2109用于为电子设备2100中的各个组件进行供电。电源2109可以是交流电、直流电、一次性电池或可充电电池。当电源2109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一个示例性的实施例中,,电子设备2100还包括有一个或多个传感器2110。该一个或多个传感器2110包括但不限于:加速度传感器2111、陀螺仪传感器2112、压力传感器2113、指纹传感器2114、光学传感器2115以及接近传感器2116。
加速度传感器2111可以检测以电子设备2100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2111可以用于检测重力加速度在三个坐标轴上的分量。处理器2101可以根据加速度传感器2111采集的重力加速度信号,控制触摸显示屏2105以横向视图或纵向视图进行用户界面的显示。加速度传感器2111还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2112可以检测电子设备2100的机体方向及转动角度,陀螺仪传感器2112可以与加速度传感器2111协同采集用户对电子设备2100的3D动作。处理器2101根据陀螺仪传感器2112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2113可以设置在电子设备2100的侧边框和/或触摸显示屏2105的下层。当压力传感器2113设置在电子设备2100的侧边框时,可以检测用户对电子设备2100的握持信号,由处理器2101根据压力传感器2113采集的握持信号进行左右手识别或快捷操作。当压力传感器2113设置在触摸显示屏2105的下层时,由处理器2101根据用户对触摸显示屏2105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2114用于采集用户的指纹,由处理器2101根据指纹传感器2114采集到的指纹识别用户的身份,或者,由指纹传感器2114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2114可以被设置电子设备2100的正面、背面或侧面。当电子设备2100上设置有物理按键或厂商标志时,指纹传感器2114可以与物理按键或厂商标志集成在一起。
光学传感器2115用于采集环境光强度。在一个实施例中,处理器2101可以根据光学传感器2115采集的环境光强度,控制触摸显示屏2105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏2105的显示亮度;当环境光强度较低时,调低触摸显示屏2105的显示亮度。在另一个实施例中,处理器2101还可以根据光学传感器2115采集的环境光强度,动态调整摄像头组件2106的拍摄参数。
接近传感器2116,也称距离传感器,通常设置在电子设备2100的前面板。接近传感器2116用于采集用户与电子设备2100的正面之间的距离。在一个实施例中,当接近传感器2116检测到用户与电子设备2100的正面之间的距离逐渐变小时,由处理器2101控制触摸显示屏2105从亮屏状态切换为息屏状态;当接近传感器2116检测到用户与电子设备2100的正面之间的距离逐渐变大时,由处理器2101控制触摸显示屏2105从息屏状态切换为亮屏状态。
本领域技术人员可以理解,21图21中示出的结构并不构成对电子设备2100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
其中,电子设备2100可以用于执行上述数据传输方法所执行的步骤。
本申请实施例还提供一种计算机可读取存储介质。该计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质包括非易失性计算机可读取存储介质(non-transitory computer-readable storage medium)。计算机可读取存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (14)

1.一种数据传输方法,应用于终端,所述方法用于与通信对端进行数据传输,其特征在于,所述方法包括:
获取待传输的第一数据包;
通过第一网络接口建立第一数据链路;
通过第二网络接口建立第二数据链路,所述第二网络接口与所述第一网络接口具有不同类型;
获取与所述第二数据链路关联的已使用流量值;以及
若所述已使用流量值未超过预设的流量阈值,对于获取的每个所述第一数据包,分别通过所述第一数据链路与所述第二数据链路传输。
2.根据权利要求1所述的方法,其特征在于,所述通过第一网络接口建立所述第一数据链路之前,所述方法还包括:
根据所述终端的操作系统类型获取与所述第一数据链路对应的第一网络接口特征;
获取所述终端当前可用的网络接口列表;以及
根据所述第一网络接口特征从所述可用的网络接口列表中获取匹配的第一网络接口。
3.根据权利要求2所述的方法,其特征在于,所述第一网络接口特征包括第一字符串模式,所述根据所述第一网络接口特征从所述可用网络接口列表中获取匹配的第一网络接口包括:
根据所述可用网络接口列表中的每个网络接口的标识是否符合所述第一字符串模式获取所述第一网络接口。
4.根据权利要求3所述的方法,其特征在于,所述根据所述可用网络接口列表中的每个网络接口的标识是否符合所述第一字符串模式获取所述第一网络接口还包括:
获取所述通信对端的互联网协议地址类型;以及
获取与所述互联网协议地址类型匹配的所述第一网络接口。
5.根据权利要求1所述的方法,其特征在于,所述通过第二网络接口建立第二数据链路包括:
若所述已使用流量值未超过预设的流量阈值,通过所述第二网络接口建立所述第二数据链路。
6.根据权利要求1所述的方法,其特征在于,所述通过第二网络接口建立第二数据链路之前,所述方法还包括:
根据所述终端的操作系统类型获取与所述第二数据链路对应的第二网络接口特征;
获取所述终端当前可用的网络接口列表;以及
根据所述第二网络接口特征从所述可用的网络接口列表中获取匹配的所述第二网络接口。
7.根据权利要求6所述的方法,其特征在于,所述第二网络接口特征包括第二字符串模式,所述根据所述第二网络接口特征从所述可用的网络接口列表中获取匹配的第二网络接口包括:
根据所述可用的网络接口列表中的每个网络接口的标识是否符合所述第二字符串模式获取所述第二网络接口。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述操作系统的类型为预设的目标操作系统类型,根据所述终端的芯片类型确定所述第二字符串模式。
9.根据权利要求6所述的方法,其特征在于,所述根据所述可用网络接口列表中的每个网络接口的标识是否符合所述第二字符串模式获取所述第二网络接口,还包括:
获取所述通信对端的互联网协议地址类型;以及
获取与所述互联网协议地址类型匹配的所述第二网络接口。
10.根据权利要求1所述的方法,其特征在于,所述第二数据链路为蜂窝数据链路,所述建立所述第二数据链路,包括:
发送蜂窝数据网络标识与用户识别卡信息至信令服务器以使所述信令服务器返回中转服务器信息;
接收所述中转服务器信息;以及
根据所述中转服务器信息建立所述第二数据链路。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别通过所述第一数据链路和所述第二数据链路,接收所述通信对端发送的第二数据包;以及
根据由所述第一数据链路以及所述第二数据链路接收的所述第二数据包,输出对应的多媒体内容。
12.一种数据传输装置,应用于第一终端,所述装置用于与通信对端进行数据传输,其特征在于,所述装置包括:
数据获取模块,用于获取待传输的第一数据包;
第一建立模块,用于通过第一网络接口建立第一数据链路,所述第二网络接口与所述第一网络接口具有不同类型;
第二建立模块,用于通过第二网络接口建立第二数据链路;
流量获取模块,用于获取与所述第二数据链路关联的已使用流量值;以及
数据传输模块,用于若所述已使用流量值未超过预设的流量预置阈值,对于获取的每个所述第一数据包,分别通过所述第一数据链路与所述第二数据链路传输。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-11任一项所述的方法。
14.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-11任一项所述的方法。
CN202010092108.3A 2020-02-14 2020-02-14 数据传输方法、装置、电子设备及存储介质 Active CN111315038B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010092108.3A CN111315038B (zh) 2020-02-14 2020-02-14 数据传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010092108.3A CN111315038B (zh) 2020-02-14 2020-02-14 数据传输方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111315038A true CN111315038A (zh) 2020-06-19
CN111315038B CN111315038B (zh) 2022-03-01

Family

ID=71159934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010092108.3A Active CN111315038B (zh) 2020-02-14 2020-02-14 数据传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111315038B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645308A (zh) * 2021-08-18 2021-11-12 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN114697155A (zh) * 2022-03-10 2022-07-01 北京精雕科技集团有限公司 一种多设备数据交互方法与装置
CN114828098A (zh) * 2020-09-10 2022-07-29 华为技术有限公司 数据传输方法和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874229A (zh) * 2012-12-12 2014-06-18 中国移动通信集团山东有限公司 一种建立数据连接的方法及装置
CN103929378A (zh) * 2013-01-15 2014-07-16 腾讯科技(深圳)有限公司 跨域数据传输的通信链路分配及跨域数据传输方法和系统
CN105472477A (zh) * 2015-12-08 2016-04-06 广州华多网络科技有限公司 一种数据传输方法、装置及设备
CN106332307A (zh) * 2015-07-03 2017-01-11 华为技术有限公司 一种应用程序接入网络的方法及移动终端
US20170034843A1 (en) * 2015-07-29 2017-02-02 Qualcomm Incorporated Scheduler methods for data aggregation over multiple links
US20180192450A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Communication under multiple communication links
CN108989138A (zh) * 2017-05-31 2018-12-11 中兴通讯股份有限公司 数据传输方法、装置、系统及网关
CN109150724A (zh) * 2018-07-02 2019-01-04 紫光华山信息技术有限公司 一种通信方法和网卡
CN109218213A (zh) * 2018-09-25 2019-01-15 中国银联股份有限公司 一种流量调控方法及装置
CN110213429A (zh) * 2018-09-06 2019-09-06 上海伴我科技有限公司 通信资源提供方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874229A (zh) * 2012-12-12 2014-06-18 中国移动通信集团山东有限公司 一种建立数据连接的方法及装置
CN103929378A (zh) * 2013-01-15 2014-07-16 腾讯科技(深圳)有限公司 跨域数据传输的通信链路分配及跨域数据传输方法和系统
CN106332307A (zh) * 2015-07-03 2017-01-11 华为技术有限公司 一种应用程序接入网络的方法及移动终端
US20170034843A1 (en) * 2015-07-29 2017-02-02 Qualcomm Incorporated Scheduler methods for data aggregation over multiple links
CN105472477A (zh) * 2015-12-08 2016-04-06 广州华多网络科技有限公司 一种数据传输方法、装置及设备
US20180192450A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Communication under multiple communication links
CN108989138A (zh) * 2017-05-31 2018-12-11 中兴通讯股份有限公司 数据传输方法、装置、系统及网关
CN109150724A (zh) * 2018-07-02 2019-01-04 紫光华山信息技术有限公司 一种通信方法和网卡
CN110213429A (zh) * 2018-09-06 2019-09-06 上海伴我科技有限公司 通信资源提供方法
CN109218213A (zh) * 2018-09-25 2019-01-15 中国银联股份有限公司 一种流量调控方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114828098A (zh) * 2020-09-10 2022-07-29 华为技术有限公司 数据传输方法和电子设备
CN114828098B (zh) * 2020-09-10 2023-06-06 华为技术有限公司 数据传输方法和电子设备
CN113645308A (zh) * 2021-08-18 2021-11-12 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN113645308B (zh) * 2021-08-18 2022-09-16 平安普惠企业管理有限公司 移动终端tcp通信、装置、设备及存储介质
CN114697155A (zh) * 2022-03-10 2022-07-01 北京精雕科技集团有限公司 一种多设备数据交互方法与装置
CN114697155B (zh) * 2022-03-10 2023-11-24 北京精雕科技集团有限公司 一种多设备数据交互方法与装置

Also Published As

Publication number Publication date
CN111315038B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
WO2022257977A1 (zh) 电子设备的投屏方法和电子设备
CN111866950B (zh) Mec中数据传输的方法和通信装置
CN111315038B (zh) 数据传输方法、装置、电子设备及存储介质
WO2020143380A1 (zh) 一种数据传输方法及电子设备
CN113438354B (zh) 数据传输方法、装置、电子设备和存储介质
CN113329047B (zh) 一种分布式服务调度方法及相关装置
KR102491006B1 (ko) 데이터 송신 방법 및 전자 기기
WO2022068513A1 (zh) 无线通信方法和终端设备
US20230209438A1 (en) Data Transmission Method and Electronic Device
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
KR102524305B1 (ko) 연결 구축 방법 및 단말 장치
CN110602733B (zh) 应用提速、带宽管理方法、装置、终端及存储介质
CN113498108A (zh) 基于业务类型调整数据传输策略的芯片、设备以及方法
CN113810451B (zh) 点对点链路的建立方法、装置、第一终端设备和存储介质
CN110086814B (zh) 一种数据获取的方法、装置及存储介质
WO2020124447A1 (zh) 面向多卡的网络管理
CN113141637B (zh) 一种多路径传输控制的方法及控制装置
CN113676902B (zh) 一种提供无线上网的系统、方法及电子设备
CN112260845B (zh) 进行数据传输加速的方法和装置
CN113259370B (zh) 数据传输方法、装置、设备、系统及可读存储介质
CN117062252B (zh) 一种数据传输方法及电子设备
CN114173317B (zh) 传输数据的方法和电子设备
WO2023202533A1 (zh) 通信方法、电子设备以及系统
CN116980864A (zh) 通信方法、电子设备以及系统
CN115604773A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024273

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant