CN115396363B - 一种sdn网络环境下的流量分类方法及系统 - Google Patents

一种sdn网络环境下的流量分类方法及系统 Download PDF

Info

Publication number
CN115396363B
CN115396363B CN202211019411.6A CN202211019411A CN115396363B CN 115396363 B CN115396363 B CN 115396363B CN 202211019411 A CN202211019411 A CN 202211019411A CN 115396363 B CN115396363 B CN 115396363B
Authority
CN
China
Prior art keywords
flow
data
sdn
module
neural network
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
Application number
CN202211019411.6A
Other languages
English (en)
Other versions
CN115396363A (zh
Inventor
覃匡宇
谢霄阳
唐海洋
王勇
何倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN202211019411.6A priority Critical patent/CN115396363B/zh
Publication of CN115396363A publication Critical patent/CN115396363A/zh
Application granted granted Critical
Publication of CN115396363B publication Critical patent/CN115396363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明公开一种SDN网络环境下的流量分类方法及系统,方法包括以下步骤:(1)收集初始数据集:通过双向数据流配对模块对SDN网络内流量数据包与数据流进行收集;(2)标记初始数据集;(3)构建神经网络模型;(4)模型训练:将收集到的流量与会话数据特征进行预处理,作为训练神经网络的输入,然后采用BP神经网络的正向计算和反向传播,循环更新参数梯度,最终输出一个分类;训练结束后,将模型序列化保存;以后,可加载该模型来进行流量的分类。本发明SDN交换机不需要总是将数据包转发给SDN控制器,而只传送每个流最初的部分数据包,后续报文通过正常路由转发,保证了网络本身的运行效率。

Description

一种SDN网络环境下的流量分类方法及系统
技术领域
本发明涉及软件定义网络通信技术领域,具体涉及一种SDN网络环境下的流量分类方法及系统。
背景技术
传统网络是没有中心化的控制节点的分布式网络,每个网络节点、设备都使用自己的配置和路由算法,来处理数据和转发报文。近年来,软件定义网络(Software DefinedNetworking,SDN)得到了很大的发展,并已成功在多个大型企业、云服务提供商、ISP等机构落地。SDN技术将网络中的控制平面与数据平面分离,独立工作,并提供了平面间的数据交互接口。其中,SDN控制器负责执行所有算法,也负责在SDN数据平面设备上下发流表项,来引导数据平面的转发行为。SDN网络中的数据平面网络设备(一般为SDN交换机)负责根据自身的流表项处理接收到的数据包。通过使用SDN,云网络的管理者就能够更方便地控制和管理整个网络中的所有网络设备。且SDN网络中的控制器为软件开发者们提供了丰富的编程接口(API)。开发者们可以借此开发不同的上层应用,来实现定制化的网络功能,满足业务层需求。云计算非常需要SDN这种具备可编程能力的网络技术,以适应快速变更网络架构的现实需要,同时,它能够以此实现网络弹性和计算弹性。
神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络非常适合大规模并行处理、弹性拓扑、高度冗余和非线性运算,因而具有很髙的运算速度,很强的联想能力,很强的适应性,很强的容错能力和自组织能力。这些特点和能力使神经网络在广阔的领域获得了重要的应用。
一般的SDN网络下流量分类机制,与传统网络体系下并无不同。基本原则都是基于源地址、目的地址、源端口、目的端口、协议类型等基本字段,也称五元组”作为分组分类依据。在多数传统场景下,端口号的使用范围具有固定规律,0至1023:BSD保留端口,也叫系统端口,这些端口只有系统特许的一些固定进程才能使用;1024至5000:BSD临时端口,一般常见的应用程序使用1024到4999来进行通讯;5001-65535:BSD服务器(非特权)端口,用来给用户自定义端口。对于前两种类型的端口,由于有明确的应用与其对应,可以轻松进行识别区分。但是,在广泛采用SDN技术的云场景下,业务流量、类型变得极为复杂。SDN网络除了要承载传统应用外,还有大量现代应用,这些应用并不使用固定端口号,或因业务需要建立多个会话。同时,部分由第三方开发的特定应用,高层使用特殊的专有协议交互。传统五元组应用识别分析方式已不能满足这些需要。
现有技术中也有一些研究,如授权公开号为CN109450740A的中国发明专利公开了一种基于DPI和机器学习算法进行流量分类的SDN控制器,包括:使用K均值聚类算法进行信息特征库的构建;利用DPI技术提取特征形成训练模块,以及运用朴素贝叶斯算法对于数据包进行详细的流量分类。上述方案存在如下不足:基本分类和标记使用传统基于源地址、目的地址、源端口、目的端口、协议类型“五元组”方式,无法适应现代SDN网络环境下复杂的应用与服务。同时,由于只考虑对单个数据包的特性进行分析,忽视了网络中构成会话的实际要素是流。最后,由于该方案收集固定的20个数据包,在实际场景下会出现部分应用无法正确识别,而另一部分应用使用少量报文输入时就已正确识别而收集了多余的报文,导致性能出现抖动。
发明内容
针对上述问题,本发明的目的是提供一种基于树状结构的SDN路由系统构建方法及系统,在实时环境下,可快速准确地对SDN网络中的流量进行识别分类。
为解决上述技术问题,本发明公开了一种SDN网络环境下的流量分类方法,包括以下步骤:
(1)收集初始数据集
对SDN网络内流量数据包与数据流进行收集;
(2)标记初始数据集
分析由步骤(1)收集的数据各层报头字段,人工对这些数据打上标签,标记原则采用了数据包属性特征和数据流属性特征作为神经网络的输入项;
(3)构建神经网络模型
为了体现读写流程中连续多个数据包的顺序特性,设计一种基于数据包时域的BP神经网络,在该神经网络中,含有一个输入层、两个隐藏层和一个输出层;输入层分为两个区域,包括流特征输入域、载荷特征输入域,前置处理器对提交到控制器的数据包进行过滤和缓存,在同一对源和目的IP的数据包中,如果相应端口也匹配,则认为是同一个数据流,分类到同一个会话,提取每个数据包的各项特征;隐藏层采用2层,每层10个节点;输出层为4个节点,分别表示分类为读数据流、写数据流、OSD变动数据流和不明数据流,用1和0表示;
(4)模型训练
将收集到的流量与会话数据特征进行预处理,作为训练神经网络的输入,然后采用BP神经网络的正向计算和反向传播,循环更新参数梯度,最终输出一个分类;训练结束后,将模型序列化保存;以后,可加载该模型来进行流量的分类。
本发明还公开了一种SDN网络环境下的流量分类系统,包括双向数据流配对模块、流表慢下发模块和基于BP神经网络的网络流量分类模块,所述流表慢下发模块用于保证神经网络模型收集足够的数据包信息,所述双向数据流配对技术用于将通信双方之间多个数据包在逻辑上合并为同一个数据流来进行下一步处理,所述基于BP神经网络的网络流量分类模块用于对收集的流数据进行特征提取,并给出分类结果。通过流表慢下发模块对SDN网络的数据流进行合理的引导,在保证传输效率的同时收集样本数据包用于流量分析,再通过双向数据流配对模块提供的双向数据流配对使通信双方数据流进行匹配,以减少部分冗余数据,精简输入的流量数据信息,提升分析性能。最后将处理后的数据通过基于BP神经网络的网络流量分类模块进行分类,实现SDN网络的流量因应用分类分析。
优选的,所述双向数据流配对模块的步骤如下:
步骤一、SDN控制器在收到一个数据包时,首先判断该数据包的有效性,即需要忽略TCP报文中SYN=1或FIN=1的非携带数据握手报文,对于该类报文,则直接执行Packet-Out指令,将其快速转发;对于携带有效数据的报文,则先读取源地址、目的地址、源端口、目的端口、协议字段。
步骤二、双向数据流匹配模块会将源地址、源端口作为一个整体记作端点1,将目的地址、目的端口作为一个整体记作端点2;之后将会查找现有的会话表项,只要端点1、端点2同时与现有会话表项中{源地址、源端口}或{目的地址、目的端口}中的任一组匹配,且协议类型匹配,则认为该流数据包匹配成功;
步骤三、若步骤二匹配成功,则提取该数据包的载荷,并复制载荷按照载荷项的结构体重新构造,并放入链表中;若步骤二匹配失败,则说明该报文为一个新流,此时双向数据流匹配模块会为该流生成一个长度为32bit的会话id,然后按照会话表项的结构提取报文信息,在会话表中创建一个新流;最后,无论匹配是否成功,报文本身都按照流表正常转发。
优选的,所述流表慢下发模块的步骤如下:
步骤一、当某个新会话流进入SDN交换机时,SDN交换机将该流第一个数据包上交控制器;
步骤二、控制器在路径计算完成后并不立即下发流表,而是向SDN交换机下发Packet-Out指令,让该数据包从符合路径需要的端口转发出去;
步骤三、由于此时控制器并没有为交换机下发相应流表,该流下一个数据包来临时,仍然会上交给SDN控制器,SDN控制器再次下发Packet-Out指令将该包从某端口转发;不断重复这个步骤,直到该流的类型已经被基于BP神经网络的网络流量分类模块识别并给出结果、或流程时间已达到阈值,才为该流下发流表项;这样,通过流表慢下发模块,控制器可以获得该数据流的前N个数据包,且能够在基于BP神经网络的网络流量分类模块输出结果后立即下发流表项,避免了多余无效的操作,提升系统性能和转发效率。
优选的,流表慢下发模块定义并开放一种信令,其他模块可以向流表慢下发模块发送特定的信令报文或调用开放接口来通知控制器下发指定的流表项;同时,控制器的流表慢下发模块只有收到该信令后才下发对应的流表项,以实现流表的异步、动态、延迟下发。
优选的,流表慢下发模块为会话表中的表项维护一个定时器称作下发流表项定时器;该定时器定义了会话表项需要被强制下发流表项的剩余时间,在会话表项创建时,该值设置为用户定义的固定值,并随着时间推移逐渐减小,当该值到0时无论是否已识别出该流,都应将流表下发,保证网络传输效率。
优选的,基于BP神经网络的网络流量分类模块的构造如下:在该神经网络中,含有一个输入层、两个隐藏层和一个输出层;输入层分为两个区域,包括流特征输入区域以及载荷特征输入区域;前置处理器对提交到控制器的数据包进行过滤和缓存,在同一对源和目的IP的数据包中,如果相应端口也匹配,则认为是同一个数据流,分类到同一个会话,提取每个数据包的各项特征;隐藏层采用2层每层10个节点;输出层为4个节点,分别表示分类为读数据流、写数据流、OSD变动数据流和不明数据流,用1和0表示。
优选的,基于BP神经网络的网络流量分类模块需要维护一个前置特征处理分类器,前置特征处理分类器用于提取流及其载荷中的特定信息,并将提取后的信息数据按类型进行分类,放入神经网络不同的输入区域内。
优选的,前置特征处理分类器会根据从会话表中传递过来的表项,根据载荷指针依次按顺序读取同一个流的载荷数据包,然后通过内置的载荷长度过滤器、固定字节过滤器、时序间隔过滤器以及字段提取过滤器等对每个载荷报文并行地进行处理,然后分别将处理结果放入每个提取器后面的缓冲队列中。队列中的每个元素对应一个载荷报文在特定过滤器下的处理结果。同一个报文在经过n个过滤器后,产生n个结果,然后分别进入n个缓冲队列,且这n个元素相互独立。
优选的,基于BP神经网络的网络流量分类模块从两个输入域中读取数据作为神经网络的输入。
与现有技术相比,本发明具有以下优点:
(1)SDN交换机不需要总是将数据包转发给SDN控制器,而只传送每个流最初的部分数据包,后续报文通过正常路由转发,保证了网络本身的运行效率。
(2)可以将同一个会话不同方向的流对应起来,减少离散的冗余数据,提升了分析效率和准确性。
(3)采用深度学习以及BP神经网络,不同于以往的使用公开但过时的数据集进行训练,本发明采用对在线真实数据的标注作为数据集,提升了模型可靠性。
(4)本发明使用深度学习技术,依托SDN网络环境,实时收集网络内数据包,并通过流表慢下发模块以及控制器双向数据流匹配模块,只收集少量对流量分析分类有明确意义的数据包且保证了分析准确性,同时确保分类工作不会影响生产网络的正常转发性能。
(5)通过对数据包的分析,能够对网络内的业务流量类型进行分类,不同于传统的五元组静态分析,本方法采用深度学习与神经网络技术,从数据包的多个字段提取特征,能够对大量新类型、新平台的应用进行识别分析;同时,相对于传统的流量分类方式,本方案对流量收集所需的数据量较少,降低了分析开销,全面提升SDN网络业务管理水平。
附图说明
图1为本发明中SDN控制器中相关模块与本发明之间的逻辑关系的示意图;
图2为本发明中工作流程的示意图;
图3为本发明中SDN控制器所维护的会话表的数据(逻辑)层次结构示意图;
图4为本发明中前置特征分类器的示意图;
图5为本发明中BP神经网络的示意图;
图6为本发明中流表慢下发模块的工作原理示意图;
图7为本发明中流表慢下发控制信令的报文格式示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图2所示,本发明公开了一种SDN网络环境下的流量分类方法,在实时环境下,可快速准确地对SDN网络中的流量进行识别分类。从SDN网络中收集部分流量,使用神经网络进行分析识别,最后对识别出的应用进行分类标记。其包括以下步骤:
步骤一、SDN交换机在收到一个新的数据包时,检查其报文的各个字段以及内容是否能与本机流表中的流表项匹配,若有,则按照对应流表项的行为字段进行处理和转发,若没有,则将该数据包转发给其受控的SDN控制器。
步骤二、SDN控制器额外维护一个会话列表SessionList,简称SL(下同)。该线性表由外到内为一个层次结构,其中最外层为一个线性表,该表用于记录控制器收集到的会话基础属性以及有效载荷数据。其最外层结构如下:
Session0 Session1 Session2 SessionN
SL的元素由结构体对象Si构成。Si有如下字段:会话id(该字段只具有本地意义,用于区分表内的不同会话)、TTL为该会话强制下发流表项的剩余时间、sur_ip表示会话源地址、sur_port表示会话源端口、dst_ip表示会话目的地址、dst_port表示会话目的端口、type表示会话网络层、传输层协议类型、*payload为一个指针(引用)指向实际载荷数据。记作:
Si=<session_id,TTL,sur_ip,sur_port,dst_ip,dst_port,type,TCP_Flag,*payload>。有效载荷字段为指针(引用)类型。
会话表的每一个表项结构最后一个字段为一个载荷指针(引用),该字段用于存储同一个会话的载荷信息,每当被识别为同一个会话的有效数据包,就提取该数据包的载荷信息放在该结构体下。每一个载荷需要数据需要将其构造成特定的数据格式p.p的结构体又如下字段:流数据包时序、载荷数据、下一个载荷指针(引用)。记作:
P=<SeqTime,payloadData,*NextpayloadData>。
其中,SeqTime表示该流数据包的时序,该值从0开始,依次递增,该值可以反应同一个流的数据包的时序先后特征,payloadData表示单个数据包的载荷数据,*NextpayloadData为一个指针(引用),指向下一个payloadData。由此同一个会话的多个载荷数据就构成了一个单链表,其他模块只要读入会话表中会话表项的*payload指针(引用),即可方便取出收集到的该会话的全部载荷信息。
SDN控制器所维护的会话表的数据(逻辑)层次结构如图3所示。
步骤三、SDN控制器收到SDN交换机转交的报文p,执行“控制器双向数据流配对模块”,该技术具体子步骤参考STA:
STA1:判断p的数据包结构,常见的为TCP、UDP、ICMP等,并记录到p.type中。此后,将p中的字段与SL中的各个元素进行比较,判断是否为同一个流,判断基本规则如下:
STA2a:(p.type为TCP或UDP)同时满足以下5条判断为同一个流
(1)p.sur_ip==Si.sur_ip||Si.dst_ip
(2)p.sur_port==Si.sur_port||Si.dst_port
(3)p.dst_ip==Si.sur_ip||Si.dst_ip
(4)p.dst_port==Si.sur_port||Si.dst_port
(5)p.type==Si.type
STA2b:(p.type为ICMP)同时满足以下2条判断为同一个流
(1)p.sur_ip==Si.sur_ip||Si.dst_ip
(2)p.dst_ip==Si.sur_ip||Si.dst_ip
(3)p.ICMP.type==Si.ICMP.type
STA2c:由于TCP的握手信息不携带数据,因此若收集到TCP握手信息,则直接转发,不进入分析阶段,判断依据是p.tcp_Flag.SYN==1||
p.tcp_Flag.FIN==1。此方式可以过滤掉握手的前几个报文。
STA3:若判断结果可以在SL中找到匹配的项Sk,则执行Sk.payload=p.payload,将新的报文载荷信息加入到结构元素Si的末尾,若找不到,则执行SL.Add(p),提取该报文的信息并作为新项加入SL中。
步骤四、由于分析过程与数据包转发之间不存在逻辑上的阻塞关系。因此在提取了必要信息放入SL后,SDN控制器就可以查询自己的流表,并对该包p执行Packet-Out操作,指导SDN交换机正常转发该数据包。同时,SDN控制器将会记录下该会话id对应的流表项,一旦后续收到下发流表项信令,就将该流表项下发给SDN交换机。
步骤五、将由第三步提取的流Si以及后续载荷作为BP神经网络的输入。但并非直接将特定流的数据作为输入,由于我们对神经网络的输入做了设计,将其分为“流特征输入域”以及“载荷特征输入域”。因此,需要通过如图4所示的前置特征处理分类器对从会话表中取出的载荷进行处理,使其符合神经网络的输入规范。前置特征处理分类器将按照不同的维度提取流的信息,如源端口、目的端口、协议等作为流特征,再按照长度统计、固定前n个字节的载荷信息、时序间隔统计信息等,对每个载荷数据进行处理,处理完成后放入不同维度的缓冲输入队列中。
步骤六、前置特征处理分类器对提交到控制器的数据包进行过滤和缓存,提取每个数据包的各项特征。基于BP神经网络的网络流量分类模块会为每个会话表项创建独立的处理进程和内存空间。一旦有经过上一步处理后的数据进入输入层缓冲队列,则立即输入神经网络。隐藏层采用2层每层10个节点,输出层为4个节点。
步骤七、神经网络不断从接收到的输入判断所属分类,并在每个Si首次进入神经网络时设置一个超时计时器,初始化为0。其具体子步骤参考STB。
STB1a:BP神经网络输出可以判断Si所属的类型,通过训练标记的已知应用构成了集合A,则记为Si∈A,则识别成功,直接转到步骤八。
STB1b:若输出不属于任何一个分类,由于处理的间隙间,又会有新的数据包进入缓冲队列,则随着识别的次数增加,得到的特征信息也越来越多,这样,后续判断的成功率也会持续增加。但过多的尝试次数也会影响转发效率,因此只要单个会话未识别出结果,就将超时计时器+1。
STB1c:当超时计时器达到用户所设置的最大阈值时,或会话表项自身的TTL值已到期,此时还未输出结果,则识别失败,将其归入缺省类型Nk。同时为了保证数据的正常转发效率,因此直接转入步骤八。
步骤八、最后,控制器进入“分类结束阶段”,该阶段包含两项工作:
(1)基于BP神经网络的网络流量分类模块(BP NN)向SDN控制器发送特定信令,该信令中包含识别待下发流表项的会话id,使其对特定会话执行流表慢下发模块;
(2)执行SL.del(Si)操作,从SessionList中删除该会话项,释放清单空间。
步骤九、SDN控制器收到带有会话id的流表下发信令时,则查找自己的流表中记录有该会话id的对应流表项并将该流表项下发给SDN交换机。若为会话表项TTL超时,则流表慢下发模块也下发流表项,同时向识别神经网络模块发送“超时并已下发流表项”信令,分析进程收到该信令后立即停止分析并清理内存。
流表慢下发模块需要定义并开放一种信令(接口),其他模块可以向流表慢下发模块发送特定的信令报文或调用开放接口来通知控制器下发指定的流表项。同时,控制器的流表慢下发模块只有收到该信令后才下发对应的流表项,以实现流表的异步、动态、延迟下发。该信令格式及其各个字段长度如图7所示。
信令各字段的可选值以及含义如下:
在这个步骤中,假设有两个会话A(会话id为0x0000 0250)和会话B(会话id为0x0000 0251)。A会话识别成功,则神经网络模块给流表慢下发模块发送信令内容为:0x3100 0000 0000 0250。通知其可以下发会话id为0x0000 0250的流表项并要求给予其答复。流表慢下发模块执行成功后给其回复信令内容为:0x1110 0000 0000 0250。B会话强制下发流表项定时器TTL超时,此时流表慢下发模块给神经网络分析模块下发的信令消息为:0xd1f0 0000 0000 0251。
本发明中SDN控制器中相关模块与本发明之间的逻辑关系如图1所示。公开了三个模块,包括双向数据流配对模块、流表慢下发模块和基于BP神经网络的网络流量分类模块。所述流表慢下发模块用于保证神经网络模型收集足够的数据包信息。所述双向数据流配对技术用于将通信双方之间多个数据包在逻辑上合并为同一个数据流来进行下一步处理。所述基于BP神经网络的网络流量分类模块用于对收集的流数据进行特征提取,并给出分类结果。本发明通过流表慢下发模块对SDN网络的数据流进行合理的引导,在保证传输效率的同时收集样本数据包用于流量分析,再通过双向数据流配对模块提供的双向数据流配对使通信双方数据流进行匹配,以减少部分冗余数据,精简输入的流量数据信息,提升分析性能。最后将处理后的数据通过基于BP神经网络的网络流量分类模块进行分类,实现SDN网络的流量因应用分类分析。
作为一种优选实施方式,本发明所述的SDN控制器双向数据流配对模块的实现步骤如下:
步骤一、SDN控制器在收到一个数据包时,首先判断该数据包的有效性,即需要忽略TCP报文中SYN=1或FIN=1的非携带数据握手报文,对于该类报文,则直接执行Packet-Out指令,将其快速转发。对于携带有效数据的报文,则先读取源地址、目的地址、源端口、目的端口、协议字段。
步骤二、双向数据流匹配模块会将源地址、源端口作为一个整体记作端点1,将目的地址、目的端口作为一个整体记作端点2。之后将会查找现有的会话表项,只要端点1、端点2同时与现有会话表项中{源地址、源端口}或{目的地址、目的端口}中的任一组匹配,且协议类型匹配,则认为该流数据包匹配成功。
步骤三、若步骤二匹配成功,则提取该数据包的载荷,并复制载荷按照载荷项的结构体重新构造,并放入链表中。若步骤二匹配失败,则说明该报文为一个新流,此时双向数据流匹配模块会为该流生成一个长度为32bit的会话id,然后按照会话表项的结构提取报文信息,在会话表中创建一个新流。最后,无论匹配是否成功,报文本身都按照流表正常转发。
SDN控制器根据同一对源主机和目的主机相应端口号的两个数据流进行匹配,在对应的两个数据流上同时启用控制器流表慢下发模块。SDN控制器将两个双向数据流的前N个数据包进行合并,根据数据包的时间顺序合并成一个会话(Session)。在流量分类时,混合整个Session的数据包后再使用上述神经网络进行流量分类。
进一步的,本发明为了配合SDN控制器双向流匹配模块以及流表慢下发模块,提供了一种“会话管理表”以及“流表慢下发控制信令”。会话管理表用于记录控制器收集到的会话基础属性以及有效载荷数据并实现同一个流的数据包整合归类,流表慢下发控制信令用于管理和控制流表下发的时机。本发明为了配合SDN控制器双向流匹配模块以及流表慢下发模块,提出了一种修改过的流表格式,用于在流表慢下发时,定位到具体的流表项。
作为一种优选实施方式,如图6所示,本发明提供一种适用于TCP流的流表慢下发模块,具体步骤如下:
步骤一、当某个新会话流进入SDN交换机时,SDN交换机将该流第一个数据包上交控制器。
步骤二、控制器在路径计算完成后并不立即下发流表,而是向SDN交换机下发Packet-Out指令,让该数据包从符合路径需要的端口转发出去。
步骤三、由于此时控制器并没有为交换机下发相应流表,该流下一个数据包来临时,仍然会上交给SDN控制器,SDN控制器再次下发Packet-Out指令将该包从某端口转发。不断重复这个步骤,直到该流的类型已经被模块C识别并给出结果、或流程时间已达到阈值,才为该流下发流表项。这样,通过流表慢下发模块,控制器可以获得该数据流的前N个数据包,且能够在模块C输出结果后立即下发流表项,避免了多余无效的操作,提升系统性能和转发效率。
作为一种优选实施方式,如图5所示,所述基于BP神经网络的网络流量分类模块的具体构造如下:在该神经网络中,含有一个输入层、两个隐藏层和一个输出层。输入层分为两个区域,包括“流特征输入区域”以及“载荷特征输入区域”。前置处理器对提交到控制器的数据包进行过滤和缓存,在同一对源和目的IP的数据包中,如果相应端口也匹配,则认为是同一个数据流,分类到同一个会话,提取每个数据包的各项特征。隐藏层采用2层每层10个节点。输出层为4个节点,分别表示分类为读数据流、写数据流、OSD变动数据流和不明数据流,用1和0表示。
本发明使用深度学习技术,依托SDN网络环境,实时收集网络内数据包,并通过SDN控制器流表慢下发技术以及控制器双向数据流匹配模块,只收集少量对流量分析分类有明确意义的数据包且保证了分析准确性,同时确保分类系统的工作不会影响生产网络的正常转发性能。通过对数据包的分析,系统能够对网络内的业务流量类型进行分类,不同于传统的五元组静态分析,本系统采用深度学习与神经网络技术,从数据包的多个字段提取特征,能够对大量新类型、新平台的应用进行识别分析。同时,相对于传统的流量分类方式,本方案对流量收集所需的数据量较少,降低了分析开销,全面提升SDN网络业务管理水平。
上述实施例,仅为对本发明的目的、技术方案和有益效果进一步详细说明的具体个例,本发明并非限定于此。凡在本发明的公开的范围之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

Claims (6)

1.一种SDN网络环境下的流量分类系统,其特征在于:包括双向数据流配对模块、流表慢下发模块和基于BP神经网络的网络流量分类模块,所述流表慢下发模块用于保证神经网络模型收集足够的数据包信息,所述双向数据流配对技术用于将通信双方之间多个数据包在逻辑上合并为同一个数据流来进行下一步处理,所述基于BP神经网络的网络流量分类模块用于对收集的流数据进行特征提取,并给出分类结果;
所述双向数据流配对模块的运行步骤如下:
步骤一、SDN控制器在收到一个数据包时,首先判断该数据包的有效性,即需要忽略TCP报文中SYN=1或FIN=1的非携带数据握手报文,对于该类报文,则直接执行Packet-Out指令,将其快速转发;对于携带有效数据的报文,则先读取源地址、目的地址、源端口、目的端口、协议字段;
步骤二、双向数据流匹配模块会将源地址、源端口作为一个整体记作端点1,将目的地址、目的端口作为一个整体记作端点2;之后将会查找现有的会话表项,只要端点1、端点2同时与现有会话表项中{源地址、源端口}或{目的地址、目的端口}中的任一组匹配,且协议类型匹配,则认为该流数据包匹配成功;
步骤三、若步骤二匹配成功,则提取该数据包的载荷,并复制载荷按照载荷项的结构体重新构造,并放入链表中;若步骤二匹配失败,则说明该报文为一个新流,此时双向数据流匹配模块会为该流生成一个长度为32bit的会话id,然后按照会话表项的结构提取报文信息,在会话表中创建一个新流;最后,无论匹配是否成功,报文本身都按照流表正常转发;
所述流表慢下发模块的运行步骤如下:
步骤一、当某个新会话流进入SDN交换机时,SDN交换机将该流第一个数据包上交控制器;
步骤二、控制器在路径计算完成后并不立即下发流表,而是向SDN交换机下发Packet-Out指令,让该数据包从符合路径需要的端口转发出去;
步骤三、由于此时控制器并没有为交换机下发相应流表,该流下一个数据包来临时,仍然会上交给SDN控制器,SDN控制器再次下发Packet-Out指令将该包从某端口转发;不断重复这个步骤,直到该流的类型已经被基于BP神经网络的网络流量分类模块识别并给出结果、或流程时间已达到阈值,才为该流下发流表项;这样,通过流表慢下发模块,控制器可以获得该数据流的前N个数据包,且能够在基于BP神经网络的网络流量分类模块输出结果后立即下发流表项,避免了多余无效的操作,提升系统性能和转发效率;
基于BP神经网络的网络流量分类模块的构造如下:在该神经网络中,含有一个输入层、两个隐藏层和一个输出层;输入层分为两个区域,包括流特征输入区域以及载荷特征输入区域;前置处理器对提交到控制器的数据包进行过滤和缓存,在同一对源和目的IP的数据包中,如果相应端口也匹配,则认为是同一个数据流,分类到同一个会话,提取每个数据包的各项特征;隐藏层采用2层每层10个节点;输出层为4个节点,分别表示分类为读数据流、写数据流、OSD变动数据流和不明数据流,用1和0表示。
2.根据权利要求1所述的一种SDN网络环境下的流量分类系统,其特征在于:流表慢下发模块定义并开放一种信令,其他模块可以向流表慢下发模块发送特定的信令报文或调用开放接口来通知控制器下发指定的流表项;同时,控制器的流表慢下发模块只有收到该信令后才下发对应的流表项,以实现流表的异步、动态、延迟下发。
3.根据权利要求2所述的一种SDN网络环境下的流量分类系统,其特征在于:流表慢下发模块为会话表中的表项维护一个定时器称作下发流表项定时器;该定时器定义了会话表项需要被强制下发流表项的剩余时间,在会话表项创建时,该值设置为用户定义的固定值,并随着时间推移逐渐减小,当该值到0时无论是否已识别出该流,都应将流表下发,保证网络传输效率。
4.根据权利要求1所述的一种SDN网络环境下的流量分类系统,其特征在于:基于BP神经网络的网络流量分类模块需要维护一个前置特征处理分类器,前置特征处理分类器用于提取流及其载荷中的特定信息,并将提取后的信息数据按类型进行分类,放入神经网络不同的输入区域内。
5.根据权利要求4所述的一种SDN网络环境下的流量分类系统,其特征在于:前置特征处理分类器会根据从会话表中传递过来的表项,根据载荷指针依次按顺序读取同一个流的载荷数据包,然后通过内置的载荷长度过滤器、固定字节过滤器、时序间隔过滤器以及字段提取过滤器等对每个载荷报文并行地进行处理,然后分别将处理结果放入每个提取器后面的缓冲队列中;队列中的每个元素对应一个载荷报文在特定过滤器下的处理结果;同一个报文在经过n个过滤器后,产生n个结果,然后分别进入n个缓冲队列,且这n个元素相互独立。
6.根据权利要求5所述的一种SDN网络环境下的流量分类系统,其特征在于:基于BP神经网络的网络流量分类模块从两个输入域中读取数据作为神经网络的输入。
CN202211019411.6A 2022-08-24 2022-08-24 一种sdn网络环境下的流量分类方法及系统 Active CN115396363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211019411.6A CN115396363B (zh) 2022-08-24 2022-08-24 一种sdn网络环境下的流量分类方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211019411.6A CN115396363B (zh) 2022-08-24 2022-08-24 一种sdn网络环境下的流量分类方法及系统

Publications (2)

Publication Number Publication Date
CN115396363A CN115396363A (zh) 2022-11-25
CN115396363B true CN115396363B (zh) 2023-07-25

Family

ID=84119959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211019411.6A Active CN115396363B (zh) 2022-08-24 2022-08-24 一种sdn网络环境下的流量分类方法及系统

Country Status (1)

Country Link
CN (1) CN115396363B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108718297A (zh) * 2018-04-27 2018-10-30 广州西麦科技股份有限公司 基于BP神经网络的DDoS攻击检测方法、装置、控制器及介质
CN110784481A (zh) * 2019-11-04 2020-02-11 重庆邮电大学 SDN网络中基于神经网络的DDoS检测方法及系统
CN113067863A (zh) * 2021-03-17 2021-07-02 西安电子科技大学 基于软件定义网络的动态负载均衡方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367366B2 (en) * 2014-03-27 2016-06-14 Nec Corporation System and methods for collaborative query processing for large scale data processing with software defined networking
US10454709B2 (en) * 2014-06-02 2019-10-22 Hewlett Packard Enterprise Development Lp Delivering messages according to a desired delivery order in a software defined network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108718297A (zh) * 2018-04-27 2018-10-30 广州西麦科技股份有限公司 基于BP神经网络的DDoS攻击检测方法、装置、控制器及介质
CN110784481A (zh) * 2019-11-04 2020-02-11 重庆邮电大学 SDN网络中基于神经网络的DDoS检测方法及系统
CN113067863A (zh) * 2021-03-17 2021-07-02 西安电子科技大学 基于软件定义网络的动态负载均衡方法

Also Published As

Publication number Publication date
CN115396363A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
Zhao et al. Network traffic classification for data fusion: A survey
CN111371779B (zh) 一种基于dpdk虚拟化管理系统的防火墙及其实现方法
CN106209506B (zh) 一种虚拟化深度包检测流量分析方法及系统
US8577817B1 (en) System and method for using network application signatures based on term transition state machine
US9043461B2 (en) Firewall event reduction for rule use counting
CN102724317B (zh) 一种网络数据流量分类方法和装置
US9356844B2 (en) Efficient application recognition in network traffic
US20120177047A1 (en) Network device with a programmable core
EP1722509B1 (en) Traffic analysis on high-speed networks
CN108270699B (zh) 报文处理方法、分流交换机及聚合网络
CN106936667A (zh) 一种基于应用程序流量分布式分析的主机实时识别方法
US10958770B2 (en) Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
US20210367903A1 (en) Systems and methods for generating network flow information
CN109547288B (zh) 一种协议无关转发网络可编程流测量方法
CN102255754B (zh) 串行接入的高速骨干网络流量采集与监控方法
US11943128B1 (en) Path telemetry data collection
Amaral et al. Application aware SDN architecture using semi-supervised traffic classification
CN105812280B (zh) 一种分类方法及电子设备
CN114327833A (zh) 一种基于软件定义复杂规则的高效流量处理方法
CN110741610B (zh) 具有本地交换的端口扩展器
An et al. Traffic Identification Based on Applications using Statistical Signature Free from Abnormal TCP Behavior.
CN115396363B (zh) 一种sdn网络环境下的流量分类方法及系统
CN114095383B (zh) 网络流量采样方法、系统和电子设备
CN114884893A (zh) 一种转发和控制可定义的协同流量调度方法与系统
KR100770643B1 (ko) Tcam을 이용한 고성능 패킷 분류 방법 및 그 장치

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