一种流量管理系统及方法与流程

文档序号:11388858阅读:236来源:国知局
一种流量管理系统及方法与流程
本发明涉及sdn
技术领域
,具体为一种基于sdn架构的流量管理系统及方法。
背景技术
:软件定义网络sdn(software-definednetworking)作为一种新型的网络架构,将控制功能从各个交换机中抽离出来,集中到控制器,便于通过编程实现对交换机的灵活配置,提高了网络管理的效率。sdn还支持一组应用程序编程接口api(applicationprograminginterface),用于支持和兼容常见的网络服务,例如:路由器功能、ip多播、网络安全、网络访问控制、网络带宽管理、网络流量工程、网络服务质量和存储优化等,使得用户能根据业务需求进行灵活裁剪,快速满足业务需求变化。目前,sdn技术已经在校园网、企业网、数据中心网络等领域获得了成功应用。在现有的sdn网络架构中,控制器负责维护监控全网信息,例如网络拓扑,网络资源等,进而依据数据包的管理策略生成响应的处理规则,即流表项,并将这些流表项下发到交换机中,交换机将这些流表项添加至流表,其中,流表包括多个流表向,每个流表项包括匹配域、计数器、计时器和动作集。交换机不断从端口获取数据包,从数据包中提取相应的字段作为匹配字段,将提取出的匹配字段与所述流表项中匹配与中的匹配项进行匹配。匹配成功则按照该流表项中的动作集对数据包进行处理,例如转发、丢弃等动作;而匹配失败则将该数据包封装成流表项请求消息发送给控制器,用于请求相应的流表项。控制器接收流表项请求消息并处理后下发相应的流表项,交换机接收到该流表项并将其增加到流表中,随后,控制器下发封装该数据包和处理该数据包的规则的消息至交换机。其中,处理该数据包的规则与控制器下发的流表项中的动作集相同,交换机接收到该消息后对该数据包进行相应处理。所有匹配失败的数据包的流表项请求消息在由交换机生成并发送给控制器以及控制器处理这些消息的顺序都按照先入先出队列fifo(firstinputfirstoutput)的顺序进行,当流表项请求消息达到一定规模时,后到的流表项请求消息需要等待较长时间才能被处理,使得该后到的流表项请求消息所对应的数据包被丢弃的概率被大大提高。但是,当前sdn中的业务存在不同延迟需求,例如高延时敏感性低数据量的数据包更期望被及时处理,现有的sdn不能满足这种要求。为了解决上述技术问题,申请公布号cn105553880a,申请公布日2016年05月04日的发明专利申请公开了一种应用于交换机的软件定义网络中的数据处理方法及装置。包括:在接收到目标数据包后,判断目标数据包是否与当前所存在的流表匹配,如果不匹配,将目标数据包封装成目标流表项请求消息;在预设的业务优先表中确定所述目标数据包所对应的目标业务优先级表项;为所述目标流表项请求消息设置优先级标签,并将所述带标签的目标流表项请求消息存放至预先构建的第一类优先级缓存队列;将位于所述第一类优先级队列中的带标签的目标流表项请求发送至所述控制器;将目标流表象添加到流表中,并按照处理该目标数据包的规则处理目标数据包。使得需要被尽早处理的数据包能够及时接入网络并得到处理。但是,如果送往sdn控制器的诸如上述目标流表项请求消息不加以控制,当网络被攻击的时候,sdn控制器将会受到很大的冲击,高优先级的协议报文将被丢弃。技术实现要素:为了解决上述问题,本发明为交换机和控制器之间的每种报文都分配一个优先等级,通过该优先等级可以设置报文上送至控制器的速率;同时每个优先等级的报文都被放入相应的队列,对每个队列也进行相应的限速,确保每个队列送往控制器的报文不会超出正常的应用要求。同时,在控制器的接收侧,也对所有的报文进行流量整形,保证控制器不会因为报文的冲击而出现异常。一种流量管理系统,包括控制器和交换机,其特征在于:所述控制器包括用于存储报文的控制器处理队列,以及用于处理所述控制器处理队列中的所述报文的处理模块,所述控制器处理队列包括第一处理队列和第二处理队列,所述第一处理队列和所述第二处理队列的最高传输速率不同;所述交换机包括用于存储所述报文的交换机发送队列,以及用于发送所述交换机发送队列中的所述报文的发送模块,所述交换机发送队列包括第一发送队列和第二发送队列,所述第一发送队列和所述第二发送队列的最高传输速率不同。作为优选,所述控制器包括限流策略表,所述控制器根据所述限流策略表确定下发至交换机的流表项,所述控制器根据所述限流策略表将所述报文分配至所述控制器处理队列,所述交换机根据所述流表项将所述报文分配至所述交换机发送队列;所述限流策略表包括报文类型信息、与所述报文类型信息对应的优先级信息、与所述优先级信息对应的控制器处理队列信息、以及所述控制器处理队列的最高传输速率信息;所述流表项包括所述报文类型信息、与所述报文类型对应的优先级信息、与所述优先级信息对应的交换机发送队列信息、以及所述交换机发送队列的最高传输速率信息。作为优选,所述控制器包括控制器报文类型提取模块和控制器报文分配模块,所述控制器报文类型提取模块提取所述报文的报文类型信息,所述控制器报文分配模块在流表中查找与所述报文类型信息对应的控制器处理队列信息,并将所述报文存储至所述控制器处理队列信息对应的所述控制器处理队列中。作为优选,所述交换机包括交换机报文类型提取模块和交换机报文分配模块,所述交换机报文类型提取模块提取所述报文的报文类型信息,所述交换机报文分配模块根据所述报文类型信息在限流策略表中查找与所述报文类型信息对应的交换机发送队列信息,并将所述报文存储至与所述交换机发送队列信息对应的交换机发送队列中。作为优选,所述报文包括控制协议报文、数据协议报文、维护协议报文、交互协议报文以及扩展协议报文。作为优选,所述交换机包括端口报文匹配模块,所述端口报文匹配模块将来自交换端的端口报文与所述流表匹配,并且根据匹配失败的所述端口报文生成所述数据协议报文并存储至所述第一发送队列中,所述发送队列的最高传输速率最大。本发明还提供一种流量管理方法,适用于对交换机和控制器之间的控制报文流量管理,其特征在于,包括步骤:步骤s1,交换机上报报文,并且根据所述报文的报文类型信息限制所述交换机报文的上报速率;步骤s2,控制器接收所述报文,并且根据所述报文的报文类型信息限制所述报文的处理速度。作为优选,所述控制器根据限流策略表确定下发至交换机的流表项;所述控制器根据所述限流策略表将所述报文分配至所述控制器处理队列,所述交换机根据所述流表项将所述报文分配至所述交换机发送队列;所述限流策略表包括报文类型信息、与所述报文类型信息对应的优先级信息、与所述优先级信息对应的控制器处理队列信息、以及所述控制器处理队列的最高传输速率信息;所述流表项包括所述报文类型信息、与所述报文类型对应的优先级信息、与所述优先级信息对应的交换机发送队列信息、以及所述交换机发送队列的最高传输速率信息。作为优选,所述步骤s1包括:步骤s1-1,根据所述报文类型信息确定所述报文的优先等级;步骤s1-2,根据所述优先等级将所述报文存储至与其对应的交换机发送队列中;所述交换机发送队列包括第一发送队列和第二发送队列,所述第一发送队列和所述第二发送队列的最高传输速率不同。作为优选,所述步骤s2包括:步骤s2-1,根据所述报文类型信息确定所述报文的优先等级;步骤s2-2,根据所述优先等级将所述报文存储至与其对应的控制器处理队列中;所述控制器处理队列包括第一处理队列和第二处理队列,所述第一处理队列和所述第二处理队列的最高传输速率不同。附图说明图1是本发明实施例的系统图;图2是本发明实施例的交换机的报文上报流程图;图3是本发明实施例的sdn’控制器的处理流程图。具体实施方式以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。实施例一以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。实施例一如图1,一种流量管理系统,包括sdn控制器和交换机(s0、s1、s2、s3)。sdn控制器负责维护监控全网信息,如网络拓扑,网络资源等;交换机负责接收并转发来自端口的端口报文,实现客户端a、客户端b和服务器端的数据传输。sdn控制器依据对端口报文的管理策略生成相应的处理规则通过协议报文发送至交换机。交换机发送协议报文至sdn控制器以响应sdn控制器,或者将sdn控制器的协议报文中的流表项信息添加至流表。,每个流表项包括匹配域、计数器、计时器和动作机集,交换机则根据其流表对报文进行控制。sdn控制器包括用于存储报文的控制器处理队列,以及用于处理控制器处理队列中的报文的处理模块。其中控制器处理队列总共包括8条基于硬件的、分别具有不同的最高传输速率的处理队列,如下表:控制器处理队列优先等级最高传输速率(单位pps)第一处理队列7(高)不限速第二处理队列6(中)6000pps第三处理队列5(中)5000pps第四处理队列4(中)4000pps第五处理队列3(低)3000pps第六处理队列2(低)2000pps第七处理队列1(低)1000pps第八处理队列0(低)500pps表1控制器处理队列优先等级从0-7。7的优先等级最高,其对应的第一处理队列的传输速率最快,能够优先快速发送到sdn控制器的处理模块。0的优先等级最低,其对应的第八处理队列的传输速率最慢。sdn控制器还包括可由用户静态修改配置的限流策略表,sdn控制器根据限流策略表确定下发至交换机的流表项。如表2,限流策略表包括报文类型信息、与报文类型信息对应的优先级信息、与优先级信息对应的控制器处理队列信息、以及控制器处理队列的最高传输速率信息。其中,sdn控制器与交换机之间的报文包括:控制协议报文(如featurse报文、modify-state报文等)、数据协议报文(即packet-in报文和packet-out报文)、维护协议报文(如barrier报文、role-request报文)、交互协议报文(hello报文和echo报文)、以及扩展协议报文(experimenter报文)。sdn控制器包括控制器报文类型提取模块和控制器报文分配模块。控制器报文类型提取模块提取待处理报文的报文类型信息,控制器报文分配模块将由控制器报文类型提取模块提取的报文类型信息与限流策略表中的报文类型信息进行匹配,查找该待处理报文对应的优先等级,并将其存放至与该优先等级对应的控制器处理队列中。优先等级高的待处理报文,如控制协议报文configuration,被存储至不限速的第七处理队列中,能够以最快的速度被sdn控制器的处理模块处理。优先等级低的待处理报文,如维护协议报文features发送频率低,延时敏感性低,被存储至最高传输速率为1000pps的第七处理队列中,可以较慢的速度处理也不会引起阻塞。表2sdn控制器中的限流策略表交换机包括用于接收来自客户端a、客户端b、服务器端、或者其他交换器端的端口报文的端口、用于与sdn控制器进行数据交互的发送模块、交换机发送队列、交换机报文类型提取模块、交换机报文分配模块以及端口报文匹配模块。交换机通过发送模块将存储在交换机发送队列中的报文发送至sdn控制器。其中交换机发送队列总共包括8条基于硬件的、分别具有不同的最高传输速率的发送队列,如下表:交换机发送队列优先等级最高传输速率(单位pps)第一发送队列7(高)不限速第二发送队列6(中)6000pps第三发送队列5(中)5000pps第四发送队列4(中)4000pps第五发送队列3(低)3000pps第六发送队列2(低)2000pps第七发送队列1(低)1000pps第八发送队列0(低)500pps表3交换机发送队列优先等级从0-7。其中,7的优先等级最高,其对应的第一发送队列的传输速率最快,能够优先快速发送到sdn控制器。0的优先等级最低,其对应的第八发送队列的传输速率最慢。交换机将sdn控制器下发的packet-out数据报文中的流表项信息添加至流表。交换机不断的从端口获取端口报文并发送至端口报文匹配模块,端口报文匹配模块从端口报文中提取响应的字段作为匹配字段,将提取出的匹配字段与所述流表项中匹配域中的匹配项进行匹配。其中,匹配项可以为openflow1.3specification中定义的oxm_tlv格式,常用的匹配项有ipv4源地址和目的地址、tcp/udp端口号、mpls/vlan标签id、以太网帧类型等字段,具体的,匹配成功则按照该流表项中的动作集对数据包进行处理,例如转发丢弃等17种动作。匹配失败的端口报文被交换机封装为packet-in数据报文上发至sdn控制器,请求sdn控制器下发与该端口报文的流表项信息。交换机的流表项信息还包括用于限制交换机发送至sdn控制器的报文的发送速率的流表项,其包括报文类型信息、与报文类型对应的优先级信息、与优先级信息对应的交换机发送队列信息、以及交换机发送队列的最高传输速率信息,与表2类似。交换机的需要发送至sdn控制器的待发送报文,通过其报文类型提取模块提取报文的报文类型信息,并由交换机报文分配模块根据报文类型信息在流表中查找与报文类型信息对应的交换机发送队列信息,并将该待发送的报文存储至与交换机发送队列信息对应的交换机发送队列中。优先等级高的待发送报文,如控制协议报文flow-removed,被存储至不限速的第七处理队列中,能够以最快的速度发送至sdn控制器。优先等级低的待处理报文,如维护协议报文hello发送频率低,延时敏感性低,被存储至最高传输速率为1000pps的第七处理队列中,可以较慢的速度处理也不会引起阻塞,导致sdn控制器崩溃。基于本发明实施例的流量控制器系统的流量过程包括:步骤s1,交换机上报报文至sdn控制器,并且根据报文的报文类型信息限制交换机报文的上报速率。具体如图2所示,包括:步骤s1-1,根据报文类型信息确定报文的优先等级。交换机报文类型提取模块提取报文类型,检索流表查找与所述报文类型对应的优先等级。步骤s1-2,根据优先等级将报文存储至与其对应的交换机发送队列中。交换机报文分配模块检索流表查找与所述报文类型对应的交换机发送队列,将报文存储至对应的交换机发送队列中。步骤s2,sdn控制器接收报文,并且根据报文的报文类型信息限制报文的处理速度。具体如图3所示,包括步骤:步骤s2-1,根据报文类型信息确定报文的优先等级。控制器报文类型提取模块提取报文类型,检索限流策略表查找与所述报文类型对应的优先等级。步骤s2-2,根据优先等级将报文存储至与其对应的控制器处理队列中。控制器报文分配模块检索限流策略表查找与所述报文类型对应的控制器处理队列,将报文存储至对应的控制器处理队列中。另外,sdn控制器端具有开启或者关闭流量控制的功能。并且使得该流量控制功能尽在网络拥塞的时候开启。在开启流量控制功能时,sdn控制器通过下发流表项统一制定流量控制策略,基于交换机发送队列和控制器处理队列实现对流量的小粒度控制。本发明基于sdn架构,将所有的控制都集中与sdn控制器,配置方便而简单,可以由sdn控制器统一的全局控制。基于本发明实施例的系统进行测试,搭建如图1所示的测试环境。产生流量一,未匹配流表的流量;流量二,由交换机构造的大量hello报文。在网络正常时,流量一和流量二的传输速度为普通的20000pps(数据包/秒)。而在网络拥塞发生的时候,流量一的流量不会限速,流量二被限速为1000pps。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1