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

文档序号:9754489阅读:来源:国知局
、15之间相互连接,OpenFlow交换机24与主机4、交换机15、0penFlow 交换机23之间相互连接,交换机12和交换机13相互连接。
[0150] 在本实施例中,第一 OpenFlow交换机与第一交换设备位于同一自治系统中。
[0151] 基于图5所示的架构,本发明实施例提供了一种端到端的路径控制和数据传输的 方法,参见图6,该方法包括:
[0152] 步骤501 :0penFlow控制器获取自治系统的网络拓扑和网络状态信息。
[0153] 步骤502 :0penFl〇W控制器确定待传输的数据包的源地址和目的地址。
[0154] 步骤503 :0penFlow控制器根据网络拓扑和网络状态信息,确定源地址到目的地 址的路径。
[0155] 步骤504 :0penFlow控制器确定路径中的第一 OpenFlow交换机。
[0156] 步骤505 :0penFlow控制器向第一 OpenFlow交换机下发控制消息。
[0157] 步骤506 :第一 OpenFlow交换机接收OpenFlow控制器下发的控制消息。
[0158] 步骤507 :第一 OpenFlow交换机根据控制消息设置待传输的数据包中的目的地 址。
[0159] 步骤508 :第一 OpenFlow交换机根据控制消息设置待传输的数据包中的源路由。
[0160] 步骤509 :第一 OpenFlow交换机根据控制消息中指定的端口将数据包发送给第一 交换设备。
[0161] 步骤510 :第一交换设备和剩余的交换设备处理数据包。
[0162] 步骤501~510与步骤301~310相同,这里不再赘述。
[0163] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0164] 实施例五
[0165] 本发明实施例提供了一种OpenFlow控制器,参见图7,该控制器包括:获取模块 71、第一确定模块72、第二确定模块73、第三确定模块74和发送模块75。
[0166] 获取模块71用于获取管理域或自治系统的网络拓扑和网络状态信息,管理域包 括OpenFlow控制器所属的OpenFlow网络和IP网络,OpenFlow网络包括多个OpenFlow交 换机,IP网络包括多个交换设备,自治系统包括所述OpenFlow控制器、OpenFlow控制器控 制的多个OpenFlow交换机和非OpenFlow控制器控制的多个交换设备;
[0167] 第一确定模块72用于确定待传输的数据包的源地址和目的地址;
[0168] 第二确定模块73用于根据网络拓扑和网络状态信息,确定源地址到目的地址的 路径;
[0169] 第三确定模块74用于确定路径中的第一 OpenFlow交换机,第一 OpenFlow交换机 为多个OpenFlow交换机中的一个,且第一 OpenFlow交换机的下一跳为第一交换设备,第一 交换设备为多个交换设备中的一个;
[0170] 发送模块75用于向第一 OpenFlow交换机下发控制消息,控制消息用于指示第一 OpenFlow交换机将待传输的数据包中的目的地址设置为第一交换设备的地址,
[0171] 控制消息还用于指示第一 OpenFlow交换机重新设置待传输的数据包中的源路 由,重新设置后的源路由依次包括路径中位于第一交换设备之后的剩余的交换设备的地址 和目的地址,
[0172] 控制消息还用于指示第一 OpenFlow交换机将待传输的数据包从第一 OpenFlow交 换机的指定端口发送给第一交换设备。
[0173] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0174] 实施例六
[0175] 本发明实施例提供了一种OpenFlow控制器,参见图8,该控制器包括:获取模块 81、第一确定模块82、第二确定模块83、第三确定模块84和发送模块85。
[0176] 获取模块81用于获取管理域或自治系统的网络拓扑和网络状态信息,管理域包 括OpenFlow控制器所属的OpenFlow网络和IP网络,OpenFlow网络包括多个OpenFlow交 换机,IP网络包括多个交换设备,自治系统包括所述OpenFlow控制器、OpenFlow控制器控 制的多个OpenFlow交换机和非OpenFlow控制器控制的多个交换设备;
[0177] 第一确定模块82用于确定待传输的数据包的源地址和目的地址;
[0178] 第二确定模块83用于根据网络拓扑和网络状态信息,确定源地址到目的地址的 路径;
[0179] 第三确定模块84用于确定路径中的第一 OpenFlow交换机,第一 OpenFlow交换机 为多个OpenFlow交换机中的一个,且第一 OpenFlow交换机的下一跳为第一交换设备,第一 交换设备为多个交换设备中的一个;
[0180] 发送模块85用于向第一 OpenFlow交换机下发控制消息,控制消息用于指示第一 OpenFlow交换机将待传输的数据包中的目的地址设置为第一交换设备的地址,
[0181] 控制消息还用于指示第一 OpenFlow交换机重新设置待传输的数据包中的源路 由,重新设置后的源路由依次包括路径中位于第一交换设备之后的剩余的交换设备的地址 和目的地址,
[0182] 控制消息还用于指示第一 OpenFlow交换机将待传输的数据包从第一 OpenFlow交 换机的指定端口发送给第一交换设备。
[0183] 进一步地,获取模块81可以包括:
[0184] 获取单元811用于获取第一网络状态信息,第一网络状态信息包括多个OpenFlow 交换机的设备信息、多个OpenFlow交换机之间的链路信息、与多个OpenFlow交换机连接的 一个或多个交换设备的设备信息、以及多个OpenFlow交换机与各自相连的交换设备之间 的链路信息;
[0185] 接收单元812用于接收第二网络状态信息,第二网络状态信息包括多个交换设备 的设备信息、多个交换设备之间的链路信息、与多个交换设备连接的一个或多个OpenFlow 交换机的设备信息、以及多个交换设备与各自相连的OpenFlow交换机之间的链路信息;
[0186] 确定单元813用于根据第一网络状态信息和第二网络状态信息,确定OpenFlow控 制器所属的管理域或者自治系统的网络拓扑和网络状态信息。
[0187] 在本实施例中,控制消息为流改变消息或数据包发送消息,流改变消息包括设 置域命令,设置域命令包括开放流扩展匹配类型(〇XM_Type)字段、开放流扩展匹配长度 (0XM_Length)字段和开放流扩展匹配值(0XM_Value)字段,开放流扩展匹配类型字段的值 用于指示待传输的数据包的类型,开放流扩展匹配长度字段的值用于指示开放流扩展匹配 有效信息的长度,开放流扩展匹配值字段用于承载重新设置后的源路由。
[0188] 具体地,源路由承载于数据包的选项(即IPv4的Option)字段或路由头(IPv6的 Routing Header)字段中,可以修改选项字段或路由头字段以实现源路由的重新设置。
[0189] 在本实施例中,可以扩展OpenFlow协议的OXM-Type以支持重设源路由。具体地, 可以在OXM-Type中增加信息0XM_0FB_IPV4_SSR及信息0XM_0FB_IPV4_LSR以支持重新设 定IPv4的Option字段,在OXM-Type中增加信息0XM_0FB_IPV6_SR以支持重新设定IPv6 的路由头字段。
[0190] 其中,第一 OpenFlow交换机根据表项重新设定数据包的源路由,可以包括:
[0191] 根据开放流扩展匹配类型字段的值判断待传输的数据包的类型的值是否为设定 值;其中该设定值可以人为进行设定,例如,前述OpenFlowl. 4协议中,0FPXMT_0FB_IPV4_ SSR = 42, 0FPXMT_0FB_IPV4_LSR = 43, 0FPXMT_0FB_IPV6_SR = 44 〇
[0192] 实现时,第一 OpenFlow交换机可以根据数据包的类型(即IPv4数据包和IPv6数 据包),分别对数据包的源路由的重新设置。
[0193] 具体地,当数据包为IPv4数据包时,第一 OpenFlow交换机重新设定源路由的过程 为:
[0194] 判断 0XM_Type 中的 0XM_0FB_IPV4_SSR 的值是否为设定值 42 或者 0XM_0FB_IPV4_ LSR的值是否为设定值43 ;
[0195] 如果0XM_0FB_IPV4_SSR为42,则将IPv4数据包中的Option字段的类型(Type) 字段的值设置为第一设定值137 (严格源路由的Type值),再将0XM_Length的值赋值给 Option字段的选项长度(Option-Length)字段,然后将0ΧΜ Payload的内容也即0XM_Value 字段的值赋值给Option字段的选项数据(Option-Data)。
[0196] 如果0XM_0FB_IPV4_LSR为43,则将IPv4数据包中的Option字段的类型(Type) 字段的值设置为第一设定值131 (松散源路由的Type值),再将0XM_Length的值赋值给 Option字段的选项长度(Option-Length)字段,然后将0ΧΜ Payload的内容也即0XM_Value 字段的值赋值给Option字段的选项数据(Option-Data)。
[0197] 需要说明的是,当待传输的数据包的类型发生变化时,Option字段中的类型字段 的值(即第一设定值)可以发生对应改变。
[0198] 当数据包为IPv6数据包时,第一 OpenFlow交换机重新设定源路由的过程为:
[0199] 判断0XM_Type字段中的0XM_0FB_IPV6_SR的值是否为设定值44 ;
[0200] 当参数0XM_0FB_IPV6_SR的值为44时,则将IPv6数据包路由头字段中的下一包 头(Next Header)字段的值设置为43,将路由头字段中的的类型(Type)字段的值设置为 〇,并将严格或松散位图(Strict/Loose Bit Map)字段的值设置为1 ;
[0201] 根据0XM_Length字段的值获得0ΧΜ Payload的长度,并计算0ΧΜ Payload携带有 多少个IPv6地址,并将计算结果设为路由头字段中的剩余节点字段的值;
[0202] 将0ΧΜ Payload中携带的多个IPv6地址依次取出,并按取出的顺序赋值到路由 头字段的地址字段中,例如,0ΧΜ Payload中携带的N个IPv6地址依次为Address[l]、 Address[2], Address[3],…,Address[N],贝U路由头字段的地址字段中的地址顺序也为 Address [1]、Address [2],Address [3],…,Address [N]。具体地,可以用 0XM_Length 字段 的值与128取整,已得到Payload携带的IPv6地址的个数。
[0203] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0204] 实施例七
[0205] 本发明实施例提供了一种OpenFlow控制器,参见图9,该OpenFlow控制器可以是 一种服务器。其一般包括至少一个处理器91 (例如CPU)、至少一个网络接口 92或者其他通 信接口、存储器93和至少一个通信总线94。本领域技术人员可以理解,图9中示出的服务 器的结构并不构成对交换设备的限定,其可以包括比图示更多或更少的部件,或者组合某 些部件,或者不同的部件布置。
[0206] 下面结合图9对OpenFlow控制器的各个构成部件进行具体的介绍:
[0207] 通信总线94用于实现处理器91、存储器93及网络接口 92之间的连接通信。
[0208] 至少一个网络接口 92(可以是有线或者无线)实现OpenFlow控制器分别与至少 两个其他计算机(例如主机)和一个服务器(例如OpenFlow交换机)之间的通信连接(计 算机与服务器可以共享一个网络接口 92分别与OpenFlow控制器连接),可以使用互联网, 广域网,本地网,城域网等。
[0209] 存储器93可用于存储软件程序以及应用模块,处理器91通过运行存储在存储器 93的软件程序以及应用模块,从而执行OpenFlow控制器的各种功能应用以及数据处理。存 储器93可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一 个功能(例如流表表项的匹配功能和执行指令功能)所需的应用程序等;存储数据区可存 储根据OpenFlow控制器的使用所创建的数据(例如存储的流表和数据库)等。此外,存储 器93可以包括高速RAM (Random Access Memory,随机存取存储器),还可以包括非易失性 存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固 态存储器件。
[0210] 处理器91是OpenFlow控制器的控制中心,利用各种接口和线路连接整个交换设 备的各个部分,通过运行或执行存储在存储器93内的软件程序和/或应用模块,以及调用 存储在存储器93内的数据,执行OpenFlow控制器的各种功能和处理数据,从而对交换设备 进行整体监控。
[0211] 具体地,通过运行或执行存储在存储器93内的软件程序和/或应用模块,以及调 用存储在存储器93内
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1