在软件定义网络中路由数据包的方法和控制器与流程

文档序号:11162097阅读:378来源:国知局
在软件定义网络中路由数据包的方法和控制器与制造工艺

本发明指向在软件定义网络(software-defined networking,简称SDN)中路由数据包的方法和控制器。特别地,本发明提出通过在SDN的所有分层中预先建立的快速路线路由数据包。



背景技术:

在现有技术中,SDN是解决定制和优化问题的新兴网络技术。在SDN中,数据平面与控制平面解耦分离,从而可以简化现代通信网络。SDN通常使用开放流(Open Flow,简称OF)协议。根据OF协议,SDN中的OF交换机具有包含与数据包相关的表项的流表,所述流表定义OF交换机路由特定数据包的方式和位置。

根据OF协议规范,不论何时到达包含所述流表的OF交换机的特定数据包没有流表项或流表项为空时,OF交换机发送所谓的“数据包进入消息”至SDN控制器。所述数据包进入消息使得SDN控制器发送“flow-mod命令”至SDN中的所有OF交换机作为响应,以便根据新的数据包修改OF交换机的状态,即修改OF交换机的流表。

但是,此行为可能会导致与各种数据包和消息排序一致的各种类型的竞态条件。例如,如图6所示,图6示出了现有技术的方案,当flow-mod命令消息在其到达交换机Sn+1之前到达交换机Sn时,则在交换机Sn+1接收到所述flow-mod命令消息之前,可能已经有新的数据包从交换机Sn发送并已到达交换机Sn+1。在这种情形下,由于交换机Sn+1的流表还没有针对新的数据包作出修改,因此交换机Sn+1会发送另一个数据包进入消息。相比交换机Sn+1在接收到数据包之前收到flow-mod命令消息的情形,这会产生一系列的额外状态迁移。随着大规模多层拓扑结构的应用,OF协议的上述问题变得更加严重。

特别地,如图6所示,在(1)中,从H1发送至H2的新的数据包到达交换机S1。在(2)中,由于交换机S1没有针对接收的数据包的流表项,因此交换机S1发送消息至SDN控制器。在(3)中,所述SDN控制器通过发送flow-mod命令至网络中所有的交换机S1至S4作为响应。在(4)中,所述flow-mod命令到达交换机S1,在(5)中,交换机S1相应地发送所述数据包至交换机S2。但是,如果所述flow-mod命令消息还没有到达交换机S2,在(6)中,交换机S2将发送自己的数据包进入消息(比如,包括所述数据包本身或者数据包的头等)至SDN控制器,以指示该数据包作为新的数据包。

针对上述问题的一种方案是交换机S2在发送数据包进入消息至SDN控制器之前等待一段时间,即在一段时间内等待SDN控制器发送的flow-mod命令消息是否到达。但是,这尤其在更大的拓扑结构中会严重影响即降低系统性能。

现有技术中已经存在解决OF协议的缺点的一些方案。例如,在一种方案中,由于SDN控制器知道数据包在SDN中路径的入口节点和出口节点之间的准确路径,所以SDN控制器可以将路径信息转发给入口节点,然后将该信息内嵌到可以插入数据包的头中(可选地,对OF协议作一些修改)。然后在沿着穿过所述SDN的数据包的路径的每一个其他节点都对这个头进行检查。由于中间节点需要针对转发决策检查新添加的头,因此这些中间节点不会从SDN控制器接收任何状态信息。

但是这个方案需要对OF协议作较大改变,并且与传统协议和设备不兼容。此外,由于所有的信息都是来自数据包头,可能不会检测到错误配置,因此该方案很容易转发回路和/或黑洞。最后,这个方案不适合保护和恢复。即现有技术的方案是基于预先计算的备选链路,没有考虑容量计划或者QoS/SLA。此外,由于无数的事件可能会导致恢复场景,而此方案中没有针对恢复的预先计算的方案。



技术实现要素:

鉴于上述缺点和问题,本发明旨在提高现有技术水平。特别地,本发明旨在提供用于在SDN网络中路由数据包的改善方案。特别地,本发明的目的在于提供改善的路由方案,此路由方案解决了上述OF协议中固有的竞态条件问题。因此,应该避免对OF协议作较大改变,而应该保证与传统协议和设备的兼容性。此外,本发明的方案不应该干扰系统性能。本发明的方案也应该有较强的鲁棒性,并且应提供保护和恢复选项。

本发明的上述目标通过所附独立权利要求中提供的方案实现。本发明的有利的实现方案在各自的从属权利要求中进一步定义。特别地,本发明的核心理念在于,不是针对每个新的数据包配置完整路径,而是由SDN控制器保持网络中任意两个端点之间的默认连接,优先使用默认路径的全连接,并且针对每个新的数据包,所述SDN控制器仅配置相关边缘交换机以及其与现有路径的关联。

本发明的第一方面提供了在SDN中路由数据包的方法,包括:SDN控制器在覆盖所有非边缘交换机的网络中的任意两个边缘交换机之间配置多条路线;将源边缘交换机接收的新的数据包或者所述数据包的头转发至所述SDN控制器;所述SDN控制器根据所述数据包的目的边缘交换机选择其中一条所述路线;所述SDN控制器仅分别配置源边缘交换机和目的边缘交换机,以沿着所选择的路线发送所述数据包。

不是试图被动配置流的完整路径,而是由所述SDN控制器在覆盖所有非边缘交换机的网络中的任意两个边缘交换机之间配置多条路线。由于所有的路线都是已知的,并且所述SDN控制器在运行期间仅需要配置源边缘交换机和目的边缘交换机,因此消除了上述OF协议中固有的竞态条件问题。即不需要针对新的数据包发送flow-mod命令至所有的交换机。

当新的数据包进入所述源边缘交换机时,将该数据包发送至所述SDN控制器(或者发送数据包进入消息至所述SDN控制器,其中该数据包进入消息可以只包括所述数据包的头),所述SDN控制器根据所述数据包的目的边缘交换机选择合适的路线,然后仅配置源边缘交换机和目的边缘交换机。由于只配置了源边缘交换机和目的边缘交换机(例如,接收flow-mod消息),可以避免竞态条件,不需要改变OF协议,穿过所述SDN的路由可以快速执行,并且对系统性能不会产生大的影响。

根据第一方面,在所述方法的第一种实现形式中,所述配置源边缘交换机和目的边缘交换机包括:指示所述源边缘交换机将所述数据包发送至所选择路线上的下一个网络实体。

因此,所述新的数据包被放入预期路线。所选择路线上的每一个其他网络实体都只需要根据所选择的路线转发所述数据包。所述SDN控制器不需要对这些中间实体进行配置。因此,所述SDN控制器只需要配置所述源边缘交换机。

根据第一方面或者第一方面的第一种实现形式,在所述方法的第二种实现形式中,所述配置源边缘交换机和目的边缘交换机包括:指示所述源边缘交换机通过隧道传输发送所述数据包。

因此,本发明的方法支持可以在转发表节省存储空间的隧道传输。优选地,用户可以决定是否使用隧道传输以在转发表节省存储空间,或者用户可以决定是否使用标签交换路线(例如MPLS)以节省封装。隧道传输是可选的但不是必须的。

根据第一方面或者第一方面的上述任一种实现形式,在所述方法的第三种实现形式中,所述配置源边缘交换机和目的边缘交换机包括:在所述源边缘交换机和目的边缘交换机的至少一个流表中创建与所述数据包相关的新表项。

例如,当所述源边缘交换机向所述SDN控制器指示新的数据包时,所述SDN控制器可以向所述源边缘交换机和所述目的边缘交换机分别发送flow-mod命令,从而根据标准的OF协议进行操作。所述新的表项可以将所述新的数据包与所选的路线关联,使得每一个其他数据包不需要进一步配置就可以自动在所选的路线上发送。

根据第一方面或者第一方面的上述任一种实现形式,在所述方法的第四种实现形式中,所述配置多条路线包括:针对任意两个边缘交换机之间每一种可能的连接创建一条路线。

因此,所述SDN控制器优先保持穿过所述SDN的默认数据路径的全连接。因此,所述SDN控制器在为新的数据包选择合适的路线方面有最大的灵活性,并且可以高效执行负载均衡和/或保护(例如在路线故障时选择可替代的路线)。

根据第一方面或者第一方面的上述任一种实现形式,在所述方法的第五种实现形式中,所述方法还包括:所述SDN控制器沿着所选择的路线监测所述数据包的流动;如果监测到预定事件,所述SDN控制器在所述数据包流动期间将所选择的路线变更为新的路线。

因此,所述SDN控制器能够在运行期间改变数据包的路线。从而实现更大的灵活性,尤其是改善负载均衡和保护。通过监测数据包的流动,所述SDN控制器也可以为特定的数据流,例如FTP会话或者Telco业务等长期数据流,计算新的且更合适的路线,也可以选择某些合适的路线。

根据第一方面或者第一方面的上述任一种实现形式,在所述方法的第六种实现形式中,所述为所述数据包选择路线取决于以下一项或者多项:所述数据包头中的源互联网协议(Internet Protocol,简称IP)地址、所述数据包头中的服务类型(Type of Service,简称ToS)字段项、分配给所述数据包的优先级以及所述SDN中的当前负载分布。

因此,根据上述相关准则,所述SDN控制器可以配置所述源边缘交换机,以在某些选择的路线上发送数据包。因此,可以针对不同类型的数据包选择不同的路线。例如,可以预先配置用于低优先级数据包的路线和用于高优先级数据包的路线。从而可以更加高效地控制穿过所述SDN的数据包的路由。

根据第一方面或者第一方面的上述任一种实现形式,在所述方法的第七种实现形式中,所述配置多条路线包括:在所述SDN的每个分层中创建多条转发等效路线(forwarding equivalent route,简称FER),其中每条FER在分层中共享相同的源网络实体和目的网络实体,但是跨越不同的路径。

因此,所述SDN控制器能够分别控制穿过每个分层的路由。例如不同类型的数据包可以只在特定分层中采用不同的路径,而在其他分层中在相同的路径上路由。此外,负载均衡和/或保护可以在每个分层中单独实现,从而可以更加高效地执行。

根据第一方面的第七种实现形式,在所述方法的第八种实现形式中,所述配置多条路线包括:连接不同分层的多条FER以获得路线。

因此,所述SDN控制器在为数据包创建和/或重新创建多条路线方面更加灵活。

根据第一方面的第七种实现形式或者第八种实现形式,在所述方法的第九种实现形式中,所述方法还包括:如果所述数据包的路线的所述分层中的FER发生故障,所述SDN控制器选择新的FER用于路由所述数据包穿过相关分层。

因此可以提高路由数据包穿过所述SDN的鲁棒性。

根据第一方面的第七种实现形式至第九种实现形式中的任一项,在所述方法的第十种实现形式中,所述方法还包括:所述SDN控制器利用分层的多条FER实现所述分层中的负载均衡。

尤其是每个分层中的负载均衡极大地提升了穿过所述SDN的数据包的路由性能。

根据第一方面的第七种实现形式至第十种实现形式中的任一项,在所述方法的第十一种实现形式中,所述选择路线包括:由所述SDN控制器选择包含所述源边缘交换机的分层中的FER,由包含在所述分层中的各个源网络实体基于至少一个预先配置的路由规则确定每个其他分层中的FER。

因此,一方面降低了所述SDN控制器的负载,另一方面路线的选择可以更加快速高效地进行。

根据第一方面的第十一种实现形式,在所述方法的第十二种实现形式中,所述至少一个预先配置的路由规则是基于所述数据包的类和/或优先级。

因此,根据所述数据包的类和/或优先级,可以在每个分层中针对不同的数据包选择不同的路线。

本发明的第二方面提供了在软件定义网络(software-defined networking,简称SDN)中路由数据包的方法,包括:SDN控制器在覆盖所有交换机的网络中的任意两个边缘交换机之间配置多条路线,并且通过预先配置的路线转发源边缘交换机接收的新的数据包。

第二方面呈现的方法可以替代第一方面提供的方法。通过所述SDN控制器预先配置多条路线,可以避免上述OF协议中固有的竞态条件的威胁,同时可以不需要修改就可以使用OF协议。

根据第二方面,在所述方法的第一种实现形式中,所述方法还包括:所述源边缘交换机将所述源边缘交换机接收的新的数据包或者所述数据包的头转发至所述SDN控制器用于更新。

因此,所述源边缘交换机通知所述SDN控制器新的数据包到达,必要时允许所述SDN控制器对预先配置的路线进行修改。

根据第二方面或者第二方面的第一种实现形式,在所述方法的第二种实现形式中,所述方法还包括:所述SDN控制器沿着所述预先配置的路线监测所述数据包的流动;如果监测到预定事件,所述SDN控制器在所述数据包流动期间将预先配置的路线变更为新的路线。

根据第二方面或者第二方面的上述任一种实现形式,在所述方法的第三种实现形式中,所述配置多条路线包括:在所述SDN的每个分层中创建多条转发等效路线(forwarding equivalent route,简称FER),其中每条FER在分层中共享相同的源网络实体和目的网络实体,但是跨越不同的路径。

根据第二方面的第三种实现形式,在所述方法的第四种实现形式中,所述配置多条路线包括:连接不同分层的多条FER以获得路线。

根据第二方面的第三种实现形式或者第四种实现形式,在所述方法的第五种实现形式中,所述方法还包括:如果所述数据包的路线的所述分层中的FER发生故障,所述SDN控制器选择新的FER用于路由所述数据包穿过相关分层。

根据第二方面的第三种实现形式至第五种实现形式中的任一项,在所述方法的第六种实现形式中,所述方法还包括:所述SDN控制器利用分层的多条FER实现所述分层中的负载均衡。

第二方面的第二种实现形式至第六种实现形式分别与第一方面的第五种实现形式至第九种实现形式有着相同的优势。

本发明的第三方面提供了在软件定义网络(software-defined networking,简称SDN)中路由数据包的SDN控制器,包括:路由单元,用于在覆盖所有非边缘交换机的网络中的任意两个边缘交换机之间配置多条路线;接收单元,用于从源边缘交换机接收新的数据包或者所述数据包的头;选择单元,用于根据所述数据包的目的边缘交换机选择其中一条所述路线;配置单元,用于仅分别配置源边缘交换机和目的边缘交换机,以沿着所选择的路线发送所述数据包。

根据第三方面,在所述SDN控制器的第一种实现形式中,所述配置单元用于配置所述源边缘交换机和所述目的边缘交换机,以指示所述源边缘交换机发送所述数据包至所选择路线上的下一个网络实体。

根据第三方面或者第三方面的第一种实现形式,在所述SDN控制器的第二种实现形式中,所述配置单元用于配置所述源边缘交换机和所述目的边缘交换机包括:指示所述源边缘交换机通过隧道传输发送所述数据包。

根据第三方面或者第三方面的上述任一种实现形式,在所述SDN控制器的第三种实现形式中,所述配置单元用于配置所述源边缘交换机和所述目的边缘交换机,以在所述源边缘交换机和所述目的边缘交换机的至少一个流表中创建与所述数据包相关的新表项。

根据第三方面或者第三方面的上述任一种实现形式,在所述SDN控制器的第四种实现形式中,所述路由单元用于配置多条路线,以针对任意两个边缘交换机之间每一种可能的连接创建至少一条路线。

根据第三方面或者第三方面的上述任一种实现形式,在所述SDN控制器的第五种实现形式中,所述SDN控制器还包括:监测单元,用于沿着所选择的路线监测所述数据包的流动;如果监测到预定事件,所述选择单元用于在所述数据包流动期间将所选择的路线变更为新的路线。

根据第三方面或者第三方面的上述任一种实现形式,在所述SDN控制器的第六种实现形式中,所述选择单元用于根据以下一项或者多项为所述数据包选择路线:所述数据包头中的源互联网协议(Internet Protocol,简称IP)地址、所述数据包头中的服务类型(Type of Service,简称ToS)字段项、分配给所述数据包的优先级以及所述SDN中的当前负载分布。

根据第三方面或者第三方面的上述任一种实现形式,在所述SDN控制器的第七种实现形式中,所述路由单元用于配置多条路线,以在所述SDN的每个分层中创建多条转发等效路线(forwarding equivalent route,简称FER),其中每条FER在分层中共享相同的源网络实体和目的网络实体,但是跨越不同的路径。

根据第三方面的第七种实现形式,在所述SDN控制器的第八种实现形式中,所述路由单元用于配置多条路线,连接不同分层的多条FER以获得路线。

根据第三方面的第七种实现形式或者第八种实现形式,在所述SDN控制器的第九种实现形式中,如果所述数据包的路线的所述分层中的FER发生故障,所述选择单元用于选择新的FER用于路由所述数据包穿过相关分层。

根据第三方面的第七种实现形式至第九种实现形式中的任一项,在所述SDN控制器的第十种实现形式中,所述SDN控制器还用于利用分层的多条FER实现所述分层中的负载均衡。

根据第三方面的第七种实现形式至第十种实现形式中的任一项,在所述SDN控制器的第十一种实现形式中,所述选择单元用于选择路线,由所述SND控制器选择包含所述源边缘交换机的分层中的FER,并且由包含在所述分层中的各个源网络实体基于至少一个预先配置的路由规则确定每个其他分层中的FER。

根据第三方面的第十一种实现形式,在所述SDN控制器的第十二种实现形式中,所述至少一个预先配置的路由规则是基于所述数据包的类和/或优先级。

第三方面的SDN控制器与第一方面的方法有相同的优势。

本发明的第四方面提供了包括程序代码的计算机程序,当所述计算机程序在计算机上运行时,所述程序代码用于执行第一方面,第二方面或者第一方面和第二方面的任一种实现形式提供的方法。

由于所述计算机程序允许运行上述方法,因此第一方面提供的方法和第二方面提供的方法中的相同优势就可以分别实现。

需要说明的是,本申请中描述的所有设备、元件、单元和方法均可以在软件元件、硬件元件或者二者的任意组合中实现。本申请描述的各个实体所执行的所有步骤以及所描述的由各个实体执行的功能旨在说明各个实体用于执行各自步骤和功能。即使在下面特定实施例的描述中,完全由永久性实体执行的特定功能或步骤没有在执行特定步骤或功能的实体的特定细节元件的描述中体现,技术人员也应该了解这些方法和功能可以在各自软件元件、硬件元件或者二者的任意组合中实现。

附图说明

结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:

图1示出本发明提供的方法的基本实施例;

图2示出本发明提供的SDN控制器的基本实施例;

图3示出本发明提供的路由方案;

图4示出本发明实施例提供的路由方案;

图5示出本发明实施例提供的方法步骤的流程图;

图6示出现有技术中的路由。

具体实施方式

图1在(a)中示出本发明实施例提供的基本方法100。在第一步骤101中,SDN控制器在覆盖所有非边缘交换机的网络中的任意两个边缘交换机之间配置多条路线。在第二步骤102中,源边缘交换机将所述源边缘交换机接收的新的数据包转发至所述SDN控制器,例如作为“数据包进入消息”。替代性地,所述边缘交换机只将所述数据包的头转发至所述SDN控制器。

在第三步骤103中,所述SDN控制器根据所述数据包的目的边缘交换机选择其中一条所述路线。最后,在第四步骤104中,所述SDN控制器分别配置源边缘交换机和目的边缘交换机,以沿着所选择的路线发送所述数据包。例如,所述SDN控制器分别发送“flow-mod命令”至源边缘交换机和目的边缘交换机,以根据所述新的数据包修改这些交换机的流表项。

图1在(b)中示出本发明实施例提供的替代性基本方法110。在第一步骤111中,SDN控制器在覆盖所有交换机的网络中的任意两个边缘交换机之间配置多条路线。在第二步骤112中,通过预先配置的路线转发源边缘交换机接收的新的数据包。

图2示出本发明实施例提供的基本的SDN控制器200。所述SDN控制器200专门用于执行图1中所示的方法100和/或方法110的方法步骤。所述SDN控制器200包括至少一个路由单元201、接收单元202、选择单元203以及配置单元204。这些单元201至204中的每个单元都可以执行图1中所示的方法100的方法步骤。但是所述单元201至204也可以包含在一个更大的单元中,例如微控制器或者处理器,这个更大的单元根据所述方法100的方法步骤执行各自功能。

所述路由单元201至少用于在覆盖所有非边缘交换机的网络中的任意两个边缘交换机之间配置多条路线。所述接收单元202至少用于从源边缘交换机接收新的数据包或者所述数据包的头,并且相应地通知所述选择单元203。然后所述选择单元203至少用于根据所述数据包的目的边缘交换机从所述路由单元201建立的所述路线中选择其中的一条。所述数据包的目的边缘交换机例如包含在所述数据包的头中。

最后,根据所述选择单元203的选择,所述配置单元204至少用于仅为所述数据包配置源边缘交换机和目的边缘交换机,以沿着所选择的路线发送所述数据包。所述配置源边缘交换机和目的边缘交换机是通过例如修改流表项来实现,从而使得这些边缘交换机沿着所选择的路线发送所述数据包。

图3示出本发明其中一个实施例,该实施例是图1和图2所示的基本实施例的扩展。特别地,图3示出SDN 300,其中包括至少一个SDN控制器301和多个边缘交换机。图3所示的SDN 300包括不同的网络层,特别地,三层分别称为“边缘层”、“聚合层”和“核心层”。但是这只是示例,本发明也可以应用于只有一层的SDN或者不止3层的SDN中。来自H1的数据包旨在通过所述SDN 300发送至H2。因此,由源边缘交换机302从H1接收数据包,然后由目的边缘交换机303发送至H2。

根据本发明的方案,SDN控制器301在所述SDN 300中从所述源边缘交换机302到所述目的边缘交换机303配置多条路线。优选地,所述SDN控制器301在所述源边缘交换机302和所述目的边缘交换机303之间配置多种可能的连接,即所述SDN的一个或者多个分层中多个可能的网络节点。新的数据包一到达所述源边缘交换机302,所述源边缘交换机302就将该数据包或者该数据包的头发送至所述SDN控制器301。然后所述SDN控制器301确定路径,即数据包穿过所述SDN 300应采用的路线,并且通过分别配置所述源边缘交换机302和所述目的边缘交换机303建立连接。如果穿过所述SDN 300只存在一种可能的路线,则所述源边缘交换302可能直接路由该数据包,即无需发送数据包或者数据包的头至所述SDN控制器301。

特别地,对于图3示出的有三个分层(边缘层、聚合层和核心层)的SDN 300,尤其是对于Clos架构、超立方体或者胖树等fabric网络,分层与分层上下之间存在多条路径。因此,所述SDN控制器301可以创建穿过不同分层的多条路线,优选每个分层中每个节点之间的连接。所述SDN控制器301可以特别创建所谓的转发等效路线(Forwarding Equivalent Route,简称FER),其中每条FER在分层中共享相同的源网络实体和目的网络实体,但是跨越不同的路径。从图3中可以看出,存在几组FER,例如C和D都是聚合层与核心层之间的FER(称之为“第一分层FER”),A和B都是边缘层与聚合层之间的FER(称之为“第二分层FER”)。例如,C和D在聚合层有相同的源实体和目的实体,但是在聚合层与核心层之间跨越不同的路径。A和B在边缘层有相同的源边缘交换机和目的边缘交换机,但是在边缘层与聚合层之间跨越不同的路径。

优选由所述SDN控制器301创建FER,不同分层的FER可以在各个分层之间连接,以形成所述网络中的任意两个边缘交换机之间的多条路线。例如,在图3中,第一分层FER可以与第二分层FER连接。从而可以分别控制每个分层的FER。每个分层可以保持自己的一组FER。

在图3中,H1和H2之间的路径可以采用不同分层的不同FER连接的路线,例如,从H1发送至H2的数据包可以遍历A→C→B或者A→D→B。所述SDN控制器301在接收到所述源边缘交换机302发送的数据包进入消息时,优先确定该数据包将采用的路线。所述SDN控制器301可以基于数据包头中的源IP地址、数据包头中的服务类型字段项、分配给该数据包的优先级或者所述SDN 300中的当前负载分布等确定该数据包将采用的路线。在所述SDN控制器301选择路线之后,所述源边缘交换机302通知该数据包在特定路线上传输,然后该数据流的所有后续数据包均沿着此路线发送,所述SDN控制器301不需要进一步配置沿着此路线的不同网络实体。

如果所述SDN控制器301选择的路线发生故障或者一个分层中所选择路线的FER发生故障,可以自动选择不同的FER路线。每个分层的FER也可以用于保护或者负载均衡。在每个分层中,数据包可以通过沿着FER的标签交换路线或者通过隧道传输发送。

所述SDN控制器301还能够沿着所选择的路线监测所述数据包的流动,必要时为相关数据包或者数据流(例如FTP会话或者载波业务等长期数据流)选择新的路线。每个新选择的路线可以再次与不同分层的多个FER连接。因此,相比标准的常规机制,fabric架构可以实现更多益处。

图4示出本发明另一个实施例,该实施例是上述实施例的扩展。与图3相同,SDN控制器301在每个分层之间建立多条路线。例如,路线2和路线3是从源边缘交换机302到目的边缘交换机303的两条可能路线。如上所述,所述SDN控制器301能够为每个到达所述源边缘交换机302的新的数据包穿过SDN 300选择路线。因此,针对不同的数据包或者数据流的不同类,从H1到H2可能选择不同的默认路线。例如,针对高优先级的数据包可以选择路线2,针对低优先级的数据包可以选择路线3。针对短期数据流和长期数据流(例如FTP、载波业务等),可以分别使用不同的路线。这与标准路由中的默认网关概念完全不同,在标准路由中,(有且只有)一个下一跳按照指定发送所有的未知数据包。

图5示出本发明实施例提供的方法500的流程图。本实施例是图1所示的方法100或者110的扩展。在图5中,在步骤501中,SDN应用在SDN控制器301上运行。然后在步骤502中,将所述SDN划分成N个分层。例如,图3所示的SDN 300被划分成3个分层。在步骤503中,可以在每个分层的任意两个端口之间建立连接。此连接就是上文所述的FER。优选地,每个FER都分配有路线ID。在步骤504中,配置最少的一组路线,使得SDN中每个分层的任意两个实体之间具有连通性。然后,在步骤505中,所述系统等待连接。所述步骤502至步骤504对应于图1所示的步骤101或者步骤111,即步骤502至步骤504是步骤101或者步骤111的扩展。

在步骤506中,数据流的第一数据包到达源边缘交换机302。在步骤507中,所述SDN控制器301配置相关端点,即源边缘交换机302和目的边缘交换机304,并且为发送数据包穿过所述SDN分配默认路线。因此,可选地,所述SDN控制器针对隧道传输进行配置。步骤507对应于图1所示的步骤103和步骤104。在步骤508中,所述第一数据包通过选择的预先配置的路线发送。优选地,在步骤509中,所述SDN控制器301监测所述数据包的流动。由于这是FTP会话或者Telco业务等长期数据流,因此所述SDN控制器301可以确定该数据包是否存在优化的或者可替代的路线等。如果所述SDN控制器301确定需要优化的或者可替代的路线,所述SDN控制器301计算新的路线并且相应地配置相关网络实体,使得所述数据包沿着新的路线发送。在计算新的路线之后或者如果确定不需要优化的或者可替代的路线,到达数据流终点。

综上,在本发明中,SDN控制器在覆盖所有非边缘交换机的SDN中的任意两个边缘交换机之间预先配置多条路线。因此,可以消除或者至少可以减少OF协议中众所周知的竞态条件问题,因为所有的路线都是已知的,并且SDN控制器在运行期间仅需要配置源边缘交换机和目的边缘交换机。

已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所申请发明并且研究附图以及公开且独立的权利要求书能够理解并获得其他变体。在权利要求以及说明书中,术语“包括”不排除其他元件或步骤,并且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。仅凭某些措施记载于相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能在有利的实现方式中使用。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1