一种数据流识别方法及出口设备与流程

文档序号:12132069阅读:221来源:国知局
一种数据流识别方法及出口设备与流程

本发明涉及通信技术领域,尤其涉及一种数据流识别方法及出口设备。



背景技术:

随着网络的发展,大部分公司或者网络应用场所很少采用单线路作为出口了。多线路的话意味了线路间就存在质量问题,例如光纤线路就比ADSL线路质量好。可能出现如下几种场景:

某个公司有两条线路,主光纤和ADSL线路。希望视频会议、公司OA、网页访问等走主光纤、其他的业务走ADSL;

某个网吧,主光纤较小(原因是价格贵),另外有多条ADSL(价格便宜)。希望只有游戏走主光纤,其他都走ADSL;

某网络应用服务提供商的服务器,包含多个运营商线路,由于运营商A价格较贵,运营商B价格较便宜。该服务提供商希望时延敏感的应用不要跨运营商,但是其他流量都要走运营商B,从而降低运营成本;

应用分流是用户配置策略,将指定应用的流量分流到合适的出口链路上。如网吧场景下,出口一般有一条光纤链路和多条普通的拨号线路;应用分流将网吧的关键应用,如网络游戏,分流到光纤线路上;将需要占用较大带宽的应用,如视频,分流到拨号线路上。通过应用分流,针对不同应用,配置不同的分流策略,可以有效利用网络资源,提高网络体验。

根据TCP/IP协议,TCP链接需要先进行三次握手。握手过程无应用层数据,基于报文内容的深度识别技术(即DPI)无法识别出具体的应用类型,至少需要到第四个报文才能识别具体应用。对于UDP链接,则要求DPI在第一个报文就识别出具体应用。

但是,现有技术中也存在如下的问题:

1)对于应用分流的场景,若首报文识别的流量太低,则应用分流的流量较低,无法满足按需分流的场景需求。该场景对传统DPI提出了一个很大的挑战。对于UDP流来说,要求在首报文就识别出具体应用类型;对于TCP流来说,当前很多实现是通过代理等方式实现分流,但是代理性能不容乐观,且要求在第四个报文识别出具体应用。总的来说,应用分流的场景,对应用识别的识别速度提出了更高的要求。

2)随着网络发展和网络应用的不断丰富,出口流量越来越大。基于报文内容的深度识别技术,识别计算量大,需要消耗较多的CPU资源,对于流量较大的环境或者配置较低的设备,DPI容易成为性能瓶颈。现有的方案一般都是一个场景中,单设备实现应用识别。对于上述问题目前单设备的应用一般基于如下方法实现:

1.基于深度包检测DPI(Deep Packet Inspection)来实现。通过分析载荷报文中的指纹特征,判别报文的应用类别。2.基于深度流检测DFI(Deep Flow Inspection)来实现。通过分析流量的行为特征,判断流的应用类别。但是这两种方法的通常识别效率较低,首包识别率低,并且需要消耗大量的CPU来处理,性能容易成为瓶颈。



技术实现要素:

本发明的实施例提供了一种数据流识别方法及出口设备,本发明提供如下一种数据流识别方法和出口设备:

从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;

接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;

当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。

根据本发明的上述方法,所述从服务器下载最新的服务应用库至本地作为本地的服务应用库,包括:

根据本地应用场景从服务器下载对应应用场景的最新的服务应用库至本地作为本地的服务应用库。

根据本发明的上述方法,还包括:

当所述本地服务应用库记录中建立了待新建记录以更新本地的服务应用库,则将本地更新的服务应用库上传至服务器以更新服务器上的服务应用库。

根据本发明的上述方法,所述向所述本地服务应用库记录中建立待新建记录,包括:

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录不存在所述用户IP地址以及服务端口号对应的记录,则直接在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录无效,则在本地的服务应用库新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录有效,则判断本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录中记录的应用类型与待新建记录的应用类型是否相同,若相同,将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较大的值作为本条新建记录的有效时间,且该条新建记录默认为有效记录;若不相同,则将服务应用库对应的记录修改为无效记录,同时将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较小的值作为本条新建记录的有效时间。

根据本发明的上述方法,所述方法还包括:当新建流的首报文在本地的服务应用库记录中存在有效记录,则对所述新建流的后续报文不再进行应用识别。

根据本发明的另一方面,还提供一种出口设备,包括:

获取模块,其用于从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;

应用识别应用识别模块,接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;

新建模块,当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。

根据本发明的另一方面,所述获取模块具体用于:

根据本地应用场景从服务器下载对应应用场景的最新的服务应用库至本地作为本地的服务应用库。

根据本发明的另一方面,还包括更新模块,其用于:

当所述本地服务应用库记录中建立了待新建记录以更新本地的服务应用库,则将本地更新的服务应用库上传至服务器以更新服务器上的服务应用库。

根据本发明的另一方面,所述新建模块具体用于:

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录不存在所述用户IP地址以及服务端口号对应的记录,则直接在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录无效,则在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录有效,则判断本地的服务应用库记录中与所述用户IP地址以及服务端口号对应的记录中记录的应用类型与待新建记录的应用类型是否相同,若相同,将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较大的值作为本条新建记录的有效时间,且该条新建记录默认为有效记录;若不相同,则将服务应用库对应的记录修改为无效记录,同时将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较小的值作为本条新建记录的有效时间。

根据本发明的另一方面,所述应用识别应用识别模块具体用于:

当新建流的首报文在本地的服务应用库记录中存在有效记录,则对所述新建流的后续报文不再进行应用识别。

由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。本方案从应用服务提供端的角度出发,依靠网络中服务器和出口设备的配合,通过在服务器上整合多设备之间的识别信息,动态构建网络中服务端口与应用类型之间的对应关系,提高了应用识别的首包识别率,提高识别速度,整体上降低了应用识别性能消耗。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中应用场景图;

图2为本发明实施例一提供的一种数据流识别方法的处理流程图;

图3为本发明实施例二提供的一种出口设备的模块图。

具体实施方式

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

实施例一

本实施例的方法应用于一种出口设备,其在某一场景下的应用如附图1所示;其中,当各出口设备的本地服务应用库记录中建立了待新建记录更新本地的服务应用库,则将本地更新的服务应用库上传至服务器以更新服务器上的服务应用库,服务器用于存储各个网络中出口设备上传的各自本地更新的服务应用库;

其中,服务应用库用于记录用户报文对应的应用类型的映射关系。本实施例给出一种服务应用库的实现方式,如下表所示:其中,记录用户报文对应的用户IP地址,服务端口号,以及对应的应用类型的标识,有效时间,以及表示是否为有效记录的标识;

每一行为一条记录,其中以IP地址和服务端口号(IP,Port)作为表索引。其中,应用类型标识表示应用类型;每一条记录表示了网络中一个服务端口的应用类型映射关系。

其中,有效时间是记录该条记录的有效时间,定期刷新服务应用库,每次刷新,所有记录的有效时间减1,直至0为止,当有效时间为0时,则删除该记录。服务器上服务应用库中的记录来源于各个出口设备上传;出口设备上的服务应用库中记录来源于服务器上同步的其它出口设备的服务应用库记录以及本地产生的记录。出口设备下载服务器上最新的服务应用库记录至本地作为本地的服务应用库记录。

该实施例提供了一种数据流识别方法的处理流程如图2所示,

步骤11、从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;

对于每一条新建流,在确定新建流的首报文在本地的服务应用库记录中是否存在有效记录之前,下载服务器上最新的服务应用库记录至本地作为本地的服务应用库记录;具体地,从服务器下载最新的服务应用库至本地作为本地的服务应用库,优选地,根据本地应用场景从服务器下载对应应用场景的最新的服务应用库至本地作为本地的服务应用库。

具体地,出口设备上电初始配置时,设定该出口设备的本地应用场景,例如:高校、企业、网吧、社区等,出口设备根据本地应用场景从服务器下载对应应用场景的最新的服务应用库至本地作为本地的服务应用库;例如:当本地应用场景为网吧场景下,可以同步游戏和视频这两个大类的服务应用库;当本地应用场景为高校应用场景下,可以同步聊天工具、游戏、视频等的服务应用库;当本地应用场景为企业场景下,可以同步OA办公聊天工具等应用服务库;对于各个场景下所同步的服务应用库,可以是根据本场景下的需要同步部分应用服务库,也可以同步服务器上全部的应用服务库。

同时还可以在本地出口设备上设置是否共享本出口设备的服务应用库,并设置账号密码;还可以设置本出口设备要从哪些出口设备上同步服务应用库。

当新建流的首报文在本地的服务应用库记录中存在有效记录,则对所述新建流的后续报文不再进行应用识别;其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;更具体地指在服务应用库中存在一条记录标识的用户IP地址,服务端口号与首报文对应,该条记录有对应的应用类型标识以及对应的有效时间且该条记录标识为有效;

具体地,流的首报文会进入本地的服务应用库进行匹配;匹配之前,从报文的IP头中提取首报文中的目的IP;从首报文的TCP头或者UDP头中提取目的端口号PORT;以首报文的目的IP以及目的端口号PORT作为索引在服务应用库中查找是否存在对应首报文(目的IP,目的Port)的有效记录;

若找到有效记录,则匹配成功,应用类型为首报文对应的应用类型,应用识别阶段结束。否则进入如下步骤12的应用识别。

步骤12、接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;

步骤13、当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。

优选地,当所述本地服务应用库记录中建立了待新建记录更新了本地的服务应用库,则将本地更新的服务应用库上传至服务器以更新服务器上的服务应用库。

本实施例中所述的应用识别的方法主要基于DPI识别,但不限于此,具体地DPI识别的过程是指依据应用产生的报文本身的特征,将承载在报文上的不同应用区分出来。特征规则库中包含了一系列的特征规则,每条规则定义了某个应用的一个载荷特征,每条规则指向一个应用类型。例如下述3条规则:

1:载荷偏移10个字节的地方出现“QQ.com”则识别应用类型为QQ

2:载荷偏移20个字节的地方出现“Qzone”则识别应用类型为QQ

3:载荷偏移20个字节的地方出现“Xunlei”则识别应用类型为迅雷

以所述任一报文对应的任一规则所指向的应用类型的映射关系记录作为待新建记录,当需要建立待新建记录时,待新建记录中需要新建的内容包括用户IP地址,服务端口号,以及对应的应用类型的标识,有效时间,是否有效记录;

其中,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,判断本地的服务应用库记录是否存在用户IP地址以及服务端口号对应的记录,若不存在,则直接在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;若存在,则判断本地的服务应用库记录中与用户IP地址以及服务端口号对应的记录是否有效,若无效,则在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;若有效,则判断本地的服务应用库记录中与用户IP地址以及服务端口号对应的记录中记录的应用类型与待新建记录的应用类型是否相同,若相同,将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较大的值作为本条新建记录的有效时间,且该条新建记录默认为有效记录;若不相同,则将服务应用库对应的记录修改为无效记录,同时将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较小的值作为本条新建记录的有效时间。

具体地,假设待新建的记录为:(IP1,Port1,ID1,T1),插入操作的流程为:

判断本地的服务应用库记录是否存在(IP1,Port1)的对应的记录,若不存在,则直接新建(IP1,Port1,ID1,T1);

若存在(IP1,Port1)对应的记录(IP1,Port1,ID,T),则判断该项记录是否有效;若该项记录无效,则直接新建(IP1,Port1,ID1,T1);

若该项记录有效,则判断(IP1,Port1)在服务应用库对应的记录(IP1,Port1,ID,T)记录的应用类型的ID与待新建的记录(IP1,Port1,ID1,T1)记录的应用类型的ID1是否相同,若相同,则将选择服务应用库对应的记录(IP1,Port1,ID,T)和待新建的记录(IP1,Port1,ID1,T1)中记录的有效时间T和T1中较大的值作为本条新建记录的有效时间;

当判断(IP1,Port1)在服务应用库对应的记录(IP1,Port1,ID,T)记录的应用类型的ID与待新建的记录(IP1,Port1,ID1,T1)记录的应用类型的ID1不相同,则将(IP1,Port1)在服务应用库对应的记录(IP1,Port1,ID,T)的是否有效记录修改为无效,同时将将选择服务应用库对应的记录(IP1,Port1,ID,T)和待新建的记录(IP1,Port1,ID1,T1)中记录的有效时间T和T1中较小的值作为本条新建记录的有效时间;

在所述对所述新建流的后续报文进行应用识别之前,从服务器获取最新的特征规则库并将所述最新的特征规则库加载到DPI引擎中。

实施例二

该实施例提供了一种出口设备,其具体实现结构如图3所示,具体可以包括如下的模块:

获取模块21,其用于从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;

应用识别应用识别模块22,接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;

新建模块23,当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。

所述获取模块21具体用于:

根据本地应用场景从服务器下载对应应用场景的最新的服务应用库至本地作为本地的服务应用库。

本实施例的一种出口设备,还包括更新模块24具体用于:

当所述本地服务应用库记录中建立了待新建记录更新了本地的服务应用库,则将本地更新的服务应用库上传至服务器以更新服务器上的服务应用库。

所述新建模块23具体用于:

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录不存在所述用户IP地址以及服务端口号对应的记录,则直接在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与用户IP地址以及服务端口号对应的记录无效,则在本地的服务应用库记录新建所述待新建记录,且该条新建记录默认为有效记录;或,

根据所述任一报文获取待新建记录的用户IP地址以及服务端口号,以用户IP地址以及服务端口号作为所述待新建记录的索引,若本地的服务应用库记录存在所述用户IP地址以及服务端口号对应的记录,且本地的服务应用库记录中与用户IP地址以及服务端口号对应的记录有效,则判断本地的服务应用库记录中与用户IP地址以及服务端口号对应的记录中记录的应用类型与待新建记录的应用类型是否相同,若相同,将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较大的值作为本条新建记录的有效时间,且该条新建记录默认为有效记录;若不相同,则将服务应用库对应的记录修改为无效记录,同时将选择服务应用库中对应的记录和待新建的记录中记录的有效时间中较小的值作为本条新建记录的有效时间。

所述应用识别应用识别模块22具体用于:

当新建流的首报文在本地的服务应用库记录中存在有效记录,则对所述新建流的后续报文不再进行应用识别;其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录。

用本发明实施例的出口设备进行数据流识别的具体过程与前述方法实施例类似,此处不再赘述。

综上所述,本发明实施例通过从服务器获取最新的服务应用库至本地作为本地的服务应用库;其中所述最新的服务应用库是由网络中所有出口设备上传的各自本地更新的服务应用库形成的;接收新建流的首报文,当所述首报文在所述本地的服务应用库中不存在有效记录,则对所述新建流的后续报文进行应用识别,其中,所述有效记录为在所述本地服务应用库记录中存在与所述首报文对应的应用类型的映射关系记录;当所述新建流的后续报文中任一报文通过所述应用识别与特征规则库记录中任一规则匹配,则向所述本地服务应用库记录中建立待新建记录以更新本地的服务应用库;其中,所述待新建记录为与所述任一报文对应的任一规则所指向的应用类型的映射关系记录。本方案从应用服务提供端的角度出发,依靠网络中服务器和出口设备的配合,通过在服务器上整合多设备之间的识别信息,动态构建网络中服务端口与应用类型之间的对应关系,提高了应用识别的首包识别率,提高识别速度,整体上降低了应用识别性能消耗。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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