端到端的路径控制和数据传输方法、OpenFlow控制器和交换机的制作方法

文档序号:9754489阅读:221来源:国知局
端到端的路径控制和数据传输方法、OpenFlow控制器和交换机的制作方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别涉及一种端到端的路径的控制和数据传输方法、 OpenFlow控制器和交换机。
【背景技术】
[0002] 随着软件定义网络(Software Defined Network,简称"SDN")理念的不断发展,开 放流(OpenFlow)网络的发展步伐也在不断加快。在一定时期内,开放流网络将与传统IP 网络共存。一种比较常见的场景为同一个管理域(即属于同一个网络运营商的多种网络) 内,网际协议(Internet Protocol,简称"IP")网络作为核心网络,而多个OpenFlow网络 作为接入网络与IP网络互联。那么,如何调度该管理域内的网络资源,创建和控制端到端 (即主机到主机之间)的路径成为了重要的研究课题。
[0003] 现有技术中,提供一种尽力而为的端到端的路径的控制方法,OpenFlow网络中的 开放流控制器(OpenFlow Controller,简称"0FC")根据该OpenFlow网络中的开放流交换 机(OpenFlow Switch,简称"0FS")之间的实时链路状态以及边缘的0FS与IP网络中边缘 的路由器之间的当前链路状态,对OpenFlow网络段、OpenFlow网络与IP网络的边缘连接 部分的链路进行控制,然后将数据发送至IP网络,IP网络采用尽力而为服务(Best-Effort Service)模型来发送数据,但对数据的延时、可靠性等性能不提供任何保证)。
[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005] 由于OpenFlow控制器无法根据IP网络内的链路的实时状态对其进行控制,因而 无法对端到端的路径进行统一地控制,而IP网络中的尽力而为的服务并不能保证Q〇S,故 整个端到端的路径无法保证服务质量(Quality of Service,简称"QoS")。

【发明内容】

[0006] 为了解决现有技术中的上述问题,本发明实施例提供了一种端到端的路径的控制 方法和数据传输方法。所述技术方案如下:
[0007] -方面,本发明实施例提供了一种端到端的路径控制方法,所述方法包括:
[0008] OpenFlow控制器获取管理域或自治系统的网络拓扑和网络状态信息,所述管理域 包括所述OpenFlow控制器所属的OpenFlow网络和IP网络,所述OpenFlow网络包括多个 OpenFlow交换机,所述IP网络包括多个交换设备,所述自治系统包括所述OpenFlow控制 器、所述OpenFlow控制器控制的多个OpenFlow交换机和非所述OpenFlow控制器控制的多 个交换设备;
[0009] 确定待传输的数据包的源地址和目的地址;
[0010] 根据所述网络拓扑和网络状态信息,确定所述源地址到所述目的地址的路径;
[0011] 确定所述路径中的第一 OpenFlow交换机,所述第一 OpenFlow交换机为多个 OpenFlow交换机中的一个,且所述第一 OpenFlow交换机的下一跳为第一交换设备,所述第 一交换设备为多个交换设备中的一个;
[0012] 向所述第一 OpenFlow交换机下发控制消息,所述控制消息用于指示所述第一 OpenFlow交换机将所述待传输的数据包中的目的地址设置为所述第一交换设备的地址,
[0013] 所述控制消息还用于指示所述第一 OpenFlow交换机重新设置所述待传输的数据 包中的源路由,重新设置后的所述源路由依次包括所述路径中位于所述第一交换设备之后 的剩余的交换设备的地址和所述目的地址,
[0014] 所述控制消息还用于指示所述第一 OpenFlow交换机将所述待传输的数据包从所 述第一 OpenFlow交换机的指定端口发送给所述第一交换设备。
[0015] 进一步地,所述OpenFlow控制器获取管理域或自治系统的网络拓扑和网络状态 信息,包括:
[0016] 获取第一网络状态信息,所述第一网络状态信息包括所述多个OpenFlow交换机 的设备信息、所述多个OpenFlow交换机之间的链路信息、与所述多个OpenFlow交换机连接 的一个或多个交换设备的设备信息、以及所述多个OpenFlow交换机与各自相连的交换设 备之间的链路信息;
[0017] 接收第二网络状态信息,所述第二网络状态信息包括所述多个交换设备的设备信 息、所述多个交换设备之间的链路信息、与所述多个交换设备连接的一个或多个OpenFlow 交换机的设备信息、以及所述多个交换设备与各自相连的所述OpenFlow交换机之间的链 路息;
[0018] 根据所述第一网络状态信息和所述第二网络状态信息,确定所述OpenFlow控制 器所属的管理域或者自治系统的网络拓扑。
[0019] 进一步地,所述控制消息为流改变消息或数据包发送消息,所述流改变消息包括 设置域命令,所述设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和 开放流扩展匹配值字段,所述开放流扩展匹配类型字段的值用于指示所述待传输的数据包 的类型,所述开放流扩展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,所 述开放流扩展匹配值字段用于承载重新设置后的所述源路由。
[0020] 另一方面,本发明实施例提供了一种端到端的数据传输方法,适用于在管理域或 自治系统中进行数据传输,所述管理域包括OpenFlow网络和IP网络,所述OpenFlow网络 包括OpenFlow控制器和多个OpenFlow交换机,所述IP网络包括多个交换设备,所述自治 系统包括OpenFlow控制器、所述OpenFlow控制器控制的多个OpenFlow交换机和非所述 OpenFlow控制器控制的多个交换设备,所述方法包括:
[0021 ] 接收所述OpenFlow控制器下发的控制消息,所述控制消息用于指示第一 OpenFlow交换机将所述待传输的数据包中的目的地址设置为第一交换设备的地址,所述第 一 OpenFlow交换机为多个OpenFlow交换机中的一个,且所述第一 OpenFlow交换机的下一 跳为第一交换设备,所述第一交换设备为多个交换设备中的一个,
[0022] 所述控制消息还用于指示所述第一 OpenFlow交换机重新设置所述待传输的数据 包中的源路由,重新设置后的所述源路由依次包括所述路径中位于所述第一交换设备之后 的剩余的交换设备的地址和所述目的地址,
[0023] 所述控制消息还用于指示所述第一 OpenFlow交换机将所述待传输的数据包从所 述第一 OpenFlow交换机的指定端口发送给所述第一交换设备;
[0024] 根据所述控制消息,设置所述待传输的数据包中的目的地址和源路由,并将所述 待传输的数据包从指定端口发送给所述第一交换设备。
[0025] 进一步地,所述控制消息为流改变消息或数据包发送消息,所述流改变消息包括 设置域命令,所述设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和 开放流扩展匹配值字段,所述开放流扩展匹配类型字段的值用于指示所述待传输的数据包 的类型,所述开放流扩展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,所 述开放流扩展匹配值字段用于承载重新设置后的所述源路由。
[0026] 更进一步地,所述根据所述控制消息,设定所述待传输的数据包中的目的地址和 源路由,包括:
[0027] 根据所述开放流扩展匹配类型字段的值判断所述待传输的数据包的类型;
[0028] 当所述待传输的数据包为IPv4数据包时,将所述待传输的数据包的选项字段中 的选项类型字段的值设为第一设定值,将所述开放流扩展匹配长度的值赋值给所述选项字 段中的选项长度字段,并将所述开放流扩展匹配值字段的值赋值给所述选项字段中的选项 数据字段;
[0029] 当所述待传输的数据包为IPv6数据包时,将所述待传输数据包的路由头字段中 的下一包头字段、类型字段、严格或松散位图字段的值设置为第二设定值,根据所述开放流 扩展匹配长度的值计算IPv6地址的个数,并将计算结果设为路由头字段中的剩余节点字 段的值,并将IPv6地址依次取出,按取出的顺序赋值给路由头字段中的地址字段。
[0030] 一方面,本发明实施例提供了一种OpenFlow控制器,所述控制器包括:
[0031] 获取模块,用于获取管理域或自治系统的网络拓扑和网络状态信息,所述管理域 包括所述OpenFlow控制器所属的OpenFlow网络和IP网络,所述OpenFlow网络包括多个 OpenFlow交换机,所述IP网络包括多个交换设备,所述自治系统包括所述OpenFlow控制 器、所述OpenFlow控制器控制的多个OpenFlow交换机和非所述OpenFlow控制器控制的多 个交换设备;
[0032] 第一确定模块,用于确定待传输的数据包的源地址和目的地址;
[0033] 第二确定模块,用于根据所述网络拓扑和网络状态信息,确定所述源地址到所述 目的地址的路径;
[0034] 第三确定模块,用于确定所述路径中的第一 OpenFlow交换机,所述第一 OpenFlow 交换机为多个OpenFlow交换机中的一个,且所述第一 OpenFlow交换机的下一跳为第一交 换设备,所述第一交换设备为多个交换设备中的一个;
[0035] 发送模块,用于向所述第一 OpenFlow交换机下发控制消息,所述控制消息用于指 示所述第一 OpenFlow交换机将所述待传输的数据包中的目的地址设置为所述第一交换设 备的地址,
[0036] 所述控制消息还用于指示所述第一 OpenFlow交换机重新设置所述待传输的数据 包中的源路由,重新设置后的所述源路由依次包括所述路径中位于所述第一交换设备之后 的剩余的交换设备的地址和所述目的地址,
[0037] 所述控制消息还用于指示所述第一 OpenFlow交换机将所述待传输的数据包从所 述第一 OpenFlow交换机的指定端口发送给所述第一交换设备。
[0038] 进一步地,所述获取模块包括:
[0039] 获取单元,用于获取第一网络状态信息,所述第一网络状态信息包括所述多个 OpenFlow交换机的设备信息、所述多个OpenFlow交换机之间的链路信息、与所述多个 OpenFlow交换机连接的一个或多个交换设备的设备信息、以及所述多个OpenFlow交换机 与各自相连的交换设备之间的链路信息;
[0040] 接收单元,用于接收第二网络状态信息,所述第二网络状态信息包括所述多个交 换设备的设备信息、所述多个交换设备之间的链路信息、与所述多个交换设备连接的一个 或多个OpenFlow交换机的设备信息、以及所述多个交换设备与各自相连的所述OpenFlow 交换机之间的链路信息;
[0041] 确定单元,用于根据所述第一网络状态信息和所述第二网络状态信息,确定所述 OpenFlow控制器所属的管理域或者自治系统的网络拓扑和网络状态信息。
[0042] 可选地,所述控制消息为流改变消息或数据包发送消息,所述流改变消息包括设 置域命令,所述设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和开 放流扩展匹配值字段,所述开放流扩展匹配类型字段的值用于指示所述待传输的数据包的 类型,所述开放流扩展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,所述 开放流扩展匹配值字段用于承载重新设置后的所述源路由。
[0043] 另一方面,本发明实施例提供了一种OpenFlow交换机,适用于在管理域或自治系 统中进行数据传输,所述管理域包括OpenFlow网络和IP网络,所述OpenFlow网络包括 OpenFlow控制器和多个OpenFlow交换机,所述IP网络包括多个交换设备,所述自治系统包 括OpenFlow控制器、所述OpenFlow控制器控制的多个OpenFlow交换机和非所述OpenFlow 控制器控制的多个交换设备,所述交换机包括:
[0044] 接收模块,用于接收所述OpenFlow控制器下发的控制消息,所述控制消息用于指 示第一 OpenFlow交换机将所述待传输的数据包中的目的地址设置为第一交换设备的地 址,所述第一 OpenFlow交换机为多个OpenFlow交换机中的一个,且所述第一 OpenFlow交 换机的下一跳为第一交换设备,所述第一交换设备为多个交换设备中的一个,
[0045] 所述控制消息还用于指示所述第一 OpenFlow交换机重新设置所述待传输的数据 包中的源路由,重新设置后的所述源路由依次包括所述路径中位于所述第一交换设备之后 的剩余的交换设备的地址和所述目的地址,
[0046] 所述控制消息还用于指示所述第一 OpenFlow交换机将所述待传输的数据包从所 述第一 OpenFlow交换机的指定端口发送给所述第一交换设备;
[0047] 处理模块,用于根据所述控制消息,设置所述待传输的数据包中的目的地址和源 路由,并将所述待传输的数据包从指定端口发送给所述第一交换设备。
[0048] 可选地,所述控制消息为流改变消息或数据包发送消息,所述流改变消息包括设 置域命令,所述设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和开 放流扩展匹配值字段,所述开放流扩展匹配类型字段的值用于指示所述待传输的数据包的 类型,所述开放流扩展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,所述 开放流扩展匹配值字段用于承载重新设置后的所述源路由。
[0049] 进一步地,处理模块包括:
[0050] 判断单元,用于根据所述开放流扩展匹配类型字段的值判断所述待传输的数据包 的类型;
[0051] 第一设置单元,用于当所述待传输的数据包为IPv4数据包时,将所述待传输的数 据包的选项字段中的选项类型字段的值设为第一设定值,将所述开放流扩展匹配长度的值 赋值给所述选项字段中的选项长度字段,并将所述开放流扩展匹配值字段的值赋值给所述 选项字段中的选项数据字段;
[0052] 第二设置单元,用于当所述待传输的数据包为IPv6数据包时,将所述待传输数据 包的路由头字段中的下一包头字段、类型字段、严格或松散位图字段的值设置为第二设定 值,根据所述开放流扩展匹配长度的值计算IPv6地址的个数,并将计算结果设为路由头字 段中的剩余节点字段的值,并将IPv6地址依次取出,按取出的顺序赋值给路由头字段中的 地址字段。
[0053] 本发明实施例提供的技术方案带来的有益效果是:
[0054] 通过获取OpenFlow控制器所属的管理域或自制系统的网络拓扑,确定待传输的 数据包的源地址到目的地址的路径,并确定该路径中的第一 OpenFlow交换机,OpenFlow控 制器可以向该第一 OpenFlow交换机发送控制消息,用于将待传输的数据包中的目的地址 设置为第一 OpenFlow交换机下一跳的第一交换设备的地址,并重新设置待传输的数据包 中的源路由,再将待传输的数据包从第一 OpenFlow交换机的指定端口发送给第一交换设 备,实现了 OpenFlow控制器对整个端到端的路径的控制,有利于灵活高效地
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1