发明内容
本申请实施例提供了一种网络性能数据的获取方法、装置和服务器,本申请实施例还提供一种计算机可读存储介质,以实现低成本地获取用户的精确网络性能数据,为解决网络拥塞问题提供大数据基础。
第一方面,本申请提供了一种网络性能数据的获取方法,包括:获取来自第4层负载均衡节点的网络吞吐信息,以及获取来自第7层负载均衡节点的网络质量信息;将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的传输控制协议(transmission control protocol,TCP)流的网络性能数据。
上述网络性能数据的获取方法中,获取来自L4 LB110的网络吞吐信息,以及获取来自L7 LB130的网络质量信息之后,可以将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得IP五元组标识的TCP流的网络性能数据,从而可以实现低成本地获取用户的精确网络性能数据,为解决网络拥塞问题提供大数据基础。
其中一种可能的实现方式中,上述网络吞吐信息包括以下之一或组合:TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数;上述TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数是上述第4层负载均衡节点在对报文进行网络地址转换时,根据上述报文的IP五元组累加获得的。
其中一种可能的实现方式中,上述网络质量信息包括以下之一或组合:TCP流的往返时延、丢包的报文数和重传的报文数。
其中一种可能的实现方式中,获取来自第4层负载均衡节点的网络吞吐信息可以为:获取第4层负载均衡节点上报的属于同一子网的TCP流的网络吞吐信息,上述属于同一子网的TCP流的网络吞吐信息包括以下之一或组合:属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和;其中,上述属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和,是上述第4层负载均衡节点在对报文进行网络地址转换时,根据上述报文的IP五元组进行累加之后,按照子网掩码汇聚获得的。
其中一种可能的实现方式中,获取来自第7层负载均衡节点的网络质量信息可以为:获取第7层负载均衡节点上报的属于同一子网的TCP流的网络质量信息,上述属于同一子网的TCP流的网络质量信息包括以下之一或组合:属于同一子网的TCP流的往返时延的平均值、丢包的报文数之和以及重传的报文数之和;其中,上述属于同一子网的TCP流的往返时延的平均值、丢包的报文数之和以及重传的报文数之和是上述第7层负载均衡节点按照子网掩码,将属于同一子网的TCP流的往返时延、丢包的报文数和重传的报文数进行汇聚获得的。
其中一种可能的实现方式中,将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的传输控制协议TCP流的网络性能数据之后,还可以包括:按照子网掩码,将属于同一子网的TCP流的网络吞吐信息和网络质量信息进行汇聚,获得属于同一子网的TCP流的网络吞吐信息和网络质量信息。
第二方面,本申请实施例提供一种功能包的加载装置,该装置包含在服务器中,该装置具有实现上述方面及上述方面的可能实现方式中的行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,获取模块或单元、处理模块或单元等。
第三方面,本申请实施例提供一种服务器,包括:一个或多个处理器;存储器;多个应用程序;以及一个或多个计算机程序,其中上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述服务器执行时,使得上述服务器执行以下步骤:获取来自第4层负载均衡节点的网络吞吐信息,以及获取来自第7层负载均衡节点的网络质量信息;将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的传输控制协议TCP流的网络性能数据。
其中一种可能的实现方式中,上述网络吞吐信息包括以下之一或组合:TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数;上述TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数是上述第4层负载均衡节点在对报文进行网络地址转换时,根据上述报文的IP五元组累加获得的。
其中一种可能的实现方式中,上述网络质量信息包括以下之一或组合:TCP流的往返时延、丢包的报文数和重传的报文数。
其中一种可能的实现方式中,当上述指令被上述服务器执行时,使得上述服务器执行上述获取来自第4层负载均衡节点的网络吞吐信息的步骤包括:
获取第4层负载均衡节点上报的属于同一子网的TCP流的网络吞吐信息,上述属于同一子网的TCP流的网络吞吐信息包括以下之一或组合:属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和;其中,上述属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和,是上述第4层负载均衡节点在对报文进行网络地址转换时,根据上述报文的IP五元组进行累加之后,按照子网掩码汇聚获得的。
其中一种可能的实现方式中,当上述指令被上述服务器执行时,使得上述服务器执行获取来自第7层负载均衡节点的网络质量信息的步骤可以为:获取第7层负载均衡节点上报的属于同一子网的TCP流的网络质量信息,上述属于同一子网的TCP流的网络质量信息包括以下之一或组合:属于同一子网的TCP流的往返时延的平均值、丢包的报文数之和以及重传的报文数之和;其中,上述属于同一子网的TCP流的往返时延的平均值、丢包的报文数之和以及重传的报文数之和是上述第7层负载均衡节点按照子网掩码,将属于同一子网的TCP流的往返时延、丢包的报文数和重传的报文数进行汇聚获得的。
其中一种可能的实现方式中,当上述指令被上述服务器执行时,使得上述服务器执行上述将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的传输控制协议TCP流的网络性能数据的步骤之后,还执行以下步骤:按照子网掩码,将属于同一子网的TCP流的网络吞吐信息和网络质量信息进行汇聚,获得属于同一子网的TCP流的网络吞吐信息和网络质量信息。
第四方面,本申请实施例提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行第一方面提供的方法。
应当理解的是,本申请实施例的第二~四方面与本申请的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
第五方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面提供的方法。
在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
现在,主流云公司的Internet出口带宽都已经达到Tbps级别,而网络的拥堵大部分发生在出口互联。
要解决上述出口拥塞问题,首先需要实时获取出口流量的性能数据(比如:吞吐量、时延、丢包和/或重传等)。现有相关技术中提供了两种获取出口流量的性能数据的方法,其中一种获取出口流量的性能数据的方法中,对于用户带宽和性能需求,通过开放系统互联(open system interconnection,OSI)7层网络中的第7层代理(layer 7proxy,L7Proxy)搜集每个用户的带宽和延迟需求并汇总,其中延迟需求包括连接的吞吐、往返时延(round trip time,RTT)和/或重传等信息。一般针对/24目的路由产生相近的延迟数据。
上述方法为了能在L7 Proxy上获取到完整的用户出口流量的信息,从操作系统、收发包模块和/或协议栈等都经过了大量的自研定制,而非通用系统。所用到的路由器、操作系统内核和/或协议栈等在内的一系列模块组件均采用自研定制,开发成本巨大,目前的主流厂商都不支持,不存在通用性。
另一种获取出口流量的性能数据的方法,采用的都是业界主流厂商支持的协议来实现。通过IP数据流信息输出(IP flow information export,IPFIX)和/或sFlow等从对等路由器(peer router,PR)获取用户带宽和延迟需求(连接的吞吐、RTT和/或重传等信息)。
但是,从PR获取的方案,需要PR支持,开销比较大,需要获取报文的原始信息,再重新进行解析、计算和合并,从而转化为用户的网络性能结果数据,并且部署有限制,需要基础设施配合改造。
另外,这种获取出口流量的性能数据的方法中,用户的网络性能数据是通过前缀(prefix)来区别的,但是同一个prefix,可能承载视频和语音流量,带宽和时延的要求不同,对于用户的网络性能数据的识别没有L7 Proxy上获取的那么精确。
基于以上问题,本申请实施例提供一种网络性能数据的获取方法,可以充分利用已有的OSI 7层网络中的第4层负载均衡节点(layer 4load balance,L4 LB)、第7层负载均衡节点(layer 7load balance,L7 LB)提供的能力,基于TCP流性能的多组件联合采集方案,从L4 LB上获取TCP流的网络吞吐信息,从L7 LB上获取TCP流的其他网络质量信息(包括:RTT、重传的报文数和/或丢包的报文数),通过收集器(collector)节点汇总L4 LB和L7LB获取的信息,得到完整的TCP流的网络性能数据,从而可以低成本地获取用户的精确网络性能数据,为解决网络拥塞问题提供大数据基础。
本申请实施例提供的网络性能数据的获取方法可以应用于服务器,示例性的,图1为本申请一个实施例提供的服务器的架构图,如图1所示,服务器100可以包括L4LB110、L4LB代理(L4 LB agent)120、L7 LB130、L7 LB代理(L7 LB agent)140和收集器(collector)150。
其中,L4 LB110与对等路由器相连,用于将请求报文均衡地分发到L7 LB130上。
L4 LB代理120与L4 LB110相连,用于从L4 LB110获取TCP流的收发报文数、收发报文字节数,并通过L4 LB代理120与收集器150之间的通信接口,将上述数据上报给收集器150。
L7 LB130将L4 LB110转发的请求报文以超文本传输协议(hypertext transferprotocol,HTTP)/超文本传输安全协议(hypertext transfer protocol over securesocket layer,HTTPS)的方式转发给业务的后端真实服务器(Backend Server)。
L7 LB代理140与L7 LB130相连,用于从L7 LB130获取TCP流的RTT(例如:50ms)、丢包的报文数(例如:5个)和/或重传的报文数(例如:重传一次),通过L7 LB代理140与收集器150之间的通信接口,将上述数据上报给收集器150。
为了便于理解,本申请以下实施例将以具有图1所示架构的服务器为例,结合附图和应用场景,对本申请实施例提供的网络性能数据的获取方法进行具体阐述。
图2为本申请一个实施例提供的网络性能数据的获取方法的流程图,如图2所示,上述网络性能数据的获取方法可以包括:
步骤201,收集器150获取来自L4 LB110的网络吞吐信息,以及获取来自L7 LB130的网络质量信息。
本实施例中,上述网络吞吐信息可以包括以下之一或组合:TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数;上述TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数是L4 LB110在对报文进行网络地址转换(network addresstranslation,NAT)时,根据上述报文的IP五元组累加获得的。
具体地,可以在处于FullNAT或NAT模式的L4 LB110的连接跟踪表中,增加收发报文数字段和收发字节数字段,在L4 LB110对报文进行NAT时,可以根据上述报文的IP五元组累加相应流的报文数和报文字节数,然后,L4 LB代理120读取L4 LB110的连接跟踪表,通过L4 LB代理120与收集器150之间的通信接口,将上述L4 LB110的连接跟踪表上报给收集器150。其中,L4 LB110的连接跟踪表可以如表1所示。
表1
本实施例中,上述网络质量信息可以包括以下之一或组合:TCP流的RTT、丢包的报文数和重传的报文数,具体地,可以在L7 LB130的连接跟踪表中增加TCP流的RTT字段、丢包的报文数字段和重传的报文数字段,L7 LB代理140从L7 LB130读取L7 LB130的连接跟踪表,通过L7 LB代理140与收集器150之间的通信接口,将L7 LB130的连接跟踪表上报给收集器150。其中,L7 LB130的连接跟踪表可以如表2所示。
表2
步骤202,将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的TCP流的网络性能数据。
具体地,收集器150可以将来自L4 LB110的网络吞吐信息和来自L7 LB130的网络质量信息,按照IP五元组进行聚合,获得上述IP五元组标识的完整的TCP流的网络性能数据,接下来,收集器150可以将上述完整的TCP流的网络性能数据发送给流量调度器(Traffic Scheduler),用于调度决策。其中,上述完整的TCP流的网络性能数据可以如表3所示。
表3
上述网络性能数据的获取方法中,获取来自L4 LB110的网络吞吐信息,以及获取来自L7 LB130的网络质量信息之后,可以将上述网络吞吐信息和上述网络质量信息,按照IP五元组进行聚合,获得IP五元组标识的TCP流的网络性能数据,从而可以实现低成本地获取用户的精确网络性能数据,为解决网络拥塞问题提供大数据基础。
图3为本申请另一个实施例提供的网络性能数据的获取方法的流程图,如图3所示,本申请图2所示实施例中,步骤201可以包括:
步骤301,收集器150获取L4 LB110上报的属于同一子网的TCP流的网络吞吐信息。
其中,上述属于同一子网的TCP流的网络吞吐信息可以包括以下之一或组合:属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和;其中,上述属于同一子网的TCP流的接收报文字节数之和、发送报文字节数之和、接收报文数之和以及发送报文数之和,是L4 LB110在对报文进行NAT时,根据上述报文的IP五元组进行累加之后,按照子网掩码汇聚获得的。
本实施例中,上述子网掩码的长度可以配置。在L4 LB110按照子网掩码,将属于同一子网的TCP流的接收报文字节数、发送报文字节数、接收报文数和发送报文数进行汇聚之后,L4 LB代理120可以获取L4 LB110的汇聚结果,然后通过L4 LB代理120与收集器150之间的通信接口,将上述L4 LB110的汇聚结果上报给收集器150。其中,上述L4 LB110的汇聚结果可以如表4所示。
表4
字段名 |
描述 |
protocol |
协议类型,例如:TCP/UDP |
nf_inet caddr |
客户端的源IP网段,例如:223.182.33.0/8 |
inet_daddr |
请求的目的IP网段,例如:192.168.99.0/8 |
intotalbytes |
接收的报文字节数之和,例如:1024 |
outtotalbytes |
发送的报文字节数之和,例如:4096 |
intotalpkgs |
接收的报文数之和,例如:16 |
outtotalpkgs |
发送的报文数之和,例如:64 |
步骤302,收集器150获取来自L7 LB130的网络质量信息。
图4为本申请再一个实施例提供的网络性能数据的获取方法的流程图,如图4所示,本申请图2所示实施例中,步骤201可以包括:
步骤401,收集器150获取来自L4 LB110的网络吞吐信息。
步骤402,获取L7 LB130上报的属于同一子网的TCP流的网络质量信息。
其中,上述属于同一子网的TCP流的网络质量信息可以包括以下之一或组合:属于同一子网的TCP流的RTT的平均值、丢包的报文数之和以及重传的报文数之和;其中,上述属于同一子网的TCP流的RTT的平均值、丢包的报文数之和以及重传的报文数之和是L7 LB130按照子网掩码,将属于同一子网的TCP流的RTT、丢包的报文数和重传的报文数进行汇聚获得的。
本实施例中,上述子网掩码的长度可以配置。在L7 LB130按照子网掩码,将属于同一子网的TCP流的RTT、丢包的报文数和重传的报文数进行汇聚之后,L7 LB代理140可以获取L7 LB130的汇聚结果,然后通过L7 LB代理140与收集器150之间的通信接口,将上述L7LB130的汇聚结果上报给收集器150。其中,上述L7 LB130的汇聚结果可以如表5所示。
表5
字段名 |
描述 |
protocol |
协议类型,例如:TCP/UDP |
nf_inet caddr |
客户端的源IP网段,例如:223.182.33.0/8 |
inet_daddr |
请求的目的IP网段,例如:192.168.99.0/8 |
rtt |
请求往返时延的平均值,例如:55ms |
ntotaldroppackage |
丢包的报文数之和,例如:4 |
ntotalretranspackage |
重传的报文数之和,例如:16 |
图5为本申请再一个实施例提供的网络性能数据的获取方法的流程图,如图5所示,本申请图2所示实施例中,步骤202之后,还可以包括:
步骤501,按照子网掩码,将属于同一子网的TCP流的网络吞吐信息和网络质量信息进行汇聚,获得属于同一子网的TCP流的网络吞吐信息和网络质量信息。
参见图6,图6为本申请另一个实施例提供的服务器的架构图,如图6所示,如果L4LB110和L7 LB130为集群部署,集群内的LB之间负载分担,那么同一个子网内的TCP流,可能经过不同的L4 LB110,那么,收集器150就会从多个L4 LB Agent120收到同一个子网的TCP流的数据。因此,在收集器150将来自L4 LB110的网络吞吐信息和来自L7 LB130的网络质量信息,按照IP五元组进行聚合之后,还可以按照子网掩码,将属于同一子网的TCP流的网络吞吐信息和网络质量信息进行汇聚,获得属于同一子网的TCP流的网络吞吐信息和网络质量信息,收集器150的汇聚结果可以如表6所示。
表6
字段名 |
描述 |
protocol |
协议类型,例如:TCP/UDP |
nf_inet caddr |
客户端的源IP网段,例如:223.182.33.0/8 |
inet_daddr |
请求的目的IP网段,例如:192.168.99.0/8 |
intotalbytes |
接收的报文字节数之和,例如:1024 |
outtotalbytes |
发送的报文字节数之和,例如:4096 |
intotalpkgs |
接收的报文数之和,例如:16 |
outtotalpkgs |
发送的报文数之和,例如:64 |
rtt |
请求往返时延的平均值,例如:55ms |
ntotaldroppackage |
丢包的报文数之和,例如:4 |
ntotalretranspackage |
重传的报文数之和,例如:16 |
可以理解的是,上述实施例中的部分或全部步骤骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
可以理解的是,服务器100为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本申请所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对服务器100进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图7为本申请一个实施例提供的服务器的结构示意图,在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中涉及的服务器70的一种可能的组成示意图,如图7所示,该服务器70可以包括:获取单元71和处理单元72;
其中,获取单元71可以用于支持服务器70执行步骤201、步骤301、步骤302、步骤401和步骤402等,和/或用于本申请实施例所描述的技术方案的其他过程;
处理单元72可以用于支持服务器70执行步骤202和步骤501等,和/或用于本申请实施例所描述的技术方案的其他过程。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的服务器70,用于执行上述网络性能数据的获取方法,因此可以达到与上述方法相同的效果。
应当理解的是,服务器70可以对应于图1所示的服务器100。其中,获取单元71和处理单元72的功能可以由图1所示的服务器100中的收集器150实现。
在采用集成的单元的情况下,服务器70可以包括处理模块、存储模块和通信模块。
其中,处理模块可以用于对服务器70的动作进行控制管理,例如,可以用于支持服务器70执行上述获取单元71和处理单元72执行的步骤。存储模块可以用于支持服务器70存储程序代码和数据等。通信模块,可以用于支持服务器70与其他设备的通信。
其中,处理模块可以是处理器或控制器,其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框、模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片和/或Wi-Fi芯片等与其他设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的服务器70可以为具有图8所示结构的设备。
图8为本申请另一个实施例提供的服务器的结构示意图,如图8所示,服务器80包括处理器810和通信接口820。可选地,该服务器80还可以包括存储器830。其中,处理器810、通信接口820和存储器830之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器830用于存储计算机程序,该处理器810用于从该存储器830中调用并运行该计算机程序。
上述处理器810可以和存储器830可以合成一个处理装置,更常见的是彼此独立的部件,处理器810用于执行存储器830中存储的程序代码。具体实现时,该存储器830也可以集成在处理器810中,或者,独立于处理器810。
除此之外,为了使得服务器80的功能更加完善,该服务器80还可以包括输入单元860和显示单元870等中的一个或多个。
可选地,上述服务器80还可以包括电源850,用于给服务器80中的各种器件或电路提供电源。
应理解,图8所示的服务器80中的处理器810可以是片上系统SOC,该处理器810中可以包括中央处理器(central processing unit,CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(graphics processing unit,GPU)等。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请图2~图6所示实施例提供的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请图2~图6所示实施例提供的方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。