一种基于多重分类器对数据包进行流量分类的sdn控制器的制造方法

文档序号:7823761阅读:201来源:国知局
一种基于多重分类器对数据包进行流量分类的sdn控制器的制造方法
【专利摘要】本发明公开了一种基于多重分类器对数据包进行流量分类的SDN控制器,是指一种在多核处理器环境中,在现有SDN控制器上设置了多重分类器,依据多重分类器对数据包进行流量分类的应用程序的任务分配。本方法实现了将控制器应用与控制器自身逻辑的分离。能够克服现有方法在使用多核处理器作为SDN控制器时,直接在控制器中运行流量分类应用所导致的控制器资源消耗过大、并行加速比不高、编程不够灵活的问题。提高了处理器资源利用率和控制器吞吐量,简化了控制器应用程序编程。
【专利说明】一种基于多重分类器对数据包进行流量分类的SDN控制器

【技术领域】
[0001] 本发明涉及一种SDN控制器,更特别地说,是指一种在多核处理器环境中,在现有SDN控制器上设置了多重分类器,依据多重分类器对数据包进行流量分类的应用程序的任 务分配。

【背景技术】
[0002] 2013年9月第1次印刷,电子工业出版社,《SDN核心技术剖析和实战指南》雷葆 华等编著。在第15页图1-6公开的SDN核心技术体系图中(记为图1),介绍了在SDN架构 的不同层及其技术。其目标是有效地分离控制层面与转发层面,支持逻辑上集中化的统一 控制,提供灵活的开发接口等。其中,控制层是整个SDN的核心,系统中的南向接口与北向 接口也是以它为中心进行命名的。转发层面通过一个Packet_in消息将数据包(Packet, 也称为报文)发送给控制层面。SDN(SofewareDefinedNetworking,软件定义网络)是一 种新兴的基于软件的网络架构及技术,其最大的特点在于具有松耦合的控制平面与数据平 面、支持集中化的网络状态控制、实现底层网络设施对上层应用的透明。正如SDN的名字所 言,它具有灵活的软件编程能力,使得网络的自动化管理和控制能力获得了空前的提升,能 够有效地解决当前网络系统所要面临的资源规模扩展受限、组网灵活性差、难以满足业务 快速变化的需求等问题。
[0003] OpenFlow是一种新提出的网络架构,OpenFlow交换机将原来完全由交换机/路 由器控制的报文转发过程转化为由OpenFlow交换机(OpenFlowSwitch)和控制服务器 (Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先 规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。结合 SDN/OpenFlow的特性,应用识别变得更加重要。从网络流量中识别一个应用的名字或者类 型正变得越来越重要。
[0004] 作为控制与转发相分离的结果,SDN交换机仅仅具有简单的查询与转发功能,而整 个网络的控制逻辑都需要通过SDN网络中的关键部分--SDN控制器来完成,作为整个SDN 网络中的核心,SDN控制器需要处理所有来自其下方SDN交换机的数据包数据,其负载随着 网络规模的增大而迅速增大。
[0005] 网络流量分类(NetworkTrafficClassification)是指将混合有各种应用的流 量,按产生这些流量的应用协议进行分类。当进行二类分类时往往又可称为网络协议检测 或网络协议鉴别。网络流量分类技术在现代网络安全和管理方面起着很重要的作用。网络 流量不仅数据量迅速增加,而且类型也不断增多,如何在新型的SDN网络架构下快速对网 络流量进行快速的识别与分类成为一个重要课题。
[0006] 而为了识别进入SDN/OpenFlow控制器的网络流量以便对其进行正确的处理,识 别的方法一般有基于标准端口匹配、基于深度包检测、基于协议解析和基于统计学习算法。 各种方法有其自身的优点、缺陷和适用范围。参考2013年10月第1版《网络流量分类方 法与实践》,汪立东、钱丽萍主编。上述的网络流量分类方法均有占用计算资源多,作为整个 SDN/OpenFlow控制器的核心部分,SDN/OpenFlow控制器本身就需要处理大量的来自SDN交 换机的Packet_in数据包,因而通过传统的方式在SDN/OpenFlow控制器上添加网络流量分 类的应用,会消耗大量控制器本身有限的珍贵计算资源,从而降低了SDN/OpenFlow控制器 的性能。


【发明内容】

[0007] 为了解决网络流量分类在SDN/OpenFlow控制器中占用过多控制器资源,本发明 采用将网络流量分类应用以独立进程的方式部署在SDN/OpenFlow控制器的不同处理器核 CPU-C上。网络流量分类应用采用并行的方式对进入的流Flow进行本发明的基于多重分类 器的分类处理,同时,网络流量分类应用可以采用不同的流量分类方法,包括但不限于基于 深度包检测流量分类方法和基于K-均值聚类的分类方法。
[0008] 在本发明中,SDN/OpenFlow控制器是在现有SDN控制器中增加了去消息头模块、 五元组哈希值提取模块和基于多重分类器的流连接分配模块。
[0009] 去消息头模块用于去除Packet_In数据包中的OpenFlow协议头,得到Packet_In 数据包的五元组内容。
[0010] 五元组哈希值提取模块用于对所述五元组内容进行哈希值计算,得到五元组哈希 值;然后根据所述五元组哈希值拾取得到流、及流对应的流连接。
[0011] 基于多重分类器的流连接分配模块依据流的流连接进行不同分类器的分配,从而 得到任意一条流匹配的网络流量分类及网络流量分类对应的处理器核CPU-C。
[0012] 在本发明中,一种网络流量分类对应一个处理器核CPU-C。一个SDN/OpenFlow控 制器上有多个处理器核CPU-C。
[0013] 当一个数据包进入OpenFlow交换机时,交换机将对其通过OpenFlow协议打包 成一个Packet_In数据包发送给SDN/OpenFlow控制器;在SDN/OpenFlow控制器接收到 Packet_In数据包后,交由多重分类器模块;多重分类器根据其流的五元组哈希值将其交 给不同的流量分类应用,流量分类应用对其分类后将获取到的流一类别信息。本发明通过 在SDN/OpenFlow控制器中部署应用层多重分类器的方式,使全网都具备了对流量的应用 层信息,从而实现了对全网统一的流量分类结果及在全网所有OpenFlow交换机上进行应 用程流量管理。
[0014] 本发明基于多重分类器对数据包进行流量分类的SDN控制器与传统SDN控制器相 比,具有如下优点:
[0015] 1SDN/OpenFlow控制器的应用程序部署在不同的处理器核上,相比于将应用程序 部署在SDN控制器本身上,能大大降低SDN/OpenFlow控制器本身的开销的同时实现了基于 SDN/OpenFlow控制器的应用层流量分类。
[0016] 2本发明能充分利用SDN/OpenFlow控制器的多核处理器,及处理器核众多的优 势,提高多核处理器资源利用率。
[0017] 3同一种应用程序能在不同的处理器核上部署多份,并行执行,能大大提高数据 包网络流量分类的效率。
[0018] 4SDN/OpenFlow控制器应用程序的实现无需SDN控制器本身的运行环境,可以作 为一个与SDN控制器相同等级的操作系统上的进程实体,编程更加灵活、自由,移植更加方 便。

【专利附图】

【附图说明】
[0019] 图1是传统的SDN控制器的体系结构图。
[0020] 图2是本发明基于多重分类器对数据包进行流量分类的SDN控制器的结构框图。
[0021] 图3是本发明基于多重分类器对数据包进行流量分类的流程图。

【具体实施方式】
[0022] 下面将结合附图对本发明做进一步的详细说明。
[0023] 本发明提出了一种多核处理器平台下的SDN控制器对网络流量的任务分配,所述 的SDN控制器采用了OpenFlow网络架构,即称为SDN/OpenFlow控制器;所述SDN/OpenFlow 控制器有多个处理器核CPU-Core= {CPU-CK,CPU-CDPI,CPU-CQ},每个处理器核上可以运行 一个应用层分类程序或者不运行任何应用层分类程序。在本发明中,网络流量分类应用可 以采用不同的流量分类方法,包括但不限于基于深度包检测OeepPacketInspection,简 称为DPI)流量分类方法和基于K-均值聚类的分类方法。
[0024] 在本发明中,运行K-均值聚类的流量分类方法的处理器核记为

【权利要求】
1. 一种基于多重分类器对数据包进行流量分类的SDN控制器,其特征在于:SDN/ OpenFlow控制器是在现有SDN控制器中增加了去消息头模块、五元组哈希值提取模块和基 于多重分类器的流连接分配模块; 去消息头模块用于去除Packet_In数据包中的OpenFlow协议头,得到Packet_In数 据包的五元组内容;接收到的OFPAK协议数据包OFPAK ={ (head, Op1),(head, op2),… ,(head, opz)}进行去除OpenFlow协议头head,得到原始数据包OP= Iop1, ορ2, "·,ορζ};五 元组内容 OPz= {srcPort, dstPort, tran, srcIP, dstIP}; 五元组哈希值提取模块用于对原始数据包OP = Iop1, 〇P2,…,〇Pz}中每个五元组内容 Opz= {srcPort, dstPort, tran, srcIP, dstIP}进行哈希值计算,得到五元组哈希值HC = Oic1, hc2,…,hcB};然后根据所述五元组哈希值HC = Oic1, hc2,…,hcB}拾取得到流、及流对 应的流连接CT = Ict1, Ct2,…,ctB}; 基于多重分类器的流连接分配模块依据流的流连接CT = Ict1, ct2,…,ctB}进行不同 分类器的分配,从而得到任意一条流匹配的网络流量分类及网络流量分类对应的处理器核 CPU-C0
2. 根据权利要求1所述的基于多重分类器对数据包进行流量分类的SDN控制器,其特 征在于:一种网络流量分类对应一个处理器核CPU-C。一个SDN/OpenFlow控制器上有多个 处理器核CPU-C。
3. 根据权利要求1所述的基于多重分类器对数据包进行流量分类的SDN控制器,其 特征在于:应用MD5法计算出流连接CT = Ict1, Ct2,…,ctB}中的每一条流连接的哈希值 HC = Oic1, hc2,…,hcB};任意一条流连接的哈希值hcBS 32位整形数;根据所述的HC = Oic1, hc2,…,hcB}来分配流连接CT = Ict1, ct2,…,ctB}所对应的处理器核CPU-Core = {CPU-CK,CPU-Cdpi, CPU-CQ},从而得到流连接所属的应用层分类程序AP = {aPl,ap2,…,apD}。
【文档编号】H04L12/801GK104518984SQ201410811205
【公开日】2015年4月15日 申请日期:2014年12月22日 优先权日:2014年12月22日
【发明者】李云春, 李靖轩 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1