SDN数据平面带状态交换设备、系统及转发处理方法.pdf

上传人:00062****4422 文档编号:1680334 上传时间:2018-07-04 格式:PDF 页数:14 大小:911.83KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510140958.5

申请日:

2015.03.27

公开号:

CN104836753A

公开日:

2015.08.12

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/931申请日:20150327|||公开

IPC分类号:

H04L12/931(2013.01)I

主分类号:

H04L12/931

申请人:

清华大学

发明人:

毕军; 朱树永; 孙晨; 吴承辉

地址:

100084北京市海淀区100084信箱82分箱清华大学专利办公室

优先权:

专利代理机构:

北京聿宏知识产权代理有限公司11372

代理人:

朱绘; 张文娟

PDF下载: PDF下载
内容摘要

本发明公开了一种SDN数据平面带状态交换设备、系统及转发处理方法。所述SDN数据平面带状态交换设备,包括SDN数据平面带状态转发处理器,其包括为多种应用协议设置的状态处理模块和策略模块,所述状态处理模块用于维护数据平面数据包、数据流、连接或者网络的状态,并根据策略模块提供的处理策略确定控制指令和报文处理指令;转发引擎,其对接收的数据报文头部进行解析,根据数据报文头部的信息匹配转发表,把报文发送至对应的状态处理模块,并根据状态处理模块返回的控制指令查询转发表对数据流进行转发。本发明能够在SDN数据平面处理数据报文、数据流、连接和网络状态信息。

权利要求书

权利要求书1.  一种SDN数据平面带状态交换设备,其特征在于,包括:SDN数据平面带状态转发处理器,其包括为多种应用协议设置的状态处理模块和策略模块,所述状态处理模块用于维护数据平面数据包、数据流、连接或者网络的状态,并根据策略模块提供的处理策略确定控制指令和报文处理指令;转发引擎,其对接收的数据报文头部进行解析,根据数据报文头部的信息匹配转发表,把报文发送至对应的状态处理模块,并根据状态处理模块返回的控制指令查询转发表对数据流进行转发。2.  根据权利要求1所述的设备,其特征在于,所述转发引擎通过一个或多个转发表来将报文发送至相应的状态处理模块,所述转发表中设置匹配域和指令域,所述匹配域的内容表示报文匹配区域,所述转发表的指令域中包括将接收的报文转发至状态处理模块中状态表的控制指令。3.  根据权利要求1所述的设备,其特征在于,所述状态处理模块中包括为多种应用协议设置的状态表,所述策略模块中设置与状态表对应的状态转移策略表;所述状态处理模块基于数据平面发生的事件和当前状态查询状态转移策略表,根据所述状态转移策略表确定状态表操作指令,更新所述状态表中数据包、数据流、连接或者网络的状态信息,并确定相应的控制指令和报文处理指令。4.  根据权利要求3所述的设备,其特征在于,所述转发引擎将报文并行发送至状态处理模块中的多个状态表,对多个状态表返回的有冲突的指令进行仲裁后执行。5.  根据权利要求3所述的设备,其特征在于,所述转发引擎可以支持将报文串行发送至状态处理模块中的各个状态表,依次进行状态更新和指令执行。6.  一种SDN交换系统,其特征在于,包括SDN控制器和如权利要求1-5中任一项所述的SDN数据平面带状态交换设备,所述SDN控制器中设置协议过滤表;其中,在转发引擎根据数据报文头部的信息匹配转发表未成功的情况下,SDN交换设备将该报文发送至其SDN控制器,SDN控制器匹配所述协议过滤表来识别该数据流属于哪一种应用协议,并向转发表下发相应的转发表项。7.  根据权利要求6所述的SDN交换系统,其特征在于,所述协议过滤表中设置匹配域和协议域,所述协议过滤表中匹配域的内容表示针对应用协议的报文匹配区域,所述协议域的内容表示报文的协议。8.  一种SDN数据平面带状态转发处理方法,其特征在于,包括以下步骤:转发引擎对接收的报文进行解析并发送至SDN数据平面带状态转发处理器中相应的状态处理模块;状态处理模块基于接收的报文匹配状态表,查询策略模块中的状态转移策略表,根据状态转移策略表确定数据包、数据流、连接或者网络的下一状态、相应的控制指令和报文处理指令;状态处理模块更新所述状态表中数据包、数据流、连接或者网络的状态信息,根据所述报文处理指令对数据流或者数据包进行处理;转发引擎查询转发表对数据流进行转发。9.  根据权利要求8所述的方法,其特征在于,所述转发引擎对接收的报文进行解析并发送的步骤包括:转发引擎根据数据报文头部的信息匹配转发表;在匹配成功的情况下,转发引擎根据转发表项的控制指令将报文转发至相应的状态处理模块;在匹配未成功的情况下,转发引擎将到达数据流的首包上传至SDN控制器,由SDN控制器向转发表下发新的转发表项。10.  根据权利要求8所述的方法,其特征在于,还包括初始化步骤:SDN控制器下发初始化命令预先配置所述状态表中的匹配域;SDN控制器下发初始化命令预先配置所述状态转移策略表中的当前状态域、事件域、下一状态域和策略表指令域的值,构建与应用协议相应的有限状态机。

说明书

说明书SDN数据平面带状态交换设备、系统及转发处理方法
技术领域
本发明涉及互联网技术领域,具体地说,涉及SDN数据平面带状态交换设备、系统及转发处理方法。
背景技术
软件定义网络SDN(Software-Defined Networking)在2010年由美国斯坦福大学Nick McKeown教授和加州大学伯克利分校Scott Shenker教授等共同提出,其出发点是通过对网络控制的抽象重新构建一个转发平面和控制平面分离的网络体系,支持网络功能的不断演进。
软件定义网络将计算机体系结构思想引入网络研究领域,开放性是软件定义网络的本质特性。通过网络设备的开放、控制平面的开放和协议实现的开放,使得网络不再是一个封闭的系统,从而实现网络体系结构的持续演进。软件定义网络的基本思想是不应无限制地纵容网络复杂度的增加,网络复杂度已经越来越难以掌控,需要对网络进行抽象,以屏蔽底层复杂度,为上层提供简单高效的配置与管理。SDN的基本特征有:控制与转发分离,控制平面与转发平面之间的开放接口,逻辑上的集中控制。
OpenFlow协议由斯坦福大学于2008年提出。OpenFlow的基本思想是将传统网络设备中的快速报文转发部分(数据平面)和逻辑路由决策部分(控制平面)进行分离,数据平面驻留在网络设备内部,而控制平面则从网络设备移出集中至控制服务器,双方通过标准化的消息接口来进行通信。同时,在数据平面设计了新的硬件形式----流表(Flow Table),作为网络设备数据平面的抽象模型,提供给外界进行使用,则外界可管控的数据平面统一为Flow Table形式;在控制平面,网络设备的控制逻辑采用集中式分析、计算和运行,通过标准化的消息方式将控制指令发送给网络设备,实现对网络设备的远程控制,以完成传统分布式网络运行模式下的基本功能,如报文接收、报文转发、修改转发表、获取设备状态等。
OpenFlow协议数据平面“匹配+动作”的转发处理范式虽然能够满足一些 协议的需求,但仍然具有较大的局限性。OpenFlow交换机只能提供对报文的匹配处理功能,不能支持对状态信息的处理。在现有的OpenFlow架构中,状态信息只能在控制器上处理。由于交换机和控制器通信带宽和控制器处理能力的瓶颈,把所有的状态信息都在控制器上处理会带来性能和可扩展性的问题。
发明内容
本发明所解决的技术问题之一是在SDN数据平面实现对数据报文、数据流、连接和网络状态信息的处理,解决在交换机和控制器通信带宽和控制器处理能力存在瓶颈的条件下,网络性能受限的缺陷。
本发明的实施例提供了一种SDN数据平面带状态交换设备,包括:
SDN数据平面带状态转发处理器,其包括为多种应用协议设置的状态处理模块和策略模块,所述状态处理模块用于维护数据平面数据包、数据流、连接或者网络的状态,并根据策略模块提供的处理策略确定控制指令和报文处理指令;
转发引擎,其对接收的数据报文头部进行解析,根据数据报文头部的信息匹配转发表,把报文发送至对应的状态处理模块,并根据状态处理模块返回的控制指令查询转发表对数据流进行转发。
在一个实施例中,所述转发引擎通过一个或多个转发表来将报文发送至相应的状态处理模块,所述转发表中设置匹配域和指令域,所述匹配域的内容表示报文匹配区域,所述转发表的指令域中包括将接收的报文转发至状态处理模块中状态表的控制指令。
在一个实施例中,所述状态处理模块中包括为多种应用协议设置的状态表,所述策略模块中设置与状态表对应的状态转移策略表;
所述状态处理模块基于数据平面发生的事件和当前状态查询状态转移策略表,根据所述状态转移策略表确定状态表操作指令,更新所述状态表中数据包、数据流、连接或者网络的状态信息,并确定相应的控制指令和报文处理指令。
在一个实施例中,所述转发引擎将报文并行发送至状态处理模块中的多个状态表,对多个状态表返回的有冲突的指令进行仲裁后执行。
在一个实施例中,所述转发引擎可以支持将报文串行发送至状态处理模块中的各个状态表,依次进行状态更新和指令执行。
本发明的实施例还提供一种SDN交换系统,包括SDN控制器和如上文所述 的SDN数据平面带状态交换设备,所述SDN控制器中设置协议过滤表;
其中,在转发引擎根据数据报文头部的信息匹配转发表未成功的情况下,SDN交换设备将该报文发送至其SDN控制器,SDN控制器匹配所述协议过滤表来识别该数据流属于哪一种应用协议,并向转发表下发相应的转发表项。
在一个实施例中,所述协议过滤表中设置匹配域和协议域,所述协议过滤表中匹配域的内容表示针对应用协议的报文匹配区域,所述协议域的内容表示报文的协议。
本发明的实施例还提供一种SDN数据平面带状态转发处理方法,包括以下步骤:
转发引擎对接收的报文进行解析并发送至SDN数据平面带状态转发处理器中相应的状态处理模块;
状态处理模块基于接收的报文匹配状态表,查询策略模块中的状态转移策略表,根据状态转移策略表确定数据包、数据流、连接或者网络的下一状态、相应的控制指令和报文处理指令;
状态处理模块更新所述状态表中数据包、数据流、连接或者网络的状态信息,根据所述报文处理指令对数据流或者数据包进行处理;
转发引擎查询转发表对数据流进行转发。
在一个实施例中,所述转发引擎对接收的报文进行解析并发送的步骤包括:
转发引擎根据数据报文头部的信息匹配转发表;
在匹配成功的情况下,转发引擎根据转发表项的控制指令将报文转发至相应的状态处理模块;
在匹配未成功的情况下,转发引擎将到达数据流的首包上传至SDN控制器,由SDN控制器向转发表下发新的转发表项。
在一个实施例中,还包括初始化步骤:
SDN控制器下发初始化命令预先配置所述状态表中的匹配域;
SDN控制器下发初始化命令预先配置所述状态转移策略表中的当前状态域、事件域、下一状态域和策略表指令域的值,构建与应用协议相应的有限状态机。
本发明能够在SDN数据平面处理数据报文、数据流、连接和网络状态信息。其中,转发处理器FP能够通过状态表ST查询和存储数据流或者报文的状态信息, 对到达的事件(包括到达的报文或SDN控制器下发的配置信息)作出相应的处理。SDN控制器对转发处理器FP拥有完全控制权。
转发处理器FP提供可编程接口,可以灵活扩展报文处理动作,实现对报文头部或负载的处理,支持对报文4至7层信息的处理,进一步增强数据平面的可编程性。
本发明的实施例能够根据应用灵活设定匹配域、灵活扩展报文处理方式。在SDN控制器中设置协议过滤表,识别报文属于哪一种协议。根据不用的应用协议分别设定状态表的匹配域。SDN控制器根据不同的应用协议通过初始化指令配置状态转移策略表,预先设定数据平面状态转移的有限状态机和相关指令。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明实施例一的SDN数据平面带状态转发处理的原理图;
图2是根据本发明实施例一的SDN交换系统的架构示意图;
图3是根据本发明实施例一的带状态转发抽象SFA原理示意图;
图4是根据本发明实施例二的SDN数据平面带状态转发处理方法的步骤流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。
本发明的实施例针对传统OpenFlow协议的局限性,设计了一种支持SDN数据平面带状态转发处理的技术方案,即带状态转发抽象SFA(Stateful Forwarding Abstraction)技术。本发明的实施例提供一种新的数据平面转发处理范式,通过在SDN数据平面增加转发处理器(Forwarding Processor)和状态表(State Table),实现在数据平面对状态信息的处理。
现有技术中的OpenFlow协议数据平面“匹配+动作”的转发处理范式不能支持数据平面带状态的转发处理,由于OpenFlow流表缺少带状态转发处理的功能,这种处理范式对于很多需要在数据平面处理状态的应用,如带状态防火墙、负载均衡等具有很大的局限性。由于SDN控制器和交换机通信带宽和控制器处理能力的瓶颈,把所有的状态信息都集中在控制器上处理是有很大局限性的。
以下具体说明本实施例中提出的新型数据平面转发处理范式。
本发明的实施例设计了一种“匹配+状态+动作”的新的数据平面转发处理范式,如图1所示。在这个转发处理范式中,本实施例增加了状态表和状态操作指令,支持在数据平面对流或者报文的状态信息进行记录和维护。状态表用于记录流或者报文的状态信息,状态表操作指令用于维护状态表。当一些应用(如带状态防火墙)需要在数据平面处理状态时,根据数据平面的状态信息处理到达的报文,同时状态表根据到达的报文及其它事件(如控制器下发的状态表操作指令)进行更新。这种处理范式可以在交换机上直接处理状态信息,不需要SDN控制器的参与。在这种范式下,数据平面的输入有两部分,一个是输入的流或者报文,另一个是状态信息。它们在SDN控制器下发的转移函数的作用下输出报文和新的状态。其中,转移函数用于表示SDN控制器下发的的状态转移规则和报文处理规则。这样以来,SDN控制器可以为SDN网络中各种应用配置灵活的报文转发和处理策略。
上述功能具体是通过在数据平面增加状态表State Table(ST)来实现。每一个状态表项代表交换机已知的合法的连接。状态表的形式如表1所示。在SFA架构中,交换机为每一种需要记录状态的协议都建立一个状态表。
表1
匹配域状态指令
其中,匹配域字段标识报文/流或者连接的匹配字段,具体到不同的协议其状态表项的具体匹配域可能有所不同。
状态字段表示到达数据报文/流、连接或者网络的状态信息。
指令字段包括三类指令,包括控制指令、状态表操作指令和报文处理指令。其中,控制指令用于实现报文在转发表(或者传统的路由表)、转发处理器FP(Forwarding Processor)和SDN控制器之间的流转,状态表操作指令用于根据到达的报文或者事件对状态进行维护更新,报文处理指令是用来对报文进行处理的 指令。
状态表之间的转换是依据一定的策略进行的,每一种状态表都有对应的状态转移策略表。本实施例中状态转移策略表的结构如表2所示。
表2
当前状态事件下一状态指令
其中,当前状态字段表示数据报文/流、连接或者网络的当前状态。事件字段表示数据平面发生的事件,例如通过监控TCP协议报头的flag字段来判断TCP连接的变化,再比如外部SDN控制器下发配置信息、SDN链路连接状态发生改变。下一状态字段表示数据报文/流、连接或者网络需要更新的状态值。策略表中的指令字段表示对报文的处理动作,例如对报文数据的修改、解析、舍弃等。
需要说明的是,针对交换机不同的应用可在表2中设置不同的状态转发策略,可包括数据报文/流、连接或者网络状态转移规则和报文处理规则。
例如,针对带状态防火墙,需要监控TCP连接状态的变化。可以根据报文携带的flag字段来监控数据报文携带的事件,即能够触发的TCP连接状态的变化的事件。而TCP连接状态的变化则遵循状态转移策略表描述的TCP协议的有限状态机。状态表中同时给出了相关指令,包括状态表操作指令、控制指令和报文处理指令。
为了在SDN架构中区分多种不同的应用,判断到达的数据流报文属于哪一种应用协议,本实施例在SDN控制器中设计了一个协议过滤表,如表3所示。
表3
匹配域协议
其中,匹配域字段表示需要匹配报文的域,协议字段表示SDN控制器判断到达的数据流报文属于哪一种应用协议。针对不同的应用协议,SDN控制器下发相应的流表项,用于将该报文转发至对应的状态表进行处理。
以下详细说明状态转移策略表和状态表的建立、更新机制。
首先,SDN控制器根据不同的应用协议通过初始化指令预先配置状态转移策略表中的全部表项,即设置当前状态字段、事件字段、下一状态字段和指令字段的值,构建与应用协议相应的有限状态机,并预先配置所述状态表中的匹配域字段。
状态表的更新方式有两种,一种是可以根据到达的报文对相应的状态表项进 行更新,另一种事根据SDN控制器发送的配置信息进行更新。
本实施例增加了状态表项的时限(timeout)机制,通过监控时间是否超时来实现状态表项删除。每一个状态表项均有一个空闲时限(idle_timeout)域和硬连接时限(hard_timeout)域,idle_timeout域记录没有报文匹配的时间,hard_timeout域记录表项被插入状态表中的时间,即记录表项建立的时间。一旦空闲时间或者硬连接时间的值超过预设阈值,则该表项被自动删除,同时向SDN控制器发出一个表项被删除的消息,以使得SDN控制器中存储的交换机状态表的内容与交换机状态表的实际内容一致。
如上文所述,由于本实施例中状态表与应用协议相对应,通过设定时限机制可以根据到达数据流的不同协议灵活删除状态表中的表项。
以下以TCP连接为例说明如何判断数据流的状态。本实施例通过监控TCP标识(TCP flag)来记录TCP连接的状态。定义TCP连接的五个连接状态,分别是:监听(LISTEN),新建(NEW),已建立(ESTALBISHED),传输(TRANSFER),将要关闭(CLOING),已关闭(CLOSED)。具体说明如下。
监听(LISTEN),监听是否有连接发起报文。
新建(NEW),当监控到一个连接的首个报文时,连接状态标记为NEW。当监控到TCP flag为SYN时,连接状态更新为NEW。
已建立(ESTALBISHED),表示链接已经建立,同一个连接的报文可正常通过。当监控到TCP连接的SYN ACK报文,连接状态更新为ESTABLISHED。
传输(TRANSFER),报文传输。
将要关闭(CLOING),表示连接将要关闭。如监控到TCP连接的FIN报文,连接状态更新为CLOSING。
已关闭(CLOSED),表示连接已经关闭。如监控到TCP连接的FIN ACK报文,表示连接已经关闭。
此外,由于现有技术中OpenFlow交换机报文处理的匹配域和处理动作是需要预先定义的,不能根据应用的需求灵活扩展,具有一定的局限性。本发明实施例中提出在SDN控制器中设置协议过滤表,可以根据不用的应用协议分别设定匹配域。并且SDN控制器根据不同的应用协议通过初始化指令预先配置状态转移策略表中的全部表项,从而根据不用的应用策略表指令字段的内容,来设定不同的报文处理动作。因此,本发明实施例的具有能够根据应用灵活设定匹配域、 灵活扩展报文处理方式的显著效果。
实施例一
本实施例提供一种SDN交换系统,包括SDN控制器和SDN交换设备。本实施例提供的SDN交换设备是在传统的SDN交换设备中增加SDN数据平面带状态转发处理器FP(Forwarding Processor),通过在数据平面增加智能来实现对状态信息的维护和处理。SDN数据平面带状态转发处理器FP具体可以由CPU、NPU、多核等方式来实现。通过扩展指令实现报文在流表、FP、控制器之间的交互和实现对报文及状态信息的维护和处理。
图2为本实施例中SDN交换系统的架构示意图,图3为SDN交换系统中带状态转发抽象SFA(Stateful Forwarding Abstraction)原理示意图。以下结合图2和图3对本实施例中SDN交换系统的转发处理过程进行详细说明。
如图2所示,SDN交换设备通过多个网络接口连接至SDN网络,多个接口与报文缓存单元连接,进而连接至转发引擎。网络接口与物理链路直接相连,包括了处理相应数据报文的功能,完成网络报文的接收和发送工作,工作在物理层和链路层。到达的数据流经过接口缓存在报文缓存单元中,并由转发引擎确定转发路径。
转发引擎中设置转发表和执行操作模块。其中,转发表包含了能够完成报文正确转发的所有转发信息。转发表在整个转发系统中起着承上启下的作用。转发表由SDN控制器下发,为转发引擎返回正确的转发查找结果,完成报文的转发。执行操作模块用于将数据流发送至网络接口并输出。
如图3所示,转发表中存储由SDN控制器下发的转发表项,用于设置与SDN网络中的应用协议相应的匹配域,以及设置转发指令域。转发指令域的内容用于指示将接收的数据流发送到带状态转发处理器FP的控制指令。
转发引擎决定数据报文的转发路径,具体来说,其对接收的数据报文头部进行解析,然后根据数据报文的分类标识在转发表中进行查找,得到转发操作的目的端口。
转发引擎与转发处理器FP连接。转发处理器FP为SDN数据平面带状态转发处理器,其中设置策略模块和状态处理模块。策略模块包括为SDN网络中多种协议的数据流预先存储状态转移规则和报文处理规则的多个状态转移策略表(State Transition Table)。状态处理模块与所述策略模块连接,状态处理模块包 括与状态转移策略表对应的多个状态表(State Table)。状态表用于记录和维护数据平面流或者报文数据包、数据流、连接或者网络的状态信息。此外,状态表还可记录对状态表进行维护的状态操作指令、实现报文流转的控制指令和对数据流报文进行处理的报文处理指令。
转发处理器FP通过状态表和指令实现在数据平面维护和处理数据包、数据流、连接或者网络的状态信息,和对报文头部和负载信息的处理。转发处理器FP同时提供编程接口,实现对指令的灵活扩展,进一步丰富数据平面的功能和增强数据平面的可编程性。
在具体实施中,转发处理器FP可以基于CPU,GPU,NetFPGA,ASIC多核处理器等多种方式来实现,状态表可以基于RAM和TCAM来实现。
本实施例中提供指令集实现对报文和状态的处理,通过指令的扩展进一步增强数据平面的处理能力。指令集包括控制指令、状态操作指令和报文处理指令。状态表指令字段和策略表指令字段的内容分别为控制指令、状态操作指令和报文处理指令中的一种或多种。
其中,控制指令用于实现报文在转发表、转发处理器FP和SDN控制器之间的流转,包括GOTO_ST(n),GOTO_FT(m)等。
状态操作指令用于根据到达的报文、SDN控制器下发的配置信息等实现状态表的维护和更新,包括INIT,CLEAR,FIND,INSERT,UPDATE,ERASE,ISEMPTY,SIZE等。
报文处理指令用于在转发处理器FP中实现对报文的处理,包括MATCH,ADD,DELETE,MODIFY,DROP,OUTPUT,PARSE,QUEUE等。
本实施例中状态处理模块基于到达数据流的报文查询状态转移策略表,根据所述状态转移规则确定状态操作指令来更新所述状态表中数据流的状态信息,并根据所述报文处理规则确定控制指令和/或报文处理指令来对数据流报文进行转发处理。这样以来,转发处理器FP能够通过状态表ST查询和存储数据流或者报文的状态信息,对到达的事件(包括到达的报文或SDN控制器下发的配置信息)作出相应的处理。本实施中SDN控制器和FP通过异步信息进行通信,对转发处理器FP拥有完全控制权,转发处理器FP提供可编程接口,可以灵活扩展报文处理动作,实现对报文头部或负载的处理,进一步增强数据平面的可编程性。
实施例二
本实施例提供一种SDN数据平面带状态转发处理方法,步骤流程如图4所示。以下以带状态防火墙中TCP连接为示例,结合图3和图4进行详细说明。
在交换机对输入报文进行处理之前,在SDN控制器中预先设置如图3所示的协议过滤表,并由SDN控制器向转发处理器FP下发初始化命令,配置状态转移策略表中的当前状态字段、事件字段、下一状态字段和策略表指令字段,以及状态表中的匹配域字段,构建与应用协议相应的有限状态机。如图3所示,根据SDN网络中的不同应用协议设置m组对应的状态转移策略表和状态表。状态转移策略表中实际上设置的是带状态防火墙的状态转移规则和报文处理规则。例如,在状态转移策略表1中存储了允许(ALLOW)发生状态转换的各种情况,以及在输入TCP连接发生何种事件而对应何种状态变化。类似的,也需要存储不允许(DROP)发生状态转换的各种情况(图3中未示出)。
当输入报文到达后,转发引擎对接收的数据流报文进行解析并发送至SDN数据平面转发处理器中与报文协议相应的状态处理模块。具体来说,如图4所示,转发引擎根据数据报文头部的信息匹配转发表(步骤S401)。在匹配成功的情况下,转发引擎根据转发表项的控制指令GOTO_ST(n)将报文转发至相应的状态处理模块(步骤S402)。
在匹配未成功的情况下,转发引擎将到达数据流的首包上传至SDN控制器(步骤S403),由SDN控制器向转发表下发新的转发表项(步骤S404)。具体来说,SDN控制器获取转发引擎上传的数据包输入(Packet-in)报文中数据流的首包信息,通过匹配域查询该报文属于哪种应用协议,然后为转发表下发转发表项。
如图3中的流表0所示,转发表项用于设置与SDN网络中的应用协议相应的匹配域,以及设置用于指示将接收的数据流发送到带状态转发处理器FP的状态处理模块的控制指令。其中,GOTO_ST(1)表示将数据报文传入状态表1。
在步骤S402完成之后,状态处理模块基于接收的报文匹配状态表,查询策略模块中的状态转移策略表,根据状态转移策略表确定下一状态、相应的控制指令和报文处理指令(步骤S405)。在图3的示例中,状态表1根据当前状态和输入事件(如TCP报头的flag),查询对应的状态转换策略表1,得出下一个状态和相应的处理指令。然后,状态处理模块更新所述状态表中数据包、数据流、连接或者网络的状态信息,根据所述报文处理指令对数据流或者数据包进行处理 (步骤S406)。状态处理模块将报文发送至转发引擎,转发引擎查询转发表对数据流进行转发(步骤S407)。
在图3的示例中,转发引擎中设置一个或多个转发表。状态表1的控制指令GOTO_FT(n)表示将报文传送至转发表(流表n),报文可在转发表中继续处理转发,最终由执行操作模块输出到交换机的目的端口。
需要说明的是,在步骤S402和步骤S405中,有并行处理和串行处理两种方式。转发引擎可以将报文并行发送至状态处理模块中的多个状态表,对多个状态表返回的有冲突的指令进行仲裁后执行。还可以支持将报文串行发送至状态处理模块中的各个状态表,依次进行状态更新和指令执行。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

SDN数据平面带状态交换设备、系统及转发处理方法.pdf_第1页
第1页 / 共14页
SDN数据平面带状态交换设备、系统及转发处理方法.pdf_第2页
第2页 / 共14页
SDN数据平面带状态交换设备、系统及转发处理方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《SDN数据平面带状态交换设备、系统及转发处理方法.pdf》由会员分享,可在线阅读,更多相关《SDN数据平面带状态交换设备、系统及转发处理方法.pdf(14页珍藏版)》请在专利查询网上搜索。

本发明公开了一种SDN数据平面带状态交换设备、系统及转发处理方法。所述SDN数据平面带状态交换设备,包括SDN数据平面带状态转发处理器,其包括为多种应用协议设置的状态处理模块和策略模块,所述状态处理模块用于维护数据平面数据包、数据流、连接或者网络的状态,并根据策略模块提供的处理策略确定控制指令和报文处理指令;转发引擎,其对接收的数据报文头部进行解析,根据数据报文头部的信息匹配转发表,把报文发送至对。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1