网络切换方法、电子设备以及芯片子系统与流程

文档序号:19939897发布日期:2020-02-14 23:02阅读:126来源:国知局
本发明实施例涉及通信领域,并且更具体地涉及基于多种类型的网络进行数据传输的方法和相关设备。
背景技术
::随着移动互联网的发展,电子设备可以通过无线网络,比如wifi网络、移动网络接入固定网络,进而与对端设备进行数据传输,以获取各种服务。其中,无线网络的质量对于服务的体验有很大的影响。而无线网络的传输质量通常是不稳定的,为了给用户提供更好的体验,现有技术会基于信号强度,在wifi网络和移动网络之间的切换以保证较好的数据传输。比如,当wifi信号的强度低于某一设定阈值时,切换到移动网络进行数据传输;但当wifi网络和移动网络各自的信号强度都不佳时,wifi网络和移动网络之间的切换并不能提高传输质量,而且可能会产生“乒乓球效应”,即频繁在wifi网络和移动网络之间切换,增加了设备的功耗。技术实现要素:本申请实施例提供一种网络切换的方法、芯片子系统及电子设备,在基于多种无线网络进行数据传输的场景下能够提供提升用户的使用体验,减少不必要的切换开销。为达到上述发明目的,第一方面,本申请实施例提供了一种网络切换方法,该方法包括:电子设备通过无线局域网传输数据;当无线局域网的数据传输时延大于第一阈值时,电子设备切换到同时通过无线局域网和移动网络传输数据;当电子设备同时通过无线局域网和移动网络传输数据时,若无线局域网的数据传输时延大于第二阈值,电子设备切换到通过移动网络传输数据。其中,第一阈值小于第二阈值。数据传输时延可以具体为往返时延,或者为时延的抖动参数(反应时延的波段情况)。无线局域网的数据传输时延大于第一阈值时,表示使用无线局域网传输应用的数据包的时延已经低于最佳用户体验的时延阈值。此时在建立移动网络连接基础上,切换到同时通过无线局域网和移动网络传输数据。同时通过无线局域网和移动网络传输数据是指,在无线局域网和移动网络各自的路径上冗余发送数据包,对于同一个数据包,在无线局域网和移动网络的路径上都发送。与现有技术中在达到预设阈值时在移动网络和无线局域网这两种状态之间切换不同的是,本申请实施例提供的网络切换方法针对数据传输时延设置了两个阈值,可以实现在移动网络、移动网络和无线局域网、无线局域网这三种网络状态之间切换。当无线局域网的数据传输时延逐步增大,数据传输效果不好时,可以切换到同时通过无线局域网和移动网络传输数据这一状态,可以避免因移动网络和无线局域网的数据传输质量同样不佳所带来的不必要的切换开销,保证用户的使用体验。并且当电子设备同时通过无线局域网和移动网络传输数据时,若无线局域网和移动网络其中一个网络的数据传输质量提升时,可以切换到该网络,这种灵活的网络切换方法能够保证数据传输的质量,提升用户体验,减少不必要的开销。在一种可能的实现方式中,当电子设备通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第一阈值,并且移动网络的数据传输时延大于第一阈值时,电子设备切换到同时通过无线局域网和移动网络传输数据。在一种可能的实现方式中,当电子设备通过移动网络传输数据时,若检测到无线局域网的数据传输时延小于第一阈值,电子设备切换到通过无线局域网传输数据。在一种可能的实现方式中,当电子设备通过移动网络传输数据时,检测无线局域网的数据传输时延;具体的,可周期性的检测无线局域网的数据传输时延。在一种可能的实现方式中,电子设备切换到同时通过无线局域网和移动网络传输数据后,当电子设备同时通过无线局域网和移动网络传输数据时,该方法还包括:若无线局域网的数据传输时延小于第一阈值,电子设备切换到通过无线局域网传输数据。在一种可能的实现方式中,当电子设备同时通过无线局域网和移动网络传输数据时,若无线局域网的数据传输时延大于第二阈值,且移动网络的数据传输时延小于第二阈值时,电子设备切换到通过移动网络传输数据。在一种可能的实现方式中,当电子设备同时通过无线局域网和移动网络传输数据时,该方法还包括:若无线局域网的数据传输时延大于第一阈值且小于第二阈值,且移动网络的数据传输时延小于第一阈值时,电子设备切换到通过移动网络传输数据。在一种可能的实现方式中,检测无线局域网的数据传输时延包括:通过无线局域网传输探测消息,接收探测消息对应的响应消息,以及根据探测消息的发送时间和响应消息的接收时间确定无线局域网的数据传输时延。在一种可能的实现方式中,电子设备传输的数据包括第一应用的数据包;数据传输时延为传输第一应用的数据包的时延。数据传输时延是传输每一个应用或者每一类应用的数据包的时延。在一种可能的实现方式中,第一阈值和第二阈值时是为第一应用预先配置的。在一种可能的实现方式中,该方法还包括:通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第二阈值,且移动网络的数据传输时延大于第一阈值且小于第二阈值时,电子设备继续通过移动网络传输应用的数据包。在一种可能的实现方式中,该方法还包括:当通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第一阈值,且移动网络的数据传输时延小于第一阈值时,电子设备继续通过移动网络传输数据。在一种可能的实现方式中,该方法还包括:所述终端切换到同时通过所述无线局域网和移动网络传输数据后,当电子设备同时通过无线局域网和移动网络传输数据时,该方法包括:若无线局域网的数据传输时延大于第一阈值,且移动网络的数据传输时延大于第一阈值时,电子设备继续通过无线局域网和移动网络传输数据。在一种可能的实现方式中,该方法还包括:当电子设备通过无线局域网传输数据时,若无线局域网的数据传输时延小于第一阈值时,电子设备继续通过无线局域网传输数据。在一种可能的实现方式中,传输的数据包中包括第一报头,第一报头携带数据包的发送时间戳;数据包的数据传输时延为数据包的响应消息的接收时间戳与数据包的发送时间戳之间的时间差。在一种可能的实现方式中,该方法还包括:电子设备修正最大段大小(mss,maximumsegmentsize)数值,修正后的最大段大小的数值小于或等于分片长度限制与第一报头长度之间的差值。本申请实施例提供的网络切换方法,可以根据网络的数据传输时延的变化,选择切换的网络,切换到能够提供更优的数据传输质量的网络,提高用户体验。并且,针对不同应用的同一参数设置两个阈值,使得网络切换方法更为灵活,更能适应网络环境的变化。第二方面,本申请实施例提供了一种电子设备,该电子设备包括调度模块,以及用于传输数据的无线局域网传输模块和移动网络传输模块,其中:调度模块用于:当无线局域网传输模块的数据传输时延大于第一阈值时,切换到同时通过无线局域网传输模块和移动网络传输模块传输数据;当同时通过无线局域网传输模块和移动网络传输模块传输数据时,若无线局域网传输模块的数据传输时延大于第二阈值时,切换到通过移动网络传输模块传输数据;其中,第一阈值小于所述第二阈值。在一种可能的实现方式中,调度模块还用于:当通过移动网络传输模块传输数据时,若检测到无线局域网传输模块的数据传输时延大于第一阈值,且移动网络传输模块的数据传输时延大于第一阈值时,切换到同时通过无线局域网传输模块和移动网络传输模块传输数据。在一种可能的实现方式中,该方法还包括:调度模块还用于:当通过移动网络传输模块传输数据时,若检测到无线局域网传输模块的数据传输时延小于第一阈值,切换到通过无线局域网传输模块传输数据。在一种可能的实现方式中,调度模块还用于:当通过移动网络传输模块传输数据时,检测无线局域网传输模块的数据传输时延。在一种可能的实现方式中,调度模块用于:当同时通过无线局域网传输模块和移动网络传输模块传输数据时,若无线局域网传输模块的数据传输时延小于第一阈值,切换到通过无线局域网传输模块传输数据。在一种可能的实现方式中,调度模块用于:当同时通过无线局域网传输模块和移动网络传输模块传输数据时,若无线局域网传输模块的数据传输时延大于第二阈值,且移动网络传输模块的数据传输时延小于第二阈值时,切换到通过移动网络传输模块传输数据。在一种可能的实现方式中,调度模块用于:当同时通过无线局域网传输模块和移动网络传输模块传输数据时,若无线局域网传输模块的数据传输时延大于第一阈值且小于第二阈值,且移动网络传输模块的数据传输时延小于第一阈值时,切换到通过移动网络传输模块传输数据。在一种可能的实现方式中,无线局域网传输模块还用于接收探测消息对应的响应消息;调度模块还用于:通过无线局域网传输模块传输探测消息,以及根据探测消息的发送时间和响应消息的接收时间确定无线局域网的数据传输时延。在一种可能的实现方式中,传输的数据包括第一应用的数据包;数据传输时延为传输第一应用的数据包的时延。在一种可能的实现方式中,第一阈值和第二阈值时是为第一应用预先配置的。第三方面,本申请实施例提供了一种芯片子系统,芯片子系统包括:应用处理器,以及用于传输数据的调制解调器和wifi模块,其中:应用处理器用于:当wifi模块的数据传输时延大于第一阈值时,切换到同时通过wifi模块和调制解调器传输数据;当同时通过wifi模块和调制解调器传输数据时,若wifi模块的数据传输时延大于第二阈值时,切换到通过调制解调器传输数据;其中,第一阈值小于所述第二阈值。在一种可能的实现方式中,应用处理器还用于:当通过调制解调器传输数据时,若检测到wifi模块的数据传输时延大于第一阈值,且调制解调器的数据传输时延大于第一阈值时,切换到同时通过wifi模块和调制解调器传输数据。在一种可能的实现方式中,应用处理器还用于:当通过调制解调器传输数据时,若检测到wifi模块的数据传输时延小于第一阈值,切换到通过wifi模块传输数据。在一种可能的实现方式中,应用处理器还用于:当通过调制解调器传输数据时,检测wifi模块的数据传输时延在一种可能的实现方式中,应用处理器还用于:当同时通过wifi模块和调制解调器传输数据时,若wifi模块的数据传输时延小于第一阈值,切换到通过wifi模块传输数据。在一种可能的实现方式中,应用处理器还用于:当同时通过wifi模块和调制解调器传输数据时,若wifi模块的数据传输时延大于第二阈值,且调制解调器的数据传输时延小于第二阈值时,切换到所述调制解调器传输数据。在一种可能的实现方式中,应用处理器还用于:当同时通过wifi模块和调制解调器传输数据时,若wifi模块的数据传输时延大于第一阈值且小于第二阈值,且调制解调器的数据传输时延小于第一阈值时,切换到通过调制解调器传输数据。在一种可能的实现方式中,wifi模块还用于接收所述探测消息对应的响应消息;应用处理器还用于:通过wifi模块传输探测消息;根据探测消息的发送时间和响应消息的接收时间确定所述无线局域网的数据传输时延。在一种可能的实现方式中,传输的数据包括第一应用的数据包;数据传输时延为传输第一应用的数据包的时延。在一种可能的实现方式中,第一阈值和第二阈值时是为第一应用预先配置的。第四方面,本申请实施例提供了一种电子设备,包括第三方面及第三方面任一可能的实现方式中提供的芯片子系统。第五方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储有计算机程序的计算机可读存储介质。其中,处理器与计算机可读存储介质耦合,计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的网络切换方法。第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的网络切换方法。第七方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面及第一方面任一可能的实现方式中提供的网络切换方法。附图说明图1为本发明实施例提供的通信系统示意图;图2为本发明实施例提供的通信系统示意图;图3为本发明实施例提供的电子设备结构示意图;图4为本发明实施例提供的电子设备结构示意图;图5为本发明实施例提供的电子设备结构示意图;图6为本发明实施例提供的电子设备结构示意图;图7为本发明实施例提供的电子设备结构示意图;图8为本发明实施例提供的时延的阈值示意图;图9为本发明实施例提供的状态切换示意图;图10为本发明实施例提供的网络切换方法流程图;图11为本发明实施例提供的报文结构示意图;图12为本发明实施例提供的报文结构示意图;图13为本发明实施例提供的数据传输时延示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。本申请中的术语“第一”、“第二”用于区分同一类型的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。在开始描述本申请具体实施例之前,先介绍在本申请以下实施例中将会被提及的术语及其含义。可以理解的是,无如其他说明,本申请各个实施例中的这些术语及其含义均可以是相同的。数据包:也称为报文,是网络传输的基本单位,以一定格式组织起来的数据。不同类型的网络协议对数据包的格式有不同的定义,但通常而言,一个数据包可分为头部(header)和净荷(payload),其中,头部包含了数据包传输过程中必需的信息,比如地址信息、标志位等等,净荷也称为数据包的数据部分,包含了被发送的数据内容。控制包:或称为探测消息,用于测量数据传输时延的一种特殊数据包,一般来说,控制包中不包含应用数据。确认(acknowledgement,ack):数据传输过程中,接收端接收到发送端发送的数据包后返回给发送端的一种传输类控制字符,表示发送端发来的数据包已正确接收。往返时延(round-triptime,rtt):网络传输中一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(ack),总共经历的时长。丢包率:传输过程中所丢失数据包数量占所发送数据包的比率。丢包(packetloss)是指一个或多个数据包(packet)无法透过网络到达目的地。丢包可能造成流媒体技术、线上游戏和视频会议的抖动(jittering),并会一定程度上影响到其他的网络应用。图1为本申请适用的一种电子设备之间进行数据传输的系统。需注意,图1的系统仅仅是一种可能系统的一个示例,并且根据需要可在各种系统中的任一种系统中实现公开的实施方案。如图1所示,该系统包括电子设备101、网络102和电子设备103。电子设备101和电子设备103通过网络102通信连接,其中网络102可以为无线局域网络或移动网络。电子设备101和103之间基于特定的通信协议建立通信连接,然后根据建立的连接,以数据包为单位传输数据。数据包在传输的过程中可能会经过网络102中的一个或多个网络设备,例如接入网设备、路由设备或接入点(ap,accesspoint)。电子设备101可以是终端设备,具体的,可以是移动式或便携式并执行无线通信的各种类型的计算机系统或设备中的任一个计算机系统或设备。例如可包括移动电话或智能电话(例如iphonetm、基于androidtm的电话)、便携式游戏设备(例如,nintendodstm、playstationportabletm、gameboyadvancetm、iphonetm)、膝上型电脑、个人数码助理(pda,personaldigitalassistant)、便携式互联网设备、音乐播放器、数据存储设备、其他手持设备以及可穿戴设备诸如腕表、耳机、吊坠、听筒等。电子设备103可以为终端设备,或者服务器,具体的可以为代理服务器或与代理服务器通信连接的另一服务器。图2为图1所描述的通信系统的具体实现方式。如图2所示,在该系统中移动设备201和202以及接入点204,其中接入点204可以为无线局域网的接入点,例如wifi接入点204。移动设备201和移动设备202可以通过接入点204接入网络206,进而实现与服务器207的通信连接。其中,网络206为固定网络或骨干网。移动设备201和/或移动设备202与wifi接入点204之间的无线链路构成了无线局域网。在该系统中,接入点205可以与移动设备202和移动设备203通信连接。具体的,接入点205为移动网络的接入点,例如基站205。移动设备202和203可以通过一个或多个基站205接入网络206,进而实现与服务器207的通信连接。移动设备203和/或移动设备202与接入点205之间的无线链路构成了移动网络,也称为蜂窝网络。该移动网络基于多种移动通信规范中的任一种所定义的方式进行通信,例如全球移动通信系统(gsm,globalsystemformobilecommunication)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、时分同步码分多址(td-scdma,timedivision-synchronouscodedivisionmultipleaccess)、长期演进(lte,longtermevolution)等。在该系统中,移动设备201-203之间还可以通过蓝牙或者wifi直连的方式实现连接,进行数据传输。所属领域的技术人员可以理解一个数据传输架构通常可包括比图2中所示的部件更少或更多的部件,或者包括与图2中所示部件不同的部件,图2仅仅示出了与本申请实施例所公开的多个实现方式更加相关的部件。与wifi接入点204和基站205两者进行通信的移动设备202是具有移动网络通信能力和无线局域网通信能力的电子设备300的一个示例。电子设备300可被配置为使用多个无线通信协议中的任一者来进行通信。例如,电子设备300可被配置为使用各种蜂窝移动通信技术中的任一个,例如gsm、wcdma、lte等来通信。电子设备300还可被配置为使用各种无线局域网通信技术中的任一个,例如wifi来通信。无线通信技术的其他组合也是可能的。图3为电子设备300的结构示意图,电子设备300包括处理器301(在本申请实施例中可以具体为应用处理器301)、存储器302和通讯模块例如:调制解调器303(例如用于lte、gsm等)和wifi模块304(例如,wlan(wirelesslan)电路)等部件。本领域技术人员可以理解,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件。这些部件可通过一根或多根总线或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。如本文所述,电子设备300可包括用于实现本申请所述的方法的硬件和软件部件。电子设备300的处理器301可被配置为实施本申请所述一部分或全部方法,例如通过执行被存储在存储器(例如,非易失性计算机可读存储器介质)上的程序指令。另选地,处理器301可被配置作为可编程电路单元,诸如fpga(现场可编程门阵列)或者作为asic(专用集成电路)。另选地,结合其他部件中的一个或多个,电子设备300的处理器302可被配置为实施本申请所述的方法的部分或全部。处理器301可以是中央处理器(cpu,centralprocessingunit),网络处理器(np,networkprocessor)或者cpu和np的组合。处理器201还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(asic,application-specificintegratedcircuit),可编程逻辑器件(pld,programmablelogicdevice)或其组合。上述pld可以是复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice),现场可编程逻辑门阵列(fpga,field-programmablegatearray,缩写:fpga),通用阵列逻辑(gal,genericarraylogic,缩写:gal)或其任意组合。存储器302,用于存储计算机程序,诸如图3所示的应用程序305和操作系统306;处理器301可调用存储器302存储的计算机程序,从而实现该计算机程序定义的功能。例如处理器301执行操作系统从而在电子设备300上实现操作系统的各种功能。操作系统306可以为或者其它操作系统,本申请实施例对此不作任何限制。存储器302还存储有除计算机程序之外的其他数据,诸如操作系统306和应用程序305运行过程中产生的数据。存储器302可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(ram,random-accessmemory);存储器302也可以包括非易失性存储器(英文:non-volatilememory),例如快闪存储器(flashmemory),硬盘(hdd,harddiskdrive)或固态硬盘(ssd,solid-statedrive);存储器302还可以包括上述种类的存储器的组合。图3中仅示出了一个存储器,当然,存储器302也可以根据需要,设置为多个存储设备。存储器302也可以是处理器301中的存储器,在此不做限制。通讯模块或者说通信接口用于使得电子设备300与其它电子设备通信连接,允许电子设备200在网络上进行通讯的硬件,可以实现数据包的发送与接收的硬件。通信接口包括调制解调器303,用于为电子设备300提供通过移动网络进行通信的功能,和wifi模块用于为电子设备300提供通过无线局域网进行通信的功能。通信接口303上也可集成有处理器和存储器(包括ram和只读存储器(rom,read-onlymemory)。进一步地,在一个实施例中,如图4所示,电子设备300从逻辑上可划分为硬件层31、操作系统306以及应用层33。硬件层31包括如上所述的处理器301、存储器302、通讯模块(例如,调制解调器303和wifi模块304)等硬件资源。应用层33包括一个或多个应用程序,比如应用程序305。操作系统306作为硬件层31和应用层33之间的软件中间件,是管理和控制硬件与软件资源的计算机程序。操作系统306包括内核32,内核32用于提供底层系统组件和服务,例如:电源管理、内存管理、协议栈34、驱动程序35等。调度模块34是实现网络切换的组件。应用程序305下达数据发送指令后,数据经过调度模块34,通过驱动程序35调用通讯模块发送该数据。在一个实施例中,驱动程序35包括存储器驱动351、通讯模块驱动352(用于驱动通讯模块)。本申请实施例提供的网络切换方法可以由内核32中的调度模块34来实施。调度模块34可以在用户态进程中实现,也可以扩展现有协议栈,基于现有协议栈在内核态中实现。在一个实施例中,电子设备300可以将调度模块34的功能卸载到硬件层31的通讯模块,从而实现内核旁路,提升数据转发性能。如图5所示,通讯模块为可编程的电路单元,调度模块34实现在可编程的通讯模块中。相应地,本申请实施例提供的网络切换方法可以由通讯模块来实施,具体地,可以通过修改通讯模块的硬件或固件来实现该方法。可以是将计算机程序存储在可编程通讯模块上集成的存储器中,可编程通讯模块上集成的处理器执行该计算机程序来实现本申请提供的网络切换方法。还可以是通过可编程通讯模块中的逻辑电路实现本申请提供的网络切换方法。在一个实施例中,如图6所示,电子设备300可以将调度模块34实现在应用层33(如dpdk(dataplanedevelopmentkit)技术),从而实现内核旁路,提升数据转发性能。相应地,本申请实施例提供的网络切换方法可以由应用层的软件来实施。为了简化描述,本申请实施例中将已建立通信连接的两个电子设备中的一个称为发送端,另一个称为接收端。可以理解的是,发送端和接收端可以是具有数据收发能力的任何电子设备。另外,发送端和接收端是两个相对的角色,且可以互相转换,即同一设备在不同的场景下可能是发送端,也有可能是接收端。图7中为实现本申请中网络切换的方法的电子设备的另一结构示意图。电子设备400可以包括传输协议模块401、移动网络传输模块403和无线局域网传输模块404,还可以包括导流模块(图7中未示出),电子设备400可以为上述电子设备300的部分或全部。导流模块用于对应用程序下发的数据设置有标签。具体的,可以对特定的应用程序,例如游戏应用、视频应用下发的数据报文设置标签;还可以对特定的协议类型设置标签,例如,对于下发的tcp报文(传输控制协议,transmissioncontrolprotocol)或udp报文(用户数据报协议,userdatagramprotocol)设置标签;还可以对数据发送的目标地址设置标签,目标地址为数据包发送的目的设备的ip地址或端口。例如可以通过iptable对数据报文设置标签。导流模块还可以配置路由规则,路由规则表示数据包导流的目的地。导流模块根据路由规则将携带有标签的应用程序下发的数据报文导入到传输协议模块401,通过传输协议模块401中选择的网络进行数据包传输,通过收发单元将数据包经由选择的网络发送出去。具体的,对于tcp/ip模型来说,导流模块导流的数据报文可以是经过ip层处理的报文。可选的,导流模块可以将应用程序下发的数据包先导入中间存储设备,再代入传输协议模块。其中,中间存储设备是一个进程,例如tun设备或者是netfilter设备。传输协议模块401可以包括调度模块402和参数配置接口405。调度模块402可以为上述的调度模块34的部分或全部。参数配置接口405用于为应用设置网络切换的预设条件。该预设条件具体为服务质量参数的阈值,服务质量参数可以包括时延、吞吐量和丢包率中的至少一种。当达到预设条件时,调度模块从可用的网络中选择一种或多种网络进行数据包的传输。服务质量参数的具体阈值与应用程序的用户体验相关。具体的,可以使用以下数据结构进行配置:表1:服务质量参数的数据结构其中,uid表示用户标识,每个uid可以对应一个应用。即对于每个应用,都设置了服务质量参数的阈值。具体的,对于一个应用的其中一种服务质量参数可以设置两个或更多的阈值。其中:threshold_low为最佳体验的服务质量参数的阈值,可称为第一阈值;threshold_high为达标的服务质量参数的阈值,可称为第二阈值;。这两种与用户体验相关的阈值可用由应用程序的开发厂家基于大量的用户行为,业务逻辑统计分析获得,通过参数配置接口405按需下发以及更新。不同的应用种类对于满足用户体验的服务质量的阈值的指标是不同的。以时延为例,游戏类的应用的最佳体验的时延阈值可能在100ms,达标的时延阈值可能为200ms,则游戏类的应用的时延的第二阈值可设置为200ms,第一阈值可设置为100ms;即时通讯类的应用的最佳体验的时延阈值可能为700ms,达标的时延阈值可能为1000ms,则即时通讯类的应用的第二阈值可设置为1000ms,第一阈值可设置为700ms。如图8所示,以时延参数为例,小于或等于第一阈值设置的数值的时延值为满足流程的用户体验的时延值;大于或等于第二阈值设置的数值的时延值为极差的用户体验的时延值。调度模块402用于选择进行数据传输的传输模块,或者说用于选择进行数据传输的网络,例如,选择移动网络(或称移动网络)进行数据包的传输,选择无线局域网(例如wifi)进行数据包的传输,或者选择移动网络和无线局域网共同进行数据包的传输。具体的,调度模块402还可以检测数据传输的服务质量,根据数据传输的服务质量参数切换网络。调度模块402用于执行本申请实施例中提供的网络切换方法,具体的包括步骤102-104。具体的,调度模块402可以为可编程电路单元,例如前述的应用处理器。数据包处理模块406用于对于数据包进行处理后,通过收到单元403将处理后的数据包发送给接收端。移动网络传输模块403和无线局域网传输模块404用于传输数据,传输的数据为应用程序下发的数据包。其中,移动网络传输模块403用于通过移动网络传输数据,具体的,可以为上述电子设备300中的调制解调器303;无线局域网传输模块404通过无线局域网传输数据,具体的,可以为上述电子设备300中的wifi模块304。可选的,传输协议模块401还包括数据包处理模块406,数据包处理模块406用于对数据包进行处理,具体的可以包括对数据包层层封装,将处理后的数据包经由移动网络传输模块403和无线局域网传输模块404中的至少一个发送。在另一实施例中,还可以通过虚拟私人网络(vpn,virtualprivatenetwork)设备获取应用程序下发的数据包,之间将数据包导流至传输协议模块401。在另一实施例中,可以扩展协议接口给应用程序直接调用,传输协议模块401可以通过该接口直接从应用程序直接获得下发的数据包。本申请实施例提供的网络切换方法是在三种状态之间切换,切换是指电子设备在不同数据传输状态之间切换,比如,从通过无线局域网传输数据变为通过移动网络传输数据。切换具体可以涉及到电子设备下发切换请求,通过控制协议栈来实现网络切换。状态切换示意图如图9所示,包括:通过无线局域网传输数据(例如图9中rang1)、通过移动网络传输数据(例如图9中rang3)以及同时通过所述无线局域网和移动网络传输数据(例如图9中rang2)。其中,传输的数据包括应用的数据包。具体的,可以预设一个初始状态为上述三种状态中的一种。可选的,可以选择同时通过无线局域网和移动网络进行数据传输作为初始状态。在本申请提供的网络切换方法中,针对某一个或某一类应用和同一个服务质量参数(例如时延)预先设置了两个门限:第一阈值和第二阈值。可以为每一个或每一类应用预先配置第一阈值和第二阈值,第一阈值是预先设置的该应用对应的最佳用户体验的阈值threshold_low,第二阈值是预先设置的该应用对应的极差用户体验的阈值threshold_high。其中,第一阈值小于所述第二阈值。可选的,可根据网络的服务质量参数(例如时延,或称为数据传输时延),与前述设置的如图8所示的threshold_high(第二阈值)和/或threshold_low(第一阈值)两个门限阈值比较,来判断切换到哪个状态,或者说切换到哪一个或哪一些网络进行数据传输。1)如果当前测量到的服务质量参数劣于最佳体验门限threshold_low,代表当前网络能提供的服务质量可能已经无法满足用户的最佳体验,为了保证用户体验,则发送端开始同时在另外一个网络上发送数据包,也就是通过多个路径冗余发送数据包来保证数据包的传输,从而能够保持较好的用户体验。2)如果当前测量到的服务质量参数劣于极差体验门限threshold_high,则停止当前网络上的数据包的发送,切换到另一网络上进行数据包发送,还可以开启对于切换前的网络的服务质量的实时探测。从而可以根据两种网络的实时服务质量来切换到能够保证用户体验的网络。应当理解的是,还可以设置更多层次的门限阈值,根据当前网络的服务质量参数所归属门限阈值范围切换到对应的网络。下面将详细介绍本申请提供的网络切换方法的具体流程,流程图如图10所示。该方法包括以下步骤:步骤101:电子设备通过无线局域网传输数据;电子设备接入了无线局域网接入点,通过无线局域网传输应用的数据包,例如,终端接入了某wifi接入点,通过wifi网络传输数据。可选的,电子设备周期性的检测无线局域网的数据传输时延;比较无线局域网的数据传输时延与第一阈值。数据包传输过程中,比如从电子设备传输到应用服务器,通常会经过无线网络和固定网络,其中固定网络的传输时延相对固定,而造成数据包端到端传输时延波动的主要因素是无线网络,无线网络部分的数据传输时延越大,则端到端传输时延越大,反之亦然。因此,在一个实施例中,为了便于测量,可以将电子设备通过无线局域网传输应用的数据包时的端到端数据传输时延简单等同为无线局域网的数据传输时延。在一个实施例中,数据传输时延为从发送端(比如,电子设备)发送数据包开始,到接收端(比如,应用服务器)收到该数据包所经历的时间。在另一个实施例中,数据传输时延也可以为往返时延(rtt),即从发送端发送数据包开始,到发送端接收到针对该数据包的确认所经历的时间。数据传输时延通常是一个测量值或估算值,比如在通过无线局域网传输数据时,可以测量一个数据包从被发出到其对应的确认被接收所经历的时间,将该时间作为无线局域网的数据传输时延;也可以统计一段时间内多个数据包的传输时延,将多个数据包的传输时延取平均值或者采用特定算法运算后得到无线局域网的数据传输时延。步骤102:当无线局域网的数据传输时延大于第一阈值时,电子设备切换到同时通过无线局域网和移动网络传输数据;本申请实施例中提到的电子设备传输的数据包括某一应用的数据包,因此,数据传输时延为传输该应用的数据包的端到端时延,比如往返时延(rtt)。当无线局域网的数据传输时延大于第一阈值时,表示使用无线局域网传输应用的数据包的时延已经低于最佳用户体验的时延阈值。此时在建立移动网络连接基础上,切换到同时通过无线局域网和移动网络传输数据,换句话说,在无线局域网和移动网络各自的路径上冗余发送应用的数据包。具体的,通过建立发送端与接收端之间的多路径传输,实现在无线局域网和移动网络各自的路径上进行应用的数据包的冗余传输。可选的,电子设备同时通过无线局域网和移动网络传输数据时,周期性的检测无线局域网的数据传输时延;比较无线局域网的数据传输时延与第二阈值。具体的,计算通过无线局域网传输的应用的数据包的时延获得无线局域网的数据传输时延。在另一实施例中,如图10中①所示,当无线局域网的数据传输时延小于或等于第一阈值时,电子设备继续通过无线局域网传输数据,继续执行步骤101。步骤103:当电子设备同时通过无线局域网和移动网络传输数据时,若无线局域网的数据传输时延大于第二阈值时,电子设备切换到通过移动网络传输应用的数据包;其中,第一阈值小于所述第二阈值;无线局域网的数据传输时延大于第二阈值,表示无线局域网提供的网络链路的时延再次一定幅度的增加,无线局域网的服务质量已经再次降低。此时无线局域网不能保证很好的保证用户体验,反而会因为使用同时通过无线局域网和移动网络传输数据这种多路径冗余发送数据包的方式而造成不必要的开销。因此,电子设备将切换成仅通过移动网络进行数据传输,即仅通过移动网络传输应用的数据包。可选的,还可以检测移动网络的数据传输时延,计算通过移动网络传输的应用的数据包的时延获得移动网络的数据传输时延。需要说明的是,同无线局域网的数据传输时延类似,移动网络的数据传输时延也是指使用移动网络传输应用的数据包时的端到端时延。可选的,若无线局域网的数据传输时延大于第二阈值,且移动网络的数据传输时延小于或等于第二阈值时,无线局域网的服务质量处于前述的极差用户体验,而lte网络的服务质量还未到极差的用户体验,lte网络的服务质量比wifi网络的服务质量要好,则此时电子设备切换到通过移动网络传输数据。可选的,若无线局域网的数据传输时延大于第一阈值且小于第二阈值,且移动网络的数据传输时延小于第一阈值时,表示无线局域网的无法提供前述最佳用户体验,而移动网络可以提供前述最佳用户体验,则此时电子设备切换到通过移动网络传输数据,即仅通过移动网络进行后续的该应用的数据包的传输。可选的,还包括步骤104:电子设备通过移动网络传输数据时,检测无线局域网的数据传输时延;具体的,通过无线局域网传输控制包(探测消息),接收探测消息对应的响应消息,以及根据探测消息的发送时间和响应消息的接收时间确定无线局域网的数据传输时延。控制包(探测消息)中可以携带发送时间戳,响应消息为对端已经成功接收到探测消息后返回的数据包。无线局域网的数据传输时延可以为控制包的响应消息的接收时间戳与控制包的发送时间戳之间的时间差。关于数据传输时延的计算将在后续内容详细介绍。在另一实施例中,如图10中②所示,当电子设备同时通过无线局域网和移动网络传输数据时,若无线局域网的数据传输时延小于所述第一阈值,电子设备切换到通过无线局域网传输数据,继续执行步骤101-104。在另一实施例中,如图10中③所示,电子设备继续维持同时通过无线局域网和移动网络传输应用的数据包。在另一实施例中,步骤104之后,如图10中④所示,当电子设备通过移动网络传输数据时,若检测到无线局域网的数据传输时延小于第一阈值,电子设备切换到通过无线局域网传输数据,继续执行步骤101-104。无线局域网的数据传输时延小于第一阈值表示无线局域网可用提供前述的最佳用户体验。从移动网络切换到无线局域网可用节省移动网络流量。在另一实施例中,如图10中⑤所示,电子设备通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第一阈值,且移动网络的数据传输时延大于第一阈值时,电子设备切换到同时通过无线局域网和移动网络传输数据,继续执行步骤102即步骤102-104。在另一实施例中,如图10中⑥所示,通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第二阈值,且移动网络的数据传输时延大于第一阈值且小于第二阈值时,电子设备继续通过移动网络传输应用的数据包,继续执行步骤103-104。在另一实施例中,如图10中⑥所示,通过移动网络传输数据时,若检测到无线局域网的数据传输时延大于第一阈值,且移动网络的数据传输时延小于第一阈值时,电子设备继续通过移动网络传输应用的数据包,继续执行步骤103-104。在其他实施例中,可以预设第一时间差,当数据传输时延大于或小于预设阈值(第一阈值或第二阈值)并维持第一时间差后,才执行网络切换的步骤。由此,可以避免因数据传输时延短时间内的波动而导致反复切换网络所带来的开销。在其他实施例中,也可以设置其他网络参数对应的第一阈值和第二阈值,当检测到网络参数达到阈值时,进行前述三种网络状态之间的切换,其中,其他网络参数可以为丢包率、吞吐量和时延抖动等参数中的一个或多个。网络切换的方法如前述根据数据传输时延进行网络切换的方法步骤类似,在此不做赘述。由于移动网络与用户的网络流量相关,进而与用户的流量费用相关,因此,在本申请提供的另一实施例中,可以向用户提供是否开启网络切换功能的提示信息,并接受用户对该切换提示信息的触发指令。可以根据该触发指令开启本申请各个实施例提供的网络切换方法,从而使得用户感知到网络切换,避免为用户带来损失,提高用户体验。在一种可能实现的方式中,该提示信息可以是提示框,例如,该提示框展示的信息为“是否开启网络切换功能”或者“是否同意使用移动网络”。进一步的,提示框可以包括“是”按钮和“否”按钮,在用户点击提示框中的“是”按钮时,则确定同意启动本申请提供的网络切换方法。可选的,该提示框可以是应用程序提供给用户的,例如,在“游戏助手”或“网络设置”等类似的应用程序中给用户提供该提示框;也可以是下载具有该功能的插件,加载该插件后在插件界面上呈现该提示框。在本申请实施例提供的网络切换方法中,发送端还会对原始数据报文进行处理后发送。具体的,增加一个报头将原始报文封装后,经过封装后通过通讯模块将数据包发送给接收端。这里的数据包可以为前述的应用的数据包,也可以为前述的控制包。以传输层协议为tcp或udp为例,发送端区分tcp报文和udp报文进行不同的处理。对于udp报文,可将udp报文中的载荷部分取出,在报文中划分出一段空间作为增加的一个报头,称为shim头。之后再进行后续协议层的层层封装处理,最终发送的报文的格式如图11所示。对于tcp报文,将tcp的报文中的tcp头部和载荷部分取出,报文中划分出一段空间作为增加的一个报头,称为shim头。shim头封装tcp头部和载荷部分,最终发送的报文的格式如图12所示。其中,shim头可以包含发送端发送该数据包的发送时间戳,还可以包含options选项信息,其中可以包括安全信息(例如令牌)和接收端的地址。接收端返回的响应消息的格式也可以如图11或图12所示。接收端返回的响应消息可以是确认信息(ack,acknowledgement),也可以是接收端接收到发送端发送的数据包后,向发送端返回的数据包。接收端返回的响应消息中包括发送端发送该数据包的发送时间戳t1,还可以包括接收端接收到该数据包的接收时间戳t2,还可以包括接收端接收该数据包的时间戳与接收端发送响应消息的发送时间戳直接的时间差diff_t。以时延为例,介绍各个网络的时延计算方式。本申请中所提到的数据传输时延可以为往返时延。如图13所示,发送端在t1时刻发送的数据包p1中携带发送时间戳t1,接收端在t2时刻接收到数据包p1,并在间隔时间diff之后,接收端在t3时刻向发送端返回响应消息。发送端于t4时刻接受到响应消息,则时延rtt为:rtt=t4-t1-diff_t,其中,diff_t=t3-t2。响应消息中携带了发送时间戳t1和间隔时间diff_t。间隔时间可以为接收端对接收到的数据包进行处理响应的过程中消耗的时间,当接收端为服务器的代理时,间隔时间可以包括服务器代理将接收到的数据包发送给服务器的时间与服务器代理收到服务器回包的时间之间的差值。因此,本申请各个实施例中的数据传输时延为数据包的发送时间戳与数据包的响应消息的接收时间戳之间的时间差获得。可选的,可以根据多次计算出的时间差平滑处理后获得数据传输时延。发送端向接收端发送的数据包中还携带一个标识,该标识可以具体为mss(最大段大小)选项,可以携带在option选项中。以tcp报文为例,当发送端发送的tcp报文如果很长时,会在发送时发生分段,在接受端时进行重组。同样ip报文在长度超过一定值时也会发生分片,在接收端再将分片重组。mss选项的值表示每次能够传输的数据包的最大数据分段的长度。当tcp报文的长度大于mss的值时,要进行分段传输。发送端会对mss选项的值进行修正,避免因为添加了shim头而导致报文超过了分片长度限制。其中,修正后的mss的值与shim头的长度的总和小于或等于分片长度限制。基于以上实施例,本申请实施例还提供了一种芯片子系统(soc,systemonchip),该芯片子系统包括应用处理器,以及用于传输数据的调制解调器和wifi模块,该应用处理器可实现上述任意一个或多个实施例提供的网络切换方法。其中,wifi模块可以是单独的芯片,也可以与应用处理器、调制解调器集成到一起。基于以上实施例,本申请实施例还提供了一种电子设备,该电子设备包括上述的芯片子系统,使得该电子设备可实现上述任意一个或多个实施例提供的网络切换方法。基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储计算机指令,该计算机指令在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的网络切换方法。计算机存储介质可以包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码或计算机指令的介质。基于以上实施例,本申请提供一种计算机程序产品,计算机程序产品包括计算机指令,当计算机指令被处理器执行时,使得处理器执行上述任意一个或多个实施例提供的网络切换方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1