一种数据传输方法及电子设备与流程

文档序号:19951702发布日期:2020-02-18 10:40阅读:144来源:国知局
一种数据传输方法及电子设备与流程

本申请涉及终端技术领域,尤其涉及一种数据传输方法及电子设备。



背景技术:

多路径传输控制协议(multipathtransmissioncontrolprotocol,mptcp)是tcp的扩展协议,mptcp可以利用多条tcp连接的并行传输提高资源的利用率,增强连接失败的恢复能力。例如用户在观看视频时,手机通过wi-fi网络和蜂窝网络分别对应的tcp连接同时传输数据流,这样做的好处是可以提供更大的聚合带宽,下载速率也更高、卡顿变少、播放更流畅。

目前,云游戏对于网络连接的时延要求越来越高,并且在游戏过程中,对于往返时延(round-triptime,rtt)的抖动问题比较敏感。例如,在云游戏过程中,如果rtt抖动比较大,则会使得画面马赛克和卡顿。为此,现有技术中提出了例如通过wi-fi网络和蜂窝网络两者同时冗余发包的方式来缓解rtt的抖动问题,以保证游戏过程中的稳定低时延。这种多路冗余发包的方式虽然可以使得时延比较稳定,但是会使得手机的功耗增大,并且使得用户流量成本比较大。



技术实现要素:

本申请提供一种数据传输方法及电子设备,用以解决现有技术中数据传输时带来的成本高,功耗大的问题。

第一方面,本申请实施例提供一种数据传输方法,应用于电子设备,该方法包括:所述电子设备在游戏的应用程序被运行时,与用于为所述游戏提供服务的应用服务器建立至少两条通信连接;所述电子设备获取当前所运行的游戏的场景信息,并在所述场景信息表征非对战场景时,通知所述应用服务器通过目标通信连接发送与所述游戏相关的下行数据,所述目标通信连接是所述电子设备在所述至少两条通信连接中选择的一条通信连接;所述电子设备通过所述目标通信连接接收所述应用服务器发送的与所述游戏相关的下行数据。

在上述技术方案中,电子设备通过告知服务器通过至少两条链路中的哪一条链路来发送下行数据,然后服务器可在非对战场景下直接按照电子设备通知的链路来发送下行数据,这样在下行数据传输的过程中,可以降低电子设备的功耗,同时为用户减少成本,提升用户体验。

在一种可能的设计中,所述通信连接至少包括如下连接:蜂窝网络对应的第一通信连接和无线保真wifi网络对应的第二通信连接。

在本申请中,通信连接可以包括但不限于上述两种举例,当然,也可以为多个通信连接,并不一定为两条链路建立的通信连接。

在一种可能的设计中,所述方法还包括:所述电子设备在所述场景信息表征对战场景时,接收所述应用服务器通过所述至少两条通信连接分别发送的与所述游戏相关的下行数据。

在上述技术方案中,如果场景信息为对战场景,则电子设备可告知服务器通过两条链路来发送下行数据,这样电子设备先接收到哪条链路发送的下行数据,就用哪条链路发送的下行数据,从而使得电子设备可以及时地接收到下行数据。

在一种可能的设计中,所述电子设备可采用如下三种方式获取当前所运行的游戏的场景信息:

第一种方式:所述电子设备接收提供所述游戏的应用程序发送的当前所运行的游戏所在的场景标识。

第二种方式:所述电子设备接收所述应用程序发送的当前所运行的游戏所在的场景下网络的平均码率,并根据预设时长内的实际吞吐量与所述平均码率,确定所述当前所运行的游戏所在的场景信息。

第三种方式:所述电子设备接收所述应用服务器发送的当前所运行的游戏所在的场景标识。

通过上述三种方式,电子设备可以知道当前所运行的游戏的场景信息,这样可以根据场景信息通知服务器通过多条链路还是一条链路来发送数据。

在一种可能的设计中,所述电子设备接收所述应用服务器发送的当前所运行的游戏所在的场景标识,包括:

所述电子设备接收所述应用服务器根据参数信息确定并发送的当前所运行的游戏所在的场景标识。

其中,所述参数信息包括如下信息中的至少一项:

所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述电子设备的屏幕分别被触控的触控频率;所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述电子设备分别发送的与所述游戏有关的上行数据量;所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述应用服务器分别发送的与所述游戏有关的下行数据量;所述触控频率对应的第一滑动均值;所述第一滑动均值为所述至少一个预设时长分别对应的触控频率的平均值;所述上行数据量对应的第二滑动均值;所述第二滑动均值为所述至少一个预设时长分别对应的上行数据量的平均值;所述下行数据量对应的第三滑动均值;所述第三滑动均值为所述至少一个预设时长分别对应的下行数据量的平均值。

第二方面,本申请实施例还提供一种数据传输方法,应用于应用服务器,该方法包括:所述应用服务器在游戏的应用程序在电子设备上被运行时,与所述电子设备建立至少两条通信连接;所述应用服务器接收所述电子设备通知的目标通信连接,所述目标通信连接是所述电子设备在获取当前所运行的游戏所在的场景信息表征非对战场景时,在所述至少两条通信连接中选择的一条通信连接;所述应用服务器通过所述目标通信连接发送与所述游戏相关的下行数据。

在一种可能的设计中,所述通信连接至少包括如下连接:蜂窝网络对应的第一通信连接和无线保真wifi网络对应的第二通信连接。

在一种可能的设计中,所述方法还包括:所述应用服务器确定所述当前所运行的游戏所在的场景标识,并将所述场景标识发送给所述电子设备,所述场景标识用于表征当前所运行的游戏所在的场景信息。

在一种可能的设计中,所述应用服务器确定所述当前所运行的游戏所在的场景标识,包括:所述应用服务器采集至少一个参数信息;所述电子设备根据至少一个参数信息确定当前所运行的游戏所在的场景标识。

其中,所述参数信息包括如下信息中的至少一项:

所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述电子设备的屏幕分别被触控的触控频率;所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述电子设备分别发送的与所述游戏有关的上行数据量;所述游戏在所述电子设备侧运行期间的至少一个预设时长内,所述应用服务器分别发送的与所述游戏有关的下行数据量;所述触控频率对应的第一滑动均值;所述第一滑动均值为所述至少一个预设时长分别对应的触控频率的平均值;所述上行数据量对应的第二滑动均值;所述第二滑动均值为所述至少一个预设时长分别对应的上行数据量的平均值;所述下行数据量对应的第三滑动均值;所述第三滑动均值为所述至少一个预设时长分别对应的下行数据量的平均值。

上述第二方面应用服务器侧的实施效果可参阅第一方面的描述,在此处不再重复赘述。

第三方面,本申请实施例提供一种装置,该装置中可以执行上述第一方面或第一方面任一种可能实现方式中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第四方面,本申请实施例提供一种装置,该装置可以执行上述第二方面或第二方面任一种可能实现方式中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第五方面,本申请实施例提供一种装置,所述装置的结构中包括存储器、收发器和处理器,所述收发器用于接收和发送数据,所述处理器被配置为支持所述装置执行上述第一方面或第一方面任一种可能实现方式中相应的功能。所述存储器与所述处理器耦合,其保存所述装置必要的程序指令和数据。

第六方面,本申请实施例提供一种装置,所述装置的结构中包括存储器、收发器和处理器,所述收发器用于接收和发送数据,所述处理器被配置为支持所述装置执行上述第二方面或第二方面任一种可能实现方式中相应的功能。所述存储器与所述处理器耦合,其保存所述装置必要的程序指令和数据。

第七方面,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行上述任一方面提供的方法。

第八方面,本申请实施例还提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一方面提供的方法。

附图说明

图1为本申请实施例适用的一种无线通信系统示意图;

图2为本申请实施例提供的一种数据传输的示意图;

图3为本申请实施例的mptcp所在协议栈的示意图;

图4为本申请实施例的mptcp的使用场景示意图;

图5为本申请实施例的一种电子设备的硬件架构示意图;

图6为本申请实施例的一种数据传输方法流程图;

图7为本申请实施例的一种数据传输装置示意框图;

图8为本申请实施例的另一种数据传输装置示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

目前,终端可以接入wi-fi网络和蜂窝网络。终端在接入wi-fi网络和蜂窝网络的情况下,通常,使用wi-fi网络和蜂窝网络中其中一个网络为用户提供服务。基于mptcp协议的终端在接入wi-fi网络和蜂窝网络时,可以同时使用wi-fi网络和蜂窝网络为用户提供服务。具体的,终端可以通过聚合wi-fi网络和蜂窝网络分别对应的tcp连接的带宽,进行相应的传输,有助于提高传输的速率,减少卡顿,提高用户体验。

其中,mptcp协议是在传输层实现多路聚合带宽的,在终端支持mptcp协议的情况下,为了使得终端能够在使用多路聚合带宽时,提高数据流的传输效率,本申请实施例提供了一种数据传输的方法。

参阅图1所示,为本申请实施例适用的一种无线通信系统示意图,其中,数据接收端与数据发送端通过无线接入网(radioaccessnetwork,ran)以及核心网进行数据交互,所述数据接收端和所述数据发送端之间还可建立传输控制协议(transmissioncontrolprotocol,tcp)连接,采用tcp协议进行数据传输。如图1所示,无线通信系统中电子设备和应用服务器之间进行数据交互,电子设备通过空口接入到ran,经由核心网连接到应用服务器,其中,电子设备与ran之间的网络可称为无线网络,ran与应用服务器之间的网络可以是有线网络。应用服务器还可以与电子设备之间建立tcp连接并基于tcp连接进行数据传输。

其中,应用服务器可以是服务器集群中的一个或多个服务器,例如某一视频内容的不同视频片段分布在不同的服务器上,这时的应用服务器可以是多个服务器;再比如某一视频内容的视频分布在一个的服务器上,这时的应用服务器也可以是一个服务器。

在本申请中,电子设备可接入不止一个通信网络进行通信。需要说明的是,当该通信网络为局域网时,示例性的,该通信网络可以是无线保真(wirelessfidelity,wifi)网络、蓝牙网络、zigbee网络或近场通信(nearfieldcommunication,nfc)网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(3rd-generationwirelesstelephonetechnology,3g)网络、第四代移动通信技术(the4thgenerationmobilecommunicationtechnology,4g)网络、第五代移动通信技术(5th-generationmobilecommunicationtechnology,5g)网络、未来演进的公共陆地移动网络(publiclandmobilenetwork,plmn)或因特网等。

如图2所示,电子设备接入wi-fi网络和lte网络,可以同时使用wi-fi网络和lte网络为用户提供上网服务。其中,电子设备接入wi-fi网络,通过演进的分组数据网关(evolvedpacketdatagateway,epdg)或被信任网关(trustedgateway,tgw)与服务器进行数据传输;电子设备接入lte网络,通过服务网关(servinggateway,sgw)或分组数据网关(packetdatanetworkgateway,pgw)与服务器进行数据传输。

目前通过对tcp协议扩展得到了mptcp协议,利用该mptcp协议使一个业务可使用多路径的网络资源进行数据传输。例如图2中手机可以同时使用wifi网络资源和lte网络资源与应用服务器进行数据传输。图3示出了tcp协议栈扩充到mptcp协议栈的示意图。tcp协议栈中,应用(application)层的数据流通过一条tcp连接发送,在mptcp协议栈中,传输层被划分为两个子层:mptcp层和tcp层,应用层的数据流经由mptcp层所分解的两条tcp连接传送。

图4示出了mptcp的使用场景示意图,图4中终端和应用服务器之间建立了两条tcp连接,一个为wi-fi网络对应的tcp连接,一个为lte网络对应的tcp连接。其中,wi-fi网络对应的tcp连接使用wi-fi网络资源,lte网络对应的tcp连接使用lte网络资源。终端在mptcp层将数据流分解为两个tcp子流后分别通过这两个tcp连接分别独立传送至应用服务器。

在本申请一些实施例中,图1所示的无线通信系统中电子设备可以是包含其他功能诸如个人数字助理和/或音乐播放器功能的便携式终端设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴设备(如智能手表)等。便携式终端设备的示例性实施例包括但不限于搭载或者其他操作系统的便携式终端设备。上述便携式终端设备也可以是其他便携式终端设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本申请其他一些实施例中,上述电子设备也可以不是便携式终端设备,而是具有触敏表面(例如触控面板)的台式计算机。

示例性地,本申请实施例中的终端设备可以为手机,下面以手机为例对实施例进行具体说明。以本发明实施例应用在终端设备与服务器之间已建立了mptcp连接,mptcp连接包括wifi网络对应的第一tcp连接和lte网络对应的第二tcp连接的网络场景进行描述。

如图5所示,电子设备100以手机为例来说明其硬件结构。手机100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(applicationprocessor,ap),调制解调处理器,图形处理器(graphicsprocessingunit,gpu),图像信号处理器(imagesignalprocessor,isp),控制器,存储器,视频编解码器,数字信号处理器(digitalsignalprocessor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessingunit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

usb接口130是符合usb标准规范的接口,具体可以是miniusb接口,microusb接口,usbtypec接口等。usb接口130可以用于连接充电器为手机100充电,也可以用于手机100与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。

手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。手机100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块150可以提供应用在手机100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoiseamplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

无线通信模块160可以提供应用在手机100上的包括无线局域网(wirelesslocalareanetworks,wlan)(如无线保真(wirelessfidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(globalnavigationsatellitesystem,gnss),调频(frequencymodulation,fm),近距离无线通信技术(nearfieldcommunication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,手机100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(globalsystemformobilecommunications,gsm),通用分组无线服务(generalpacketradioservice,gprs),码分多址接入(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),时分码分多址(time-divisioncodedivisionmultipleaccess,td-scdma),长期演进(longtermevolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(globalpositioningsystem,gps),全球导航卫星系统(globalnavigationsatellitesystem,glonass),北斗卫星导航系统(beidounavigationsatellitesystem,bds),准天顶卫星系统(quasi-zenithsatellitesystem,qzss)和/或星基增强系统(satellitebasedaugmentationsystems,sbas)。

显示屏194用于显示应用的显示界面等。显示屏594包括显示面板。显示面板可以采用液晶显示屏(liquidcrystaldisplay,lcd),有机发光二极管(organiclight-emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganiclightemittingdiode的,amoled),柔性发光二极管(flexlight-emittingdiode,fled),miniled,microled,micro-oled,量子点发光二极管(quantumdotlightemittingdiodes,qled)等。在一些实施例中,手机100可以包括1个或n个显示屏194,n为大于1的正整数。在本申请实施例中,显示屏194可用于同时显示多个应用界面。

摄像头193用于捕获静态图像或视频。摄像头193可以包括前置摄像头和后置摄像头。

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储手机100使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflashstorage,ufs)等。

外部存储器接口120可以用于连接外部存储卡,例如microsd卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。

手机100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。

压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。陀螺仪传感器180b可以用于确定手机100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定手机100围绕三个轴(即,x,y和z轴)的角速度。

陀螺仪传感器180b可以用于拍摄防抖。气压传感器180c用于测量气压。在一些实施例中,手机100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。磁传感器180d包括霍尔传感器。手机100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当手机100是翻盖机时,手机100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。加速度传感器180e可检测手机100在各个方向上(一般为三轴)加速度的大小。当手机100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。

距离传感器180f,用于测量距离。手机100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,手机100可以利用距离传感器180f测距以实现快速对焦。接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。手机100通过发光二极管向外发射红外光。手机100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定手机100附近有物体。当检测到不充分的反射光时,手机100可以确定手机100附近没有物体。手机100可以利用接近光传感器180g检测用户手持手机100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。

环境光传感器180l用于感知环境光亮度。手机100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测手机100是否在口袋里,以防误触。指纹传感器180h用于采集指纹。手机100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。

温度传感器180j用于检测温度。在一些实施例中,手机100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,手机100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,手机100对电池142加热,以避免低温导致手机100异常关机。在其他一些实施例中,当温度低于又一阈值时,手机100对电池142的输出电压执行升压,以避免低温导致的异常关机。

触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于手机100的表面,与显示屏194所处的位置不同。

骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。

按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机100可以接收按键输入,产生与手机100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和手机100的接触和分离。

可以理解的是,图5所示的部件并不构成对手机的具体限定,手机还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。以下的实施例中,以图5所示的手机100为例进行介绍。

应理解,本申请中除非另有说明,“/”表示或的意思。例如,a/b可以表示a或b。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b三种情况。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。

在本申请中,“示例的”、“在一些实施例中”、“在另一些实施例中”等用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。

另外,本申请中涉及的“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量,也不能理解为指示或暗示顺序。

需要说明的是,本申请实施例提供的数据传输方法可适用于云游戏场景,也可以适用于虚拟现实(virtualreality,vr)游戏场景,也可以适用于增强现实(augmentedreality,ar)游戏场景,本申请对此不作限定。

需要理解的是,本申请中所涉及到的“应用服务器”与“服务器”有时候可能会混用,应理解其含义一致。

如图6所示,为本申请实施例提供的一种数据传输方法的流程示意图,具体包括如下步骤:

步骤601:电子设备100连接第一网络和/或第二网络。

本申请实施例中,电子设备100支持mptcp协议,即电子设备100可同时连接至少两个网络。示例性的,电子设备100可同时连接wifi网络和蜂窝网络,电子设备100通过两个网络连接建立对应的两条通信链路进行数据传输。

为了描述方便,本申请中将两个网络分别记为“第一网络”和“第二网络”,并且以下描述中以第一网络为wifi网络,第二网络为蜂窝网络为例进行说明。当然,第一网络也可以为蜂窝网络,第二网络也可以为wifi网络;第一网络和第二网络还可以为其他网络,本申请这里不做限定。

当电子设备100连接有两个网络时,连接两个网络可以建立两条通信链路,通过两条通信链路可以进行两条链路的数据传输。当然,如果电子设备100上仅有一个网络时,则连接该唯一的网络建立一条通信链路,通过一条链路进行数据传输。

步骤602:电子设备100获取游戏当前所在的场景。

需要说明的是,本申请中的游戏场景可分为“关键场景”和“非关键场景”。其中,关键场景可以理解为游戏的对战场景,非关键场景可以理解为非对战场景。

本申请实施例中,可通过电子设备100中当前所运行游戏所在的场景状况,来确定发送数据包的方式。换句话来说,可以根据游戏当前所在的场景是否为对战场景,来确定如何发送数据。

以下先介绍本申请实施例中获取游戏当前所在场景的几种判断方式:

第一种方式:

电子设备100可以接收应用程序(app)发送的游戏场景标识,并根据app发送的游戏场景标识确定游戏当前所在的场景。其中,该app指可以提供游戏运行的app,比如可以为王者联盟app等。

示例性的,游戏场景标识可以通过游戏场景标志位来表示,例如,可以通过0或1的方式来表示。并且,当游戏场景标识为1时,认为是关键场景(即对战场景),当游戏场景标识为0时,认为是非关键场景(即非对战场景)。或者,当游戏场景标识为0时,认为是关键场景(即对战场景),当游戏场景标识为1时,认为是非关键场景(即非对战场景),本申请对此不作限定。

当然,可以理解的是,游戏场景的标识并不限于通过0或1的方式来表示,例如也可以通过字母a、b等其它方式来表示,本申请对此不作限定。

在本申请实施例中,作为一种可能的实现方式,app可以通过软件开发工具包(softwaredevelopmentkit,sdk)获取当前的游戏场景,然后基于当前的游戏场景确定当前的游戏场景标识,这样app根据游戏场景标识就可以确定当前的游戏场景是否为对战场景。

作为另一种可能的实现方式,app可以通过套接字应用编程接口(applicationprogramminginterface,api)来获取当前的游戏场景。

第二种方式:

电子设备100可以接收app发送的当前游戏场景下网络的平均码率,然后根据最近预设时长内的实际吞吐量与当前游戏场景下的平均码率进行比较,确定当前游戏场景是否为关键场景。可以理解的是,最近预设时长内的实际吞吐量可以为最近预设时间内成功传输数据的数据量。

具体的,若最近预设时长内的实际吞吐量与当前游戏场景下的平均码率相比,如果最近预设时长内的实际吞吐量大于平均码率的n(n>1)倍,则确定当前的游戏场景为关键场景(即对战场景),若最近预设时长内的实际吞吐量小于平均码率的n倍,则确定当前的游戏场景为非关键场景(即非对战场景)。示例性的,若最近1s内的实际吞吐量与当前游戏场景下的平均码率相比,如果最近1s内的实际吞吐量大于平均码率的1.5倍,则确定当前的游戏场景为关键场景,若最近1s内的实际吞吐量小于平均码率的1.5倍,则确定当前的游戏场景为非关键场景。

当然,可以理解的是,在实际应用中,在比较平均码率与最近预设时长内的实际吞吐量时,选择的预设时长应该尽可能的比较短,这样可以更准确的确定当前的游戏场景。例如预设时长也可以为2s,本申请对此不作限定。

第三种方式:

以云游戏为例,电子设备100可以获取服务器侧发送的判断结果,具体的,服务器侧可以记录以下信息中的至少一项:预设时长内用户对于屏幕的触控频率、上行数据量、下行数据量以及预设时长内用户的触控频率对应的滑动均值、预设时长内上行数据量对应的滑动均值、预设时长内下行数据量对应的滑动均值,然后服务器侧可以保存记录上述信息中的至少一项,并根据上述信息中的至少一项确定当前的游戏场景,将确定出的当前的游戏场景结果发送给电子设备100。

作为一种可能的实现方式,可以通过服务器侧记录的信息的权值确定当前的游戏场景。比如服务器侧记录最近1s内用户的触控频率,且最近1s内用户的触控频率大于滑动均值的a倍;服务器侧记录最近1s内数据传输的上行数据量,且最近1s内的上行数据量大于滑动均值的b倍;服务器侧记录最近1s内数据传输的下行数据量,且最近1s内的下行数据量大于滑动均值的c倍。

在本申请实施例中,可判断权值向量是否满足以下公式:w1*a+w2*b+w3*c>x,若满足上述公式,则确定当前的游戏场景为关键场景,若不满足上述公式,则确定当前的游戏场景为非关键场景。

示例性的,假设上述三个信息对应的权重值分别为0.7、0.6、0.5,则代入上述公式可得到:0.7a+0.6b+0.5c>1,如果满足0.7a+0.6b+0.5c>1,则确定当前的游戏场景为关键场景,若0.7a+0.6b+0.5c<1,则确定当前的游戏场景为非关键场景。

当然,可以理解的是,上述权重值仅是一种示例,本申请并不限于此。

步骤603:电子设备100响应用户的操作,向服务器发送上行数据。

如果游戏当前所在的场景为对战场景,则用户在显示屏194上进行多次且频繁的操作,此时电子设备100可以接收并响应用户在显示屏194上的操作,然后将用户的操作信息发送给服务器。

需要说明的是,用户在显示屏194上的操作可以为点击操作,也可以为滑动操作等,本申请对此不作限定。

在上述三种方式的基础上,电子设备100可确定出当前的游戏场景,对于上行数据的传输,由于上行数据比较小,不会消耗过多的功耗,因此本申请实施例中无论当前的游戏场景是否为关键场景,对于上行数据的传输都采用完全冗余的方式发送数据包,即可以通过两个网络建立的两条链路发送数据包。

换句话来说,若当前的游戏场景为关键场景(对战场景),则可以通过两个网络建立的两条链路发送数据包;若当前的游戏场景为非关键场景(非对战场景),则也可以通过两个网络建立的两条链路发送数据包。

步骤604:电子设备100接收服务器发送的下行数据。

本申请实施例中,对于下行数据的传输,按照场景的不同采用不同的方式来发送下行数据。在一些实施例中,对于关键场景,应用服务器可以采用两条链路冗余发包的方式来传输下行数据,哪条链路先传输到电子设备100,则电子设备100就接收哪条链路传输的下行数据,这样可以保证电子设备100及时接收到下行数据。

在另一些实施例中,对于非关键场景,电子设备100可以将两条链路中的其中一条链路设为主链路,将另外一条链路设为备链路,然后通过两条链路通知服务器哪条链路是主链路,哪条链路是备链路,然后服务器在通过电子设备100通知的链路向电子设备100发送下行数据。举例来说,假设电子设备100通知服务器使用wifi网络对应的链路发送下行数据,则服务器使用wifi网络对应的链路向电子设备100发送下行数据。或者电子设备100通知服务器使用蜂窝网络对应的链路发送下行数据,则服务器使用蜂窝网络对应的链路向电子设备100发送下行数据。

作为一种示例,本申请中可以针对两个网络分别对应的两条链路设置优先级。例如,在关键场景下,可以将wifi网络和蜂窝网络分别对应的两条链路的优先级设置为相同的优先级,在非关键场景下,可以设置wifi网络对应的链路的优先级高于蜂窝网络对应的优先级,即可将wifi网络对应的链路设置为主链路,将蜂窝网络对应的链路设置为备链路。

在一种可能的实现方式中,当wifi网络的往返时延(round-triptime,rtt)满足设定的阈值时,可将蜂窝网络对应的链路作为备用链路;当wifi的rtt不满足设定的阈值时,则可将wifi的rtt与蜂窝网络的rtt进行比较,若蜂窝网络的rtt小于wifi的rtt,则可将wifi网络对应的链路作为备用链路。

当然,可以理解的是,当wifi网络的rtt满足设定的阈值时,可以理解为将wifi网络的优先级提升到高于蜂窝网络的优先级,将wifi网络对应的链路作为主用链路,将蜂窝网络对应的链路作为备用链路。

本申请实施例中,通过在上行数据传输时,采用冗余发包的方式进行数据传输,在下行数据传输时,根据游戏所在的场景采用不同的链路传输下行数据,这样在上行数据传输时,冗余发包保证了数据传输的低时延;在下行数据传输时,通过主备切换的方式传输下行数据,可降低功耗,节省成本。在数据传输的整个过程来看,提升了用户体验。

上述各个实施例可以单独使用,也可以相互结合使用,以达到不同的技术效果。

上述本申请提供的实施例中,从电子设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。

基于相同的构思,图7所示为本申请提供的一种数据传输装置700,用于执行图6所示的数据传输方法。示例的,该装置700可以为电子设备或应用服务器,也可以为芯片。示例的,装置700包括处理单元701和通信单元702。

示例的,处理模块701用于在游戏的应用程序被运行时,与用于为所述游戏提供服务的应用服务器建立至少两条通信连接。通信单元702用于过所述目标通信连接接收所述应用服务器发送的与所述游戏相关的下行数据;或者在所述场景信息表征非对战场景时,通知所述应用服务器通过目标通信连接发送与所述游戏相关的下行数据。例如,装置700为电子设备时,通信单元702可以为收发器。再例如,装置700为芯片时,通信模块702可以为接口。

基于相同的构思,参阅图8所示为本申请提供的一种装置800。所述装置800包括:收发器801、处理器802以及存储器803。其中,所述收发器801、所述处理器802以及所述存储器803之间相互连接。

可选的,所述收发器801、所述处理器802以及所述存储器803之间通过总线804相互连接。所述总线804可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器803,用于存放程序指令和数据等。具体地,程序指令可以包括程序代码,该程序代码包括计算机操作指令。存储器803可能包含随机存取存储器(randomaccessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。处理器802执行存储器803所存放的程序指令和数据,实现上述功能,从而实现上述实施例提供的数据传输方法。

当然,可以理解的是,图8所示的装置可以是电子设备,也可以是服务器,本申请中对于服务器和电子设备都可适用于上述装置。具体步骤可参阅上述方法实施例中的相关描述,此处不再赘述。

基于以上实施例,本申请实施例还提供了一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行以上实施例提供的数据传输方法。

基于以上实施例,本申请还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,执行以上实施例提供的数据传输方法。

基于以上实施例,本申请还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得所述计算机执行以上实施例提供的数据传输方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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