一种基于nacc对数据包进行网络流分类的sdn控制器的制造方法

文档序号:7819647阅读:495来源:国知局
一种基于nacc对数据包进行网络流分类的sdn控制器的制造方法
【专利摘要】本发明公开了一种基于NACC对数据包进行网络流分类的SDN控制器,是在现有SDN控制器中增加了采用并行处理方式的NACC分类器线程;通过对OFPAK协议数据包进行去消息头、特征向量提取、分类器调度后,应用多个NACC分类器线程得到分类结果,最后将分类结果写入流表中并下发到OpenFlow交换机中。本发明通过集中部署方式,有效避免了流量分类产品软件的部署次数,只需要在网络中一次部署,所有支持openflow协议的交换机都可以完成对流量分类的功能,从而实现在线的流量分类。
【专利说明】一种基于NACC对数据包进行网络流分类的SDN控制器

【技术领域】
[0001] 本发明涉及一种SDN控制器,更特别地说,是指一种利用基于最近应用簇的分类 方法(NearestApplicationClusterbasedClassifier,NACC)来进行数据包快速分类的 SDN控制器。

【背景技术】
[0002] 2013年9月第1次印刷,电子工业出版社,《SDN核心技术剖析和实战指南》雷葆华 等编著。在第15页图1-6公开的SDN核心技术体系图中(记为图1),介绍了在SDN架构的 每一层次上都具有很多核心技术,其目标是有效地分离控制层面与转发层面,支持逻辑上 集中化的统一控制,提供灵活的开发接口等。其中,控制层是整个SDN的核心,系统中的南 向接口与北向接口也是以它为中心进行命名的。转发层面通过一个Packet_in消息将数据 包(Packet,也称为报文)发送给控制层面。SDN(SofewareDefinedNetworking,软件定 义网络)是一种新兴的基于软件的网络架构及技术,其最大的特点在于具有松耦合的控制 平面与数据平面、支持集中化的网络状态控制、实现底层网络设施对上层应用的透明。正如 SDN的名字所言,它具有灵活的软件编程能力,使得网络的自动化管理和控制能力获得了空 前的提升,能够有效地解决当前网络系统所要面临的资源规模扩展受限、组网灵活性差、难 以快速满足业务需求等问题。
[0003] 网络流量分类技术在现代网络安全和管理方面起着很重要的作用。近年,基于机 器学习方法的流量分类技术得到广泛的研宄。根据是否需要经验知识,机器学习方法大致 分为两大类:监督学习方法和无监督学习方法。请参考《网络流量分类方法与实践》汪立东, 钱丽萍主编,2013年10月第1版,第51-68页的内容。考虑对流量进行聚类,当今应用的行 为变得越来越负载,应用的表征方式可以使用应用流量的簇中心点(离平均点最近的实际 簇内点,参考2012年9月第1版的《大数据:互联网大规模数据挖掘与分布式处理》,王斌, 译文的第179页)表征分类结果广泛应用于网络规划,服务质量分析,入侵检测,用户收费 等网络管理方面。另一方面,也可应用于用户的行为分析,流量分类技术对于服务提供商而 言可以更好的理解用户的行为从而提供更具个性化的服务来提高用户的满意度。
[0004] OpenFlow是一种新提出的网络架构,OpenFlow交换机将原来完全由交换机/路 由器控制的报文转发过程转化为由OpenFlow交换机(OpenFlowSwitch)和控制服务器 (Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先 规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。结合 SDN/OpenFlow的特性,应用识别变得更加重要。从网络流量中识别一个应用的名字或者类 型正变得越来越重要。
[0005] 网络流,在一段时间内,一个源IP地址和目的IP地址之间传输的单向报文流,所 有报文具有相同的源端口号srcPort、目的端口号dstPort、协议号tran、源IP地址srcIP 和目的IP地址dstIP,即五元组内容相同。
[0006] 目前设计的SDN/OpenFlow控制器不具有对网络流进行流量分类,也不能对网络 数据包进行控制,因此不能应用于基于流量分类的网络服务。


【发明内容】

[0007] 为了解决在SDN架构下对流量进行分类,本发明将NACC分类器线程做为一个控制 模块部署到SDN控制器中。当一个数据包进入到SDN网络中,首先会存储在支持openflow 交换机处,交换机收到该数据包,会结合本交换机的流表对流进行匹配,若找到匹配项,则 直接进行转发,否则,递交给控制器中的分类器模块,对流进行特征处理,分类得到流的 类别之后,根据流的类别和对应的策略,下发到openflow交换机中。后续的数据包则在 openflow交换机这一数据层直接转发。本发明通过集中部署方式,有效避免了流量分类产 品软件的部署次数,只需要在网络中一次部署,所有支持openflow协议的交换机都可以完 成对流量分类的功能,从而实现在线的流量分类。
[0008] 本发明设计了一种基于NACC对数据包进行网络流分类的SDN控制器,是在现有 SDN控制器中增加了输入控制模块、分类器处理模块和流表下发模块,所述分类器处理模块 采用并行处理方式,即通过修改OpenFlow协议,基于NACC的SDN控制器和网络交换机通信 获取数据包,然后将特征向量分发给NACC分类器做分类,并下发流表到交换机来控制后续 数据包的转发;
[0009] 所述输入控制模块包括有去消息头模块、特征向量提取模块、分类器调度模块;
[0010] 所述分类器处理模块包括有第一个NACC分类器、第二个NACC分类器、第N个NACC 分类器;
[0011] 所述流表下发模块包括有以表格形式存在的应用-策略表和流表;
[0012] 当一个数据包进入到SDN网络中,首先会存储在支持openflow交换机处,交换机 收到该数据包,会结合本交换机的流表对流进行匹配,若找到匹配项,则直接进行转发,否 贝1J,递交给控制器中的分类器模块,对流进行特征处理,分类得到流的类别之后,根据流的 类别和对应的应用-策略表,下发到openflow交换机中;后续的数据包则在openflow交换 机这一数据层直接转发。
[0013] 本发明基于NACC的SDN控制器的优点在于:
[0014] ①本发明将NACC部署到SDN架构的控制层中,通过流量分类信息可用于网络智能 化部署,也可通过北向API传输到应用层以供使用。
[0015] ②本发明通过更改OpenFlow协议,使得NACC能够在SDN控制层部署,而无需在各 个交换机节点部署NACC,降低成本。
[0016] ③本发明中基于流连接(connection-level)并行NACC方法使得各个处理线程负 载均衡,数据流的分组调度更加符合实际流量特点。
[0017] ④使用应用流量聚类得到的簇中心点表征应用,提高了应用的检测精确度。

【专利附图】

【附图说明】
[0018] 图1是传统的SDN控制器的体系结构图。
[0019] 图2是本发明基于NACC对数据包进行网络流分类的SDN控制器的结构框图。 [0020] 图3是采用本发明增加了NACC分类器进行分类结果的流程图。
[0021] 图4是本发明的分类器线程的的处理流程图。

【具体实施方式】
[0022] 下面将结合附图和实施例对本发明做进一步的详细说明。
[0023] NACC是指Nearest Application Cluster based Classifier,译文为基于最近应 用簇的分类方法。
[0024] 在本发明中,通过NACC方法对SDN/OpenFlow控制器中的流量进行分类,得到NACC 分类器。
[0025] 参见图1、图2所示,本发明是一种基于NACC对数据包进行网络流分类的SDN控制 器,该基于NACC的SDN控制器是在现有SDN控制器中增加了输入控制模块、分类器处理模 块和流表下发模块,所述分类器处理模块采用并行处理方式,即通过修改OpenFlow协议, 基于NACC的SDN控制器和网络交换机通信获取数据包,然后将特征向量分发给NACC分类 器做分类,并下发流表到交换机来控制后续数据包的转发。
[0026] 所述输入控制模块包括有去消息头模块、特征向量提取模块、分类器调度模块。
[0027] 所述分类器处理模块包括有第一个NACC分类器、第二个NACC分类器、第N个NACC 分类器。
[0028] 所述流表下发模块包括有以表格形式存在的应用-策略表和流表。
[0029] 当一个数据包进入到SDN网络中,首先会存储在支持openflow交换机处,交换机 收到该数据包,会结合本交换机的流表对流进行匹配,若找到匹配项,则直接进行转发,否 贝1J,递交给控制器中的分类器模块,对流进行特征处理,分类得到流的类别之后,根据流的 类别和对应的应用 -策略表,下发到openflow交换机中。后续的数据包则在openflow交 换机这一数据层直接转发。
[0030] 为了更好地理解本发明及其优点,下面结合附图以及具体的示例对本发明做进一 步详细的说明。
[0031] (一)去消息头模块
[0032] 去消息头模块用于将接收到的0FPAK协议数据包0FPAK= {(head, op),(head, op2),…,(head, opz)}进行去除OpenFlow协议头head,得到原始数据 包OP=lop" op2,…,opz}。
[0033]oPi表示去除了OpenFlow协议头的第一个数据包;
[0034] op2表示去除了OpenFlow协议头的第二个数据包;
[0035]opz表示去除了OpenFlow协议头的最后一个数据包,为了普识性说明,opz也称为 任意一个数据包,Z表示数据包的标识号。
[0036] 在本发明中,任意一个数据包〇^包含有源端口号srcPort、目的端口号dstPort、 协议号tran、源IP地址srcIP和目的IP地址dstIP的五元组内容opz= {srcPort,dstPo rt,tran,srcIP,dstIP}〇
[0037](二)特征向量提取模块
[0038] 特征向量提取模块对接收到的任意一个数据包叩2进行相同五元组内容的拾取, 找出所述任意一个数据包〇Pz对应的流的流连接CtB。
[0039] 在本发明中,SDN控制器中存在有多个的流连接,所述流连接采用集合形式表达为 CT= {cti,ct2,…,ctB},叫表示SDN控制器中的第一条流连接,ct2表示SDN控制器中的第 二条流连接,ctB表示SDN控制器中的最后一条流连接,为了普识性说明,ctB也称为任意一 条流连接,B表示流连接的标识号。所述的任意一条流连接ctB*包含有流连接标识号ID、 数据包的个数packetnum、流连接的长度flen、源IP地址srcIP、目的IP地址dstIP、源端 口号srcPort、目的端口号dstPort和协议号tran,采用集合形式表达为ctB= {ID,packe tnum,flen,srcIP,srcPort,dstIP,dstPort,tran} 〇
[0040] 在本发明中,SDN控制器中可能存在多个原始数据包OP={oppop2,…,opz}对应 同一条流连接ctB,也可能一个数据包<^2对应一条流连接ctB。
[0041] 在本发明中,每一条流连接ctB对应一个流特征向量featureB,所述

【权利要求】
1. 一种基于NACC对数据包进行网络流分类的SDN控制器,其特征在于:该基于NACC的 SDN控制器是在现有SDN控制器中增加了输入控制模块、分类器处理模块和流表下发模块, 所述分类器处理模块采用并行处理方式,即通过修改OpenFlow协议,基于NACC的SDN控制 器和网络交换机通信获取数据包,然后将特征向量分发给NACC分类器做分类,并下发流表 到交换机来控制后续数据包的转发; 所述输入控制模块包括有去消息头模块、特征向量提取模块、分类器调度模块; 所述分类器处理模块包括有第一个NACC分类器、第二个NACC分类器、第N个NACC分 类器; 所述流表下发模块包括有以表格形式存在的应用-策略表和流表; 当一个数据包进入到SDN网络中,首先会存储在支持openflow交换机处,交换机收到 该数据包,会结合本交换机的流表对流进行匹配,若找到匹配项,则直接进行转发,否则,递 交给控制器中的分类器模块,对流进行特征处理,分类得到流的类别之后,根据流的类别和 对应的应用-策略表,下发到openflow交换机中;后续的数据包则在openflow交换机这一 数据层直接转发。
2. 根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于:去消息头模块用于将接收到的OFPAK协议数据包OFPAK={ (head,Op1),(head,op2),… ,(head,opz)}进行去除OpenFlow协议头head,得到原始数据包OP=Iop1,op2,…,opz} 〇
3. 根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征 在于:特征向量提取模块对接收到的任意一个数据包〇pz进行相同五元组内容的拾取,找 出所述任意一个数据包OPz对应的流的流连接CtB;每一条流连接ctB对应一个流特征向量 featureB〇
4. 根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特 征在于:分类器调度模块采用先进先出方式对接收到的所有流连接的流特征向量FEA= Reature1,feature2,…,featureB}进行分类器的分配,即将先进入的第一个流连接的流特 征向量先分配给第一个NACC分类器进行处理,然后是顺次进行流连接的流特征向量与分 类器的分配。
5. 根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于:分类器处理模块中的各个NACC分类器依据自身是否处理完成了上一次的任务来索取 下一次的任务进行处理;若上一次的任务已经完成,则直接从分类器调度模块中索取任务 来进行;若本次任务未完成,则等待完成后再索取下一次的任务。
6. 根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于:流表构建模块包括有应用-策略表和流表;所述应用-策略表是将接收到的应用PR按 照应用-策略表形式填入相关项,得到分类结果;然后对分类结果应用策略表得到对应执 行动作PBct,最后将执行动作?8°3真入流表的指令项中。
7. 根据权利要求6所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于策略表格式为:
8. 根据权利要求6所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于流表的格式为:
9.根据权利要求1所述的基于NACC对数据包进行网络流分类的SDN控制器,其特征在 于基于NACC对数据包进行网络流分类的步骤如下: 步骤Sl:支持OpenFlow协议的交换机接受到来自网络中设备发送的数据包封装成OpenFlow协议数据包记为OFPAK={ (head,Op1),(head,op2),…,(head,opz) },然后将 OFPAK={ (head,Op1),(head,op2),…,(head,opz)}发送给基于NACC的SDN控制器; 步骤S2 :在基于NACC的SDN控制器中,将OFPAK={ (head,oPl),(head,op2),… ,(head,opz)}中的每个协议数据包的包头去除,得到OP= {oppop^'opj; 根据任意一个数据包〇Pz的五元组信息,得到具有相同五元组信息的数据包所属的连 接记为CT=Ict1,ct2,…,ctB},且B<Z,其中ctB= {ID,packetnum,flen,srcIP,srcPor t,dstIP,dstPort,tran}; ID表示连接标识号;packetnum表示数据包的个数; fIen表示连接的长度; srcIP表示源IP地址; dstIP表示目的IP地址; srcPort表示源端口号; dstPort表示目的端口号; tran表示传输层协议; 根据NT=Int1,nt2,…,ntj中NACC分类器的空闲状态,从流连接CT=Ict1,Ct2,… ,ctB}中选取被执行的流连接特征向量; 关于特征向量提取模块和NACC分类器处理线程模块具体的步骤如下: 5301 :从步骤S2获得原始数据包opz; 5302 :判断该数据包是否有效,若无效,则丢弃,从新执行S301,否则执行S303 S303:提取数据包opz的头部五元组信息srcPort,dstPort,tran,srcIP,dstIP;所述 五元组包括源IP地址、源端口、目的IP地址、目的端口和传输层协议;然后根据五元组信息 判断该数据包〇Pz信息是否对应的新的流连接ctB;如果流连接表中不存在该标识流连接条 目,则执行S308,创建该数据包所属的流连接;如果已经存在该流连接条目ctB,则继续执行 S304 ; 5304 :判断流连接数据包个数是否大于10,若否,则执行S309,数据包加入到对应的流 连接;若是,则执行S305提取特征向量; 5305 :提取数据包个数大于10流连接,得到流连接特征向量,加入到流特征向量中FEA ={feature^feature2,…,featureB}中,转入执行步骤S3O6 ; 5306 :NACC分类器处理线程获取流特征向量中FEA=Ifeature1,feature^.. ,featureB}的某个流特征向量featureB,进行分类处理,转入执行步骤S307; S307 :将分类结果返还给S4 ; 步骤S4 :流表下发模块收到所有NACC分类器处理线程NT=Int1,nt2,…,ntJ的分类 结果PR,根据PR和系统设定的策略表,得到当前流的执行动作PBct,将执行动作PBct填入流 表的指令项中,将1填入流表的标记字段中,并下发流表到所有交换机。
【文档编号】H04L12/869GK104468403SQ201410645992
【公开日】2015年3月25日 申请日期:2014年11月14日 优先权日:2014年11月14日
【发明者】李巍, 李国君, 于秀芬, 李丽辉 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1