负载均衡网络环境下的协议识别方法、设备与系统与流程

文档序号:15049743发布日期:2018-07-27 23:59阅读:125来源:国知局

本发明属于通信技术领域,更具体地,涉及一种负载均衡网络环境下的协议识别方法、设备与系统。



背景技术:

如图1所示,在分光流量环境下,经常会产生同一个五元组的上下行数据被分光到不同处理设备上,比如两个路由器之间存在多条链路,并且这些链路的路由具有相同的优先级(等价路由),两端的路由设备通常会在这多条物理链路上采用负载分担的方式进行流量均衡处理,当对这些链路进行流量分光时,就不可避免地把同一五元组的上下行数据分到不同设备上,当处理设备分属2个厂商时,就会产生一些难以解决的问题。比如在协议识别领域,某些协议(如迅雷、bt、电驴等p2p协议)必须将上下行方向的报文关联起来才能识别,但在上述负载均衡环境下,当某一协议的上行流量流经一家厂商的深度报文检测(deeppacketinspection,dpi)设备,下行流量流经另一家厂商的dpi设备时,这2家厂商的dpi设备都无法对该协议进行识别。

目前处理上述问题的方案是使用硬件汇聚分流设备:添加硬件汇聚分流设备,该设备先将同一负载域内的所有流量接入到汇聚分流设备进行汇聚,再将汇聚后的流量按某种哈希方式转发给一个或多个厂商的dpi设备,采用的哈希方式确保了同一五元组的上下行流量都会流经同一厂商的设备,因而该厂商可以检测出上述需要上下行流量进行关联才能检测出来的协议。但是,此种方法有其缺陷和局限性:

(1)增加硬件成本,该方案需要增加硬件汇聚分流设备,这些设备的采购需要经费,使用后会占用机房空间、持续耗电等等,这显然会大大增加一个项目的成本;

(2)随着网络规模的迅速扩大,同一负载域的总流量也同步扩大,很多场景下会超过单台汇聚分流设备的总处理能力,此时就需要多台汇聚分流设备进行复杂的流量互相转发和重新汇聚,这样的多台设备互连最终会形成一个极其复杂的全网状拓扑,这样复杂的网状拓扑非常难以运维和进行故障诊断。任何一个端口的故障可能引发全网的流量同步失败,而排查工作由于复杂的流量走向会使得管理员素手无策,因此这种方案也没有得到大规模使用。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种利用两级架构进行协议识别的方法,这种方法使用dpi设备提取和转发指纹信息,指纹信息同步识别设备识别并下发识别结果,其目的在于使协议识别能在各种网络环境中使用,由此解决负载均衡环境下协议上下行流经不同厂商设备情况下难于进行协议识别的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种负载均衡网络环境下的协议识别方法,包括:

第一dpi设备对接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;

根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述第一dpi设备完成协议识别工作;

如果不能通过单向报文识别,则检测所述第一dpi设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述第一dpi设备根据所述第一指纹信息和第二指纹信息完成协议识别工作;

如果否,则将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;

所述第一dpi设备接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。

本发明的一个实施例中,如果所述第一dpi设备在预设时间长度内未接收所述指纹信息同步识别设备下发的协议识别结果,则将所述数据流识别为通用流量。

本发明的一个实施例中,所述第一dpi设备和所述指纹信息同步识别设备包含有指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述第一dpi设备和所述指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配。

按照本发明的另一方面,还提供了一种负载均衡网络环境下的协议识别方法,包括:

指纹信息同步识别设备接收第一dpi设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;

所述指纹信息同步识别设备判断是否接收到第二dpi设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;

如果是,则所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一dpi设备和/或第二dpi设备。

本发明的一个实施例中,如果所述指纹信息同步识别设备未在预设时间长度内接收到与所述第一指纹信息和所述第一流向数据流的五元组信息相匹配的所述第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息,则丢弃所述第一指纹信息和所述第一流向数据流的五元组信息。

本发明的一个实施例中,所述指纹信息同步识别设备和所述第一dpi设备包含有指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述指纹信息同步识别设备和所述第一dpi设备根据所述指纹信息匹配表对所述指纹信息进行匹配。

按照本发明的另一方面,还提供了一种dpi设备,包括指纹信息提取模块、单向报文识别模块、反向数据流匹配模块、指纹信息转发模块以及协议识别结果接收模块,其中:

所述指纹信息提取模块,用于对所述dpi设备接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;

所述单向报文识别模块,用于根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述dpi设备完成协议识别工作;

所述反向数据流匹配模块,用于在不能通过单向报文识别时检测所述dpi设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述反向数据流匹配模块根据所述第一指纹信息和第二指纹信息完成协议识别工作;

所述指纹信息转发模块,用于在未匹配到反向数据流时将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;

所述协议识别结果接收模块,用于接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由另一dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。

本发明的一个实施例中,所述dpi设备还包括通用流量识别模块,所述通用流量识别模块用于在所述dpi设备在预设时间长度内未接收所述指纹信息同步识别设备下发的协议识别结果时,则将所述数据流识别为通用流量。

本发明的一个实施例中,所述dpi设备还包括有第一指纹信息匹配表存储模块,所述第一指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述dpi设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表和所述指纹信息同步识别设备中存储的指纹信息匹配表相同。

按照本发明的另一方面,还提供了一种指纹信息同步识别设备,包括指纹信息接收模块、指纹信息匹配模块、协议识别结果下发模块,其中:

所述指纹信息接收模块,用于接收第一dpi设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;

所述指纹信息匹配模块,用于判断是否接收到第二dpi设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;

所述协议识别结果下发模块,用于在匹配到所述第三指纹信息时根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一dpi设备和/或第二dpi设备。

本发明的一个实施例中,所述指纹信息同步识别设备还包括指纹信息丢弃模块,所述指纹信息丢弃模块用于在所述指纹信息同步识别设备未在预设时间长度内接收到与所述第一指纹信息和所述第一流向数据流的五元组信息相匹配的所述第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息时,丢弃所述第一指纹信息和所述第一流向数据流的五元组信息。

本发明的一个实施例中,所述指纹信息同步识别设备还包括有第二指纹信息匹配表存储模块,所述第二指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表与所述第一dpi设备和第二dpi设中存储的指纹信息匹配表相同。

按照本发明的另一方面,还提供了一种负载均衡网络环境下的协议识别系统,包括上述指纹信息同步识别设备和至少两个上述dpi设备。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:

(1)节省硬件成本:传统方案是使用硬件汇聚分流设备,该方案先将同一负载域内的所有流量接入到汇聚分流设备进行汇聚,再将汇聚后的流量按某种哈希方式分流给一个或多个厂商的dpi设备,采用的哈希方式确保了同一五元组的上下行流量都会流经同一厂商的设备,因而该厂商可以检测出上述需要上下行流进行关联才能检测出来的协议。然而这种方案需要增加硬件汇聚分流设备,这些设备通常比较昂贵,而且使用后会占用机房空间、持续耗电等等,这显然会大大增加一个项目的成本;

(2)结构简单易于管理;传统方案使用硬件分流器,随着网络规模的迅速扩大,同一负载域的总流量也同步扩大,很多场景下会超过单台汇聚分流设备的总处理能力,此时就需要多台汇聚分流设备进行复杂的流量互相转发和重新汇聚,这样的多台设备互连最终会形成一个极其复杂的全网状拓扑,这样复杂的网状拓扑非常难以运维和进行故障诊断。任何一个端口的故障可能引发全网的流量同步失败,而排查工作由于复杂的流量走向会使得管理员素手无策,本发明所采用的技术方案,采用2级架构,且中心节点“指纹信息同步识别设备”由于处理的数据不多,从目前及可见的未来来看,一台独立设备就能应对,排查问题会容易许多,同样可以降低运营维护成本;

(3)网络改造成本低:本发明方案只需要增加一个指纹信息同步识别设备,并在指纹信息同步识别设备和dpi设备中均配置指纹信息匹配表即可,而dpi设备只需要增加指纹信息的提取转发接收功能即可,另外由于指纹信息同步识别设备只需要进行指纹信息配对,对存储和处理资源的要求不高,也可以集成在某一台dpi设备中,因此部署本方案的网络改造成本很低,并且方便部署。

附图说明

图1是本发明实施例中一种负载均衡网络环境下的网络流量示意图:

图2是本发明实施例中dns协议的一个流量数据示意图;

图3是本发明实施例中乐视视频的一个流量数据示意图;

图4是本发明实施例中花样直播的一个流量数据示意图;

图5是本发明实施例中一种负载均衡网络环境下的协议识别方法的流程示意图;

图6是本发明实施例中另一种负载均衡网络环境下的协议识别方法的流程示意图;

图7是本发明实施例中另一种负载均衡网络环境下的协议识别方法的流程示意图;

图8是本发明实施例中一种dpi设备的结构示意图;

图9是本发明实施例中一种指纹信息同步识别设备的结构示意图;

图10是本发明实施例中一种负载均衡网络环境下的协议识别系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

对于某些数据流仅根据单方向流量即可识别其协议,例如对于dns协议(如图2所示)。而对于另外一些数据流,例如乐视视频(图3)、pplive浏览、花样直播(图4)等协议类型的数据流,这些协议有一个共性,根据某一个方向的流量并不能确定是什么协议,只有两个方向的特征结合起来才能确定。

为了解决上述问题,本发明提供了一种负载均衡网络环境下的协议识别方法,当dpi设备对接收的数据流判断其协议类型时,首先判断是否可以进行单向报文识别,如果可以则直接由所述dpi设备完成所述数据流的协议识别,如果不可以则判断该dpi设备是否接收到反方向的且具有可配对的指纹信息的数据流,从而完成协议识别,如果反方向也没有可以配对的指纹信息,则将所述数据流的指纹信息发送到指纹信息同步识别设备,由指纹信息同步识别设备完成协议识别后再将协议识别结果下发到所述dpi设备。

为了实现上述目的,如图5所示,本发明提供了一种负载均衡网络环境下的协议识别方法,包括:

s101、第一dpi设备对接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;

为了判断流经dpi设备的数据流的协议类型,需要从数据流中提取指纹信息,该指纹信息能够用于识别数据流的协议类型,通常可以通过事先对数据流进行分析得到。例如对于图2所示的udp包,其指纹信息可以为:源或目的端口,udp.payload开始的两字节值。对于图3所示的乐视视频,如果是上行数据流则指纹信息是(get.m3u8),而下行数据流的指纹信息是(server:lecloud)。对于图4所示的花样直播,如果是上行数据流则指纹信息是(get.flv?apptype=live),而下行数据流的指纹信息是(server:qqlive_stream)。

s102、根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述第一dpi设备完成协议识别工作;

对于图2的udp包可以通过单身报文识别,例如如果一个包是udp包,源或目的端口为54,且udp.payload开始的两字节值为固定的几个(比如图中的0x8180),则整条流为dns协议。而对于图3的乐视视频和图4的花样直播,单纯根据上行或下行数据流的指纹信息是无法识别协议类型的。

例如对于乐视视频,如果仅根据上行流量,只能知道这条流是请求视频(指纹信息是get.m3u8),根据下行只能知道这条流是乐视云出来的流量(指纹信息是server:lecloud),只有两个指纹信息结合起来,才能知道整条流所属的协议是乐视视频。

而对于花样直播,如果仅根据上行,只能知道这条流是在线视频(指纹信息是get.flv?apptype=live),根据下行,只能知道这条流是qqlive的流量(指纹信息是server:qqlive_stream),如果仅根据下行,识别成qqlive流量更合理,但结合上下行两个指纹信息,才确定整条流所属的协议是花样直播。

s103、如果不能通过单向报文识别,则检测所述第一dpi设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述第一dpi设备根据所述第一指纹信息和第二指纹信息完成协议识别工作;

当无法通过单向报文识别时,则判断该dpi设备是否接收到相反方向的对应数据流。

五元组是一个通信术语,通常是指源ip地址,源端口,目的ip地址,目的端口和传输层协议。例如:192.168.1.110000tcp121.14.88.7680就构成了一个五元组。其意义是,一个ip地址为192.168.1.1的终端通过端口10000,利用tcp协议,和ip地址为121.14.88.76,端口为80的终端进行连接。五元组能够区分不同会话,并且对应的会话是唯一的。在本发明中,对上行数据流和下行数据流进行指纹配对时,应首先判断其五元组是否相同,然后再判断指纹信息是否匹配。

例如当检测到乐视视频的上行数据流的指纹信息(get.m3u8)时,则可以在该dpi设备上判断是否也存在着具有相同五元组信息的乐视视频的下行数据流的指纹信息(server:lecloud),如果上行和下行数据流都流过该dpi设备,则也可以直接在该dpi设备上完成协议识别。

s104、如果否,则将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;

而如果该dpi设备上只流过某一协议数据流的某一方向(例如上行或下行),则仅仅通过该指纹信息是无法识别协议类型的,例如乐视视频或者花样直播。此时则需要设置一个指纹信息同步识别设备,所有的dpi设备在无法直接识别协议类型时,将指纹信息和五元组信息发送到该指纹信息同步识别设备,由该指纹信息同步识别设备完成协议识别。

s105、所述第一dpi设备接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。

指纹信息同步识别设备为了完成协议识别,需要分别从不同的dpi设备接收到该数据流的上行和下行数据的指纹信息,通过将上行和下行数据的指纹信息进行配对从而识别出协议类型,并将识别结果下发到相应的dpi设备。

例如,当dpi设备a流过乐视视频的上行数据流,但是dpi设备a仅根据上行指纹信息无法识别该协议,则dpi设备a将该上行指纹信息(get.m3u8)发送到指纹信息同步识别设备。另外,dpi设备b流过乐视视频的上行数据流,但是dpi设备b仅根据下行指纹信息无法识别该协议,则dpi设备b将该下行指纹信息(server:lecloud)发送到指纹信息同步识别设备。如果在指纹信息同步识别设备上上行指纹信息(get.m3u8)和下行指纹信息(server:lecloud)都接收到了,则可以根据这两个事先配对设置的指纹信息判断出该数据流是乐视视频,并将协议识别结果分别下发到dpi设备a和dpi设备b。

而如果所述第一dpi设备在预设时间长度(可根据需要设定)内未接收所述指纹信息同步识别设备下发的协议识别结果,即指纹信息同步识别设备上未接收到流经其他dpi设备的对应数据流的指纹信息,则将所述数据流识别为通用流量(例如识别为p2p流量或者视频流量等)。

为了进行协议识别,需要事先在dpi设备和指纹信息同步识别设备中均配置有指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,dpi设备和指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配。

例如,指纹信息匹配表中包括有乐视视频和花样直播的指纹配对信息:

乐视视频:上行(get.m3u8),下行(server:lecloud);

花样直播:上行(get.flv?apptype=live),下行(server:qqlive_stream)。

需要说明的是,在本发明中涉及的第一、第二以及第三等仅仅用于区分之用,例如对于某一协议数据流,流经dpi设备a的上行流量为第一流向,流经dpi设备a的下行流量为第二流向,流经dpi设备b的下行流量为第三流向。第二和第三均与第一流向相反,如果第一为下行,则第二和第三均为上行,反之类推。

进一步地,如图6所示,本发明提供了一种负载均衡网络环境下的协议识别方法,包括:

s201、指纹信息同步识别设备接收第一dpi设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;

若某个dpi设备无法在该dpi设备上实现协议识别,则会将指纹信息和五元组信息发送到指纹信息同步识别设备。

s202、所述指纹信息同步识别设备判断是否接收到第二dpi设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;

指纹信息同步识别设备接收到若某个dpi设备发送的指纹信息和五元组信息后,则判断是否接收另一dpi设备发送的指纹信息和五元组信息,这两个五元组信息相同,且指纹信息能够匹配。如果是则根据相互匹配的指纹信息识别协议类型,并将协议识别结果下发了两个相应的dpi设备;

为了进行协议识别,需要事先在dpi设备和指纹信息同步识别设备中均配置有指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,dpi设备和指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配。

例如,指纹信息匹配表中包括有乐视视频和花样直播的指纹配对信息:

乐视视频:上行(get.m3u8),下行(server:lecloud);

花样直播:上行(get.flv?apptype=live),下行(server:qqlive_stream)。

s203、如果是,则所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一dpi设备和/或第二dpi设备。

如果是则根据相互匹配的指纹信息识别协议类型,并将协议识别结果下发了两个相应的dpi设备。

其中,指纹信息同步识别设备为了完成协议识别,需要接收到该数据流的上行和下行数据的指纹信息,通过将上行和下行数据的指纹信息进行配对从而识别出协议类型,并将识别结果下发到相应的dpi设备。

例如,当dpi设备a流过乐视视频的上行数据流,但是dpi设备a仅根据上行指纹信息无法识别该协议,则dpi设备a将该上行指纹信息(get.m3u8)发送到指纹信息同步识别设备。另外,dpi设备b流过乐视视频的上行数据流,但是dpi设备b仅根据下行指纹信息无法识别该协议,则dpi设备b将该下行指纹信息(server:lecloud)发送到指纹信息同步识别设备。如果在指纹信息同步识别设备上上行指纹信息(get.m3u8)和下行指纹信息(server:lecloud)都接收到了,则可以根据这两个事先配对设置的指纹信息判断出该数据流是乐视视频,并将协议识别结果分别下发到dpi设备a和dpi设备b。一般来说,这两个指纹信息的接收时间应该比较接近(该时间可以根据网络情况设置)。

一般来说,上行数量和下行流量应该是同时存在的,或者间隔时间不长,如果超出预设时间长度(该时间长度可根据需要设定)仍未匹配到相反方向的数据流,则可认为不存在可配对的指纹信息,则将该指纹信息和五元组信息丢弃。具体地,如果所述指纹信息同步识别设备未在预设时间长度内接收到与所述第一指纹信息和所述第一流向数据流的五元组信息相匹配的所述第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息,则丢弃所述第一指纹信息和所述第一流向数据流的五元组信息。

进一步地,如图7所示,本发明实施例提供了一种负载均衡网络环境下的协议识别方法,该实施例以乐视视频为例,如图所示,当dpi设备a流过乐视视频的上行数据流,但是dpi设备a仅根据上行指纹信息无法识别该协议,则dpi设备a将该上行指纹信息(get.m3u8)发送到指纹信息同步识别设备。另外,dpi设备b流过乐视视频的上行数据流,但是dpi设备b仅根据下行指纹信息无法识别该协议,则dpi设备b将该下行指纹信息(server:lecloud)发送到指纹信息同步识别设备。如果在指纹信息同步识别设备上上行指纹信息(get.m3u8)和下行指纹信息(server:lecloud)都接收到了,则可以根据这两个事先配对设置的指纹信息判断出该数据流是乐视视频,并将协议识别结果分别下发到dpi设备a和dpi设备b。

进一步地,如图8所示,本发明提供了一种dpi设备,包括指纹信息提取模块、单向报文识别模块、反向数据流匹配模块、指纹信息转发模块以及协议识别结果接收模块,其中:

所述指纹信息提取模块,用于对所述dpi设备接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;

所述单向报文识别模块,用于根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述dpi设备完成协议识别工作;

所述反向数据流匹配模块,用于在不能通过单向报文识别时检测所述dpi设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述反向数据流匹配模块根据所述第一指纹信息和第二指纹信息完成协议识别工作;

所述指纹信息转发模块,用于在未匹配到反向数据流时将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;

所述协议识别结果接收模块,用于接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由另一dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。

进一步地,所述dpi设备还包括通用流量识别模块,所述通用流量识别模块用于在所述dpi设备在预设时间长度内未接收所述指纹信息同步识别设备下发的协议识别结果时,则将所述数据流识别为通用流量。

进一步地,所述dpi设备还包括有第一指纹信息匹配表存储模块,所述第一指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述dpi设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表和所述指纹信息同步识别设备中存储的指纹信息匹配表相同。

进一步地,如图9所示,本发明还提供了一种指纹信息同步识别设备,包括指纹信息接收模块、指纹信息匹配模块和协议识别结果下发模块,其中:

所述指纹信息接收模块,用于接收第一dpi设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;

所述指纹信息匹配模块,用于判断是否接收到第二dpi设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;

所述协议识别结果下发模块,用于在匹配到所述第三指纹信息时根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一dpi设备和/或第二dpi设备。

进一步地,所述指纹信息同步识别设备还包括指纹信息丢弃模块,所述指纹信息丢弃模块用于在所述指纹信息同步识别设备未在预设时间长度内接收到与所述第一指纹信息和所述第一流向数据流的五元组信息相匹配的所述第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息时,丢弃所述第一指纹信息和所述第一流向数据流的五元组信息。

进一步地,所述指纹信息同步识别设备还包括有第二指纹信息匹配表存储模块,所述第二指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表与所述第一dpi设备和第二dpi设中存储的指纹信息匹配表相同。

进一步地,如图10所示,本发明还提供了一种负载均衡网络环境下的协议识别系统,包括指纹信息同步识别设备和至少两个如上所述的dpi设备。

需要进一步说明的是,本发明中,所述指纹信息同步识别设备的功能也可以在某个dpi设备上实现,即指纹信息同步识别设备和dpi设备可以是同一台物理设备,也可以是单独的物理设备。

进一步地,本发明还提供了一种dpi设备,包括存储器和处理器,其中:

所述存储器,用于存储指令;

所述处理器用于执行所述存储器存储的所述指令,以在执行所述指令时执行如下步骤:

对接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;

根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述dpi设备完成协议识别工作;

如果不能通过单向报文识别,则检测所述dpi设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述dpi设备根据所述第一指纹信息和第二指纹信息完成协议识别工作;

如果否,则将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;

所述dpi设备接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由另一dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。

进一步地,本发明还提供了一种指纹信息同步识别设备,包括存储器和处理器,其中:

所述存储器,用于存储指令;

所述处理器用于执行所述存储器存储的所述指令,以在执行所述指令时执行如下步骤:

接收第一dpi设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;

判断是否接收到第二dpi设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二dpi设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;

如果是,则所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一dpi设备和/或第二dpi设备。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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