专利名称:Openflow交换机系统及其报文处理方法
技术领域:
本发明涉及以太网领域技术,尤其涉及一种Openflow交换机系统及其报文处理方法。
背景技术:
目前互联网发展迅速,其应用规模的庞大及其地位的重要性,远远超出了设计者们的想象,而现在的互联网主要有以下弊端特定的范围内没有统一的管理、网络转发机制与策略单一、运营商难以最大限度优化自身网络、以及传统交换机用于转发的功能和协议多且杂,很难配置,系统容易出错等问题。为应对上述弊端,人们提出了 Openflow交换机,其将传统交换机上的报文转发和转发策略分离开来,采用专门的一台控制器(controller)通过网线和交换机连接。这样原来同在一台交换机设备上的报文转发功能(硬件芯片实 现)和报文转发策略(各种软件协议)就被分开到了不同的硬件设备上。而一台控制器(controller)还可以控制多台Openflow交换机,从而实现了统一的转发控制端,更有效地控制了网络。参图I所示,目前,在Openflow交换机系统中,往往控制网络中的一个或多个控制器与相应的Openflow交换机直接相连并进行数据通信,然而,一个或多个控制器的控制通道(control path)的带宽是有限的,而一般Openflow交换机的中央处理器(CPU)处理能力也不强,在Openflow交换机和多个控制器连接时,Openf low的管理端口往往需要同时收发大量报文,由于带宽的限制,易产生控制报文丢包现象,从而造成了整个系统网络不稳定。
发明内容
本发明的目的在于对现有的控制通道网络进行改良,以提供一种可靠性高的Openflow交换机系统。本发明的另一目的在于提供一种Openflow交换机系统的报文处理方法。为实现上述发明目的,本发明的技术方案如下一种Openflow交换机系统,其包括一个或多个控制器;与一个或多个终端相连接的Openflow交换机;与所述Openflow交换机相连接的应用服务器,其用于根据报文的消息类型,对所述报文中的DSCP值进行赋值;与所述应用服务器相连接的QoS三层交换机,其用于根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低发送报文至控制器。作为本发明系统的进一步改进,所述报文的消息类型包括contro11er-to-switch消息、异步消息、对称消息,其中,每一种消息类型还包括若干子类型。作为本发明系统的进一步改进,所述应用服务器具体用于获取报文中的Openflow Type值;根据所述Openflow Type值获悉该报文所属的报文类型及相应的子类型;根据报文所属子类型,相应地为该报文的DSCP值赋值。相应地,一种Openflow交换机系统的报文处理方法,其包括51、接收报文;
52、根据报文的消息类型,对所述报文中的DSCP值进行赋值;
53、根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低进行报文发送。作为本发明方法的进一步改进,所述报文的消息类型包括contro 11 er-to-switch消息、异步消息、对称消息,其中,每一种消息类型还包括若干子类型。作为本发明方法的进一步改进,所述步骤S2还具体包括获取报文中的OpenflowType值;根据所述Openflow Type值获悉该报文所属的报文类型及相应的子类型;根据报 文所属子类型,相应地为该报文的DSCP值赋值。作为本发明方法的进一步改进,该方法还包括如下步骤计算各报文所对应的报文加权值及交换机系统中各控制器所对应的控制器加权值;根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等;根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。作为本发明方法的进一步改进,“计算报文加权值”的步骤具体包括根据各报文自身的优先级字段进行加权,得到包权值;根据Openflow流自身的优先级进行加权,得到流权值;根据所述包权值及流权值,计算得出所述报文加权值,其中,报文加权值=(2/3) *包权值+ (1/3)*流权值。作为本发明方法的进一步改进,“计算控制器加权值”的步骤具体包括获取控制器与交换机之间的网络链路的速度权值;根据控制器所连接的交换机数目得到数量权值;根据控制器当前的服务质量得到质量权值;综合所述速度权值、数量权值、及质量权值计算得出控制器加权值,其中,控制器加权值=(2/4)*速度权值+ (1/4)*数量权值+ (1/4)*质量权值。作为本发明方法的进一步改进,“获取多个报文加权值区间”的步骤具体包括将所有报文加权值按大小进行排序,并均匀划分为N个报文组,其中,N为控制器的数目;根据每个报文组中报文加权值,获取N个初始权值区间;将低优先级的初始权值区间的区间上限设置为与高优先级的初始权值区间的区间下限相等;将最高优先级的的初始权值区间的区间上限设为100,将最低优先级的的初始权值区间的区间下限设为O。本发明的有益效果是本发明通过根据报文的类型,将系统中报文按照一定的优先级进行调度,在不提高整个系统成本的同时,避免了系统因带宽过小,导致高优先级的报文掉包的现象,进而提高了系统稳定性。
图I是现有技术中Openflow交换机系统的网络架构示意 图2是本发明第一实施方式中Openflow交换机系统的网络架构示意 图3是本发明第一实施方式中Openflow交换机系统的报文处理方法的流程 图4是本发明第二实施方式中Openflow交换机系统的网络架构示意 图5是本发明第二实施方式中Openflow交换机系统的报文处理方法的流程图;图6是本发明第二实施方式中报文处理系统的单元示意图。
具体实施例方式以下将结合附图所示的具体实施方式
对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。参图2所示,其示意地绘示了本发明Openflow交换机系统的网络架构,该架构100包括一个或者多个控制器(contro I Ier I、contro 11 er2、contro 11 er3 …control I erN),控制器与Openflow交换机101之间通过控制网络相连,Openflow交换机101另一端通过多业务端口连接多个终端设备(终端I、终端2、终端3…终端N),上述终端设备可包括手机、电脑、PDA (个人数字处理)等。所述终端可通过数据通道与Openflow交换机101相互通信,实现报文发送。于本发明第一实施方式中,上述Openflow交换机系统100还包括一应用服务器 102及一支持QoS(服务质量)的QoS三层交换机103,其中,应用服务器102与所述Openflow交换机101相连接,其用于根据报文的消息类型,对所述报文中的DSCP值进行赋值;而QoS三层交换机103与所述应用服务器102相连接,其用于根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低发送报文至控制器。于本发明中,Openflow协议里的支持的消息类型大约分为以下3类control I er-to-switch 消息、异步消息(asynchronous)、及对称消息(symmetric),每一类消息又有多个子类型。controller-to-switch消息由控制器发起,用来管理或获取switch状态!asynchronous消息由switch发起,用来将网络事件或交换机状态变化更新到控制器;symmetric消息可由交换机或控制器发起。这几类消息最终会组成TCP报文在控制网络中传输,本实施方式中,根据本领域普通技术人员所掌握的经验,总结出其中有些类型的报文是非常重要的,这些报文必须得到交换机或控制器及时相应,否则会造成网络中断或不稳定,比如、一些对称消息和controller-to-switch消息,这类报文一般所占带宽也不大;而相比上述的重要报文,大量相对不重要的报文(如packet_in类型报文),甚至是冗余报文可以延迟发送甚至直接被丢失(对整个交换机系统的正常工作几乎无影响)。其中,本发明具体实施方式
中,对于不同消息的区分,主要通过获取TCP报文中的第2个字节(Openflow Type值),并根据所述Openf low Type值获悉该报文所属的报文类型及相应的子类型(如Hello信息、Features_Reply信息、Port-Status信息等),其中按照报文的子类型,分别对应赋予该报文的DSCP为一定值,在此之前,本发明需要根据不同等级的重要信息,对其报文进行网络传输层面的报文优先级分类。在本发明中,可以使用应用服务器102对指定消息类型的报文做DSCP值(差分服务代码点,一种IP报文的优先级)重写动作,其中,DSCP使用6个bit,DSCP的值得范围为(Γ63,O优先级最低,63优先级最高。本发明中,对于较为重要的Hello/Echo等类型的消息报文,一般将其DSCP值设置成60 ;而对于大量相对不重要或者可以有延迟的异步消息(如Packet_in报文),则将其DSCP值设置成30。当被修改过DSCP值的消息报文发送到支持QoS的3层交换机时,该交换机能够根据不同的DSCP值进行优先级调度,从而使DSCP值高的报文优先通过,这样可以大幅度提高Openflow交换机系统的连接性和可靠性。
本发明中,对于不同消息类型的报文所对应的DSCP值,详见下表(表I):其中,DSCP值越高地报文,表示为优先级越高,系统会优先处理。
权利要求
1.一种Openflow交换机系统,其特征在于,其包括 一个或多个控制器; 与一个或多个终端相连接的Openflow交换机; 与所述Openflow交换机相连接的应用服务器,用于根据报文的消息类型,对所述报文中的DSCP值进行赋值; 与所述应用服务器相连接的QoS三层交换机,用于根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低发送报文至控制器。
2.根据权利要求I所述的Openflow交换机系统,其特征在于,所述报文的消息类型包括controller-to-switch消息、异步消息、对称消息,其中,每一种消息类型还包括若干子类型。
3.根据权利要求2所述的Openflow交换机系统,其特征在于,所述应用服务器具体用于 获取报文中的Openflow Type值; 根据所述Openflow Type值获悉该报文所属的报文类型及相应的子类型; 根据报文所属子类型,相应地为该报文的DSCP值赋值。
4.一种Openflow交换机系统的报文处理方法,其特征在于,该方法包括 51、接收报文; 52、根据报文的消息类型,对所述报文中的DSCP值进行赋值; 53、根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低进行报文发送。
5.根据权利要求4所述的方法,其特征在于,所述报文的消息类型包括control Ier-to-switch消息、异步消息、对称消息,其中,每一种消息类型还包括若干子类型。
6.根据权利要求5所述的方法,其特征在于,所述步骤S2还具体包括 获取报文中的Openflow Type值; 根据所述Openflow Type值获悉该报文所属的报文类型及相应的子类型; 根据报文所属子类型,相应地为该报文的DSCP值赋值。
7.根据权利要求4所述的方法,其特征在于,该方法还包括如下步骤 计算各报文所对应的报文加权值及交换机系统中各控制器所对应的控制器加权值; 根据所述报文加权值,获取多个报文加权值区间,并根据各控制器加权值,为每一个报文加权值区间对应一个控制器,其中,所述报文加权值区间的数目与控制器的数目相等;根据当前报文的报文加权值所处于的报文加权值区间,将该报文发送至与该报文加权值区间相对应的控制器。
8.根据权利要求7所述的方法,其特征在于,“计算报文加权值”的步骤具体包括 根据各报文自身的优先级字段进行加权,得到包权值; 根据Openflow流自身的优先级进行加权,得到流权值; 根据所述包权值及流权值,计算得出所述报文加权值,其中,报文加权值=(2/3)*包权值+ (1/3)*流权值。
9.根据权利要求7所述的方法,其特征在于,“计算控制器加权值”的步骤具体包括获取控制器与交换机之间的网络链路的速度权值; 根据控制器所连接的交换机数目得到数量权值; 根据控制器当前的服务质量得到质量权值; 综合所述速度权值、数量权值、及质量权值计算得出控制器加权值,其中,控制器加权值=(2/4)*速度权值+ (1/4)*数量权值+ (1/4)*质量权值。
10.根据权利要求7所述的方法,其特征在于,“获取多个报文加权值区间”的步骤具体包括 将所有报文加权值按大小进行排序,并均匀划分为N个报文组,其中,N为控制器的数目; 根据每个报文组中报文加权值,获取N个初始权值区间; 将低优先级的初始权值区间的区间上限设置为与高优先级的初始权值区间的区间下限相等; 将最高优先级的的初始权值区间的区间上限设为100,将最低优先级的的初始权值区间的区间下限设为O。
全文摘要
本发明提供一种Openflow交换机系统及其报文处理方法,其系统包括一个或多个控制器;与一个或多个终端相连接的Openflow交换机;与所述Openflow交换机相连接应用服务器,其用于根据报文的消息类型,对所述报文中的DSCP值进行赋值;以及与所述应用服务器相连接的QoS三层交换机,其用于根据报文中的DSCP值,获取当前报文的优先级,并按照所述报文的优先级高低发送报文至控制器。本发明通过根据报文的类型,将系统中报文按照一定的优先级进行调度,在不提高整个系统成本的同时,避免了系统因带宽过小,导致高优先级的报文掉包的现象,进而提高了系统稳定性。
文档编号H04L12/937GK102868645SQ20121036660
公开日2013年1月9日 申请日期2012年9月26日 优先权日2012年9月26日
发明者赵 怡, 朱坚, 闫兴安 申请人:盛科网络(苏州)有限公司