应用识别方法及装置与流程

文档序号:13363032阅读:180来源:国知局

本公开涉及计算机技术领域,尤其涉及一种应用识别方法及装置。



背景技术:

随着互联网技术的发展,互联网中的网络链路数据流量越来越大,通常可以在应用控制网关(applicationcontrolgateway,acg)设备上采用负载均衡(loadbalancing,lb)等技术来缓解链路压力。在应用负载均衡技术时,acg设备需要根据数据流的应用类型来对数据流进行负载分担,按照负载分担的结果确定传输链路。

目前,acg设备在识别数据流应用类型的过程中,通常只能从数据流包括的包含有应用类型识别特征的报文开始识别。由于数据流包括的第一个报文为握手报文,不会包含有应用类型识别特征,因此acg设备无法在接收到数据流包括的第一个报文时完成应用类型识别。也就是说,acg设备不能根据数据流包括的第一个报文就做负载分担,也就不能确定出准确的传输链路,只能根据该数据流包括的后续报文进行应用类型识别后,进行负载分担,确定出准确的传输链路,那么就可能发生根据第一个报文确定的传输链路和根据后续报文确定的传输链路不一致的情况,从而需要进行链路切换,导致数据流传输暂时中断。



技术实现要素:

有鉴于此,本公开提出了一种应用识别方法及装置,能够在接收到数据流包括的第一个报文时识别数据流的应用类型,避免链路切换时的传输中断,从而提升用户体验。

根据本公开的一方面,提供了一种应用识别方法,所述方法包括:

接收http请求报文;

若所述http请求报文携带针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址;

在本地存储所述服务器的ip地址与所述指定应用类型的对应关系;

接收数据流包括的报文;

若在本地存储的服务器的ip地址与指定应用类型的对应关系中存在所述数据流包括的报文的目的ip地址或源ip地址,则将所述目的ip地址或所述源ip地址对应的指定应用类型确定为所述数据流的应用类型。

根据本公开的另一方面,提供了一种应用识别装置,所述装置包括:

第一报文接收模块,用于接收http请求报文;

地址获取模块,用于若所述http请求报文携带针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址;

地址存储模块,用于在本地存储所述服务器的ip地址与所述指定应用类型的对应关系;

第二报文接收模块,用于接收数据流包括的报文;

应用类型确定模块,用于若在本地存储的服务器的ip地址与指定应用类型的对应关系中存在所述数据流包括的报文的目的ip地址或源ip地址,则将所述目的ip地址或所述源ip地址对应的指定应用类型确定为所述数据流的应用类型。

根据本公开实施例的应用识别方法及装置,能够基于http请求报文中针对指定应用类型的数据流特征,获取并存储响应报文中的服务器ip地址,并在数据流包括的报文的目的ip地址或源ip地址与存储的服务器ip地址相同时,将所述数据流的应用类型确定为指定应用类型。由于握手报文也是会携带目的ip地址或源ip地址的,因此利用本公开实施例的应用识别方法及装置acg设备可以在接收到数据流包括的第一个报文(握手报文)时识别出数据流的应用类型,从而确定出准确的传输链路,降低数据流传输暂时中断的可能性。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1是根据一示例性实施例示出的一种应用识别方法的流程图。

图2是根据一示例性实施例示出的一种应用识别方法的流程图。

图3是根据一示例性实施例示出的一种应用识别装置的框图。

图4是根据一示例性实施例示出的一种应用识别装置的框图。

图5是根据一示例性实施例示出的一种应用识别装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

实施例1

图1是根据一示例性实施例示出的一种应用识别方法的流程图。该方法可应用于应用控制网关acg设备中。如图1所示,根据本公开实施例的应用识别方法包括以下步骤s11至步骤s15。

在步骤s11中,接收http请求报文。

在步骤s12中,若所述http请求报文携带针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址。

在一种可能的实现方式中,数据流可以是客户端发出的数据流(例如用户通过客户端上传视频产生的数据流),也可以是发送至客户端的数据流(例如用户通过客户端下载视频产生的数据流)。

在一种可能的实现方式中,可以在acg设备中预先设定有特征库,该特征库中包括针对指定应用类型的数据流预设的特征。其中,指定应用类型可以包括传输流量较大的视频或音频等应用类型,当然也可以包括传输流量较小的图片、文字等应用类型。

在一种可能的实现方式中,步骤12包括:

若所述http请求报文携带的指定字段包括针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址。

在一种可能的实现方式中,该指定字段可以包括但不限于:统一资源标识符uri、用户代理ua(user-agent)、主机域名host以及页面跳转标识referer中的一个或多个。

以指定应用类型为视频应用为例,如果http请求报文中的用户代理ua(指定字段)为“ppsclient”,而指定字段“ppsclient”是特征库中预设的特征,则可以确定该http请求报文是在请求视频资源所在服务器的地址。

再举例来说,如果http请求报文中的统一资源标识符uri(指定字段)为“f382b0b43a8a8997fdf2b4e0ba2243cf.f4vhttp/1.1”;用户代理ua(指定字段)为“ppsclient”;主机域名host(指定字段)为“202.114.0.253”;页面跳转标识referer(指定字段)为“url=http://www.qiyi.com”,而这些指定字段中的至少一个属于特征库中预设的特征,则可以确定该http请求报文是在请求视频资源所在服务器的地址。

本领域技术人员应当了解,指定字段也可以是http请求报文其他特征字段,本公开对此不作限制。

在步骤s13中,在本地存储所述服务器的ip地址与所述指定应用类型的对应关系。

在一种可能的实现方式中,在获得该服务器的ip地址后,可以将该ip地址存储到acg设备本地。并且,将发出该http请求报文对应的应用类型确定为指定应用类型,在acg设备本地存储该ip地址与指定应用类型的对应关系。

在步骤s14中,接收数据流包括的报文。

在步骤s15中,若在本地存储的服务器的ip地址与指定应用类型的对应关系中存在所述数据流包括的报文的目的ip地址或源ip地址,则将所述目的ip地址或所述源ip地址对应的指定应用类型确定为所述数据流的应用类型。

在一种可能的实现方式中,acg设备可以接收数据流包括的报文,例如,该数据流包括的报文可以为客户端与资源所在的服务器之间的握手报文中的首个报文。并且,可以获取该报文中的目的ip地址或源ip地址。

通过这种方式,可以在数据流的首个报文中确定数据流的应用类型,实现了数据流的应用类型的快速识别。

图2是根据一示例性实施例示出的一种应用识别方法的流程图。如图2所示,在一种可能的实现方式中,所述方法还包括:

步骤s16,设置服务器的ip地址与指定应用类型的对应关系对应的老化时间。

举例来说,在acg设备本地存储服务器的ip地址与指定应用类型的对应关系时,可以设置该对应关系对应的老化时间。该老化时间可以是该对应关系在acg设备本地的缓存模块中预先设定的存储时间,例如可以设置为1天,也可以根据acg设备的实际情况进行改变。

通过这种方式,可以将对应关系缓存一定时间,减少设备存储的数据量,提高设备性能。

根据本公开的实施例,能够基于http请求报文中针对指定应用类型的数据流特征,获取并存储响应报文中的服务器ip地址,并在数据流包括的报文的目的ip地址或源ip地址与存储的服务器ip地址相同时,将所述数据流的应用类型确定为指定应用类型。由于握手报文也是会携带目的ip地址或源ip地址的,因此利用本公开实施例的应用识别方法及装置acg设备可以在接收到数据流包括的第一个报文(握手报文)时识别出数据流的应用类型,从而确定出准确的传输链路,降低数据流传输暂时中断的可能性。

应用示例

以下结合一个示例性应用场景,给出根据本公开实施例的应用示例,以便于理解应用识别方法的流程。本领域技术人员应理解,以下应用示例仅仅是出于便于理解本发明实施例的目的,不应视为对本发明实施例的限制。

在该示例性应用场景中,用户可以通过客户端(例如智能手机)中的应用观看视频资源。在用户打开某一视频资源时,客户端会向http服务器发出http请求报文,以便向http服务器请求该视频资源的资源服务器ip地址。响应于该http请求报文,http服务器会向客户端发送对应的响应报文,该响应报文中包括有资源服务器ip地址。

客户端基于响应报文中的资源服务器ip地址,可以向资源服务器发出连接请求,以便与资源服务器建立连接,从而下载视频资源供用户观看。在客户端与资源服务器之间的握手报文(首个报文)的目的ip地址为资源服务器的ip地址。

在该示例性应用场景中,客户端向http服务器或资源服务器发送报文均需要经过acg设备,该acg设备中可以预先设定有视频应用的特征库,将多个特征(例如,“f382b0b43a8a8997fdf2b4e0ba2243cf.f4vhttp/1.1”、“ppsclient”、“202.114.0.253”、“url=http://www.qiyi.com”等等)放置在该特征库中,以供比对。另外,还可以设置指定字段(例如,uri、user-agent、host、referer等),以在报文的指定字段中查找是否包括这些特征。

这样,在客户端向http服务器发出http请求报文时,假设,该http请求报文中携带的user-agent字段中包括“ppsclient”。acg设备可以对该http请求报文进行分析,发现user-agent字段中包括的“ppsclient”为特征库中预设的特征,则可以确定发出该http请求报文的应用类型为视频应用。

http服务器响应于该http请求报文,会向客户端发送对应的响应报文,该响应报文中携带有资源服务器的ip地址“202.114.0.253”。acg设备可以对该响应报文进行分析,获取资源服务器的ip地址“202.114.0.253”,并将该ip地址“202.114.0.253”与视频应用的对应关系进行存储。该对应关系的老化时间可以例如设置为一天,也可以根据acg设备的实际情况改变。

在客户端向该资源服务器发送数据流时,数据流中的报文的目的ip地址为“202.114.0.253”。acg设备可以对接收到的数据流包括的第一个报文(握手报文)进行分析,由于该第一个报文中携带的目的ip地址为“202.114.0.253”,则根据acg设备本地储存的ip地址“202.114.0.253”与视频应用的对应关系,可以确定该数据流的应用类型为视频应用。

这样,可以在接收到数据流包括的第一个报文(握手报文)时确定数据流为视频应用的数据流,从而使得acg设备可以在接收到该数据流的第一个报文时进行负载分担,进而确定出准确的传输链路,降低数据流传输暂时中断的可能性。

实施例2

图3是根据一示例性实施例示出的一种应用识别装置的框图。如图3所示,该应用识别装置应用于应用控制网关acg设备中,该装置包括:第一报文接收模块31,地址获取模块32,地址存储模块33,第二报文接收模块34以及应用类型确定模块35。

第一报文接收模块31,用于接收http请求报文;

地址获取模块32,用于若所述http请求报文携带针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址;

地址存储模块33,用于在本地存储所述服务器的ip地址与所述指定应用类型的对应关系;

第二报文接收模块34,用于接收数据流包括的报文;

应用类型确定模块35,用于若在本地存储的服务器的ip地址与指定应用类型的对应关系中存在所述数据流包括的报文的目的ip地址或源ip地址,则将所述目的ip地址或所述源ip地址对应的指定应用类型确定为所述数据流的应用类型。

在一种可能的实现方式中,地址获取模块32具体用于,若所述http请求报文携带的指定字段包括针对指定应用类型的数据流预设的特征,则在接收到所述http请求报文对应的响应报文时,从所述响应报文中获取所述http请求报文请求的资源所在服务器的ip地址。

在一种可能的实现方式中,所述指定字段包括:统一资源标识符uri、用户代理ua、主机域名host以及页面跳转标识referer中的一个或多个。

图4是根据一示例性实施例示出的一种应用识别装置的框图。如图4所示,在一种可能的实现方式中,所述装置还包括:

时间设置模块33,用于设置所述对应关系对应的老化时间。

根据本公开的实施例,能够基于http请求报文中针对指定应用类型的数据流特征,获取并存储响应报文中的服务器ip地址,并在数据流包括的报文的目的ip地址或源ip地址与存储的服务器ip地址相同时,将所述数据流的应用类型确定为指定应用类型。由于握手报文也是会携带目的ip地址或源ip地址的,因此利用本公开实施例的应用识别方法及装置acg设备可以在接收到数据流包括的第一个报文(握手报文)时识别出数据流的应用类型,从而确定出准确的传输链路,降低数据流传输暂时中断的可能性。

实施例3

图5是根据一示例性实施例示出的一种应用识别装置1900的框图。例如,装置1900可以被提供为一acg设备。参照图5,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

在示例性实施例中,还提供了一种包括指令的非易失性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由装置1900的处理组件1922执行以完成上述方法。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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