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

文档序号:9754489阅读:来源:国知局
的数据,处理器91可以实现,获取管理域或自治系统的网络拓扑和网 络状态信息,管理域包括OpenFlow控制器所属的OpenFlow网络和IP网络,OpenFlow网络 包括多个OpenFlow交换机,IP网络包括多个交换设备,自治系统包括所述OpenFlow控制 器、OpenFlow控制器控制的多个OpenFlow交换机和非OpenFlow控制器控制的多个交换设 备;
[0212] 确定待传输的数据包的源地址和目的地址;
[0213] 根据网络拓扑和网络状态信息,确定源地址到目的地址的路径;
[0214] 确定路径中的第一 OpenFlow交换机,第一 OpenFlow交换机为多个OpenFlow交换 机中的一个,且第一 OpenFlow交换机的下一跳为第一交换设备,第一交换设备为多个交换 设备中的一个;
[0215] 网络接口 92可以实现,向第一 OpenFlow交换机下发控制消息,控制消息用于指示 第一 OpenFlow交换机将待传输的数据包中的目的地址设置为第一交换设备的地址,
[0216] 控制消息还用于指示第一 OpenFlow交换机重新设置待传输的数据包中的源路 由,重新设置后的源路由依次包括路径中位于第一交换设备之后的剩余的交换设备的地址 和目的地址,
[0217] 控制消息还用于指示第一 OpenFlow交换机将待传输的数据包从第一 OpenFlow交 换机的指定端口发送给第一交换设备。
[0218] 进一步地,处理器91还可以实现,获取第一网络状态信息,第一网络状态信息 包括多个OpenFlow交换机的设备信息、多个OpenFlow交换机之间的链路信息、与多个 OpenFlow交换机连接的一个或多个交换设备的设备信息、以及多个OpenFlow交换机与各 自相连的交换设备之间的链路信息;
[0219] 网络接口 92还可以实现,接收第二网络状态信息,第二网络状态信息包括多个 交换设备的设备信息、多个交换设备之间的链路信息、与多个交换设备连接的一个或多个 OpenFlow交换机的设备信息、以及多个交换设备与各自相连的OpenFlow交换机之间的链 路息;
[0220] 处理器91还可以实现,根据第一网络状态信息和第二网络状态信息,确定 OpenFlow控制器所属的管理域或者自治系统的网络拓扑和网络状态信息。
[0221] 在本实施例中,控制消息为流改变消息或数据包发送消息,流改变消息包括设置 域命令,设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和开放流扩 展匹配值字段,开放流扩展匹配类型字段的值用于指示待传输的数据包的类型,开放流扩 展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,开放流扩展匹配值字段用 于承载重新设置后的源路由。
[0222] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0223] 实施例八
[0224] 本发明实施例提供了一种OpenFlow交换机,适用于在管理域或自治系统中进行 数据传输,管理域包括OpenFlow网络和IP网络,OpenFlow网络包括OpenFlow控制器和多 个OpenFlow交换机,IP网络包括多个交换设备,自治系统包括OpenFlow控制器、OpenFlow 控制器控制的多个OpenFlow交换机和非OpenFlow控制器控制的多个交换设备,参见图10, 该交换机包括:接收模块11和处理模块12。
[0225] 接收模块11用于接收OpenFlow控制器下发的控制消息,控制消息用于指示第 一 OpenFlow交换机将待传输的数据包中的目的地址设置为第一交换设备的地址,第一 OpenFlow交换机为多个OpenFlow交换机中的一个,且第一 OpenFlow交换机的下一跳为第 一交换设备,第一交换设备为多个交换设备中的一个,
[0226] 控制消息还用于指示第一 OpenFlow交换机重新设置待传输的数据包中的源路 由,重新设置后的源路由依次包括路径中位于第一交换设备之后的剩余的交换设备的地址 和目的地址,
[0227] 控制消息还用于指示第一 OpenFlow交换机将待传输的数据包从第一 OpenFlow交 换机的指定端口发送给第一交换设备;
[0228] 处理模块12用于根据控制消息,设置待传输的数据包中的目的地址和源路由,并 将待传输的数据包从指定端口发送给第一交换设备。
[0229] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0230] 实施例九
[0231] 本发明实施例提供了一种OpenFlow交换机,适用于在管理域或自治系统中进行 数据传输,管理域包括OpenFlow网络和IP网络,OpenFlow网络包括OpenFlow控制器和多 个OpenFlow交换机,IP网络包括多个交换设备,自治系统包括OpenFlow控制器、OpenFlow 控制器控制的多个OpenFlow交换机和非OpenFlow控制器控制的多个交换设备,参见图11, 该交换机包括:接收模块21和处理模块22。
[0232] 接收模块21用于接收OpenFlow控制器下发的控制消息,控制消息用于指示第 一 OpenFlow交换机将待传输的数据包中的目的地址设置为第一交换设备的地址,第一 OpenFlow交换机为多个OpenFlow交换机中的一个,且第一 OpenFlow交换机的下一跳为第 一交换设备,第一交换设备为多个交换设备中的一个,
[0233] 控制消息还用于指示第一 OpenFlow交换机重新设置待传输的数据包中的源路 由,重新设置后的源路由依次包括路径中位于第一交换设备之后的剩余的交换设备的地址 和目的地址,
[0234] 控制消息还用于指示第一 OpenFlow交换机将待传输的数据包从第一 OpenFlow交 换机的指定端口发送给第一交换设备;
[0235] 处理模块22用于根据控制消息,设置待传输的数据包中的目的地址和源路由,并 将待传输的数据包从指定端口发送给第一交换设备。
[0236] 在本实施例中,控制消息为流改变消息或数据包发送消息,流改变消息包括设置 域命令,设置域命令包括开放流扩展匹配类型字段、开放流扩展匹配长度字段和开放流扩 展匹配值字段,开放流扩展匹配类型字段的值用于指示待传输的数据包的类型,开放流扩 展匹配长度字段的值用于指示开放流扩展匹配有效信息的长度,开放流扩展匹配值字段用 于承载重新设置后的源路由。
[0237] 具体地,源路由承载于数据包的选项(即IPv4的Option)字段或路由头(IPv6的 Routing Header)字段中,可以修改选项字段或路由头字段以实现源路由的重新设置。
[0238] 在本实施例中,可以扩展OpenFlow协议的OXM-Type以支持重设源路由。具体地, 可以在OXM-Type中增加信息0XM_0FB_IPV4_SSR及信息0XM_0FB_IPV4_LSR以支持重新设 定IPv4的Option字段,在OXM-Type中增加信息0XM_0FB_IPV6_SR以支持重新设定IPv6 的路由头字段。
[0239] 进一步地,处理模块21可以包括:
[0240] 判断单元221用于根据开放流扩展匹配类型字段的值判断待传输的数据包的类 型;其中该开放流扩展匹配类型字段的值可以人为进行设定,例如,前述OpenFlowl. 4协议 中,0FPXMT_0FB_IPV4_SSR = 42, 0FPXMT_0FB_IPV4_LSR = 43, 0FPXMT_0FB_IPV6_SR = 44。
[0241] 第一设置单元222用于当待传输的数据包为IPv4数据包时,将待传输的数据包的 选项字段中的选项类型字段的值设为第一设定值,将开放流扩展匹配长度的值赋值给选项 字段中的选项长度字段,并将开放流扩展匹配值字段的值赋值给选项字段中的选项数据字 段;
[0242] 第二设置单元223用于当待传输的数据包为IPv6数据包时,将待传输数据包的路 由头字段中的下一包头字段、类型字段、严格或松散位图字段的值设置为第二设定值,根据 开放流扩展匹配长度的值计算IPv6地址的个数,并将计算结果设为路由头字段中的剩余 节点字段的值,并将IPv6地址依次取出,按取出的顺序赋值给路由头字段中的地址字段。
[0243] 具体地,当数据包为IPv4数据包时,第一 OpenFlow交换机重新设定源路由的过程 为:
[0244] 判断 0XM_Type 中的 0XM_0FB_IPV4_SSR 的值是否为设定值 42 或者 0XM_0FB_IPV4_ LSR的值是否为设定值43 ;
[0245] 如果0XM_0FB_IPV4_SSR为42,则将IPv4数据包中的Option字段的类型(Type) 字段的值设置为第一设定值137 (严格源路由的Type值),再将0XM_Length的值赋值给 Option字段的选项长度(Option-Length)字段,然后将0ΧΜ Payload的内容也即0XM_Value 字段的值赋值给Option字段的选项数据(Option-Data)。
[0246] 如果0XM_0FB_IPV4_LSR为43,则将IPv4数据包中的Option字段的类型(Type) 字段的值设置为第一设定值131 (松散源路由的Type值),再将0XM_Length的值赋值给 Option字段的选项长度(Option-Length)字段,然后将0ΧΜ Payload的内容也即0XM_Value 字段的值赋值给Option字段的选项数据(Option-Data)。
[0247] 当数据包为IPv6数据包时,第一 OpenFlow交换机重新设定源路由的过程为:
[0248] 判断0XM_Type字段中的0XM_0FB_IPV6_SR的值是否为设定值44 ;
[0249] 当参数0XM_0FB_IPV6_SR的值为44时,则将IPv6数据包路由头字段中的下一包 头(Next Header)字段的值设置为43,将路由头字段中的的类型(Type)字段的值设置为 〇,并将严格或松散位图(Strict/Loose Bit Map)字段的值设置为1 ;
[0250] 根据0XM_Length字段的值获得0ΧΜ Payload的长度,并计算0ΧΜ Payload携带有 多少个IPv6地址,并将计算结果设为路由头字段中的剩余节点字段的值;
[0251] 将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地址的个数。
[0252] 本发明实施例通过第一 OpenFlow交换机接收OpenFlow控制器发送的控制消息, 将待传输的数据包中的目的地址设置为第一 OpenFlow交换机下一跳的第一交换设备的地 址,并重新设置待传输的数据包中的源路由,再将待传输的数据包从第一 OpenFlow交换机 的指定端口发送给第一交换设备,由第一 OpenFlow交换机根据OpenFlow控制器的命令配 合OpenF 1 ow控制器,实现了 OpenF 1 ow控制器对整个端到端的路径的控制,有利于灵活高效 地调度全网的网络资源,有助于实现QoS保证。
[0253] 实施例十
[0254] 本发明实施例提供了一种OpenFlow交换机,参见图12,该OpenFlow交换机可以是 一种交换机。其一般包括至少一个处理器31 (例如CPU)、至少一个网络接口 32或者其他通 信接口、存储器33和至少一个通信总线34。本领域技术人员可以理解,图12中示出的服务 器的结构并不构成对交换设备的限定,其可以包括比图示更多或更少的部件,或者组合某 些部件,或者不同的部件布置。
[0255] 下面结合图12对OpenFlow交换机的各个构成部件进行具体的介绍:
[0256] 通信总线34用于实现处理器31、存储器33及网络接口 92之间的连接通信。
[0257] 至少一个网络接口 32(可以是有线或者无线)实现OpenFlow交换机分别与至少 两个其他计算机(例如主机)和一个服务器(例如OpenFlow控制器)之间的通信连接(计 算机与服务器可以共享一个网络接口 32分别与OpenFlow交换机连接),可以使用互联网, 广域网,本地网,城域网等。
[0258] 存储器33可用于存储软件程序以及应用模块,处理器31通过运行存储在存储器 33的软件程序以及应用模块,从而执行OpenFlow交换机的各种功能应用以及数据处理。存 储器33可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一 个功能(例如流表表项的匹配功能和执行指令功能)所需的应用程序等;存储数据区可存 储根据OpenFlow交换机的使用所创建的数据(例如存储的流表和数据库)等。此外,存储 器33可以包括高速RAM (Random Access Memory,随机存取存储器),还可以包括非易失性 存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固 态存储器件。
[0259] 处理器31是OpenFlow交换机的控制中心,利用各种接口和线路连接整个交换设 备的各个部分,通过运行或执行存储在存储器33内的软件程序和/或应用模块,以及调用 存储在存储器33内的数据,执行OpenFlow交换机的各种功能和处理数据,从而对交换设备 进行整体监控。
[0260] 具体地,通过运行或执行存储在存储器33内的软件程序和/或应用模块,以及调 用存储在存储器33内的数据,处理器31可以实现,接收OpenFlow控制器下发的控制消息, 控制消息用于指示第一 OpenFlow交换机将待传输的数据包中的目的地址设
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1