一种配置、下发流表项的方法及装置的制造方法

文档序号:8475057阅读:240来源:国知局
一种配置、下发流表项的方法及装置的制造方法
【技术领域】
[0001] 本发明涉及通信网络技术领域,尤其涉及一种配置、下发流表项的方法及装置。
【背景技术】
[0002] OpenFlow网络,是一种新型的网络创新架构,主要由控制器和交换机组成。交换机 功能专注而简化,只负责数据转发,控制器则对整个网络进行集中控制,实现控制层功能。 控制器通过标准的OpenFlow协议与交换机进行信息交互,从而进行统一、灵活、高效的网 络维护和管理。
[0003] 交换机是整个OpenFlow网络的核心部件,而流表记录了交换机转发数据包的规 贝1J。流表通常由多个流表项组成,每个流表项为一个数据包转发规则,交换机通过查询流表 来获得转发数据包的转发规则。交换机的软件系统包括软件层和硬件层,在现有技术中,交 换机与控制器的工作过程为:交换机接收到一个数据包后,在硬件层的流表中查找与数据 包匹配的流表项,如果在硬件层的流表中没有查找到匹配的流表项,则在软件层的流表中 接着查找流表项,如果在软件层的流表中也没有查找到匹配的流表项,就把数据包上报给 控制器;控制器产生与数据包匹配的流表项,并将数据包和流表项(下发的流表项可以是匹 配的所有流表项,也可以是匹配的所有流表项中从未下发过的流表项)下发给交换机;交换 机接收到控制器下发的流表项后,先将其保存到软件层的流表中,然后在软件层的流表中 查找与数据包匹配的所有流表项,最后将匹配的所有流表项聚合为硬件层的流表项,并将 该硬件层的流表项保存到硬件层的流表中。当交换机后续再接收到数据包后,就可以直接 在硬件层的流表中查找匹配的流表项,并按照该匹配的流表项的数据包转发规则转发该数 据包。
[0004] 发明人在实现本发明创造的过程中发现:在现有技术中,当交换机配置硬件层的 流表项时,需要在软件层的流表中查找与数据包匹配的所有流表项,而在软件层的流表中 查找匹配的所有流表项的过程本身往往会经历比较长的时间,由此也会增加硬件层的流表 项的配置时间,进而导致数据包的转发时延增大,并且,可能产生数据丢包的问题,特别是 在高速转发数据包的情况下,数据包丢包的问题可能会更加严重。

【发明内容】

[0005] 有鉴于此,本发明提供了一种配置、下发流表项的方法及装置,用以解决现有技术 中硬件层的流表项的配置时间较长,导致数据包的转发时延增大,并且,可能产生数据丢包 的问题,其技术方案如下:
[0006] 第一方面,一种配置流表项的方法,所述方法包括:
[0007] 交换机向控制器发送一个请求下发流表项的请求消息,所述请求消息中携带有待 转发的数据包;
[0008] 所述交换机接收所述控制器返回的一个响应消息,所述响应消息中携带有与所述 待转发的数据包匹配的所有流表项;
[0009] 所述交换机从所述响应消息中提取与所述待转发的数据包匹配的所有流表项;
[0010] 所述交换机将提取出的所有流表项聚合为硬件层的流表项,并在所述交换机支持 所述硬件层的流表项时,将所述硬件层的流表项配置到硬件层的流表中。
[0011] 结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
[0012] 通过所述响应消息中携带的,与所述待转发的数据包匹配的所有流表项转发所述 待转发的数据包。
[0013] 结合第一方面、第一方面的第一种可能的实现方式,在第一方面的第二种可能的 实现方式中,所述交换机和所述控制器之间通过OpenFlow协议进行通信,所述请求消息和 所述响应消息通过所述OpenFlow协议传输。
[0014] 结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式 中,所述响应消息为扩展的〇fp_fl〇w_mod消息,所述扩展的ofp_flow_mod消息为在ofp_ flow_mod消息中定义一个数组后所得到的消息,并且,所述扩展的ofp_flow_mod消息通过 定义的数组可同时携带多个流表项。
[0015] 结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式 中,所述响应消息还携带有消息类型标识以及流表项数量标识,所述消息类型标识用于指 示所述响应消息为扩展的〇fp_fl〇w_m 〇d消息,所述流表项数量标识用于指示所述扩展的 Ofp_f I〇w_mod消息中携带的流表项的数量。
[0016] 结合第一方面、第一方面的第一种可能的实现方式、第一方面的第二种可能的实 现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式,在第一方 面的第五种可能的实现方式中,所述方法还包括:将提取出的所有流表项配置到软件层的 流表中。
[0017] 第二方面,一种下发流表项的方法,所述方法包括:
[0018] 控制器接收交换机发送的一个请求下发流表项的请求消息,所述请求消息中携带 有待转发的数据包;
[0019] 所述控制器生成与所述待转发的数据包匹配的所有流表项;
[0020] 所述控制器向所述交换机返回一个响应消息,所述响应消息中携带有与所述待转 发的数据包匹配的所有流表项,其中,与所述数据包匹配的所有流表项用于聚合为硬件层 的流表项,所述硬件层的流表项用于配置到所述交换机的硬件层的流表中。
[0021] 结合第二方面,在第二方面的第一种可能的实现方式中,所述控制器和所述交换 机之间通过OpenFlow协议进行通信,所述请求消息和所述响应消息通过所述OpenFlow协 议传输。
[0022] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述响应消息为扩展的〇fp_fl〇w_mod消息,所述扩展的ofp_flow_mod消息为在ofp_ flow_mod消息中定义一个数组后所得到的消息,并且,所述扩展的ofp_flow_mod消息通过 定义的数组可同时携带多个流表项。
[0023] 第三方面,一种配置流表项的装置,所述装置包括:
[0024] 发送模块,用于向控制器发送一个请求下发流表项的请求消息,所述请求消息中 携带有待转发的数据包;
[0025] 接收模块,用于接收所述控制器返回的一个响应消息,所述响应消息中携带有与 所述待转发的数据包匹配的所有流表项;
[0026] 提取模块,用于从所述接收模块接收的所述响应消息中提取与所述待转发的数据 包匹配的所有流表项;
[0027] 硬件层配置模块,用于将所述提取模块提取出的所有流表项聚合为硬件层的流表 项,并在所述交换机支持所述硬件层的流表项时,将所述硬件层的流表项配置到硬件层的 流表中。
[0028] 结合第三方面,在第三方面的第一种可能的实现方式中,所述装置还包括:
[0029] 转发模块,用于通过所述接收模块接收的所述响应消息中携带的与所述待转发的 数据包匹配的所有流表项转发所述待转发的数据包。
[0030] 结合第三方面、第三方面的第一种可能的实现方式,在第三方面的第二种可能的 实现方式中,所述交换机和所述控制器之间通过OpenFlow协议进行通信,所述请求消息和 所述响应消息通过所述OpenFlow协议传输。
[0031] 结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式 中,所述响应消息为扩展的〇fp_fl〇w_mod消息,所述扩展的ofp_flow_mod消息为在ofp_ flow_mod消息中定义一个数组后所得到的消息,并且,所述扩展的ofp_flow_mod消息通过 定义的数组可同时携带多个流表项。
[0032] 结合第三方面的第三种可能的实现方式中,在第三方面的第四种可能的实现方式 中,所述响应消息还携带有消息类型标识以及流表项数量标识,所述消息类型标识用于指 示所述响应消息为扩展的〇fp_fl〇w_m 〇d消息,所述流表项数量标识用于指示所述扩展的 ofp_flow_mod消息中携带的流表项的数量。
[0033] 结合第三方面、第三方面的第一种可能的实现方式、第三方面的第二种可能的实 现方式、第三方面的第三种可能的实现方式、第三方面的第四种可能的实现方式,在第三方 面的第五种可能的实现方式中,所述装置还包括:
[0034] 软件层配置模块,用于将提取出的所有流表项配置到软件层的流表中。
[0035] 第四方面,一种下发流表项的装置,所述装置包括:
[0036] 接收模块,用于接收交换机发送的一个请求下发流表项的请求消息,所述请求消 息中携带有待转发的数据包;
[0037] 流表项生成模块,用于生成与所述待转发的数据包匹配的所有流表项;
[0038] 发送模块,用于向所述交换机返回一个响应消息,所述响应消息中携带有与所述 待转发的数据包匹配的所有流表项,其中,与所述待转发的数据包匹配的所有流表项用于 聚合为硬件层的流表项,所述硬件层的流表项用于配置到所述交换机的硬件层的流表中。
[0039] 结合第四方面,在第四方面的第一种可能的实现方式中,所述控制器和所述交换 机之间通过OpenFlow协议进行通信,所述请求消息和所述响应消息通过所述OpenFlo
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1