Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA PROCESSING METHOD AND APPARATUS FOR OPENFLOW NETWORK
Document Type and Number:
WIPO Patent Application WO/2015/172373
Kind Code:
A1
Abstract:
Embodiments of the present invention provide a data processing method and apparatus for an OpenFlow network. A switch in an OpenFlow network can acquire an aggregation rule provided by a controller in the OpenFlow network; the switch performs rule matching on data flows to be reported according to the aggregation rule, and extracts information about data flows, among the data flows to be reported, matching the aggregation rule, packetizes the information and sends the packetized information to the controller. In this manner, it is avoided that all data flows to be reported are sent to the controller by means of Packet_In messages, consumption of control channel bandwidth resources by Packet_In messages is reduced, and the influence of a great quantity of data flows to be reported in the OpenFlow network on control channel bandwidth resources and the control channel efficiency is reduced, thereby improving the utilization rate of the control channel bandwidth resources.

Inventors:
LI QUANCAI (CN)
Application Number:
PCT/CN2014/077645
Publication Date:
November 19, 2015
Filing Date:
May 16, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04L45/243; H04L47/20
Foreign References:
CN103067534A2013-04-24
CN1466340A2004-01-07
US6636480B12003-10-21
Other References:
See also references of EP 3122012A4
Download PDF:
Claims:
权利 要求

1、 一种用于 OpenFlow网络的数据处理方法, 其特征在于, 所述方法包 括:

所述 OpenFlow网络中的交换机获取所述 OpenFlow网络中的控制器提供 的聚合规则;

所述交换机根据所述聚合规则, 对待上报的数据流进行规则匹配; 所述交换机对匹配所述聚合规则的数据流进行聚合, 获得上报消息; 所述交换机通过 OpenFlow协议将所述上报消息发送给所述控制器, 以 使得所述控制器根据所述上报消息,确定所述交换机中匹配所述聚合规则的 数据流的转发规则。

2、 根据权利要求 1 所述的方法, 其特征在于, 所述交换机根据所述聚 合规则, 对待上报的数据流进行规则匹配包括: 所述交换机根据所述聚合规 则中的匹配域, 对待上报的数据流进行规则匹配。

3、 根据权利要求 2所述的方法, 其特征在于, 所述交换机对匹配所述 聚合规则的数据流进行聚合, 获得上报消息包括:

所述交换机根据所述匹配域, 生成匹配信息, 所述匹配信息包括: 所述 匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码 信息, 以及匹配所述聚合规则的数据流与所述聚合规则相匹配的匹配值; 则, 所述上报消息携带所述匹配信息。

4、 根据权利要求 3所述的方法, 其特征在于, 所述交换机对匹配所述 聚合规则的数据流进行聚合, 获得上报消息还包括:

所述交换机获取数据信息,所述数据信息为匹配所述聚合规则的数据流 的摘要数据或全部数据;

则, 所述上报消息还携带所述数据信息。

5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述交换机对匹配 所述聚合规则的数据流进行聚合, 获得上报消息还包括: 所述交换机获取匹配所述聚合规则的数据流在所述交换机中的存储地 址;

则,所述上报消息还携带匹配所述聚合规则的数据流在所述交换机中的 存储地址。

6、 根据权利要求 3-5任一项所述的方法, 其特征在于, 所述交换机对 匹配所述聚合规则的数据流进行聚合, 获得上报消息还包括:

所述交换机确定所述聚合规则在所述交换机中所在流表的标识; 则, 所述上报消息还携带所述聚合规则在所述交换机中所在流表的标 识。

7、 根据权利要求 1-6任一项所述的方法, 其特征在于, 所述交换机对 匹配所述聚合规则的数据流进行聚合包括:

所述交换机在匹配所述聚合规则的数据流的数量达到预设门限时,对匹 配所述聚合规则的数据流进行聚合; 或者,

所述交换机根据预设时间周期,周期性地对匹配所述聚合规则的数据流 进行聚合。

8、根据权利要求 1-7任一项所述的方法, 所述交换机通过 OpenFlow协 议将所述上报消息发送给所述控制器包括:

所述交换机对所述 OpenFlow协议中的 Packet— in消息的格式进行扩展; 所述交换机通过所述扩展的 Packet— in消息的格式, 将所述上报消息发 送给所述控制器。

9、 一种用于 OpenFlow网络的数据处理方法, 其特征在于, 所述方法包 括:

所述 OpenFlow网络中的控制器将聚合规则提供给所述 OpenFlow网络 中的交换机;

所述控制器接收所述交换机发送的上报消息, 所述上报消息携带所述交 换机中匹配所述聚合规则的数据流的信息; 所述控制器根据所述上报消息,确定所述交换机中匹配所述聚合规则的 数据流的转发规则;

所述控制器将所述转发规则提供给所述交换机, 以使得所述交换机根据 所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进行处理。

10、 根据权利要求 9所述的方法, 其特征在于, 所述交换机中匹配所述 聚合规则的数据流的信息包括匹配信息, 所述匹配信息包括所述聚合规则中 的匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩 码信息, 以及所述交换机中匹配所述聚合规则的数据流与所述聚合规则相匹 配的匹配值;

则所述控制器根据所述上报消息,确定所述交换机中匹配所述聚合规则 的数据流的转发规则, 包括:

所述控制器对所述上 "^消息进行解析, 得到所述匹配信息;

所述控制器根据所述匹配信息,确定所述交换机中匹配所述聚合规则的 数据流的转发规则。

11、 根据权利要求 10所述的方法, 其特征在于, 所述交换机中匹配所 述聚合规则的数据流的信息还包括数据信息, 所述数据信息为所述交换机中 匹配所述聚合规则的数据流的摘要数据或全部数据;

则所述控制器根据所述上报消息,确定所述交换机中匹配所述聚合规则 的数据流的转发规则, 包括:

所述控制器对所述上报消息进行解析,得到所述数据信息和所述匹配信 息;

所述控制器根据所述数据信息和所述匹配信息,确定所述交换机中匹配 所述聚合规则的数据流的转发规则。

12、根据权利要求 9-11任一项所述的方法, 其特征在于, 所述上报消息 还携带所述交换机中匹配所述聚合规则的数据流在所述交换机中的存储地 址; 则所述控制器将所述转发规则提供给所述交换机, 以使得所述交换机根 据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进行处理, 包 括:

所述控制器将所述转发规则和所述存储地址发送给所述交换机, 以使得 所述交换机根据所述转发规则,对所述存储地址中緩存的匹配所述聚合规则 的数据流进行处理。

13、 根据权利要求 9-12 所述的方法, 所述控制器将所述转发规则提供 给所述交换机, 以使得所述交换机根据所述转发规则, 对所述交换机中匹配 所述聚合规则的数据流进行处理, 包括:

所述控制器通过向所述交换机下发一个或多个流表,将所述转发规则发 送给所述交换机, 以使得所述交换机根据所述转发规则, 对所述交换机中的 匹配所述聚合规则的数据流进行处理。

14、 根据权利要求 13所述的方法, 其特征在于, 所述上报消息还携带 所述聚合规则在所述交换机中所在流表的标识;

则所述控制器将所述转发规则提供给所述交换机包括:

所述控制器根据所述聚合规则在所述交换机中所在流表的标识,对所述 聚合规则在所述交换机中所在流表进行修改, 以将所述转发规则提供给所述 交换机。

15、 一种用于 OpenFlow网络的交换机, 其特征在于, 所述交换机包括: 获取单元: 用于获取所述 OpenFlow网络中的控制器提供的聚合规则; 处理单元: 用于根据所述聚合规则, 对所述交换机中待上报的数据流进 行规则匹配, 对匹配所述聚合规则的数据流进行聚合, 获得上报消息;

发送单元: 用于通过 OpenFlow协议将所述上报消息发送给所述控制器, 以使得所述控制器根据所述上报消息,确定所述交换机中匹配所述聚合规则 的数据流的转发规则。

16、 根据权利要求 15所述的交换机, 其特征在于, 所述处理单元具体 用于根据所述聚合规则中的匹配域,对所述交换机中待上报的数据流进行规 则匹配。

17、 根据权利要求 16所述的交换机, 其特征在于, 所述处理单元具体 用于根据所述匹配域, 生成匹配信息, 所述匹配信息包括: 所述匹配域的类 型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码信息, 以及 匹配所述聚合规则的数据流与所述聚合规则相匹配的匹配值, 所述上报消息 携带所述匹配信息。

18、 根据权利要求 17所述的交换机, 其特征在于, 所述处理单元还用 于获取数据信息, 所述数据信息为匹配所述聚合规则的数据流的摘要数据或 全部数据, 所述上报消息还携带所述数据信息。

19、 根据权利要求 17或 18所述的交换机, 其特征在于, 所述处理单元 还用于获取匹配所述聚合规则的数据流在所述交换机中的存储地址, 所述上 报消息还携带匹配所述聚合规则的数据流在所述交换机中的存储地址。

20、 根据权利要求 17-19任一项所述的交换机, 其特征在于, 所述处理 单元还用于确定所述聚合规则在所述交换机中所在流表的标识, 所述上报消 息还携带所述聚合规则在所述交换机中所在流表的标识。

21、 根据权利要求 15-20任一项所述的交换机, 其特征在于, 所述处理 单元具体用于在匹配所述聚合规则的数据流的数量达到预设门限时,对匹配 所述聚合规则的数据流进行聚合; 或者, 根据预设时间周期, 周期性地对匹 配所述聚合规则的数据流进行聚合。

22、 根据权利要求 15-21任一项所述的交换机, 其特征在于, 所述发送 单元具体用于对所述 OpenFlow协议中的 Packet— in消息的格式进行扩展,通 过所述扩展的 Packet— in消息的格式, 将所述上报消息发送给所述控制器。

23、 一种用于 OpenFlow网络的控制器, 其特征在于, 所述控制器包括: 发送单元, 用于将聚合规则提供给所述 OpenFlow网络中的交换机; 接收单元, 用于接收所述交换机发送的上报消息, 所述上报消息携带所 述交换机中匹配所述聚合规则的数据流的信息;

确定单元, 用于根据所述上报消息, 确定所述交换机中匹配所述聚合规 则的数据流的转发规则;

提供单元, 用于将所述转发规则提供给所述交换机, 以使得所述交换机 根据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进行处理。

24、 根据权利要求 23所述的控制器, 其特征在于, 所述交换机中匹配所 述聚合规则的数据流的信息包括匹配信息, 所述匹配信息包括所述聚合规则 中的匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的 掩码信息, 以及所述交换机中匹配所述聚合规则的数据流与所述聚合规则相 匹配的匹配值;

则, 所述确定单元具体用于对所述上报消息进行解析, 得到所述匹配信 息, 以及根据所述匹配信息, 确定所述交换机中匹配所述聚合规则的数据流 的转发规则。

25、 根据权利要求 24所述的控制器, 其特征在于, 所述交换机中匹配所 述聚合规则的数据流的信息还包括数据信息, 所述数据信息为所述交换机中 匹配所述聚合规则的数据流的摘要数据或全部数据;

则, 所述确定单元具体用于对所述上 "^消息进行解析, 得到所述数据信 息和所述匹配信息, 以及根据所述数据信息和所述匹配信息, 确定所述交换 机中匹配所述聚合规则的数据流的转发规则。

26、 根据权利要求 23-25任一项所述的控制器, 其特征在于, 所述上报 消息还携带所述交换机中匹配所述聚合规则的数据流在所述交换机中的存 储地址;

则, 所述提供单元具体用于将所述转发规则和所述存储地址发送给所述 交换机, 以使得所述交换机根据所述转发规则, 对所述存储地址中緩存的匹 配所述聚合规则的数据流进行处理。

27、 根据权利要求 23-26任一项所述的控制器, 其特征在于, 所述提供 单元具体用于通过向所述交换机下发一个或多个流表,将所述转发规则发送 给所述交换机, 以使得所述交换机根据所述转发规则, 对所述交换机中的匹 配所述聚合规则的数据流进行处理。

28、 根据权利要求 27所述的控制器, 其特征在于, 所述上报消息还携 带所述聚合规则在所述交换机中所在流表的标识;

则, 所述提供单元具体用于根据所述聚合规则在所述交换机中所在流表 的标识, 对所述聚合规则在所述交换机中所在流表进行修改, 以将所述转发 规则提供给所述交换机。

29、 一种用于 OpenFlow网络的交换机, 其特征在于, 所述交换机包括 处理器、 存储器、 总线和通信接口;

所述存储器用于存储计算机执行指令, 所述处理器与所述存储器通过所 述总线连接, 当所述交换机运行时, 所述处理器执行所述存储器存储的所述 计算机执行指令, 以使所述交换机执行如权利要求 1-8中任一项所述的用于

OpenFlow网络的数据处理方法。

30、 一种用于 OpenFlow网络的控制器, 其特征在于, 所述控制器包括 处理器、 存储器、 总线和通信接口;

所述存储器用于存储计算机执行指令, 所述处理器与所述存储器通过所 述总线连接, 当所述控制器运行时, 所述处理器执行所述存储器存储的所述 计算机执行指令, 以使所述控制器执行如权利要求 9-14中任一项所述的用 于 OpenFlow网络的数据处理方法。

31、 一种计算机可读介质, 其特征在于, 包括计算机执行指令, 以供计 算机的处理器执行所述计算机执行指令时, 所述计算机执行如权利要求 1-8 中任一项所述的用于 OpenFlow网络的数据处理方法。

32、 一种计算机可读介质, 其特征在于, 包括计算机执行指令, 以供计 算机的处理器执行所述计算机执行指令时,所述计算机执行如权利要求 9-14 中任一项所述的用于 OpenFlow网络的数据处理方法。

Description:
一种用于 OpenFlow网络的数据处理方法和装置 技术领域

本发明实施例涉及通信技术, 特别涉及一种用于 OpenFlow网络的数据 处理方法和装置。 背景技术

OpenFlow是一种支持网络创新研究的新型网络交 模型,该模型通过开 放的流表支持用户对网络处理行为进行控制。 OpenFlow网络的基本思想是实 现了数据转发层和控制层的分离 ,将整个 OpenFlow网络分为数据通道和控制 通道, 其中 OpenFlow交换机(Switch )负责数据层的转发, 而 OpenFlow控制 器 (Controller ) 实现了控制层的功能, 例如决定转发规则, OpenFlow网络 中的控制协议为 OpenFlow协议。

现有的 OpenFlow网络中, 当交换机接收到数据包后,将在本地的流表上 查找该数据包是否匹配已有的转发规则, 如果没有匹配, 则将该未匹配到的 数据包作为待上报的数据流, 通过 Packet— in消息(上报消息 /包输入消息)上 报给控制器, 由控制器决定该未匹配到的数据包的转发规则 (为描述方便, 后续将所述交换机中未匹配到转发规则的数据 包统称为待上报的数据流;)。 一旦网络中存在大量待上报的数据流, 将大量消耗控制通道的带宽资源, 影 响控制通道的效率。 发明内容

本发明实施例提出了一种用于 OpenFlow网络的数据处理方法和装置, 能够减少 OpenFlow网络中大量待上报的数据流对控制通道 宽资源和控制 通道效率的影响。

第一方面, 本发明实施例提出了一种用于 OpenFlow网络的数据处理方 法, 该方法包括: 所述 OpenFlow网络中的交换机获取所述 OpenFlow网络 中的控制器提供的聚合规则;

所述交换机根据所述聚合规则, 对待上报的数据流进行规则匹配; 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消息; 所述交换机通过 OpenFlow协议将所述上报消息发送给所述控制器 以 使得所述控制器根据所述上报消息,确定所述 交换机中匹配所述聚合规则的 数据流的转发规则。

结合第一方面, 在第一种可能的实现方式中, 所述交换机根据所述聚合 规则, 对待上报的数据流进行规则匹配包括: 所述交换机根据所述聚合规则 中的匹配域, 对待上报的数据流进行规则匹配。

结合第一方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消息包括: 所述交换机根据所述匹配域, 生成匹配信息, 所述匹配信息包括: 所述 匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码 信息,以及匹配所述聚合规则的数据流与所述 聚合规则相匹配的匹配值;则, 所述上 >¾消息携带所述匹配信息。

结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消息还包括: 所述交换机获取数据信息,所述数据信息为匹 配所述聚合规则的数据流 的摘要数据或全部数据; 则, 所述上报消息还携带所述数据信息。

结合第一方面的第二种可能的实现方式或者第 三种可能的实现方式,在 第四种可能的实现方式中, 所述交换机对匹配所述聚合规则的数据流进行 聚 合, 获得上报消息, 还包括: 所述交换机获取匹配所述聚合规则的数据流在 所述交换机中的存储地址; 则, 所述上报消息还携带匹配所述聚合规则的数 据流在所述交换机中的存储地址。

结合第一方面的第二种或者第三种或者第四种 可能的实现方式,在第五 种可能的实现方式中, 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消息还包括: 所述交换机确定所述聚合规则在所述交换机中 所在流 表的标识; 则, 所述上报消息还携带所述聚合规则在所述交换 机中所在流表 的标识。

结合第一方面或第一方面的上述任一种可能的 实现方式,在第六种可能 的实现方式中, 所述交换机通过 OpenFlow协议将所述上报消息发送给所述 控制器包括:所述交换机对所述 OpenFlow协议中的 Packet— in消息的格式进 行扩展; 所述交换机通过所述扩展的 Packet— in消息的格式, 将所述上报消 息发送给所述控制器。

第二方面, 本发明实施例提出了一种用于 OpenFlow网络的数据处理方 法, 该方法包括: 所述 OpenFlow 网络中的控制器将聚合规则提供给所述 OpenFlow网络中的交换机;

所述控制器接收所述交换机发送的上报消息 , 所述上报消息携带所述交 换机中匹配所述聚合规则的数据流的信息;

所述控制器根据所述上报消息,确定所述交换 机中匹配所述聚合规则的 数据流的转发规则;

所述控制器将所述转发规则提供给所述交换机 , 以使得所述交换机根据 所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进 行处理。

结合第二方面, 在第一种可能的实现方式中, 所述交换机中匹配所述聚 合规则的数据流的信息包括匹配信息, 所述匹配信息包括所述聚合规则中的 匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码 信息, 以及所述交换机中匹配所述聚合规则的数据流 与所述聚合规则相匹配 的匹配值; 则所述控制器根据所述上报消息, 确定所述交换机中匹配所述聚 合规则的数据流的转发规则, 包括: 所述控制器对所述上报消息进行解析, 得到所述匹配信息; 所述控制器根据所述匹配信息, 确定所述交换机中匹配 所述聚合规则的数据流的转发规则。

结合第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述交换机中匹配所述聚合规则的数据流的信 息还包括数据信息, 所述数据 信息为所述交换机中匹配所述聚合规则的数据 流的摘要数据或全部数据; 则 所述控制器根据所述上报消息,确定所述交换 机中匹配所述聚合规则的数据 流的转发规则, 包括: 所述控制器对所述上报消息进行解析, 得到所述数据 信息和所述匹配信息; 所述控制器才艮据所述数据信息和所述匹配信 息, 确定 所述交换机中匹配所述聚合规则的数据流的转 发规则。

结合第二方面, 或第二方面的第一种或第二种可能的实现方式 , 在第三 种可能的实现方式中, 所述上报消息还携带所述交换机中匹配所述聚 合规则 的数据流在所述交换机中的存储地址; 则所述控制器将所述转发规则提供给 所述交换机, 以使得所述交换机根据所述转发规则, 对所述交换机中匹配所 述聚合规则的数据流进行处理, 包括: 所述控制器将所述转发规则和所述存 储地址发送给所述交换机, 以使得所述交换机根据所述转发规则, 对所述存 储地址中緩存的匹配所述聚合规则的数据流进 行处理。

第三方面, 本发明实施例提出了一种用于 OpenFlow网络的交换机, 该 交换机包括:

获取单元: 用于获取所述 OpenFlow网络中的控制器提供的聚合规则; 处理单元: 用于根据所述聚合规则, 对所述交换机中待上报的数据流进 行规则匹配, 对匹配所述聚合规则的数据流进行聚合, 获得上报消息;

发送单元:用于通过 OpenFlow协议将所述上报消息发送给所述控制器 以使得所述控制器根据所述上报消息,确定所 述交换机中匹配所述聚合规则 的数据流的转发规则。

结合第三方面, 在第一种可能的实现方式中, 所述处理单元具体用于根 据所述聚合规则中的匹配域, 对所述交换机中待上报的数据流进行规则匹 配。

结合第三方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述处理单元具体用于根据所述匹配域,生成 匹配信息,所述匹配信息包括: 所述匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的 掩码信息, 以及匹配所述聚合规则的数据流与所述聚合规 则相匹配的匹配 值, 所述上 消息携带所述匹配信息。

结合第三方面的第二种可能的实现方式, 在第三种可能的实现方式中, 所述处理单元还用于获取数据信息, 所述数据信息为匹配所述聚合规则的数 据流的摘要数据或全部数据, 所述上报消息还携带所述数据信息。

结合第三方面的第二种可能的实现方式或者第 三种可能的实现方式,在 第四种可能的实现方式中, 所述处理单元还用于获取匹配所述聚合规则的 数 据流在所述交换机中的存储地址, 所述上报消息还携带匹配所述聚合规则的 数据流在所述交换机中的存储地址。

结合第三方面的第二种可能的实现方式或者第 三种可能的实现方式或 者第四种可能的实现方式, 在第五种可能的实现方式中, 所述处理单元还用 于确定所述聚合规则在所述交换机中所在流表 的标识, 所述上报消息还携带 所述聚合规则在所述交换机中所在流表的标识 。

结合第三方面, 或第三方面的上述任一种可能的实现方式, 在第六种可 能的实现方式中, 所述发送单元具体用于对所述 OpenFlow 协议中的 Packet— in消息的格式进行扩展, 通过所述扩展的 Packet— in消息的格式, 将 所述上报消息发送给所述控制器。

第四方面, 本发明实施例提出了一种用于 OpenFlow网络的控制器, 该 控制器包括:

发送单元, 用于将聚合规则提供给所述 OpenFlow网络中的交换机; 接收单元, 用于接收所述交换机发送的上报消息, 所述上报消息携带所 述交换机中匹配所述聚合规则的数据流的信息 ;

确定单元, 用于根据所述上报消息, 确定所述交换机中匹配所述聚合规 则的数据流的转发规则;

提供单元, 用于将所述转发规则提供给所述交换机, 以使得所述交换机 根据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进 行处理。

结合第四方面, 在第一种可能的实现方式中, 所述交换机中匹配所述聚 合规则的数据流的信息包括匹配信息, 所述匹配信息包括所述聚合规则中的 匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码 信息, 以及所述交换机中匹配所述聚合规则的数据流 与所述聚合规则相匹配 的匹配值; 则, 所述确定单元具体用于对所述上 "^消息进行解析, 得到所述 匹配信息, 以及根据所述匹配信息, 确定所述交换机中匹配所述聚合规则的 数据流的转发规则。

结合第四方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述交换机中匹配所述聚合规则的数据流的信 息还包括数据信息, 所述数据 信息为所述交换机中匹配所述聚合规则的数据 流的摘要数据或全部数据; 则, 所述确定单元具体用于对所述上 "^消息进行解析,得到所述数据信 息和所述匹配信息, 以及根据所述数据信息和所述匹配信息, 确定所述交换 机中匹配所述聚合规则的数据流的转发规则。

结合第四方面, 或第四方面的第一种或第二种可能的实现方式 , 在第三 中可能的实现方式中, 所述上报消息还携带所述交换机中匹配所述聚 合规则 的数据流在所述交换机中的存储地址; 则, 所述提供单元具体用于将所述转 发规则和所述存储地址发送给所述交换机, 以使得所述交换机根据所述转发 规则, 对所述存储地址中緩存的匹配所述聚合规则的 数据流进行处理。

第五方面, 本发明实施例提出了一种用于 OpenFlow网络的交换机, 该 交换机包括处理器、 存储器、 总线和通信接口; 所述存储器用于存储计算机 执行指令, 所述处理器与所述存储器通过所述总线连接, 当所述交换机运行 时, 所述处理器执行所述存储器存储的所述计算机 执行指令, 以使所述交换 机执行第一方面所述的用于 OpenFlow网络的数据处理方法或第一方面的任 一种可能的实现方式所述的用于 OpenFlow网络的数据处理方法。

第六方面, 本发明实施例提出了一种用于 OpenFlow网络的控制器, 该 控制器包括处理器、 存储器、 总线和通信接口; 所述存储器用于存储计算机 执行指令, 所述处理器与所述存储器通过所述总线连接, 当所述控制器运行 时, 所述处理器执行所述存储器存储的所述计算机 执行指令, 以使所述控制 器执行第二方面所述的用于 OpenFlow网络的数据处理方法或第二方面的任 一种可能的实现方式所述的用于 OpenFlow网络的数据处理方法。

第七方面, 本发明实施例提出了一种计算机可读介质, 包括计算机执行 指令, 以供计算机的处理器执行所述计算机执行指令 时, 所述计算机执行第 一方面所述的用于 OpenFlow网络的数据处理方法或第一方面的任一 可能 的实现方式所述的用于 OpenFlow网络的数据处理方法。

第八方面, 本发明实施例提出了一种计算机可读介质, 包括计算机执行 指令, 以供计算机的处理器执行所述计算机执行指令 时, 所述计算机执行第 二方面所述的用于 OpenFlow网络的数据处理方法或第二方面的任一 可能 的实现方式所述的用于 OpenFlow网络的数据处理方法。

本发明实施例中, OpenFlow 网络中的交换机可以根据控制器提供的聚 合规则, 对待上报的数据流进行规则匹配, 对匹配所述聚合规则的数据流进 行聚合, 获得上报消息, 并将所述上报消息通过 OpenFlow协议发送给控制 器, 使得所述控制器可以根据所述上报消息, 确定匹配所述聚合规则的数据 流的转发规则, 由于避免将每个待上报的数据流都通过 Packet— In消息上报 给控制器, 减少了 OpenFlow网络中大量待上报的数据流对控制通道 宽资 源和控制通道效率的影响, 提高了控制通道带宽资源的利用率。 附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对现有技术或实施 例中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅 是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳 动的前提下, 还可以根据这些附图获得其他的附图。

图 1是本发明实施例提供的一种用于 OpenFlow网络的数据处理方法流 程图;

图 2是本发明实施例提供的又一种用于 OpenFlow网络的数据处理方法 流程图;

图 3是本发明实施例提供的又一种用于 OpenFlow网络的数据处理方法 流程图;

图 4是本发明实施例提供的一种用于 OpenFlow网络的交换机的示意图; 图 5是本发明实施例提供的又一种用于 OpenFlow网络的控制器的示意 图;

图 6是本发明实施例提供的又一种用于 OpenFlow网络的数据处理装置 的结构组成示意图。 具体实施方式

本发明实施例提出了一种用于 OpenFlow网络的数据处理方法和装置, 能够减少 OpenFlow网络中大量待上报的数据流对控制通道 宽资源和控制 通道效率的影响, 提高控制通道带宽资源的利用率。

在现有的 OpenFlow网络模型中, 包含两大关键组成部分: 控制器和交 换机, 其中, 所述交换机可以用于对来自主机、 PC机、 笔记本电脑等客户端 的数据包进行转发, 所述控制器可以决定所述交换机转发数据包的 转发规 则。 在 OpenFlow网络中, 通常有多个交换机, 每个交换机都有各自用于指示 转发规则的流表。 当有交换机接收到数据包后, 将匹配自身的用于指示转发 规则的流表, 如果在流表中能够匹配到合适的流表项, 则执行流表项提供的 相应指令和动作 (即转发规则), 例如直接转发到某个端口, 修改数据包后 转发到某个端口, 或者丟弃等。 如果在流表中未匹配到合适的流表项, 则通 过与控制器建立的传输控制协议 ( Transmission Control Protocol, TCP )控制 通道, 将所述未匹配到的数据包(为描述方便, 后续将所述交换机中未匹配 到转发规则的数据包统称为待上报的数据流) 通过 OpenFlow协议中的 Packet— In消息上报给控制器, 由控制器来决定该未匹配到的数据包的转发规 则。 当交换机中有多个待上报的数据流时, 该交换机还可以将待上报的数据 流保存在自身的緩存中等待上报。 然而, 当网络中存在大量的交换机, 大量的交换机均需要向控制器上报 待上报的数据流时, 或者当某个交换机中存在大量的待上报的数据 流时, 将 产生大量的 Packet— In消息上报给控制器时, 大量 Packet— In消息会对控制通道 带来较大的压力, 占用大量的控制通道带宽资源,降低控制通道 的控制效率。

为了解决这个问题, 本发明实施例提供了一种用于 OpenFlow网络的数 据处理方法, 使得 OpenFlow网络中的交换机可以获取 OpenFlow网络中的控 制器提供的聚合规则, 根据所述聚合规则, 对待上报的数据流(即未匹配到 转发规则的数据包)进行规则匹配,对匹配所 述聚合规则的数据流进行聚合, 获得上报消息, 并将所述上报消息通过 OpenFlow协议发送给控制器,避免了 将每个待上报的数据流都通过 Packet— In消息发送给控制器, 降低了 Packet— In 消息对控制通道带宽资源的消耗,减少了 OpenFlow网络中大量待上报的数据 流对控制通道带宽资源和控制通道效率的影响 ,提高了控制通道带宽资源的 利用率。

下面对本发明实施例进行详细地介绍。

实施例一

本发明实施例提供了一种用于 OpenFlow网络的数据处理方法, 所述方 法具体可以包括以下步骤:

S101 : OpenFlow网络中的交换机获取所述 OpenFlow网络中的控制器提 供的聚合规则。

OpenFlow网络中的控制器可以预先设定一种规则 例如聚合规则, 用 于指示交换机按照该规则对待上报的数据流进 行分类,使得 OpenFlow网络中 的交换机可以将匹配该规则的待上报的数据流 进行聚合, 获得上报消息, 然 后将上报消息上报给所述控制器,从而能够提 高 OpenFlow网络控制通道资源 的利用率。

此外,所述聚合规则中可以包括匹配域,利用 所述聚合规则中的匹配域, 对待上报的数据流进行规则匹配, 匹配该匹配域的待上报的数据流具有一些 相同的特性, 所述控制器可以针对符合该匹配信息的数据流 确定转发规则, 将符合该匹配域的数据流的信息一起打包上报 给控制器, 因此不仅可以提高 控制通道的资源利用率, 还可以提高控制通道的控制效率。

S102:所述交换机根据所述聚合规则,对待上报 数据流进行规则匹配。 具体地, 所述聚合规则可以流表的形式存在与所述交换 机中, 所述交换 机中还保存有用于指示数据包的转发规则的流 表, 当有交换机接收到数据包 后, 将匹配自身的用于指示数据包转发规则的流表 , 如果在该指示数据包转 发规则的流表中未匹配到合适的流表项 (即该数据包为待上报的数据流), 则可以进一步将该数据包匹配用于指示聚合规 则的流表, 即对待上报的数据 流进行规则匹配, 如果所述待上报的数据流匹配所述聚合规则, 所述交换机 可以将匹配所述聚合规则的数据流存放在交换 机的緩存中, 以便后续所述交 换机可以对匹配所述聚合规则的数据流进行处 理和上报。

S103: 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消 息。

具体地, 所述交换机可以按照预设的策略, 对自身緩存的匹配所述聚合 规则的数据流进行聚合, 例如, 当交换机中匹配所述聚合规则的数据流的数 量达到预设门限时, 对匹配所述聚合规则的数据流进行聚合; 又例如, 所述 交换机根据预设时间周期, 周期性地对匹配所述聚合规则的数据流进行聚 合。

所述交换机对匹配所述聚合规则的数据流进行 聚合可以有多种方式,可 以是提取匹配所述聚合规则的数据流的匹配信 息, 即共性信息, 例如, 如果 所述交换机利用所述聚合规则中的匹配域对待 上报的数据流进行匹配, 则提 取匹配所述聚合规则的数据流的共性信息可以 是提取所述聚合规则中的匹 配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码信 息, 以及提取匹配所述聚合规则的数据流与所述聚 合规则相匹配的匹配值; 或者还可以是提取匹配所述聚合规则的数据流 的摘要数据或全部数据。相对 应地, 则所述上"¾消息中可以携带所述匹配信息, 或者还可以携带匹配所述 聚合规则的数据流的摘要数据或全部数据, 以使得后续所述控制器根据所述 上报消息, 可以确定匹配所述聚合规则的数据流的转发规 则。

此外, 所述交换机还可以获取更多的信息并携带在上 报消息中, 例如获 取匹配所述聚合规则的数据流在所述交换机中 的存储地址 (如在所述交换机 緩存中的序号 ), 或者所述聚合规则在所述交换机中所在流表的 标识。

S104: 所述交换机通过 OpenFlow协议将所述上报消息发送给所述控制 器, 以使得所述控制器根据所述上报消息, 确定所述交换机中匹配所述聚合 规则的数据流的转发规则。

本发明实施例中, 交换机可以根据控制器提供的聚合规则, 对待上报的 数据流进行规则匹配, 对匹配所述聚合规则的数据流进行聚合, 获得上报消 息, 并将所述上报消息通过 OpenFlow协议发送给控制器,使得所述控制器可 以根据所述上报消息, 确定匹配所述聚合规则的数据流的转发规则, 避免将 每个待上报的数据流都通过 Packet— In消息上报给控制器, 减少了 OpenFlow 网络中大量待上报的数据流对控制通道带宽资 源和控制通道效率的影响,提 高了控制通道带宽资源的利用率。

实施例二

本发明实施例提供了一种用于 OpenFlow网络的数据处理方法, 所述方 法具体可以包括以下步骤:

201 : OpenFlow网络中的控制器将聚合规则提供给所述 OpenFlow网络 中的交换机。

在本发明实施例中,所述聚合规则用以对交换 机中的待上报数据流进行 分类, 从而将同一类的待上报数据流进行聚合, 上报给控制器, 从而控制器 可以决定该类待上报数据流的转发规则, 提高控制通道的效率。

而所述控制器可以通过对交换机修改流表的方 式 (包括增加流表项、修 改流表项、 删除流表项等)将聚合规则提供给交换机, 使得后续所述交换机 能够通过利用控制器修改的流表, 确定待上报的数据流是否符合聚合规则。 具体地 , OpenFlow协议支持三种消息类型: controller-to-switch、 asynchronous (异步 )和 symmetric (对称 ), 而每一类消息又可以拥有多个子 消息类型, 其中其中, controller-to-switch消息由控制器发起, 用来管理或获 取 OpenFlow交换机的状态, asynchronous消息由 OpenFlow交换机发起, 用来 将网络事件或交换机状态变化更新到控制器。 在本发明实施例中, 所述控制 器可以通过 controller-to-switch消息中的 OFPT— FLOW— MOD消息, 对交换机 的流表进行修改, 所述修改流表包括增加流表项、 修改流表项、 删除流表项 等类型, 例如, 可以令消息的 type=ADD, 为所述交换机的流表增加流表项, 从而交换机中增加的流表项即为控制器下发的 聚合规则。

202: 所述控制器接收所述交换机发送的上报消息, 所述上报消息携带 所述交换机中匹配所述聚合规则的数据流的信 息。

其中, 所述上报消息中携带所述交换机中匹配所述集 合规则的数据流的 信息可以为所述交换机中匹配所述聚合规则的 数据流的共性信息, 例如, 所 述交换机可以利用所述聚合规则中的匹配域对 待上报的数据流进行匹配, 则 所述交换机中匹配所述聚合规则的数据流的共 性信息可以是所述聚合规则 中的匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的 掩码信息, 以及所述交换机中匹配所述聚合规则的数据流 与所述聚合规则相 匹配的匹配值; 所述上报消息中携带所述交换机中匹配所述集 合规则的数据 流的信息还可以为所述交换机中匹配所述聚合 规则的数据流的摘要数据或 全部数据,从而所述控制器可以根据所述上报 消息中携带的所述交换机中匹 配所述集合规则的数据流的信息,确定所述交 换机中匹配所述聚合规则的数 据流的转发规则。

203 : 所述控制器根据所述上报消息, 确定所述交换机中匹配所述聚合 规则的数据流的转发规则。

所述控制器可以对所述上报消息进行解析,得 到所述交换机中匹配所述 集合规则的数据流的信息, 并根据所述交换机中匹配所述集合规则的数据 流 的信息, 确定所述交换机中匹配所述聚合规则的数据流 的转发规则。

204: 所述控制器将所述转发规则提供给所述交换机 , 以使得所述交换 机根据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进 行处 理。

所述控制器可以通过对交换机修改流表的方式 (包括增加流表项、修改 流表项、 删除流表项等)将所述转发规则提供给所述交 换机, 例如所述控制 器通过下发一个或多个流表将所述转发规则提 供给所述交换机, 又例如所述 控制器根据所述聚合规则在所述交换机中所在 流表的标识,对所述聚合规则 在所述交换机中所在流表进行修改, 以将所述转发规则提供给所述交换机; 从而所述交换机能够根据所述转发规则,对所 述交换机中緩存的匹配所述聚 合规则的数据流进行处理,或者对所述交换机 中后续接收到的匹配所述聚合 规则的数据流进行处理。

本发明实施例中, 控制器可以将聚合规则提供给交换机, 并接收所述交 换机发送的上报消息, 所述上报消息携带所述交换机中匹配所述聚合 规则的 数据流的信息, 从而所述控制器能够根据所述上报消息, 确定所述交换机中 匹配所述聚合规则的数据流的转发规则, 并提供给所述交换机, 避免所述交 换机需要将每个待上报的数据流都通过 Packet— In消息上报给控制器才能获 得转发规则,减少了 OpenFlow网络中大量待上报的数据流对控制通道 宽资 源和控制通道效率的影响, 提高了控制通道带宽资源的利用率。

本发明实施例一或实施例二中的, OpenFlow网络中的控制器或者 OpenFlow网络中的交换机具体可以参照本发明实 例三进行交互和对 OpenFlow网络的数据进行处理。

实施例三

本发明实施例提供了一种用于 OpenFlow网络的数据处理方法, 所述方 法具体包括以下步骤: S301 : OpenFlow网络中的控制器通过 OpenFlow协议将聚合规则以流表 形式下发到 OpenFlow网络中的交换机。

所述控制器可以将聚合规则以流表形式下发到 交换机, 其中, 所述聚合 规则可以包含匹配域, 以达到对待上报的数据流进行分类的目的, 从而所述 交换机可以根据所述聚合规则中的匹配域, 对待上报的数据流进行规则匹 配。

具体地 , OpenFlow协议规定了多种用于流匹配的特征域 ,例如 ETH— Type (以太网包类型)、 ETH DSK目的 MAC地址)、 IP_PROTO( IP类型)、 IP— SRC (源 IP地址 ), IP— DST(目的 IP地址 ), TCP— DST(目的 TCP端口号)、 UDP DST (目的 UDP端口号)等, 所述控制器可以选取 OpenFlow协议规定的(包括已 经推出的 OpenFlow协议版本规定的, 以及以后更新的 OpenFlow协议版本规 定的)用以流匹配的特征域中的一种或多种做 为所述聚合规则的匹配域, 从 而所述交换机可以根据所述聚合规则中的匹配 域,对待上报的数据流进行规 则匹配, 以达到对待上报的数据流进行分类和聚合的目 的。

例如, 表 1所示为所述交换机中以流表形式存在的聚合 则, 该流表可 以存在于交换机中的最后一张流表中。

表 1中所示的聚合规则中的匹配域包括以太网包 型( ETH— Type )和目 的 IP地址(IP— DST ),所述聚合规则的含义为: 匹配所有以太网包类型为 IPv4

( OFPXMT_OFB_ETH_TYPE==0x0800, 或者 ETH— TYPE==0x0800 ), 且目 的 IP范围在 10.0.0.0-10.0.255.255之间的数据包, 流表项的动作 (Action )表 示将匹配成功的数据包输出到控制器逻辑端口 , 即上报给控制器, 流表项的 优先级为 "0" 表示将该聚合规则对应的流表的优先级设置为 最低, 意味着 所述交换机在接收到数据包后先匹配用于指示 数据包转发规则的流表,如果 未匹配到, 才将该未匹配到转发规则的数据包(即待上报 的数据流)去匹配 这条用于指示聚合规则的流表, 当然在其它的实施例中, 还可以设置为其它 优先级。 又例如, 控制器下发给交换机的聚合规则可以如表 2所述。

表 2

表 2 中所示的聚合规则中的匹配域包括以太网包类 型 ( ETH— Type )和 目的 UDP端口号 ( UDP— DST ) , 所述聚合规则的含义为: 匹配所有以太网 包类型为 IPv4 ( Eth_type==0x0800 ), 且目的 UDP端口号为 67的数据包。

在由表 1或表 2所述的流表中, 所述聚合规则对应该流表中的一个流表 项, 在其它可选的实施例中, 所述聚合规则还可以包括多个流表项, 存在多 个匹配规则, 即将交换机中待上报的数据流划分为几类数据 流后分别聚合再 上报。

S302: 所述交换机根据所述聚合规则中的匹配域, 对待上报的数据流进 行规则匹配。

由于所述聚合规则以流表的形式存在于所述交 换机中, 所述交换机可以 根据该聚合规则中的匹配域, 即该聚合规则对应的流表中的匹配域, 对所有 待上报的数据流进行规则匹配, 例如, 当聚合规则如表 1所示时, 匹配域包 括以太网包类型和目 的 IP 地址, 则满足以太网包类型为 IPv4 ( Eth_type==0x0800 ), 且目的 IP范围在 10.0.0.0-10.0.255.255之间的待上报 的数据流将匹配成功。

S303: 所述交换机对匹配所述聚合规则的数据流进行 聚合, 获得上报消 息, 所述上报消息携带所述交换机中匹配所述聚合 规则的数据流的信息。 所述交换机可以根据预设的策略,对所述交换 机中匹配所述聚合规则的 数据流进行聚合, 获得上报消息, 例如, 当交换机中匹配所述聚合规则的数 据流的数量达到预设门限时, 对匹配所述聚合规则的数据流进行聚合; 又例 如, 所述交换机根据预设时间周期, 周期性地对匹配所述聚合规则的数据流 进行聚合。

其中, 所述交换机对匹配所述聚合规则的数据流进行 聚合可以有多种方 式, 具体地可以是: 所述交换机根据所述聚合规则中的匹配域, 生成匹配信 息, 所述上报消息中携带的所述交换机中匹配所述 聚合规则的数据流的信息 可以为所述匹配信息。 所述匹配信息能够反映所述聚合规则中的匹配 域的特 性, 从而所述控制器可以根据所述匹配域的特性, 决策匹配该匹配域的数据 流的转发规则, 所述匹配信息的内容具体可以包括:

1 )所述聚合规则中的匹配域的类型: Oxm— class, 包括标准和厂商自定 义; 例如如表 1所示时, 所述聚合规则中的匹配域为以太网包类型和目 的 IP 地址, 相应地所述聚合规则中的匹配域的类型为标准 ;

2 ) 所述聚合规则中的匹配域的标识 (ID ): Oxm— field, 例如, 当所述 聚合规则如表 1所示时, 所述聚合规则中的匹配域的 ID为太网包类型的 ID 和目的 IP地址的 ID;

3 ) 所述聚合规则中的匹配域的长度: Oxm— length, 例如当所述聚合规 则如表 1所示时, 所述聚合规则中的匹配域的长度为: 太网包类型的长度为

2个字节, 目的 IP地址的长度为 4个字节;

4 ) 所述聚合规则中的匹配域的掩码信息, 可以包括: 所述聚合规则中 的匹配域是否包含掩码 ( MH ), 以及掩码的位数( Oxm_mask ) , 例如, 当所 述聚合规则如表 1所示时, 所述聚合规则中的以太网包类型为特定值, 则可 以得出匹配域为以太网包类型时不包含掩码, 所述聚合规则中的目的 IP地 址 10.0.0.0-10.0.255.255之间, 可以推导出进行规则匹配时, 目的 IP地址为 10.0.*.*就可以满足要求, 即目的 IP地址的低 16位可以不进行规则匹配(即 对应目的 IP地址为 10.0.*.* ), 则可以得出匹配域为目的 IP地址时, 包含掩 码, 掩码为 16位;

5 ) 匹配所述聚合规则的数据流与所述聚合规则相 匹配的匹配值: oxm value, 例如, 当所述聚合规则如表 1 所示, 匹配所述聚合规则的数据 流为 <以太网包类型 0x0800, 目的 IP地址为 10.0.250.255> <以太网包类型 0x0800, 目的 IP地址为 10.0.150.255>时, 匹配所述聚合规则的数据流与所 述聚合规则相匹配的匹配值可以为 <0x0800 , 10.0.0.0~10.0.255.255>, 即所述 聚合规则中的匹配域的值; 或者还可以是 <0x0800, 10.0.0.0-10.0.150.255 以 及 10.0.0.0-10.0.250.255>, 即匹配所述聚合规则的数据流与所述聚合规则 相 匹配的具体值; 或者还可以是包含匹配所述聚合规则的数据流 与所述聚合规 则相匹配的具体值的数值范围, 该数值范围属于所述聚合规则中的匹配域的 值即可, 如 <0χ0800 , 10.0.0.0-10.0.150.255~10.0.0.0-10.0.250.255> , 如 〈0x0800, 10.0.0.0-10.0.050.255~10.0.0.0-10.0.250.255>„ 例如, 以表 1所示的聚合规则为例, 生成的所述聚合规则中的匹配域的 结构可以包括表 3中所示的内容:

其中, MH=0表示匹配域没有掩码, MH=1表示匹配域有掩码。

后续所述控制器根据从表 3所示的匹配信息, 可以解析出所述聚合规则 中的匹配域为以太网包类型以及目的 IP地址, 匹配所述聚合规则的数据流 的以太网类型为 IPv4 ( Eth_type==0x0800 ) , 且目 的 IP 范围在 10.0.0.0-10.0.255.255之间, 并且进行规则匹配时, 目的 IP地址的低 16位不 进行规则匹配, 即目的 IP地址为 10.0.* .* , 且以太网包类型号为 0x0800就 能够匹配成功。

可选地, 所述交换机对匹配所述聚合规则的数据流进行 聚合还可以包 括: 所述交换机获取数据信息, 所述数据信息为所述交换机中匹配所述聚合 规则的数据流的摘要数据或全部数据。 具体地, 匹配所述聚合规则的数据流 实际上为数据包, 所述交换机可以获取数据包的全部内容(即全 部数据), 也可以获取数据包中的关键内容或部分内容( 即摘要数据), 则所述上报消 息携带的所述交换机中匹配所述聚合规则的数 据流的信息还可以为所述数 据信息和所述匹配信息, 以便后续控制器决定该类数据流的转发规则时 , 可 以参考该类数据流的摘要数据或者全部数据。

可选地, 所述交换机对匹配所述聚合规则的数据流进行 聚合还可以包 括: 所述交换机获取匹配所述聚合规则的数据流在 所述交换机中的存储地 址,例如匹配所述聚合规则的数据流在所述交 换机緩存中的序号( buffer ID ), 所述上报消息还可以携带匹配所述聚合规则的 数据流在所述交换机中的存 储地址, 以便根据所述存储地址, 能够在所述交换机中找到緩存的匹配所述 聚合规则的数据流。

可选地, 所述交换机对匹配所述聚合规则的数据流进行 聚合还可以包 括: 所述交换机确定所述聚合规则在所述交换机中 所在流表的标识, 例如 table ID,从而根据所述聚合规则在所述交换机中所在 流表的标识,可以在所 述交换机中找到所述聚合规则, 则所述上报消息还可以携带所述聚合规则在 所述交换机中所在流表的标识, 从而后续所述控制器可以通过对所述 ID对 应的流表的动作 (Action )进行修改, 来达到下发转发决策的目的。

可选地: 所述交换机对匹配所述聚合规则的数据流进行 聚合还可以包 括: 所述交换机生成匹配所述聚合规则的数据流的 上报原因, 例如, 上报原 因可以是未能匹配所述交换机的流表, 所述上报消息还可以携带匹配所述聚 合规则的数据流的上报原因, 以便所述控制器可以获取到更多的信息。

S304: 所述交换机通过 OpenFlow协议将所述上报消息发送给所述控制 9< - 所述上报消息中可以携带以下至少之一:所述 匹配信息,所述数据信息、 所述匹配所述聚合规则的数据流的存储地址、 所述聚合规则在所述交换机中 所在流表的标识、 所述匹配所述聚合规则的数据流的上报原因, 所述控制器 根据所述上报消息,确定所述交换机中匹配所 述聚合规则的数据流的转发规 则。

具体地, 在 OpenFlow网络中, OpenFlow协议规定了 Packet— In消息的 格式, 所述交换机可以通过 Packet— In消息的格式将待上报的数据流上报给 控制器。

在本发明实施例中, 可以对所述 Packet— In消息的格式进行扩展, 使得 所述聚合后的内容可以通过所述扩展的 Packet— In消息的格式上报给交换机, 所述扩展的 Packet— In消息的格式可以如下所示:

struct ofp_packet_in{

struct ofp— header header; /*消息头 */

uint8_t buffer num; uint32_t buff er— id [buffer num] ; /*匹配所述聚合规 则的数据流的数量和存储地址 */

uintl6_t total— 1 en;

uint8_t reason[buffer_num] ;/* 匹配所述聚合规则的数据流的上报原 因 */

uint8_t table— id[buffer— num]; /*所述聚合规则在所述交换机中所在流 表的标识 */

uint64_t cookie;

struct ofp— match match; /*匹配信息 */

uint8_t data[buffer_num] [0]; /*数据信息 */

}

上述实施例只是一种可选的实施方式, 当然, 在其它可选的实施例中, 还可以利用 OpenFlow协议的其它消息的格式或者其它扩展的 Pactket— In消 息的格式, 将所述聚合后的内容上报给所述控制器, 本发明实施例在此不做 限定。

S305: 所述控制器接收所述交换机发送的所述上报消 息。

S306: 所述控制器对所述交换机发送的所述上报消息 进行解析, 根据解 析得到的所述交换机中匹配所述聚合规则的数 据流的信息,确定所述交换机 中匹配所述聚合规则的数据流的转发规则。

具体地, 所述交换机中匹配所述聚合规则的数据流的信 息可以为所述匹 配信息 (即所述交换机中匹配所述聚合规则的数据流 的共性信息), 包括: 所述聚合规则中的匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和 所述匹配域的掩码信息, 以及所述交换机中匹配所述聚合规则的数据流 与所 述聚合规则相匹配的匹配值。 则, 所述控制器可以根据所述匹配信息(即共 性信息), 确定所述交换机中匹配所述聚合规则的数据流 的转发规则, 由于 所述交换机能够将匹配所述聚合规则的数据流 一起上报, 所述控制器能够针 对该类匹配聚合规则的数据流的共性信息,确 定交换机中该类匹配聚合规则 的数据流的转发规则, 不仅提高了控制通道的资源利用率, 还可以提高控制 通道的控制效率。

所述交换机中匹配所述聚合规则的数据流的信 息还可以包括所述数据 信息, 即所述交换机中匹配所述聚合规则的数据流的 摘要数据或全部数据, 则所述控制器不仅可以根据所述匹配信息(即 共性信息)确定转发规则, 还 可以根据所述数据信息, 考虑更多的信息, 来确定所述交换机中匹配所述聚 合规则的数据流的转发规则。

值得注意的是, 所述控制器可以让所述交换机中匹配所述聚合 规则的数 据流都遵循同一个转发规则,也可以让所述交 换机中匹配所述聚合规则的每 个数据流遵循不同的转发规则, 本发明实施例在此不做限定。

S307: 所述控制器将所述转发规则提供给所述交换机 , 以使得所述交换 机根据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进 行处 理。

所述控制器可以将所述转发规则发送给所述交 换机, 以使得所述交换机 根据所述转发规则,对所述交换机中后续接收 到的匹配所述聚合规则的数据 流进行处理。 进一步, 所述上报消息还可以携带所述交换机中匹配所 述聚合 规则的数据流在所述交换机中的存储地址,从 而所述控制器可以将所述转发 规则和所述存储地址都发送给所述交换机, 以使得所述交换机根据所述转发 规则, 对所述存储地址中緩存的匹配所述聚合规则的 数据流进行处理。

具体地, 所述控制器可以通过下发一个或者多个流表, 将所述转发规则 下发送给所述交换机, 例如所述控制器通过重新下发一个或多个流表 将所述 转发规则下发给所述交换机, 又例如, 所述上报消息还携带所述聚合规则在 所述交换机中所在流表的标识, 所述控制器可以根据所述聚合规则在所述交 换机中所在流表的标识, 对所述聚合规则在所述交换机中所在流表进行 修 改, 以将所述转发规则提供给所述交换机。

本发明实施例中, 交换机可以根据控制器提供的聚合规则, 对待上报的 数据流进行规则匹配, 对匹配所述聚合规则的数据流进行聚合, 获得上报消 息, 并将所述上报消息通过 OpenFlow协议发送给控制器, 使得所述控制器 可以根据所述上报消息,确定匹配所述聚合规 则的数据流的转发规则并提供 给所述交换机,避免所述交换机需要将每个待 上报的数据流都通过 Packet— In 消息上报给控制器才能获得转发规则, 减少了 OpenFlow网络中大量待上报 的数据流对控制通道带宽资源和控制通道效率 的影响,提高了控制通道带宽 资源的利用率。

实施例四

本发明实施例提出了一种用于 OpenFlow网络的交换机, 如图 4所示, 所述交换机 400具体可以包括获取单元 401、处理单元 402和发送单元 403。

所述获取单元 401 , 用于获取所述 OpenFlow网络中的控制器提供的聚合 规则。 所述处理单元 402 , 用于根据所述聚合规则, 对所述交换机中待上报的 数据流进行规则匹配, 对匹配所述聚合规则的数据流进行聚合, 获得上报消 息。

所述发送单元 403 , 用于通过 OpenFlow协议将所述上报消息发送给所 述控制器, 以使得所述控制器根据所述上报消息, 确定所述交换机中匹配所 述聚合规则的数据流的转发规则。

具体地, OpenFlow网络中的控制器可以预先设定一种规则 例如聚合 规则, 用于指示所述交换机按照该规则对所述交换机 中待上报的数据流进行 分类, 从而可以将匹配该规则的数据流进行聚合, 获得上报消息, 然后将上 报消息上报给所述控制器, 以提高 OpenFlow网络控制通道资源的利用率。

所述获取单元 401可以获取所述控制器提供的聚合规则, 所述聚合规则 中可以包括匹配域。 所述处理单元 402具体可以利用所述聚合规则中的匹配 域, 对所述交换机中待上报的数据流进行规则匹配 , 对匹配所述聚合规则的 数据流进行聚合, 获得上报消息; 具体地可以按照预设的策略, 对匹配所述 聚合规则的数据流进行聚合, 例如当匹配所述聚合规则的数据流的数量达到 预设门限时, 对匹配所述聚合规则的数据流进行聚合; 又例如, 根据预设时 间周期, 周期性地对匹配所述聚合规则的数据流进行聚 合。

所述处理单元 402对匹配所述聚合规则的数据流进行聚合可以 有多种方 式,可以是提取匹配所述聚合规则的数据流的 匹配信息, 即共性信息,例如, 如果所述处理单元 402利用所述聚合规则中的匹配域对待上报的数 据流进行 匹配, 则提取匹配所述聚合规则的数据流的共性信息 可以是提取所述聚合规 则中的匹配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域 的掩码信息, 以及提取匹配所述聚合规则的数据流与所述聚 合规则相匹配的 匹配值; 或者还可以是提取匹配所述聚合规则的数据流 的摘要数据或全部数 据, 则相应地, 所述上报消息中可以携带所述匹配信息, 或者还可以携带匹 配所述聚合规则的数据流的摘要数据或全部数 据, 以使得后续所述控制器根 据所述上报消息, 可以确定匹配所述聚合规则的数据流的转发规 则。 此外, 所述处理单元 402还可以通过对匹配所述聚合规则的数据流进 行聚合, 来获 取更多的信息并携带在上报消息中, 例如获取匹配所述聚合规则的数据流在 所述交换机中的存储地址(如在所述交换机緩 存中的序号), 或者所述聚合 规则在所述交换机中所在流表的标识。

所述发送单元 403 , 可以通过 OpenFlow协议将所述上报消息发送给所 述控制器, 例如对所述 OpenFlow协议中的 Packet— in消息的格式进行扩展, 通过所述扩展的 Packet— in消息的格式, 将所述上报消息发送给所述控制器, 从而所述控制器根据所述上报消息,确定所述 交换机中匹配所述聚合规则的 数据流的转发规则,对所述 OpenFlow协议中的 Packet— in消息的格式进行扩 展的具体实现方式可以参见实施例三, 在此不在赘述。

本发明实施例中, 所述获取单元 401可以获取所述控制器提供的聚合规 则, 所述处理单元 402可以根据所述聚合规则, 对所述交换机中待上报的数 据流进行规则匹配,对匹配所述聚合规则的数 据流进行聚合,获得上报消息, 所述发送单元 403可以将所述上报消息发送给所述控制器,使 得所述控制器 可以根据所述上报消息, 确定匹配所述聚合规则的数据流的转发规则, 避免 将每个待上报的数据流都通过 Packet— In 消息上报给控制器, 减少了 OpenFlow 网络中大量待上报的数据流对控制通道带宽资 源和控制通道效率 的影响, 提高了控制通道带宽资源的利用率。

本发明实施例提供的用于 OpenFlow网络的交换机, 可以执行如实施例 一或实施例三所述的用于 OpenFlow网络的数据处理方法的方法流程, 本发 明实施例在此不再赘述。

实施例五

本发明实施例提出了一种用于 OpenFlow网络的控制器, 如图 5所示, 所述控制器 500具体可以包括发送单元 501、 接收单元 502、 确定单元 503 和提供单元 504。 所述发送单元 501 , 用于将聚合规则提供给所述 OpenFlow网络中的交 换机。

所述接收单元 502, 用于接收所述交换机发送的上报消息, 所述上报消 息携带所述交换机中匹配所述聚合规则的数据 流的信息。

所述确定单元 503 , 用于根据所述上报消息, 确定所述交换机中匹配所 述聚合规则的数据流的转发规则。

所述提供单元 504, 用于将所述转发规则提供给所述交换机, 以使得所 述交换机根据所述转发规则,对所述交换机中 匹配所述聚合规则的数据流进 行处理。

具体地, 所述发送单元 501可以通过对交换机修改流表的方式(包括增 加流表项、 修改流表项、 删除流表项等)将聚合规则提供给交换机, 使得后 续所述交换机能够通过利用修改的流表,确定 待上报的数据流是否符合聚合 规则。

所述接收单元 502接收的上报消息携带的所述交换机中匹配所 述聚合规 则的数据流的信息可以为匹配信息, 所述匹配信息包括所述聚合规则中的匹 配域的类型、 所述匹配域的标识、 所述匹配域的长度和所述匹配域的掩码信 息, 以及所述交换机中匹配所述聚合规则的数据流 与所述聚合规则相匹配的 匹配值; 则所述确定单元 503可以对所述上 "^消息进行解析, 得到所述匹配 信息, 以及根据所述匹配信息, 确定所述交换机中匹配所述聚合规则的数据 流的转发规则。

所述接收单元 502接收的上报消息携带的所述交换机中匹配所 述聚合规 则的数据流的信息还可以为数据信息和所述匹 配信息, 所述数据信息为所述 交换机中匹配所述聚合规则的数据流的摘要数 据或全部数据; 则, 所述确定 单元 503可以对所述上报消息进行解析,得到所述数 据信息和所述匹配信息, 以及根据所述数据信息和所述匹配信息,确定 所述交换机中匹配所述聚合规 则的数据流的转发规则。 交换机根据所述转发规则,对所述交换机中后 续接收到的匹配所述聚合规则 的数据流进行处理。 进一步, 所述上报消息还可以携带所述交换机中匹配所 述聚合规则的数据流在所述交换机中的存储地 址,从而所述提供单元 504可 以将所述转发规则和所述存储地址都发送给所 述交换机, 以使得所述交换机 根据所述转发规则,对所述存储地址中緩存的 匹配所述聚合规则的数据流进 行处理。 具体地, 所述提供单元 504可以通过下发一个或者多个流表, 将所 述转发规则下发送给所述交换机,例如所述提 供单元 504通过下发一个或多 个流表, 将所述转发规则下发给所述交换机, 又例如, 所述上报消息还携带 所述聚合规则在所述交换机中所在流表的标识 (例如 table ID ), 所述提供单 元 504可以根据所述聚合规则在所述交换机中所在 流表的标识,对所述聚合 规则在所述交换机中所在流表进行修改, 以将所述转发规则提供给所述交换 机。

本发明实施例中, 所述发送单元 501可以将聚合规则提供给交换机, 所 述接收单元 502可以接收所述交换机发送的上报消息, 所述上报消息携带所 述交换机中匹配所述聚合规则的数据流的信息 ,从而所述确定单元 503根据 所述上报消息, 确定所述交换机中匹配所述聚合规则的数据流 的转发规则, 所述提供单元 504能够将所述转发规则提供给所述交换机,使 得所述交换机 根据所述转发规则, 对所述交换机中匹配所述聚合规则的数据流进 行处理, 避免所述交换机需要将每个待上报的数据流都 通过 Packet— In消息上报才能 获得转发规则, 减少了 OpenFlow网络中大量待上报的数据流对控制通道 宽资源和控制通道效率的影响, 提高了控制通道带宽资源的利用率。

本发明实施例提供的用于 OpenFlow网络的控制器, 可以执行如实施例 二或实施例三所述的用于 OpenFlow网络的数据处理方法的方法流程, 本发 明实施例在此不再赘述。

实施例六 如图 6, 为本发明实施例提供的一种用于 OpenFlow网络的数据处理装 置, 所述数据处理装置可以包括:

处理器 601、 存储器 602、 系统总线 604和通信接口 605。 处理器 601、 存储器 602和通信接口 605之间通过系统总线 604连接并完成相互间的通信。

处理器 601可能为单核或多核中央处理单元, 或者为特定集成电路, 或 者为被配置成实施本发明实施例的一个或多个 集成电路。

存储器 602 可以为高速 RAM 存储器, 也可以为非易失性存储器 ( non-volatile memory ) , 例 口至少一个磁盘存 4诸器。

存储器 602用于计算机执行指令 603。 具体的, 计算机执行指令 603中 可以包括程序代码。

当所述装置运行时, 处理器 601运行计算机执行指令 603 , 可以执行实 施例一至实施例三任意之一所述的用于 OpenFlow网络的数据处理方法的方 法流程。 当执行实施例一或实施例三的用于 OpenFlow网络的数据处理方法 的方法流程时, 所述数据处理装置可以为所述 OpenFlow网络中的交换机。 当执行实施例二或实施例三所述的用于 OpenFlow网络的数据处理方法的方 法流程时, 所述数据处理装置可以为所述 OpenFlow网络中的控制器。

本发明实施例提供了一种计算机可读介质, 包括计算机执行指令, 以供 计算机的处理器执行所述计算机执行指令时, 所述计算机执行实施例一或实 施例三的用于 OpenFlow网络的数据处理方法的方法流程。

本发明实施例还提供了一种计算机可读介质, 包括计算机执行指令, 以 供计算机的处理器执行所述计算机执行指令时 , 所述计算机执行实施例二或 实施例三的用于 OpenFlow网络的数据处理方法的方法流程。

本领域普通技术人员将会理解, 本发明的各个方面、 或各个方面的可能 实现方式可以被具体实施为系统、 方法或者计算机程序产品。 因此, 本发明 的各方面、 或各个方面的可能实现方式可以釆用完全硬件 实施例、 完全软件 实施例 (包括固件、驻留软件等等), 或者组合软件和硬件方面的实施例的形 式, 在这里都统称为"电路"、 "模块"或者"系统"。 此外, 本发明的各方面、 或各个方面的可能实现方式可以釆用计算机程 序产品的形式,计算机程序产 品是指存储在计算机可读介质中的计算机可读 程序代码。

计算机可读介质可以是计算机可读信号介质或 者计算机可读存储介质。 计算机可读存储介质包含但不限于电子、 磁性、 光学、 电磁、 红外或半导体 系统、 设备或者装置, 或者前述的任意适当组合, 如随机存取存储器 (RAM), 只读存储器 (ROM)、 可擦除可编程只读存储器 (EPROM或者快闪 存储器)、 光纤、 便携式只读存储器 (CD-ROM:)。

计算机中的处理器读取存储在计算机可读介质 中的计算机可读程序代 码, 使得处理器能够执行在流程图中每个步骤、 或各步骤的组合中规定的功 能动作;生成实施在框图的每一块、或各块的 组合中规定的功能动作的装置。

计算机可读程序代码可以完全在用户的计算机 上执行、部分在用户的计 算机上执行、 作为单独的软件包、 部分在用户的计算机上并且部分在远程计 算机上, 或者完全在远程计算机或者计算机上执行。 也应该注意, 在某些替 代实施方案中, 在流程图中各步骤、 或框图中各块所注明的功能可能不按图 中注明的顺序发生。 例如, 依赖于所涉及的功能, 接连示出的两个步骤、 或 两个块实际上可能被大致同时执行, 或者这些块有时候可能被以相反顺序执 行。

本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件的结 合来实现。 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特 定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不 同方 法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。

以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应所述以权利要求的保护范围为准。