Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR DELIVERING FLOW TABLE IN SDN, OF CONTROLLER, AND OF SWITCH
Document Type and Number:
WIPO Patent Application WO/2015/027739
Kind Code:
A1
Abstract:
Disclosed are a method and system for delivering a flow table in a software defined network (SDN), an OF controller, and an OF switch. The method comprises: an OF switch receiving a flow table entry modification message sent by an OF controller, the message carrying a table number, a flow table entry, and a buffer mark; and the OF switch storing, in a control module of the OF switch, the table number and the flow table entry in the flow table entry modification message according to an indication of the buffer mark.

Inventors:
LIANG QIANDENG (CN)
YOU JIANJIE (CN)
WAN WEI (CN)
HU FANGWEI (CN)
Application Number:
PCT/CN2014/080420
Publication Date:
March 05, 2015
Filing Date:
June 20, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
International Classes:
H04L45/02; H04L45/28
Foreign References:
CN102946325A2013-02-27
CN102946365A2013-02-27
CN102904975A2013-01-30
Attorney, Agent or Firm:
CHINA PAT INTELLECTUAL PROPERTY OFFICE (CN)
北京派特恩知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种软件定义网络 SDN中流表下发的方法, 该方法包括: 开放流 OF交换机接收 OF控制器发送的流表条目修改消息, 所述消 息中携带表号、 流表条目和缓存标记;

依据所述缓存标记的指示,所述 OF交换机在自身的控制模块保存所 述流表条目修改消息中的表号和流表条目。

2、 根据权利要求 1所述 SDN中流表下发的方法, 其中, 所述流表 条目修改消息中还携带第一空闲老化周期。

3、 根据权利要求 1所述 SDN中流表下发的方法, 其中, 在所述 OF 控制器发送流表条目修改消息之前, 该方法还包括:

所述 OF交换机与所述 OF控制器进行流表缓存能力协商, 所述 OF 交换机将自身是否支持流表的缓存功能通知给所述 OF控制器。

4、 根据权利要求 3所述 SDN中流表下发的方法, 其中, 所述 OF交 换机与所述 OF控制器进行流表缓存能力协商, 包括:

所述 OF 交换机接收所述 OF控制器发送的流表特征请求 Multipart Table Features Request消息, 消息中携带表号;

所述 OF交换机向所述 OF控制器返回流表特征响应 Multipart Table Features Reply消息, 在所述 Multipart Table Features Reply消息的流表特 征能力属性字段中携带流表条目缓存能力标记, 用以指示是否支持对应 表号的流表的流表条目缓存功能。

5、 根据权利要求 4所述 SDN中流表下发的方法, 其中, 所述流表 特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周

6、根据权利要求 1至 5任一项所述 SDN中流表下发的方法,其中, 该方法还包括: 当所述 OF交换机的转发模块接收到报文时,查询所述转发模块的流 表中是否存在匹配的流表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转发; 如果不存在, 则所述转发模块发送所述报文、 表号、 上送原因给所 述 OF交换机的控制模块;所述控制模块根据接收的表号和自身保存的流 表条目缓存标记, 在本地对应的流表中查询缓存的流表条目, 如果查询 到对应的流表条目, 则将查询所得流表条目添加到所述转发模块对应的 流表中, 如果没有查询到对应的流表条目, 则将所述控制模块接收到的 报文、 表号、 上送原因填充到报文入 Packet-in消息中发送给所述 OF控 制器。

7、 根据权利要求 6所述 SDN中流表下发的方法, 其中, 该方法还 包括:根据所述第二空闲老化周期对所述 OF交换机的转发模块中缓存标 记指示可以缓存的流表条目进行空闲老化处理;根据所述 OF控制器发送 相应流表条目时设置的所述第一空闲老化周期对所述控制模块缓存的相 应流表条目进行空闲老化处理;

其中, 所述第一空闲老化周期的时长大于所述第二空闲老化周期的 时长。

8、 一种软件定义网络 SDN中流表下发的方法, 该方法包括: 开放流 OF控制器根据本地策略决定为下发的流表条目设置缓存标 记时, 向 OF交换机发送流表条目修改消息, 所述消息中携带表号、 流表 条目和缓存标记; 所述缓存标记用于指示将所述流表条目缓存在所述 OF 交换机的控制模块本地。

9、 根据权利要求 8所述 SDN中流表下发的方法, 其中, 所述流表 条目修改消息中还携带第一空闲老化周期。

10、根据权利要求 8所述 SDN中流表下发的方法, 其中,在所述 OF 控制器发送流表条目修改消息之前, 该方法还包括: 所述 OF控制器与所述 OF交换机进行流表缓存能力协商, 所述 OF 控制器获知所述 OF交换机是否支持流表的缓存功能。

11、 根据权利要求 10所述 SDN中流表下发的方法, 其中, 所述 OF 控制器与所述 OF交换机进行流表缓存能力协商, 包括:

所述 OF控制器向所述 OF交换机发送流表特征请求 Multipart Table Features Request消息, 消息中携带表号;

所述 OF控制器接收所述 OF 交换机返回的流表特征响应 Multipart Table Features Reply消息,在所述 Multipart Table Features Reply消息的流 表特征能力属性字段中携带流表条目缓存能力标记, 用以指示是否支持 对应表号的流表的流表条目缓存功能。

12、根据权利要求 11所述 SDN中流表下发的方法, 其中, 所述流表 特征能力属性字段中还携带支持缓存功能的流表默认的第二空闲老化周

13、 根据权利要求 8至 12任一项所述 SDN中流表下发的方法, 其 中, 该方法还包括:

当所述 OF控制器收到所述 OF交换机发送的携带有报文、 表号、 上 送原因的报文入 Packet-in消息时, 所述 OF控制器解析所述 Packet-in消 息, 将所述 Packet-in消息中的报文交由所述 OF控制器的本地协议栈或 应用程序 APP进行处理。

14、 一种 OF交换机, 包括控制模块, 配置为接收 OF控制器发送的 流表条目修改消息, 所述消息中携带表号、 流表条目和缓存标记; 依据 所述缓存标记的指示, 保存所述流表条目修改消息中的表号和流表条目 在所述控制模块本地。

15、 根据权利要求 14所述 OF交换机, 其中, 所述流表条目修改消 息中还携带第一空闲老化周期。

16、根据权利要求 14所述 OF交换机,其中,所述控制模块配置为, 在接收所述流表条目修改消息之前,与所述 OF控制器进行流表缓存能力 协商, 将所述 OF交换机自身是否支持流表的缓存功能通知给所述 OF控 制器。

17、根据权利要求 16所述 OF交换机,其中,所述控制模块配置为, 接收所述 OF控制器发送的流表特征请求 Multipart Table Features Request 消息, 消息中携带表号; 向所述 OF控制器返回流表特征响应 Multipart Table Features Reply消息,在所述 Multipart Table Features Reply消息的流 表特征能力属性字段中携带流表条目缓存能力标记, 用以指示是否支持 对应表号的流表的流表条目缓存功能。

18、 根据权利要求 17所述 OF交换机, 其中, 所述流表特征能力属 性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

19、 根据权利要求 14至 18任一项所述 OF交换机, 其中, 所述 OF 交换机还包括转发模块, 配置为在接收到报文时, 查询所述转发模块的 流表中是否存在匹配的流表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转发; 如果不存在, 则所述转发模块发送所述报文、 表号、 上送原因给所 述 OF交换机的控制模块; 相应的, 所述控制模块配置为, 根据接收的表 号和自身保存的流表条目缓存标记, 在本地对应的流表中查询缓存的流 表条目, 如果查询到对应的流表条目, 则将查询所得流表条目添加到所 述转发模块对应的流表中, 如果没有查询到对应的流表条目, 则将所述 控制模块接收到的报文、 表号、 上送原因填充到报文入 Packet-in消息中 发送给所述 OF控制器。

20、根据权利要求 19所述 OF交换机,其中,所述控制模块配置为, 根据所述第二空闲老化周期对所述 OF 交换机的转发模块中缓存标记指 示可以缓存的流表条目进行空闲老化处理;根据所述 OF控制器发送相应 流表条目时设置的所述第一空闲老化周期对所述控制模块缓存的相应流 表条目进行空闲老化处理;

其中, 所述第一空闲老化周期的时长大于所述第二空闲老化周期的 时长。

21、 一种 OF控制器, 包括: 发送模块, 配置为根据本地策略决定为 下发的流表条目设置缓存标记时, 向 OF交换机发送流表条目修改消息, 所述消息中携带表号、 流表条目和缓存标记; 所述缓存标记用于指示将 所述流表条目缓存在所述 OF交换机的控制模块本地。

22、 根据权利要求 21所述 OF控制器, 其中, 所述流表条目修改消 息中还携带第一空闲老化周期。

23、 根据权利要求 21所述 OF控制器, 其中, 还包括: 协商模块, 配置为在所述发送模块发送流表条目修改消息之前,与所述 OF交换机进 行流表缓存能力协商,所述协商模块获知所述 OF交换机是否支持流表的 缓存功能。

24、根据权利要求 23所述 OF控制器,其中,所述协商模块配置为, 向所述 OF交换机发送流表特征请求 Multipart Table Features Request消息 , 消息中携带表号;接收所述 OF交换机返回的流表特征响应 Multipart Table Features Reply消息, 在所述 Multipart Table Features Reply消息的流表特 征能力属性字段中携带流表条目缓存能力标记, 用以指示是否支持对应 表号的流表的流表条目缓存功能。

25、 根据权利要求 24所述 OF控制器, 其中, 所述流表特征能力属 性字段中还携带支持缓存功能的流表默认的第二空闲老化周期。

26、 根据权利要求 21至 25任一项所述 OF控制器, 其中, 还包括接 收处理模块, 配置为在收到所述 OF交换机发送的携带有报文、 表号、 上 送原因的 4艮文入 Packet-in 消息时, 解析所述 Packet-in 消息, 将所述 Packet-in消息中的 4艮文交由所述 OF控制器的本地协议栈或应用程序 APP 进行处理。 27、 一种 SDN中流表下发的系统, 包括权利要求 14至 20任一项所 述的 OF交换机、 以及权利要求 21至 26任一项所述的 OF控制器, 所述 OF控制器,配置为根据本地策略决定为下发的流表条目设置缓 存标记时, 向所述 OF交换机发送流表条目修改消息, 所述消息中携带表 号、 流表条目和缓存标记;

所述 OF交换机, 配置为接收所述流表条目修改消息,依据所述缓存 标记的指示, 在自身的控制模块保存所述流表条目修改消息中的表号和 流表条目。

28、 一种计算机可读存储介质, 所述存储介质包括一组计算机可执 行指令, 所述指令用于执行权利要求 1-7任一项所述的 SDN中流表下发 的方法。

29、 一种计算机可读存储介质, 所述存储介质包括一组计算机可执 行指令,所述指令用于执行权利要求 8-13任一项所述的 SDN中流表下发 的方法。

Description:
一种 SDN中流表下发的方法和系统、 OF控制器和 OF交换机 技术领域

本发明涉及软件定义网络( SDN, Software Defined Network )架构网络 通信领域, 尤其涉及一种 SDN中流表下发的方法。 背景技术

由于现在的网络暴露出了越来越多的弊病以及 人们对网络性能的需求 越来越高, 因此不得不把很多复杂功能加入到路由器的体 系结构当中, 例 如开放式最短路径优先 (OSPF, Open Shortest Path First )、 边界网关协议 ( BGP, Border Gateway Protocol ), 组播、 区分服务、 流量工程、 网络地址 转换( NAT, Network Address Translation )、防火墙、多协议标签交换( MPLS, Multi-Protocol Label Switching )等等。这就使得路由器等交换设备越来越臃 肿而且性能提升的空间越来越小。

然而与网络领域的困境截然不同的是, 计算机领域实现了日新月异的 发展。 仔细回顾计算机领域的发展, 不难发现其关键在于计算机领域找到 了一种简单可用的硬件底层(x86指令集)。 由于有了这样一种公用的硬件 底层, 因此在软件方面, 不论是应用程序还是操作系统都取得了飞速的 发 展。 现在很多主张重新设计计算机网络体系结构的 人士认为: 网络可以复 制计算机领域的成功来解决现在网络所遇到的 所有问题。 在这种思想的指 导下, 将来的网络必将是这样的: 底层的数据通路(交换机、 路由器)是 "哑的、 简单的、 最小的", 并定义一个对外开放的关于流表的公用的应用 程序编程接口 (API, Application Programming Interface ), 同时采用控制器 来控制整个网络。未来的研究人 就可以在控制器上自由的调用底层的 API 来编程, 从而实现网络的创新。 基于上述的理念, 出现了软件定义网络 ( SDN , Software Defined Network ), SDN的核心技术为 OpenFlow(开放流,简称 OF )协议, OpenFlow 协议应用架构如图 1 所示, 通过将网络设备控制面 (包含 OpenFlow Controller ) 与数据面 (包含 OpenFlow Capable Switch )分离开来, 从而实 现了网络流量的灵活控制, 为核心网络及应用的创新提供了良好的平台。

OpenFlow协议用来描述控制器和交换机之间交互 用信息的标准, 以 及控制器和交换机的接口标准。协议的核心部 分是用于 OpenFlow协议信息 结构的集合。

OpenFlow流表 (图 3所示)或经过编排的多个流表级联而成管道 来 配置交换机转发路径 (图 2所示), 流表条目由匹配字段、 计数器和指令集 等如下几个字段构成:

其中 , Match Fields是报文匹配的输入关键字, 用于匹配一条流表项; 计数器是用于管理用的各种统计信息; 指令集( Instructions )是指对报文的 操作指令, 包括丢弃、 转发报文到指定端口、 设置报文头部字段值、 增加 封装标签等; Priority是指流表条目的匹配优先级; Timeouts是指流表条目 的老化时间; Cookie是由控制器选择的不透明数据值。动作集 (Action Set ) 和每个 4艮文相关联, 它在流水线的多个流表之间传递并被各流表的 指令所 修改, 直到流水线处理结束, 形成最终的动作集。

在电信网络中, 路由条目非常多, 一般都是十万甚至百万的数量级, 控制器或 APP (应用程序 )通过动态路由协议学到全网路由后如果将表 这些路由信息的流表条目全部下发给各个 OF交换机, 对于 OF交换机的流 表容量要求就非常高, 实际上在一段时间内可能仅有少量路由流表条 目有 流量。 如果 OF控制器能够实现按需下发路由流表条目, 并让 OF交换机使 用较短时间周期的空闲老化, 就能在有限时间内有效的将控制器上的路由 信息集缩小映射到 OF交换机上, 缓解 OF交换机路由流表条目容量指标的 压力, 从而实现超出 OF交换机指标的路由流表条目容量。 然而, 现有技术 还无法提供针对上述技术问题的解决方案。 本申请的发明人在实践过程中 发现, 未匹配路由流表条目的流量首包上送, 触发控制器下发 OF交换机所 需的路由信息是实现该目的的主要方法。但是 该方法因为控制器感应 OF交 换机需求下发路由表条目的时延较长,会导致 大量的报文上送, 消耗 OF交 换机和控制器之间的宝贵带宽。 所以希望能够能进一步优化。 目前很多 OF 交换机采用分布式中央处理器( CPU, Central Processing Unit )架构的实现, 控制平面和转发平面分离, 控制平面由单独的 CPU实现, 拥有比转发平面 更丰富的内存资源, 在这种实现架构的 OF交换机上, 提出了本发明。 发明内容

为解决现有存在的技术问题, 本发明实施例提供一种 SDN中流表下发 的方法。

本发明实施例提供一种 SDN中流表下发的方法, 该方法包括:

OF交换机接收 OF控制器发送的流表条目修改消息, 所述消息中携带 表号、 流表条目和缓存标记;

依据所述缓存标记的指示,所述 OF交换机在自身的控制模块保存所述 流表条目修改消息中的表号和流表条目。

上述方案中, 所述流表条目修改消息中还携带第一空闲老化 周期。 上述方案中,在所述 OF控制器发送流表条目修改消息之前, 该方法还 包括:

所述 OF交换机与所述 OF控制器进行流表缓存能力协商, 所述 OF交 换机将自身是否支持流表的缓存功能通知给所 述 OF控制器。

上述方案中,所述 OF交换机与所述 OF控制器进行流表缓存能力协商, 包括: 所述 OF 交换机接收所述 OF控制器发送的流表特征请求(Multipart Table Features Request ) 消息, 消息中携带表号;

所述 OF交换机向所述 OF控制器返回流表特征响应 (Multipart Table Features Reply ) 消息, 在所述 Multipart Table Features Reply消息的流表特 征能力属性字段中携带流表条目缓存能力标记 , 用以指示是否支持对应表 号的流表的流表条目缓存功能。

上述方案中, 所述流表特征能力属性字段中还携带支持缓存 功能的流 表默认的第二空闲老化周期。

上述方案中, 该方法还包括:

当所述 OF交换机的转发模块接收到报文时,查询所述 发模块的流表 中是否存在匹配的流表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转 发; 如果不存在, 则所述转发模块发送所述报文、 表号、 上送原因给所述 OF交换机的控制模块; 所述控制模块根据接收的表号和自身保存的流 表条 目缓存标记, 在本地对应的流表中查询缓存的流表条目, 如果查询到对应 的流表条目, 则将查询所得流表条目添加到所述转发模块对 应的流表中, 如果没有查询到对应的流表条目,则将所述控 制模块接收到的报文、表号、 上送原因填充到报文入 Packet-in消息中发送给所述 OF控制器。

上述方案中, 该方法还包括:才 据所述第二空闲老化周期对所述 OF交 换机的转发模块中缓存标记指示可以缓存的流 表条目进行空闲老化处理; 根据所述 OF 控制器发送相应流表条目时设置的所述第一空 闲老化周期对 所述控制模块缓存的相应流表条目进行空闲老 化处理;

其中, 所述第一空闲老化周期的时长大于所述第二空 闲老化周期的时 长。

本发明实施例还提供一种 SDN中流表下发的方法, 该方法包括:

OF 控制器根据本地策略决定为下发的流表条目设 置缓存标记时, 向 OF交换机发送流表条目修改消息, 所述消息中携带表号、 流表条目和缓存 标记;所述缓存标记用于指示将所述流表条目 缓存在所述 OF交换机的控制 模块本地。

上述方案中, 所述流表条目修改消息中还携带第一空闲老化 周期。 上述方案中,在所述 OF控制器发送流表条目修改消息之前, 该方法还 包括:

所述 OF控制器与所述 OF交换机进行流表缓存能力协商, 所述 OF控 制器获知所述 OF交换机是否支持流表的缓存功能。

上述方案中,所述 OF控制器与所述 OF交换机进行流表缓存能力协商, 包括:

所述 OF控制器向所述 OF交换机发送 Multipart Table Features Request 消息, 消息中携带表号;

所述 OF控制器接收所述 OF 交换机返回的 Multipart Table Features Reply消息,在所述 Multipart Table Features Reply消息的流表特征能力属性 字段中携带流表条目缓存能力标记, 用以指示是否支持对应表号的流表的 流表条目缓存功能。

上述方案中, 所述流表特征能力属性字段中还携带支持缓存 功能的流 表默认的第二空闲老化周期。

上述方案中, 该方法还包括:

当所述 OF控制器收到所述 OF交换机发送的携带有报文、 表号、 上送 原因的报文入 Packet-in消息时, 所述 OF控制器解析所述 Packet-in消息, 将所述 Packet-in消息中的报文交由所述 OF控制器的本地协议栈或应用程 序 APP进行处理。

本发明实施例还提供一种 OF交换机, 包括控制模块, 配置为接收 OF 控制器发送的流表条目修改消息, 所述消息中携带表号、 流表条目和缓存 标记; 依据所述缓存标记的指示, 保存所述流表条目修改消息中的表号和 流表条目在所述控制模块本地。

上述方案中, 所述流表条目修改消息中还携带第一空闲老化 周期。 上述方案中, 所述控制模块配置为, 在接收所述流表条目修改消息之 前, 与所述 OF控制器进行流表缓存能力协商, 将所述 OF交换机自身是否 支持流表的缓存功能通知给所述 OF控制器。

上述方案中, 所述控制模块配置为, 接收所述 OF 控制器发送的 Multipart Table Features Request消息, 消息中携带表号; 向所述 OF控制器 返回 Multipart Table Features Reply消息, 在所述 Multipart Table Features Reply消息的流表特征能力属性字段中携带流表 目缓存能力标记,用以指 示是否支持对应表号的流表的流表条目缓存功 能。

上述方案中, 所述流表特征能力属性字段中还携带支持缓存 功能的流 表默认的第二空闲老化周期。

上述方案中,所述 OF交换机还包括转发模块,配置为在接收到报 时, 查询所述转发模块的流表中是否存在匹配的流 表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转 发; 如果不存在, 则所述转发模块发送所述报文、 表号、 上送原因给所述

OF交换机的控制模块; 相应的, 所述控制模块配置为, 根据接收的表号和 自身保存的流表条目缓存标记, 在本地对应的流表中查询缓存的流表条目, 如果查询到对应的流表条目, 则将查询所得流表条目添加到所述转发模块 对应的流表中, 如果没有查询到对应的流表条目, 则将所述控制模块接收 到的报文、 表号、 上送原因填充到报文入 Packet-in消息中发送给所述 OF 控制器。

上述方案中, 所述控制模块配置为, 根据所述第二空闲老化周期对所 述 OF 交换机的转发模块中缓存标记指示可以缓存的 流表条目进行空闲老 化处理;根据所述 OF控制器发送相应流表条目时设置的所述第一 闲老化 周期对所述控制模块缓存的相应流表条目进行 空闲老化处理; 其中, 所述第一空闲老化周期的时长大于所述第二空 闲老化周期的时 长。

本发明实施例还提供一种 OF控制器, 包括: 发送模块, 配置为根据本 地策略决定为下发的流表条目设置缓存标记时 ,向 OF交换机发送流表条目 修改消息, 所述消息中携带表号、 流表条目和缓存标记; 所述缓存标记用 于指示将所述流表条目缓存在所述 OF交换机的控制模块本地。

上述方案中, 所述流表条目修改消息中还携带第一空闲老化 周期。 上述方案中, 所述 OF控制器还包括: 协商模块, 配置为在所述发送模 块发送流表条目修改消息之前, 与所述 OF交换机进行流表缓存能力协商, 所述协商模块获知所述 OF交换机是否支持流表的缓存功能。

上述方案中, 所述协商模块配置为, 向所述 OF 交换机发送 Multipart Table Features Request消息, 消息中携带表号; 接收所述 OF交换机返回的 Multipart Table Features Reply消息 ,在所述 Multipart Table Features Reply消 息的流表特征能力属性字段中携带流表条目缓 存能力标记, 用以指示是否 支持对应表号的流表的流表条目缓存功能。

上述方案中, 所述流表特征能力属性字段中还携带支持缓存 功能的流 表默认的第二空闲老化周期。

上述方案中, 所述 OF控制器还包括接收处理模块, 配置为在收到所述 OF交换机发送的携带有报文、 表号、 上送原因的报文入 Packet-in消息时, 解析所述 Packet-in消息, 将所述 Packet-in消息中的 4艮文交由所述 OF控制 器的本地协议栈或应用程序 APP进行处理。

本发明实施例还提供一种 SDN中流表下发的系统, 包括上述的 OF交 换机、 以及上述的 OF控制器,

所述 OF控制器,配置为根据本地策略决定为下发的 表条目设置缓存 标记时, 向所述 OF交换机发送流表条目修改消息, 所述消息中携带表号、 流表条目和缓存标记; 所述 OF交换机, 配置为接收所述流表条目修改消息,依据所述 缓存标 记的指示, 在自身的控制模块保存所述流表条目修改消息 中的表号和流表 条目。

本发明实施例还提供了一种计算机可读存储介 质, 所述存储介质包括 一组计算机可执行指令, 所述指令用于执行前述实施例中 OF 交换机侧的 SDN中流表下发的方法。

本发明实施例还提供了一种计算机可读存储介 质, 所述存储介质包括 一组计算机可执行指令, 所述指令用于执行前述实施例中 OF 控制器侧的 SDN中流表下发的方法。

本发明实施例,由 OF控制器将学习到的或静态配置的路由根据一 的 策略批量下发到 OF交换机控制平面缓存, 然后由 OF交换机转发平面的未 匹配路由流表条目的流量上送触发在 OF 交换机控制平面的缓存路由流表 中查找对应的流表条目, 查到后直接下发转发平面的路由流表, 并根据需 求启动短周期的空闲老化定时器, 同时不构造 Packet-in报文上送控制器; 如果查不到, 就构造 Packet-in报文上送控制器处理。 通过本发明实施例, OF控制器能够实现按需下发路由流表条目, 并让 OF交换机使用较短时间 周期的空闲老化, 就能在有限时间内有效的将控制器上的路由信 息集缩小 映射到 OF交换机上, 缓解 OF交换机路由流表条目容量指标的压力, 从而 实现超出 OF交换机指标的路由流表条目容量;本发明实 例还能降低控制 器感应 OF交换机需求下发路由表条目的时延,从而降 OF交换机和控制 器之间的带宽消耗。 附图说明

图 1为现有技术中 OpenFlow协议应用架构图;

图 2为现有技术的 4艮文流通过 OpenFlow处理管道的示意图; 图 3为现有技术中基于每个表的报文处理示意图 图 4本发明实施例的一 SDN中流表下发的方法流程图;

图 5为本发明实施例的流表缓存能力协商的流程 ;

图 6为本发明实施例的另一 SDN中流表下发的方法流程图;

图 7为本发明实施例的 OF交换机接收到报文后的处理流程图; 图 8为本发明实施例的一种 SDN中流表下发的系统结构示意图。 具体实施方式

下面结合附图和具体实施例对本发明的技术方 案进一步详细阐述。

本发明实施例提供的一种 OF交换机侧的 SDN中流表下发的方法, 如 图 4所示, 该方法主要包括:

步骤 401 , OF交换机接收 OF控制器发送的流表条目修改消息, 所述 消息中携带表号、 流表条目和缓存标记;

较佳的, 所述流表条目修改消息中还携带第一空闲老化 周期, 所述第 一空闲老化周期为所述 OF控制器为所述 OF交换机设置的控制模块内的流 表条目的老化周期。

步骤 402, 依据所述缓存标记的指示, 所述 OF交换机在自身的控制模 块保存所述流表条目修改消息中的表号和流表 条目。

作为一种优选实施方式,在所述 OF控制器发送流表条目修改消息之前, 该方法还包括: 所述 OF交换机与所述 OF控制器进行流表缓存能力协商, 所述 OF交换机将自身是否支持流表的缓存功能通知 所述 OF控制器。

其中, 所述 OF交换机与所述 OF控制器进行流表缓存能力协商, 如图 5所示, 包括:

步骤 501 , OF交换机接收 OF控制器发送的流表特征请求(Multipart Table Features Request ) 消息, 消息中携带表号;

步骤 502, OF交换机向 OF控制器返回流表特征响应 ( Multipart Table Features Reply ) 消息, 在 Multipart Table Features Reply消息的流表特征能 力属性字段中携带流表条目缓存能力标记, 用以指示是否支持对应表号的 流表的流表条目缓存功能。

较佳的 , 所述流表特征能力属性字段中还携带支持缓存 功能的流表默 认的第二空闲老化周期。

较佳的, 可以在流表特征能力属性字段中新增 OFPTC— CACHE参数, 该 OFPTC— CACHE参数, 即作为流表条目缓存能力标记, 还可用于设置第 二空闲老化周期。

作为一种优选实施方式, 该方法还包括:

当 OF交换机的转发模块接收到报文时,查询转发 块的流表中是否存 在匹配的流表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转 发; 如果不存在, 则转发模块发送所述报文、 表号、 上送原因给 OF交换机 的控制模块; 控制模块根据接收的表号和自身保存的流表条 目缓存标记, 在本地对应的流表中查询缓存的流表条目, 如果查询到对应的流表条目 , 则将查询所得流表条目添加到转发模块对应的 流表中, 如果没有查询到对 应的流表条目, 则将控制模块接收到的报文、 表号、 上送原因填充到报文 入(Packet-in ) 消息中发送给 OF控制器。

较佳的, 该方法还包括:根据所述第二空闲老化周期对 所述 OF交换机 的转发模块中缓存标记指示可以缓存的流表条 目进行空闲老化处理, 删除 老化的流表条目, 删除时所述转发模块中的流表条目将统计数据 报给所述 控制模块缓存的相应流表条目累计相关统计数 据;根据所述 OF控制器发送 相应流表条目时设置的所述第一空闲老化周期 对所述控制模块缓存的相应 流表条目进行空闲老化处理, 删除老化的流表条目;

其中, 所述第一空闲老化周期的时长是才 据第二空闲老化周期的时长 进行设置, 要求第一空闲老化周期的时长大于第二空闲老 化周期的时长。 较佳的, 第一空闲老化周期的时长至少为第二空闲老化 周期的时长的两倍。 由于所述第二空闲老化周期是 OF交换机向 OF控制器推荐的, OF控 制器根据所述第二空闲老化周期设置第一空闲 老化周期, 并设置第一空闲 老化周期的时长大于第二空闲老化周期的时长 ,从而使得在 OF交换机转发 面的流表条目在空闲时可以更早老化, 节省转发模块的表空间, 而在 OF交 换机控制模块的缓存的流表条目在空闲时可以 稍缓老化, 以便在匹配该流 表条目的流量能及时在转发模块流表条目没有 添加或已经老化时触发 OF 交换机控制模块下发该流表条目到转发模块, 避免总是将构造报文入 ( Packet-in ) 消息发送给 OF控制器, 来触发从 OF控制器下发相关流表条 目。

本发明实施例提供的一种 OF控制器侧的 SDN中流表下发的方法, 主 要包括: OF 控制器根据本地策略决定为下发的流表条目设 置缓存标记时, 向 OF交换机发送流表条目修改消息, 所述消息中携带表号、流表条目和缓 存标记;所述缓存标记用于指示将所述流表条 目缓存在所述 OF交换机的控 制模块本地。

优选的, 所述流表条目修改消息中还携带第一空闲老化 周期, 所述第 一空闲老化周期为所述 OF控制器为所述 OF交换机设置的控制模块内的流 表条目的老化周期。

作为一种优选实施方式,在所述 OF控制器发送流表条目修改消息之前, 该方法还包括: OF控制器与 OF交换机进行流表缓存能力协商, OF控制器 获知 OF交换机是否支持流表的缓存功能。

其中, 所述 OF控制器与 OF交换机进行流表缓存能力协商, 包括: OF控制器向 OF交换机发送 Multipart Table Features Request消息, 消 息中携带表号;

OF控制器接收 OF交换机返回的 Multipart Table Features Reply消息, 在 Multipart Table Features Reply消息的流表特征能力属性字段中携带流表 条目缓存能力标记, 用以指示是否支持对应表号的流表的流表条目 缓存功 3匕。

需要说明的是, 当流表条目缓存能力标记指示对应表号的流表 不支持 流表条目缓存功能时, OF 控制器下发对应的流表条目时不携带缓存标记 ; 当流表条目缓存能力标记指示对应表号的流表 支持流表条目缓存功能时, OF控制器下发对应的流表条目时携带相应的缓 标记。 缓存标记可以根据 OF控制器的本地策略进行设置。

较佳的 , 所述流表特征能力属性字段中还携带支持缓存 功能的流表默 认的第二空闲老化周期,所述第二空闲老化周 期为所述 OF交换机的转发模 块内的流表条目的老化周期。

作为一种优选实施方式, 该方法还包括:

当 OF控制器收到 OF 交换机发送的携带有报文、 表号、 上送原因的 Packet-in消息时, OF控制器解析所述 Packet-in消息, 将所述 Packet-in消 息中的 4艮文交由 OF控制器的本地协议栈或应用程序 ( APP )进行处理。

作为一种优选实施方式, 该方法还包括: OF控制器向 OF交换机下发 流表条目时设置相应流表条目的第一空闲老化 周期。

下面再结合图 6进一步详细阐述本发明实施例的 SDN中流表下发的方 法。 参见图 6, 包括以下步骤:

步骤 601 , OF控制器和 OF交换机进行流表缓存能力协商。

具体协商过程参见前述实施例中所述, 此处不再赘述。

步骤 602 , 根据协商, OF控制器获知对应的流表是否支持流表条目缓 存功能, 如果支持, 执行步骤 604; 否则, 执行步骤 603。

步骤 603 , OF控制器下发对应的流表条目时不携带缓存标 。

步骤 604, OF控制器下发对应的流表条目时携带相应的缓 标记。 例如: OF控制器通过与 OF交换机的流表缓存能力协商, 获知该 OF 交换机的某流表支持流表缓存功能; OF控制器通过路由协议, 如: OSPF、 中间系统到中间系统的路由选择协议 ( IS-IS , Intermediate System to Intermediate System Routing Protocol ), 交换网格的路由信息,动态生成路由

表 1

OF控制器将路由条目映射成流表条目, 如下表 2所示:

表 2

通过流表条目修改消息将新的流表条目下发给 OF交换机,并且携带表 号, 以及该流表条目的缓存标记。

具体的, OF控制器向 OF交换机下发的流表条目修改消息示例如下: struct ofp— flow— mod {

/* Flow actions. */ uint8_t table— id; /* 流表号 (本示例为路由流表 ID ) */ uint8_t command; /* 增加、 爹改或删除流表条目 (本示例为增加) */ uintl6_t idle— timeout; /* Idle time before discarding (seconds). */ uintl6_t hard— timeout; /* Max time before discarding (seconds). */ uintl6_t flags; /* 包含流表条目的缓存标记 */

struct ofp— match match; /* 匹配域 (假设为表 2中第一条的目的地址和掩 码). */

//struct ofp— instruction— header instructions [0]; /* 指令集 [艮设为表 2 中第一条的指令集) . */

步骤 605 , OF交换机的控制模块判断接收的缓存标记, 如果所述缓存 标记为 0, 则执行步骤 606; 如果所述缓存标记为 1 , 则执行步骤 607。

OF交换机收到上述流表条目修改消息后, 若表号对应的流表不支持流 表条目缓存功能, 则 OF交换机向 OF控制器反馈错误消息。 若表号对应的 流表支持流表条目缓存功能, 则 OF交换机判断缓存标记, 标记为 0用以指 示将对应的流表条目添加到 OF交换机的转发模块对应的流表中; 标记为 1 用以指示将所述流表条目缓存在控制模块本地 。 其中, 标记为 0也认为是 流表条目修改消息中不携带所述缓存标记。

步骤 606, 控制模块将所述流表条目添加到 OF交换机的转发模块的流 表中。

步骤 607, 控制模块保存所述表号和流表条目; 即控制模块从 OF控制 器接收到流表条目后, 不对转发模块对应流表的流表条目进行立即更 新, 而是先缓存在本地。

下面再结合图 7对本发明实施例的 OF交换机接收到报文后的处理流程 进一步详细阐述。 参见图 7 , 包括以下步骤: 步骤 701 , OF交换机的转发模块接收到报文。

步骤 702,查询转发模块的流表中是否存在匹配的流 条目,如果存在, 执行步骤 703; 否则, 执行步骤 704。

步骤 703 , OF交换机的转发模块按照查询匹配的流表条目 行所述报 文的转发。

步骤 704, 转发模块发送所述报文、 表号、 上送原因等参数给 OF交换 机的控制模块。

步骤 705,控制模块根据接收的表号判断对应的流表 否具备缓存功能, 如果是, 执行步骤 707; 否则, 执行步骤 706。

步骤 706, 控制模块接收到的参数填充到 Packet-in 消息中发送给 OF 控制器。由所述 OF控制器将所述 Packet-in消息中的报文交由 OF控制器的 本地协议栈或应用程序 ( APP )进行处理。

步骤 707, 控制模块根据接收的表号和自身保存的流表条 目缓存标记, 在本地对应的流表中查询缓存的流表条目, 如果查询到对应的流表条目 , 执行步骤 708; 否则, 执行步骤 706。

步骤 708,控制模块将查询所得流表条目添加到转发 块对应的流表中, 并根据对应所述流表的第二空闲老化周期确定 是否启动所述转发模块中对 应流表的空闲老化。

本发明实施例中, OF控制器在向 OF交换机发送流表条目时, 如果所 述 OF交换机不支持对相应流表条目的缓存功能, OF控制器为发送的流表 条目不设置缓存标记, OF交换机将此类流表条目添加到所述 OF交换机的 转发模块的流表中; OF控制器在向 OF交换机发送流表条目时, 如果所述 OF 交换机支持对相应流表条目的缓存功能, OF控制器为发送的流表条目 设置缓存标记, OF 交换机将此类流表条目缓存到控制模块本地。 OF交换 机在收到报文时, 如果查询到转发模块的流表中存在匹配的流表 条目, 则 直接进行转发; 如果没查询到匹配的流表条目, 则上送触发在 OF交换机控 制平面的缓存路由流表中查找对应的流表条目 , 查到后直接下发给转发平 面的路由流表, 查不到就构造 Packet-in报文上送控制器处理。 本发明实施 例, OF控制器能够实现按需下发路由流表条目, 并让 OF交换机使用较短 时间周期的空闲老化, 就能在有限时间内有效的将控制器上的路由信 息集 缩小映射到 OF交换机上, 缓解 OF交换机路由流表条目容量指标的压力, 从而实现超出 OF交换机指标的路由流表条目容量; 另外, OF交换机的控 制模块和转发模块都缓存或保存流表条目, 转发模块未匹配的流表条目优 先从控制模块匹配, 匹配不到的才上报控制器处理, 这样不仅减少了控制 器和交换机之间的交互, 节省了带宽, 也降低了流表条目的下发时延。

对应上述 SDN 中流表下发的方法, 本发明实施例还提供了一种 SDN 中流表下发的系统, 如图 8所示, 包括: OF控制器 10和 OF交换机 20, 其中,

OF控制器 10,配置为根据本地策略决定为下发的流表条目 设置缓存标 记时,向所述 OF交换机 20发送流表条目修改消息,所述消息中携带表 、 流表条目和缓存标记;

OF交换机 20, 配置为接收所述流表条目修改消息,依据所述 缓存标记 的指示, 在自身的控制模块保存所述流表条目修改消息 中的表号和流表条 目。

其中, OF控制器 10包括: 发送模块 11 , 配置为根据本地策略决定为 下发的流表条目设置缓存标记时,向 OF交换机 20发送流表条目修改消息, 所述消息中携带表号、 流表条目和缓存标记; 所述缓存标记用于指示将所 述流表条目缓存在所述 OF交换机 20的控制模块本地。

较佳的, 所述流表条目修改消息中还携带第一空闲老化 周期。

OF控制器 10还包括: 协商模块 12, 配置为在所述发送模块 11发送流 表条目修改消息之前, 与所述 OF交换机 20进行流表缓存能力协商, 所述 协商模块 12获知所述 OF交换机 20是否支持流表的缓存功能。 优选的,协商模块 12配置为,向所述 OF交换机 20发送 Multipart Table Features Request消息, 消息中携带表号; 接收所述 OF交换机 20返回的 Multipart Table Features Reply消息 ,在所述 Multipart Table Features Reply消 息的流表特征能力属性字段中携带流表条目缓 存能力标记, 用以指示是否 支持对应表号的流表的流表条目缓存功能。

优选的 , 所述流表特征能力属性字段中还携带支持缓存 功能的流表默 认的第二空闲老化周期。

优选的, OF控制器 10还包括接收处理模块 13 , 配置为在收到所述 OF 交换机 20发送的携带有报文、 表号、 上送原因的 Packet-in消息时, 解析所 述 Packet-in消息, 将所述 Packet-in消息中的 4艮文交由所述 OF控制器 10 的本地协议栈或 APP进行处理。

其中, OF交换机 20包括控制模块 21, 配置为接收 OF控制器 10发送 的流表条目修改消息, 所述消息中携带表号、 流表条目和缓存标记; 依据 所述缓存标记的指示, 保存所述流表条目修改消息中的表号和流表条 目在 所述控制模块 21本地。

优选的, 所述流表条目修改消息中还携带第一空闲老化 周期。

优选的, 控制模块 21配置为, 在接收所述流表条目修改消息之前, 与 所述 OF控制器 10进行流表缓存能力协商, 将所述 OF交换机 20自身是否 支持流表的缓存功能通知给所述 OF控制器 10。

优选的,控制模块 21配置为,接收所述 OF控制器 10发送的 Multipart

Table Features Request消息, 消息中携带表号; 向所述 OF控制器 10返回 Multipart Table Features Reply消息 ,在所述 Multipart Table Features Reply消 息的流表特征能力属性字段中携带流表条目缓 存能力标记, 用以指示是否 支持对应表号的流表的流表条目缓存功能。

优选的, 所述流表特征能力属性字段中还携带支持缓存 功能的流表默 认的第二空闲老化周期。 优选的, OF交换机 20还包括转发模块 22, 配置为在接收到报文时, 查询所述转发模块 22的流表中是否存在匹配的流表条目;

如果存在, 则按照查询匹配的流表条目进行所述报文的转 发; 如果不存在, 则所述转发模块 22发送所述报文、 表号、 上送原因给所 述 OF交换机 20的控制模块 21 ; 相应的, 所述控制模块 21配置为, 根据 接收的表号和自身保存的流表条目缓存标记, 在本地对应的流表中查询缓 存的流表条目, 如果查询到对应的流表条目, 则将查询所得流表条目添加 到所述转发模块 22对应的流表中, 如果没有查询到对应的流表条目, 则将 所述控制模块 21接收到的报文、表号、上送原因填充到 Packet-in消息中发 送给所述 OF控制器 10。

优选的, 控制模块 21配置为, 根据所述第二空闲老化周期对所述 OF 交换机的转发模块 22中缓存标记指示可以缓存的流表条目进行空 老化处 理;根据所述 OF控制器发送相应流表条目时设置的所述第一 闲老化周期 对所述控制模块 21缓存的相应流表条目进行空闲老化处理;

其中, 所述第一空闲老化周期的时长大于所述第二空 闲老化周期的时 长。

本发明实施例还提供了一种计算机可读存储介 质, 所述存储介质包括 一组计算机可执行指令, 所述指令用于执行前述实施例中 OF 交换机侧的 SDN中流表下发的方法。

本发明实施例还提供了一种计算机可读存储介 质, 所述存储介质包括 一组计算机可执行指令, 所述指令用于执行前述实施例中 OF 控制器侧的 SDN中流表下发的方法。

本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或计算机程序产品。 因此, 本发明可采用硬件实施例、 软件实施例、 或结 合软件和硬件方面的实施例的形式。 而且, 本发明可采用在一个或多个其 中包含有计算机可用程序代码的计算机可用存 储介质 (包括但不限于磁盘 存储器和光学存储器等)上实施的计算机程序 产品的形式。

本发明是参照根据本发明实施例的方法、 设备(系统)、 和计算机程序 产品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程 图和 /或方框图中的每一流程和 /或方框、以及流程图和 /或方框图中的流程和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处 理器以产生一个机器, 使得 通过计算机或其他可编程数据处理设备的处理 器执行的指令产生用于实现 在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功 能的装置。

这些计算机程序指令也可存储在能引导计算机 或其他可编程数据处理 设备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存 储器中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个 流程或多个流程和 /或方框图一个方框或多个方框中指定的功能

这些计算机程序指令也可装载到计算机或其他 可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列 操作步骤以产生计算机实现 的处理, 从而在计算机或其他可编程设备上执行的指令 提供用于实现在流 程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能 步骤。

以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。