CN110300065B - 一种基于软件定义网络的应用流量识别方法及系统 - Google Patents
一种基于软件定义网络的应用流量识别方法及系统 Download PDFInfo
- Publication number
- CN110300065B CN110300065B CN201910631480.4A CN201910631480A CN110300065B CN 110300065 B CN110300065 B CN 110300065B CN 201910631480 A CN201910631480 A CN 201910631480A CN 110300065 B CN110300065 B CN 110300065B
- Authority
- CN
- China
- Prior art keywords
- identification
- application
- application traffic
- subfield
- flow
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于软件定义网络的应用流量识别方法及系统,涉及网络通信技术领域,包括交换机获取用户终端的应用流量,并将应用流量复制到识别控制模块;交换机根据应用流量生成连接跟踪表,连接跟踪表中包括第一子字段和第二子字段;识别控制模块根据预设规则对第一子字段和第二子字段进行分析,并根据分析结果确定对应用流量进行识别时调用识别引擎根据预先生成的识别特征匹配库对应用流量进行识别:若识别成功,则将应用流量的识别标识记录在第一子字段内;若未识别成功,则将应用流量的识别次数加一并更新第二子字段。本发明通过最小改动量对应用流量进行识别,增加业务灵活性的同时减小系统开销,同时减小交换机到控制器的网络压力。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于软件定义网络的应用流量识别方法及系统。
背景技术
随着互联网业务的快速发展和带宽接入的竞争加剧,运营商的量收差在持续扩大,传统的纯管道经营模式面临越来越大的挑战,智能管道正成为运营商进行转型探索的方向。要做到智能管道,前提之一就是能够对网络中的应用进行识别。软件定义网络是通过Openflow将网络设备的控制面与数据面分离开来,从而实现网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台,而要想实现网络流量的灵活控制的首先任务是在网络中识别各种应用程序,因此快速准确地识别应用程序至关重要。
现有技术中,一般通过五元组识别、DPI(Deep Packet Inspection,深度报文检测)等技术实现应用识别。五元组识别对IP包四层以下的内容,如源地址、目的地址、源端口、目的端口以及协议类型等信息进行分析;其特点是识别效率较高,适合在一些性能受限设备上实现,但准确性低,特别是随着网上应用类型的不断丰富,以及基于开放端口、随机端口甚至采用加密方式进行传输的应用类型的增多,仅通过IP地址和端口信息已经不能真正判断流量中的应用类型。DPI技术在以上四层报文分析的基础上,增加了对应用层的分析,有效提升了识别准确性。但在软件定义网络中,由于Openflow无法对数据报文的应用层进行解析分析和识别,限制了Openflow在应用层的控制能力。
发明内容
针对现有技术中存在的问题,本发明提供一种基于软件定义网络的应用流量识别方法,所述软件定义网络包括一控制器以及与所述控制器连接的一交换机;
于所述交换机内设置一识别控制模块以及一识别引擎,且所述识别控制模块和所述识别引擎并接在所述软件定义网络中;
还包括用户终端,所述用户终端通过所述交换机接入所述软件定义网络;
所述应用流量识别方法具体包括:
步骤S1,所述交换机获取所述用户终端的应用流量,并根据所述控制器预先生成并下发的转发流表将所述应用流量复制到所述识别控制模块;
步骤S2,所述交换机根据所述应用流量生成相应的连接跟踪表,所述连接跟踪表中针对所述应用流量包括一第一字段,所述第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
步骤S3,所述识别控制模块根据预设规则分别对所述第一子字段和所述第二子字段进行分析,并根据分析结果确定是否对所述应用流量进行识别:
若是,则转向步骤S4;
若否,则丢弃所述应用流量,随后退出;
步骤S4,所述控制模块调用所述识别引擎,并根据所述控制器预先生成并下发的识别特征匹配库对所述应用流量进行识别,所述识别特征匹配库中包括所述用户终端内各个应用程序产生的所述应用流量对应的特征值以及预先定义的各个应用程序产生的所述应用流量对应的识别标识:
若识别成功,则将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述第一子字段内,随后退出;
若未识别成功,则将所述应用流量对应的识别次数加一并更新所述第二子字段,随后退出。
优选的,所述步骤S3具体包括:
步骤S31,所述识别控制模块获取所述应用流量对应的所述连接跟踪表;
步骤S32,所述识别控制模块对所述连接跟踪表的所述第一子字段进行分析:
若分析结果表示所述第一子字段中存在所述识别标识,则所述应用流量为已识别应用流量,随后退出;
若分析结果表示所述第一子字段中不存在所述识别标识,则所述应用流量为未识别应用流量,随后转向步骤S33;
步骤S33,所述识别控制模块对所述连接跟踪表的所述第二子字段进行分析得到所述应用流量的识别次数,并将所述识别次数与预先设置的识别阈值进行比较:
若所述识别次数小于所述识别阈值,则转向步骤S4;
若所述识别次数不小于所述识别阈值,则对所述应用流量进行丢弃处理,随后退出。
优选的,所述步骤S4具体包括:
步骤S41,所述识别控制模块提取所述应用流量的特征值和所述连接跟踪表,所述特征值为五元组;
步骤S42,所述识别控制模块调用所述识别引擎根据所述特征值于预先设置的所述识别特征匹配库中进行检索:
若检索到匹配的所述特征值,则表示识别成功,并且将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述连接跟踪表中的所述第一子字段内,随后退出;
若未检索到匹配的所述特征值,则表示识别失败,并且将所述应用流量对应的所述连接跟踪表中的所述第二子字段中的所述识别次数加一,以更新所述第二子字段,随后退出。
优选的,还包括对所述识别特征匹配库进行更新的过程,具体包括:
步骤A1,所述控制器实时检测所述软件定义网络中的各个应用程序的更新信息,并将检测到的所述更新信息下发至所述识别控制模块;
步骤A2,所述识别控制模块根据所述更新信息对所述识别特征匹配库进行更新。
优选的,所述识别特征匹配库采用的是粗匹配的匹配方式。
优选的,所述识别特征匹配库采用的是高精度的匹配方式。
一种基于软件定义网络的应用流量识别系统,应用以上任意一项所述的基于软件定义网络的应用流量识别方法,具体包括:
交换机,所述交换机包括:
数据获取模块,用于获取与所述交换机连接的用户终端的应用流量;
数据生成模块,连接所述数据获取模块,用于根据所述应用流量生成相应的连接跟踪表,所述连接跟踪表中针对所述应用流量包括一第一字段,所述第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
数据复制模块,连接所述数据获取模块,用于根据预先生成并下发的转发流表将所述应用流量复制并输出;
识别控制模块,分别连接所述数据复制模块和所述数据生成模块,用于根据预设规则分别对所述第一子字段和所述第二子字段进行分析,以及在所述识别控制模块的分析结果表示对所述应用流量进行识别时,调用所述识别引擎根据预先生成并下发的识别特征匹配库对所述应用流量进行识别。
控制器,连接所述交换机,用于生成所述转发流表和所述识别匹配库,并下发至所述交换机。
优选的,还包括一数据精细分析系统,分别连接所述控制器和所述交换机,用于根据所述交换机中的所述识别控制模块的识别结果进行精细分析并将精细分析结果发送至所述控制器;
所述精细分析结果包括所述应用流量对应的应用,和/或所述应用流量的使用时间段,和/或所述应用流量搭载的终端设备;
所述控制器根据所述精细分析结果生成所述应用流量下一次的转发路径。
优选的,所述识别控制模块具体包括:
数据采集单元,用于获取所述应用流量对应的所述连接跟踪表;
第一分析单元,连接所述数据采集单元,用于对所述连接跟踪表的所述第一子字段进行分析并输出第一分析结果;
第一判断单元,连接所述第一分析单元,用于根据所述第一分析结果判断所述第一子字段中是否存在识别标识:
所述第一子字段中存在所述识别标识,则所述第一判断单元输出的第一判断结果表示所述应用流量为已识别应用流量;
所述第一子字段中不存在所述识别标识,则所述第一判断单元输出的第二判断结果表示所述应用流量为未识别应用流量;
第二分析单元,分别连接所述数据采集单元和所述第一判断单元,用于根据所述第二判断结果对所述连接跟踪表的所述第二子字段进行分析并输出第二分析结果;
所述第二分析结果为所述应用流量的识别次数;
第二判断单元,连接所述第二分析单元,用于将所述第二分析结果与预先设置的识别阈值进行比较:
所述识别次数小于所述识别阈值,则所述第二判断单元输出的第三判断结果表示所述应用流量需进行识别;
所述识别次数不小于所述识别阈值,则所述第二判断单元输出的第四判断结果表示所述应用流量无法识别;
第一处理单元,连接所述第二判断单元,用于根据所述第三判断结果调用所述识别引擎对所述应用流量进行识别;
第二处理单元,连接所述第二判断单元,用于根据所述第四判断结果对所述应用流量做丢弃处理。
优选的,所述第一处理单元具体包括:
数据获取子单元,用于获取所述应用流量的特征值和所述连接跟踪表,所述特征值为五元组;
识别子单元,连接所述数据获取子单元,用于根据所述特征值于预先设置的所述识别特征匹配库中进行检索,所述识别特征匹配库中包括所述用户终端内各个应用程序产生的所述应用流量对应的特征值以及预先定义的各个应用程序产生的所述应用流量对应的识别标识;
判断子单元,连接所述识别子单元,用于判断是否检索到匹配的所述特征值:
检索到匹配的所述特征值,则所述判断子单元输出的第五判断结果表示所述应用流量识别成功;
未检索到匹配的所述特征值,则所述判断子单元输出的第六判断结果表示所述应用流量未识别成功;
第一处理子单元,连接所述判断子单元,用于根据所述第五判断结果将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述第一子字段内;
第二处理子单元,连接所述判断子单元,用于将所述应用流量对应的所述第二子字段中的所述识别次数加一,并更新至所述第二子字段内。
上述技术方案具有如下优点或有益效果:
1)通过对应用流量进行应用识别,并将识别出的应用流量打上识别标记,实现应用流量识别的同时能够根据识别结果对识别出的应用流量做出不同处理,扩展了Openflow在应用层的控制能力,有效增加了业务灵活性;
2)通过对linux系统中原有的连接跟踪表进行扩展定义,并通过识别五元组和识别标记的方式识别不同的应用流量,无需增加额外模块,实现最小改动量;
3)应用流量的识别工作在交换机上完成,无需将应用流量发送至控制器,有效减小了交换机到控制器的网络压力;
4)通过识别控制模块的控制,避免超出识别阈值的无法识别的应用流量多次重复进入识别引擎中进行识别,有效减轻可系统开销的同时降低了系统负担。
附图说明
图1为本发明的较佳的实施例中,一种基于软件定义网络的应用流量识别方法的流程示意图;
图2为本发明的较佳的实施例中,识别控制模块的分析过程流程示意图;
图3为本发明的较佳的实施例中,识别控制模块的识别过程流程示意图;
图4为本发明的较佳的实施例中,识别特征匹配库更新流程示意图;
图5为本发明的较佳的实施例中,一种基于软件定义网络的应用流量识别系统的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种基于软件定义网络的应用流量识别方法,软件定义网络包括一控制器以及与控制器连接的一交换机;
于交换机内设置一识别控制模块以及一识别引擎,且识别控制模块和识别引擎并接在软件定义网络中;
还包括用户终端,用户终端通过交换机接入软件定义网络;
如图1所示,应用流量识别方法具体包括:
步骤S1,交换机获取用户终端的应用流量,并根据控制器预先生成并下发的转发流表将应用流量复制到识别控制模块;
步骤S2,交换机根据应用流量生成相应的连接跟踪表,连接跟踪表中针对应用流量包括一第一字段,第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
步骤S3,识别控制模块根据预设规则分别对第一子字段和第二子字段进行分析,并根据分析结果确定是否对应用流量进行识别:
若是,则转向步骤S4;
若否,则丢弃应用流量,随后退出;
步骤S4,识别控制模块调用识别引擎,并根据控制器预先生成并下发的识别特征匹配库对应用流量进行识别,识别特征匹配库中包括用户终端内各个应用程序产生的应用流量对应的特征值以及预先定义的各个应用程序产生的应用流量对应的识别标识:
若识别成功,则将应用流量对应的识别标识记录在应用流量对应的第一子字段内,随后退出;
若未识别成功,则将应用流量对应的识别次数加一并更新第二子字段,随后退出。
具体地,本实施例中,上述的交换机为SDN交换机,通过将DPI的识别控制模块和识别引擎设置于SDN交换机的用户模式下,且并接在软件定义网络的数据转发过程中,通过将应用流量复制后进行深度分析,将应用流量的分析与转发分离,不影响应用流量的转发平稳性。本实施例中,SDN交换机通过控制器预先设置并下发的转发流表将流经的应用流量首先复制,并将复制的应用流量转发至DPI的识别控制模块,再通过识别控制模块对接收到的应用流量进行过滤,而不是在复制后,直接将复制的应用流量进行识别,有效避免无法识别的应用流量反复进入识别过程,增加不必要的系统开销和系统负担,换言之,通过识别控制模块设置一保护机制,限制超出识别范围的应用流量多次重复进入识别过程,降低识别控制模块的工作负担,且有效保护识别控制模块不被攻击。
进一步地,通过对SND交换机的linux系统原有的连接跟踪表的第一字段,即ct_mark字段进行扩展定义,将ct_mark字段的高26位设为第一子字段,即APP_ID字段,用于记录应用流量识别结果的识别标识,并将ct_mark字段的低6位设为第二子字段,即Count字段,用于记录应用流量未被识别的识别次数,并通过区分五元组对应用流量进行识别,并对识别出的应用流量添加识别标识,对未识别出的应用流量统计识别次数,无需增加额外模块,即通过直接使用linux系统现有功能,在最小改动量的前提下实现对应用流量的识别。上述五元组包括源地址、目的地址、源端口、目的端口以及协议类型等信息。
本发明的较佳的实施例中,如图2所示,步骤S3具体包括:
步骤S31,识别控制模块获取应用流量对应的连接跟踪表;
步骤S32,识别控制模块对连接跟踪表的第一子字段进行分析:
若分析结果表示第一子字段中存在识别标识,则应用流量为已识别应用流量,随后退出;
若分析结果表示第一子字段中不存在识别标识,则应用流量为未识别应用流量,随后转向步骤S33;
步骤S33,识别控制模块对连接跟踪表的第二子字段进行分析得到应用流量的识别次数,并将识别次数与预先设置的识别阈值进行比较:
若识别次数小于识别阈值,则转向步骤S4;
若识别次数不小于识别阈值,则对应用流量进行丢弃处理,随后退出。
具体地,本实施例中,应用流量首次进入识别控制模块时,应用流量对应的连接跟踪表中的第一子字段,即APP_ID字段为空,即该应用流量未被识别,且应用流量对应的连接跟踪表的第二子字段,即Count字段中的识别次数为零,即该应用流量未被识别过,此时,识别控制模块不启用保护机制,将该应用流量直接进行识别。
进一步具体地,应用流量不是首次进入识别控制模块,则识别控制模块首先查看该应用流量对应的连接跟踪表中的第一子字段,即APP_ID字段,若第一子字段,即APP_ID字段存在识别标识即表明该应用流量已被识别,无需再次进行识别;若第一子字段,即APP_ID字段为空即表明该应用流量未被识别,此时,识别控制模块再查看应用流量对应的连接跟踪表中的第二子字段,即Count字段,若第二子字段,即Count字段中的识别次数已达到识别阈值,则说明经过多次识别后,识别控制模块仍无法识别出该应用流量,也无需再次进行识别;若第二子字段,即Count字段中的识别次数未达到识别阈值,则说明经过多次识别后,识别控制模块尚未识别出该应用流量,但可以继续尝试进行识别,直至识别次数达到识别阈值。
本发明的较佳的实施例中,如图3所示,步骤S4具体包括:
步骤S41,识别控制模块提取应用流量的特征值和连接跟踪表,特征值为五元组;
步骤S42,识别控制模块调用识别引擎根据特征值于预先设置的识别特征匹配库中进行检索:
若检索到匹配的特征值,则表示识别成功,并且将应用流量对应的识别标识记录在应用流量对应的连接跟踪表中的第一子字段内,随后退出;
若未检索到匹配的特征值,则表示识别失败,并且将应用流量对应的连接跟踪表中的第二子字段中的识别次数加一,以更新第二子字段,随后退出。
具体地,本实施例中,识别控制模块接收到待识别的应用流量后,通过区分应用流量的特征值,即应用流量的五元组对应用流量进行识别。在识别控制模块中,预先保存有控制器下发的识别特征匹配库,识别特征匹配库中包括用户终端内若干应用程序产生的应用流量对应的特征值以及为各个应用程序产生的应用流量预先定义的识别标识,以在识别到应用流量对应的特征值时,为该应用流量打上相应的识别标记。同时,在未识别到应用流量对应的特征值时,为该应用流量的识别次数进行累加更新。
本发明的较佳的实施例中,还包括对识别特征匹配库进行更新的过程,如图4所示,具体包括:
步骤A1,控制器实时检测软件定义网络中的各个应用程序的更新信息,并将检测到的更新信息下发至识别控制模块;
步骤A2,识别控制模块根据更新信息对识别特征匹配库进行更新。
具体地,本实施例中,识别特征匹配库为控制器下发至识别控制模块,以用于进行应用流量的识别,但由于用户终端的各个应用程序在经过一段时间的使用后,会进行包括版本在内的相应更新,此时该应用程序所产生的应用流量无法与原有识别特征匹配库中的特征值进行匹配,因此,需要控制器在检测到有相应应用程序进行更新时,及时对识别特征匹配库进行相应更新,有效保证识别准确度。
本发明的较佳的实施例中,识别特征匹配库采用的是粗匹配的匹配方式。
本发明的较佳的实施例中,识别特征匹配库采用的是高精度的匹配方式。
具体地,本实施例中,本发明的识别特征匹配库可以通过控制器的生成管理进行动态加载以满足不同的用户需求。具体来说,在缺省状态下,即用户没有精准需求的情况下,控制器下发的识别特征匹配库为粗采集特征匹配库,此时,识别特征匹配库采用的是粗匹配的匹配方式,即通过匹配粗采集特征匹配库中的特征值,即五元组信息,仅能识别出应用流量对应的大类业务,而无法识别出同一大类业务中的不同应用协议。例如,通过粗采集特征匹配库能够识别出应用流量为视频类应用程序所产生的,而无法精确匹配出该视频类应用程序为爱奇艺、优酷或者腾讯视频等具体的哪个应用程序所产生的。采用粗匹配的匹配方式在满足用户基本需求的情况下能够有效降低设备负荷。
在用户提出精准需求情况下,控制器下发的识别特征匹配库为高精度匹配库,此时,识别特征匹配库采用的是高精度的匹配方式,即通过匹配高精度特征匹配库中的特征值,即五元组信息,不仅能识别出应用流量对应的大类业务,而且能够识别出同一大类业务中的不同应用协议。例如,通过高精度特征匹配库能够识别出应用流量为视频类应用程序所产生的,且能够精确匹配出该视频类应用程序为爱奇艺、优酷或者腾讯视频等具体的哪个应用程序所产生的。
一种基于软件定义网络的应用流量识别系统,应用以上任意一项的基于软件定义网络的应用流量识别方法,如图5所示,具体包括:
交换机1,交换机1包括:
数据获取模块11,用于获取与交换机1连接的用户终端2的应用流量;
数据生成模块12,连接数据获取模块11,用于根据应用流量生成相应的连接跟踪表,连接跟踪表中针对应用流量包括一第一字段,第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
数据复制模块13,连接数据获取模块12,用于根据预先生成并下发的转发流表将应用流量复制并输出;
识别控制模块14,分别连接数据复制模块13和数据生成模块12,用于根据预设规则分别对第一子字段和第二子字段进行分析,以及在识别控制模块14的分析结果表示对应用流量进行识别时,调用识别引擎15根据预先生成并下发的识别特征匹配库对应用流量进行识别。
控制器3,连接交换机1,用于生成转发流表和识别匹配库,并下发至交换机1。
本发明的较佳的实施例中,还包括一数据精细分析系统4,分别连接控制器3和交换机1,用于根据交换机1中的识别控制模块14的识别结果进行精细分析并将精细分析结果发送至控制器3;
精细分析结果包括应用流量对应的应用程序,和/或应用流量的使用时间段,和/或应用流量搭载的终端设备;
控制器3根据精细分析结果生成应用流量下一次的转发路径。
具体地,本实施例中,将识别控制模块14的识别结果定时通过数据精细分析系统4反馈至控制器3,使得控制器3能够根据各应用流量的识别结果生成更为精准地处理流表,该处理流表中包括针对识别出的各应用流量规划最佳的转发路径,从而使得SDN交换机能够根据该处理流表对各应用流量对应的不同应用做不同处理,增加业务灵活性。
本发明的较佳的实施例中,识别控制模块14具体包括:
数据采集单元141,用于获取应用流量对应的连接跟踪表;
第一分析单元142,连接数据采集单元141,用于对连接跟踪表的第一子字段进行分析并输出第一分析结果;
第一判断单元143,连接第一分析单元142,用于根据第一分析结果判断第一子字段中是否存在识别标识:
第一子字段中存在识别标识,则第一判断单元143输出的第一判断结果表示应用流量为已识别应用流量;
第一子字段中不存在识别标识,则第一判断单元143输出的第二判断结果表示应用流量为未识别应用流量;
第二分析单元144,分别连接数据采集单元141和第一判断单元143,用于根据第二判断结果对连接跟踪表的第二子字段进行分析并输出第二分析结果;
第二分析结果为应用流量的识别次数;
第二判断单元145,连接第二分析单元144,用于将第二分析结果与预先设置的识别阈值进行比较:
识别次数小于识别阈值,则第二判断单元145输出的第三判断结果表示应用流量需进行识别;
识别次数不小于识别阈值,则第二判断单元145输出的第四判断结果表示应用流量无法识别;
第一处理单元146,连接第二判断单元145,用于根据第三判断结果调用识别引擎对应用流量进行识别;
第二处理单元147,连接第二判断单元145,用于根据第四判断结果对应用流量做丢弃处理。
本发明的较佳的实施例中,第一处理单元146具体包括:
数据获取子单元1461,用于获取应用流量的特征值和连接跟踪表,特征值为五元组;
识别子单元1462,连接数据获取子单元1461,用于根据特征值于预先设置的识别特征匹配库中进行检索,识别特征匹配库中包括用户终端2内各个应用程序产生的应用流量对应的特征值以及预先定义的各个应用程序产生的应用流量对应的识别标识;
判断子单元1463,连接识别子单元1462,用于判断是否检索到匹配的特征值:
检索到匹配的特征值,则判断子单元1463输出的第五判断结果表示应用流量识别成功;
未检索到匹配的特征值,则判断子单元1463输出的第六判断结果表示应用流量未识别成功;
第一处理子单元1464,连接判断子单元1463,用于根据第五判断结果将应用流量对应的识别标识记录在应用流量对应的第一子字段内;
第二处理单元1465,连接判断子单元1463,用于将应用流量对应的第二子字段中的识别次数加一,并更新至第二子字段内。
本发明的一个较佳的实施例中,将本发明的基于软件定义网络的应用流量识别方法及系统应用于家庭网关中。现有的家庭网关中,DPI工作在内核模式下,且串接在内核的网络数据转发过程中,流量深度分析将影响数据转发平稳性,进一步地,由用户态控制程序进行DPI内核模块的参数控制,使得DPI内核模块的更新困难,无法适应应用流量快速变化的场景。
将本发明的基于软件定义网络的应用流量识别方法及系统应用于家庭网关中,使得DPI工作在用户模式下,且并接在网络数据转发过程中,流量的分析与数据转发分离,DPI的识别控制模块与DPI的识别引擎合并在一起,并且通过动态加载技术加载DPI特征库,可以快速适应应用变化。同时,DPI的分析结果通过内核通道反馈给Openflow转发内核,使得Openflow流表可以直接应用上述分析结果对流量进行直接的操控。上述直接的操控包括根据识别出的各应用流量帮助网关开拓更多样化的业务,配合QOS功能以及阻断流量等功能,完成对不同的应用流量的限速、加速、阻断等场景的应用。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (10)
1.一种基于软件定义网络的应用流量识别方法,其特征在于,所述软件定义网络包括一控制器以及与所述控制器连接的一交换机;
于所述交换机内设置一识别控制模块以及一识别引擎,且所述识别控制模块和所述识别引擎并接在所述软件定义网络中;
还包括用户终端,所述用户终端通过所述交换机接入所述软件定义网络;
所述应用流量识别方法具体包括:
步骤S1,所述交换机获取所述用户终端的应用流量,并根据所述控制器预先生成并下发的转发流表将所述应用流量复制到所述识别控制模块;
步骤S2,所述交换机根据所述应用流量生成相应的连接跟踪表,所述连接跟踪表中针对所述应用流量包括一第一字段,所述第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
步骤S3,所述识别控制模块根据预设规则分别对所述第一子字段和所述第二子字段进行分析,并根据分析结果确定是否对所述应用流量进行识别:
若是,则转向步骤S4;
若否,则丢弃所述应用流量,随后退出;
步骤S4,所述识别控制模块调用所述识别引擎,并根据所述控制器预先生成并下发的识别特征匹配库对所述应用流量进行识别,所述识别特征匹配库中包括所述用户终端内各个应用程序产生的所述应用流量对应的特征值以及预先定义的各个应用程序产生的所述应用流量对应的识别标识:
若识别成功,则将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述第一子字段内,随后退出;
若未识别成功,则将所述应用流量对应的识别次数加一并更新所述第二子字段,随后退出。
2.根据权利要求1所述的基于软件定义网络的应用流量识别方法,其特征在于,所述步骤S3具体包括:
步骤S31,所述识别控制模块获取所述应用流量对应的所述连接跟踪表;
步骤S32,所述识别控制模块对所述连接跟踪表的所述第一子字段进行分析:
若分析结果表示所述第一子字段中存在所述识别标识,则所述应用流量为已识别应用流量,随后退出;
若分析结果表示所述第一子字段中不存在所述识别标识,则所述应用流量为未识别应用流量,随后转向步骤S33;
步骤S33,所述识别控制模块对所述连接跟踪表的所述第二子字段进行分析得到所述应用流量的识别次数,并将所述识别次数与预先设置的识别阈值进行比较:
若所述识别次数小于所述识别阈值,则转向步骤S4;
若所述识别次数不小于所述识别阈值,则对所述应用流量进行丢弃处理,随后退出。
3.根据权利要求1所述的基于软件定义网络的应用流量识别方法,其特征在于,所述步骤S4具体包括:
步骤S41,所述识别控制模块提取所述应用流量的特征值和所述连接跟踪表,所述特征值为五元组;
步骤S42,所述识别控制模块调用所述识别引擎根据所述特征值于预先设置的所述识别特征匹配库中进行检索:
若检索到匹配的所述特征值,则表示识别成功,并且将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述连接跟踪表中的所述第一子字段内,随后退出;
若未检索到匹配的所述特征值,则表示识别失败,并且将所述应用流量对应的所述连接跟踪表中的所述第二子字段中的所述识别次数加一,以更新所述第二子字段,随后退出。
4.根据权利要求1所述的基于软件定义网络的应用流量识别方法,其特征在于,还包括对所述识别特征匹配库进行更新的过程,具体包括:
步骤A1,所述控制器实时检测所述软件定义网络中的各个应用程序的更新信息,并将检测到的所述更新信息下发至所述识别控制模块;
步骤A2,所述识别控制模块根据所述更新信息对所述识别特征匹配库进行更新。
5.根据权利要求1所述的基于软件定义网络的应用流量识别方法,其特征在于,所述识别特征匹配库采用的是粗匹配的匹配方式。
6.根据权利要求1所述的基于软件定义网络的应用流量识别方法,其特征在于,所述识别特征匹配库采用的是高精度的匹配方式。
7.一种基于软件定义网络的应用流量识别系统,其特征在于,应用如权利要求1-6中任意一项所述的基于软件定义网络的应用流量识别方法,具体包括:
交换机,所述交换机包括:
数据获取模块,用于获取与所述交换机连接的用户终端的应用流量;
数据生成模块,连接所述数据获取模块,用于根据所述应用流量生成相应的连接跟踪表,所述连接跟踪表中针对所述应用流量包括一第一字段,所述第一字段包括用于记录识别标识的第一子字段和用于记录识别次数的第二子字段;
数据复制模块,连接所述数据获取模块,用于根据预先生成并下发的转发流表将所述应用流量复制并输出;
识别控制模块,分别连接所述数据复制模块和所述数据生成模块,用于根据预设规则分别对所述第一子字段和所述第二子字段进行分析,以及在所述识别控制模块的分析结果表示对所述应用流量进行识别时,调用所述识别引擎根据预先生成并下发的识别特征匹配库对所述应用流量进行识别;
控制器,连接所述交换机,用于生成所述转发流表和所述识别匹配库,并下发至所述交换机。
8.根据权利要求7所述的基于软件定义网络的应用流量识别系统,其特征在于,还包括一数据精细分析系统,分别连接所述控制器和所述交换机,用于根据所述交换机中的所述识别控制模块的识别结果进行精细分析并将精细分析结果发送至所述控制器;
所述精细分析结果包括所述应用流量对应的应用程序,和/或所述应用流量的使用时间段,和/或所述应用流量搭载的终端设备;
所述控制器根据所述精细分析结果生成所述应用流量下一次的转发路径。
9.根据权利要求7所述的基于软件定义网络的应用流量识别系统,其特征在于,所述识别控制模块具体包括:
数据采集单元,用于获取所述应用流量对应的所述连接跟踪表;
第一分析单元,连接所述数据采集单元,用于对所述连接跟踪表的所述第一子字段进行分析并输出第一分析结果;
第一判断单元,连接所述第一分析单元,用于根据所述第一分析结果判断所述第一子字段中是否存在识别标识:
所述第一子字段中存在所述识别标识,则所述第一判断单元输出的第一判断结果表示所述应用流量为已识别应用流量;
所述第一子字段中不存在所述识别标识,则所述第一判断单元输出的第二判断结果表示所述应用流量为未识别应用流量;
第二分析单元,分别连接所述数据采集单元和所述第一判断单元,用于根据所述第二判断结果对所述连接跟踪表的所述第二子字段进行分析并输出第二分析结果;
所述第二分析结果为所述应用流量的识别次数;
第二判断单元,连接所述第二分析单元,用于将所述第二分析结果与预先设置的识别阈值进行比较:
所述识别次数小于所述识别阈值,则所述第二判断单元输出的第三判断结果表示所述应用流量需进行识别;
所述识别次数不小于所述识别阈值,则所述第二判断单元输出的第四判断结果表示所述应用流量无法识别;
第一处理单元,连接所述第二判断单元,用于根据所述第三判断结果调用所述识别引擎对所述应用流量进行识别;
第二处理单元,连接所述第二判断单元,用于根据所述第四判断结果对所述应用流量做丢弃处理。
10.根据权利要求9所述的基于软件定义网络的应用流量识别系统,其特征在于,所述第一处理单元具体包括:
数据获取子单元,用于获取所述应用流量的特征值和所述连接跟踪表,所述特征值为五元组;
识别子单元,连接所述数据获取子单元,用于根据所述特征值于预先设置的所述识别特征匹配库中进行检索,所述识别特征匹配库中包括所述用户终端内各个应用程序产生的所述应用流量对应的特征值以及预先定义的各个应用程序产生的所述应用流量对应的识别标识;
判断子单元,连接所述识别子单元,用于判断是否检索到匹配的所述特征值:
检索到匹配的所述特征值,则所述判断子单元输出的第五判断结果表示所述应用流量识别成功;
未检索到匹配的所述特征值,则所述判断子单元输出的第六判断结果表示所述应用流量未识别成功;
第一处理子单元,连接所述判断子单元,用于根据所述第五判断结果将所述应用流量对应的所述识别标识记录在所述应用流量对应的所述第一子字段内;
第二处理子单元,连接所述判断子单元,用于将所述应用流量对应的所述第二子字段中的所述识别次数加一,并更新至所述第二子字段内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631480.4A CN110300065B (zh) | 2019-07-12 | 2019-07-12 | 一种基于软件定义网络的应用流量识别方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631480.4A CN110300065B (zh) | 2019-07-12 | 2019-07-12 | 一种基于软件定义网络的应用流量识别方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110300065A CN110300065A (zh) | 2019-10-01 |
CN110300065B true CN110300065B (zh) | 2022-11-11 |
Family
ID=68031100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910631480.4A Active CN110300065B (zh) | 2019-07-12 | 2019-07-12 | 一种基于软件定义网络的应用流量识别方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110300065B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110868360B (zh) * | 2019-11-19 | 2023-04-28 | 深圳市网心科技有限公司 | 流量统计方法、电子设备、系统及介质 |
CN112995049B (zh) * | 2019-12-18 | 2022-09-20 | 中国电信股份有限公司 | 应用加速方法、用户侧网络设备和系统 |
CN112235160B (zh) * | 2020-10-14 | 2022-02-01 | 福建奇点时空数字科技有限公司 | 一种基于协议数据深层检测的流量识别方法 |
CN114915598B (zh) * | 2021-02-08 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 应用程序的网络加速方法、装置以及电子设备 |
CN113595936B (zh) * | 2021-08-03 | 2022-09-20 | 中国电信股份有限公司 | 流量监管方法、网关设备和存储介质 |
CN115361334B (zh) * | 2022-10-19 | 2023-01-31 | 深圳市光联世纪信息科技有限公司 | 基于深度包检测技术的sd-wan流量识别方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491025A (zh) * | 2013-09-13 | 2014-01-01 | 北京神州绿盟信息安全科技股份有限公司 | 一种应用流量识别的方法及装置 |
CN103929373A (zh) * | 2014-03-20 | 2014-07-16 | 江苏省未来网络创新研究院 | 一种精确识别网络应用流量的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10079744B2 (en) * | 2014-01-31 | 2018-09-18 | Hewlett Packard Enterprise Development Lp | Identifying a component within an application executed in a network |
US10291416B2 (en) * | 2014-05-15 | 2019-05-14 | Hewlett Packard Enterprise Development Lp | Network traffic tuning |
US10491529B2 (en) * | 2017-06-30 | 2019-11-26 | Cisco Technology, Inc. | Automatic rule generation for flow management in software defined networking networks |
-
2019
- 2019-07-12 CN CN201910631480.4A patent/CN110300065B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491025A (zh) * | 2013-09-13 | 2014-01-01 | 北京神州绿盟信息安全科技股份有限公司 | 一种应用流量识别的方法及装置 |
CN103929373A (zh) * | 2014-03-20 | 2014-07-16 | 江苏省未来网络创新研究院 | 一种精确识别网络应用流量的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110300065A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300065B (zh) | 一种基于软件定义网络的应用流量识别方法及系统 | |
US20130294449A1 (en) | Efficient application recognition in network traffic | |
CN110855576B (zh) | 应用识别方法及装置 | |
US20120099597A1 (en) | Method and device for detecting a packet | |
CN108900374B (zh) | 一种应用于dpi设备的数据处理方法和装置 | |
CN103067199B (zh) | 深度报文检测结果扩散方法及装置 | |
CN111431800B (zh) | 一种建立路径的方法、装置、设备及机器可读存储介质 | |
US20120177051A1 (en) | Data forwarding method, data processing method, system and relevant devices | |
CN110417801B (zh) | 服务端识别方法和装置、设备及存储介质 | |
US10050892B2 (en) | Method and apparatus for packet classification | |
CN113825129B (zh) | 一种5g网络环境下工业互联网资产测绘方法 | |
CN1703890B (zh) | 数据网络中识别和分析协议的方法 | |
CN109151880A (zh) | 基于多层分类器的移动应用流量识别方法 | |
CN107896182B (zh) | 报文转发方法及装置 | |
CN101741745B (zh) | 识别对等网络应用流量的方法及其系统 | |
CN109067625B (zh) | 一种业务通道性能的检测方法、设备及系统 | |
US11558769B2 (en) | Estimating apparatus, system, method, and computer-readable medium, and learning apparatus, method, and computer-readable medium | |
CN114070800B (zh) | 一种结合深度包检测和深度流检测的secs2流量快速识别方法 | |
KR101344398B1 (ko) | 애플리케이션 인지와 트래픽 제어를 위한 라우터 장치 및 그 방법 | |
US7953017B2 (en) | Application specific service ping packet | |
JP2007228217A (ja) | トラフィック判定装置、トラフィック判定方法、及びそのプログラム | |
CN115190056B (zh) | 一种可编排的流量协议识别与解析方法、装置及设备 | |
CN109510821B (zh) | 一种报文处理方法及装置 | |
CN116458196A (zh) | 基于分析的业务分类规则 | |
CN109361618B (zh) | 数据流量标记方法、装置、计算机设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |