CN108337267B - 负载均衡网络环境下的协议识别方法、设备与系统 - Google Patents
负载均衡网络环境下的协议识别方法、设备与系统 Download PDFInfo
- Publication number
- CN108337267B CN108337267B CN201810195628.XA CN201810195628A CN108337267B CN 108337267 B CN108337267 B CN 108337267B CN 201810195628 A CN201810195628 A CN 201810195628A CN 108337267 B CN108337267 B CN 108337267B
- Authority
- CN
- China
- Prior art keywords
- fingerprint information
- flow direction
- flow
- identification
- dpi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种负载均衡网络环境下的协议识别方法,当DPI设备对接收的数据流判断其协议类型时,首先判断是否可以进行单向报文识别,如果可以则直接由所述DPI设备完成所述数据流的协议识别,如果不可以则判断该DPI设备是否接收到反方向的且具有可配对的指纹信息的数据流,从而完成协议识别,如果反方向也没有可以配对的指纹信息,则将所述数据流的指纹信息发送到指纹信息同步识别设备,由指纹信息同步识别设备完成协议识别后再将协议识别结果下发到所述DPI设备。本发明方案可以节约硬件成本、减少组网复杂度并降低运维成本。
Description
技术领域
本发明属于通信技术领域,更具体地,涉及一种负载均衡网络环境下的协议识别方法、设备与系统。
背景技术
如图1所示,在分光流量环境下,经常会产生同一个五元组的上下行数据被分光到不同处理设备上,比如两个路由器之间存在多条链路,并且这些链路的路由具有相同的优先级(等价路由),两端的路由设备通常会在这多条物理链路上采用负载分担的方式进行流量均衡处理,当对这些链路进行流量分光时,就不可避免地把同一五元组的上下行数据分到不同设备上,当处理设备分属2个厂商时,就会产生一些难以解决的问题。比如在协议识别领域,某些协议(如迅雷、BT、电驴等p2p协议)必须将上下行方向的报文关联起来才能识别,但在上述负载均衡环境下,当某一协议的上行流量流经一家厂商的深度报文检测(DeepPacket Inspection,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.1 10000 TCP 121.14.88.76 80就构成了一个五元组。其意义是,一个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设备。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种负载均衡网络环境下的协议识别方法,其特征在于,包括:
第一深度报文检测DPI设备对接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;
根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述第一深度报文检测DPI设备完成协议识别工作;
如果不能通过单向报文识别,则检测所述第一深度报文检测DPI设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述第一深度报文检测DPI设备根据所述第一指纹信息和第二指纹信息完成协议识别工作;
如果否,则将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;
所述第一深度报文检测DPI设备接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由第二深度报文检测DPI设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;
如果所述第一深度报文检测DPI设备在预设时间长度内未接收所述指纹信息同步识别设备下发的协议识别结果,则将所述数据流识别为通用流量。
2.如权利要求1所述的负载均衡网络环境下的协议识别方法,其特征在于,所述第一深度报文检测DPI设备和所述指纹信息同步识别设备包含有指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述第一深度报文检测DPI设备和所述指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配。
3.一种深度报文检测DPI设备,其特征在于,包括指纹信息提取模块、单向报文识别模块、反向数据流匹配模块、指纹信息转发模块以及协议识别结果接收模块,其中:
所述指纹信息提取模块,用于对所述深度报文检测DPI设备接收的第一流向数据流提取第一指纹信息,所述第一指纹信息用于识别所述第一流向数据流的协议;
所述单向报文识别模块,用于根据所述第一指纹信息对所述第一流向数据流进行协议识别,如果能通过单向报文识别则直接由所述深度报文检测DPI设备完成协议识别工作;
所述反向数据流匹配模块,用于在不能通过单向报文识别时检测所述深度报文检测DPI设备是否接收到第二流向数据流,其中所述第二流向与所述第一流向相反,且所述第二流向数据流所包含的第二指纹信息与所述第一指纹信息相匹配,第二流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;如果是则直接由所述反向数据流匹配模块根据所述第一指纹信息和第二指纹信息完成协议识别工作;
所述指纹信息转发模块,用于在未匹配到反向数据流时将所述第一指纹信息和所述第一流向数据流的五元组信息转发到指纹信息同步识别设备;
所述协议识别结果接收模块,用于接收所述指纹信息同步识别设备下发的协议识别结果,其中所述协议识别结果由所述指纹信息同步识别设备根据所述第一指纹信息和第三指纹信息识别得到,所述第三指纹信息由另一深度报文检测DPI设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配。
4.如权利要求3所述的深度报文检测DPI设备,其特征在于,还包括通用流量识别模块,所述通用流量识别模块用于在所述深度报文检测DPI设备在预设时间长度内未接收所述指纹信息同步识别设备下发的协议识别结果时,则将所述数据流识别为通用流量。
5.如权利要求3或4所述的深度报文检测DPI设备,其特征在于,还包括有第一指纹信息匹配表存储模块,所述第一指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述深度报文检测DPI设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表和所述指纹信息同步识别设备中存储的指纹信息匹配表相同。
6.一种指纹信息同步识别设备,其特征在于,包括指纹信息接收模块、指纹信息匹配模块、协议识别结果下发模块,其中:
所述指纹信息接收模块,用于接收第一深度报文检测DPI设备发送的第一流向数据流的第一指纹信息和所述第一流向数据流的五元组信息;
所述指纹信息匹配模块,用于判断是否接收到第二深度报文检测DPI设备发送的第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息;其中所述第三指纹信息由所述第二深度报文检测DPI设备对接收的第三流向数据流提取并转发到所述指纹信息同步识别设备,所述第一指纹信息和第三指纹信息相匹配,所述第三流向与第一流向相反,所述第三流向数据流所包含的五元组信息与所述第一流向数据流所包含的五元组信息相匹配;
所述协议识别结果下发模块,用于在匹配到所述第三指纹信息时根据所述第一指纹信息和第三指纹信息识别得到所述第一流向数据流和第三流向数据流的协议识别结果,并将所述协议识别结果下发到所述第一深度报文检测DPI设备和/或第二深度报文检测DPI设备。
7.如权利要求6所述的指纹信息同步识别设备,其特征在于,还包括指纹信息丢弃模块,所述指纹信息丢弃模块用于在所述指纹信息同步识别设备未在预设时间长度内接收到与所述第一指纹信息和所述第一流向数据流的五元组信息相匹配的所述第三流向数据流的第三指纹信息和所述第三流向数据流的五元组信息时,丢弃所述第一指纹信息和所述第一流向数据流的五元组信息。
8.如权利要求6或7所述的指纹信息同步识别设备,其特征在于,还包括有第二指纹信息匹配表存储模块,所述第二指纹信息匹配表存储模块用于存储指纹信息匹配表,所述指纹信息匹配表中包含相匹配的指纹信息及对应的协议,所述指纹信息同步识别设备根据所述指纹信息匹配表对所述指纹信息进行匹配,所述指纹信息匹配表与所述第一深度报文检测DPI设备和第二深度报文检测DPI设中存储的指纹信息匹配表相同。
9.一种负载均衡网络环境下的协议识别系统,其特征在于,包括如权利要求6-8所述的指纹信息同步识别设备和至少两个如权利要求3-5所述的深度报文检测DPI设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810195628.XA CN108337267B (zh) | 2018-03-09 | 2018-03-09 | 负载均衡网络环境下的协议识别方法、设备与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810195628.XA CN108337267B (zh) | 2018-03-09 | 2018-03-09 | 负载均衡网络环境下的协议识别方法、设备与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108337267A CN108337267A (zh) | 2018-07-27 |
CN108337267B true CN108337267B (zh) | 2020-09-29 |
Family
ID=62928894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810195628.XA Active CN108337267B (zh) | 2018-03-09 | 2018-03-09 | 负载均衡网络环境下的协议识别方法、设备与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108337267B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139315A (zh) * | 2013-03-26 | 2013-06-05 | 烽火通信科技股份有限公司 | 一种适用于家庭网关的应用层协议解析方法 |
CN104348638A (zh) * | 2013-07-29 | 2015-02-11 | 中国移动通信集团公司 | 识别会话流量的业务类型的方法、系统及设备 |
CN106161015A (zh) * | 2016-09-29 | 2016-11-23 | 长春大学 | 一种基于dpi的量子秘钥分发方法 |
CN106209506A (zh) * | 2016-06-30 | 2016-12-07 | 瑞斯康达科技发展股份有限公司 | 一种虚拟化深度包检测流量分析方法及系统 |
CN109995602A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团设计院有限公司 | 一种协议识别的方法、系统和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9294560B2 (en) * | 2009-06-04 | 2016-03-22 | Bae Systems Plc | System and method of analysing transfer of data over at least one network |
-
2018
- 2018-03-09 CN CN201810195628.XA patent/CN108337267B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139315A (zh) * | 2013-03-26 | 2013-06-05 | 烽火通信科技股份有限公司 | 一种适用于家庭网关的应用层协议解析方法 |
CN104348638A (zh) * | 2013-07-29 | 2015-02-11 | 中国移动通信集团公司 | 识别会话流量的业务类型的方法、系统及设备 |
CN106209506A (zh) * | 2016-06-30 | 2016-12-07 | 瑞斯康达科技发展股份有限公司 | 一种虚拟化深度包检测流量分析方法及系统 |
CN106161015A (zh) * | 2016-09-29 | 2016-11-23 | 长春大学 | 一种基于dpi的量子秘钥分发方法 |
CN109995602A (zh) * | 2017-12-29 | 2019-07-09 | 中国移动通信集团设计院有限公司 | 一种协议识别的方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108337267A (zh) | 2018-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819663B (zh) | 一种实现虚拟网络功能服务链的方法和装置 | |
US9954779B2 (en) | Method, apparatus, and system for supporting flexible lookup keys in software-defined networks | |
CN102970227B (zh) | 在asic中实现vxlan报文转发的方法和装置 | |
WO2016197344A1 (zh) | 实现业务链接的方法、设备及系统 | |
EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
US9397934B2 (en) | Methods for packet forwarding though a communication link of a distributed link aggregation group using mesh tagging | |
CN107395532B (zh) | 一种基于sdn的多租户虚拟网络隔离方法 | |
US10361954B2 (en) | Method and apparatus for processing modified packet | |
CN104243270B (zh) | 一种建立隧道的方法和装置 | |
EP3834365B1 (en) | Multicast distribution tree versioning for minimizing multicast group traffic disruption | |
US9900238B2 (en) | Overlay network-based original packet flow mapping apparatus and method therefor | |
WO2015109821A1 (zh) | 一种管理业务链的方法、系统及装置 | |
WO2017107814A1 (zh) | 一种传播QoS策略的方法、装置及系统 | |
US20180041360A1 (en) | Multicast service with is-is spine-leaf extension in a fabric network | |
US20180375767A1 (en) | Generating table entry and forwarding packet in software defined network | |
CN107846433A (zh) | 一种会话信息同步的方法、装置和系统 | |
CN109041086A (zh) | 一种OpenFlow实例的配置方法及装置 | |
CN112039773A (zh) | 分流方法、装置、系统、网络设备及计算机可读存储介质 | |
CN108337267B (zh) | 负载均衡网络环境下的协议识别方法、设备与系统 | |
JP5971405B2 (ja) | ネットワーク統計情報の提供システム、ネットワーク統計情報の提供方法及びプログラム | |
WO2015074258A1 (zh) | 一种控制业务数据在虚拟网络中转发的方法、装置及系统 | |
CN114401222A (zh) | 一种基于策略路由的数据转发方法、装置及存储介质 | |
CN105515932B (zh) | 提高安全集群处理性能的方法及装置 | |
CN111182085A (zh) | 基于多级流表控制报文转发方法、系统、装置及存储介质 | |
JP5204294B2 (ja) | パケット転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information |
Inventor after: Cheng Bo Inventor after: Ye Zhigang Inventor before: Cheng Bo Inventor before: Ye Zhigang |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |