在软件定义网络中支持任意路由标准的制作方法

文档序号:9355663阅读:426来源:国知局
在软件定义网络中支持任意路由标准的制作方法
【专利说明】
[0001] 相关申请的夺叉引用
[0002] 本申请要求于2013年3月15日提交的美国专利申请序列号13/843,536的权益, 其通过引用被结合于此。
技术领域
[0003] 本公开中呈现的实施例一般涉及软件定义网络。更具体地,这里公开的实施例提 供支持任意路由标准的软件定义网络。
【背景技术】
[0004] 路由协议已经被设计为在创建和维护路由时考虑许多网络相关的条件,如可达性 和网络拥塞。然而,目前,没有方法基于非网络相关的条件(如动态延迟、服务水平协议、身 份条件、带宽,或需要一定量流量流经给定提供商的合同安排)来进行路由,因为不能为每 个客户将这些能力合并入交换机。
【附图说明】
[0005] 以使得能够更详细地理解本公开的上述特征的方式,可通过参考实施例(其中的 一些实施例被示出在附图中)来获得对上面简述的公开的更具体描述。然而,要注意的是, 附图仅示出了本公开的典型实施例并因此不被视为限制其范围,因为此公开可允许其他同 等有效的实施例。
[0006] 图1A-1C是根据这里所公开的一个实施例示出了在SDN使能网络中支持任意路由 标准的技术的简图。
[0007] 图2根据这里所公开的一个实施例示出了在SDN使能网络中支持任意路由标准的 方法。
[0008] 图3根据这里所公开的一个实施例示出了基于非传统路由标准修改路由的方法。
[0009] 图4根据这里所公开的一个实施例示出了在SDN使能网络中支持任意路由标准的 系统。
【具体实施方式】 [0010]
[0011] 这里公开的实施方案提供了一种基于非路由标准路由数据通信的方法,其中通过 由网络元件接收数据分组,在网络元件的路由表中识别第一路由用于路由数据分组,由在 网络元件上执行的应用计算基于一个或多个非路由标准的第一路由的路由得分,由应用计 算基于一个或多个非路由标准路由数据分组的第二路由的路由得分,并且当确定第二路由 的路由得分小于第一路由的路由得分时,更新路由表使得网络元件根据第二路由来路由数 据分组。
[0012] 具体实施例
[0013] 这里公开的实施例使能网络可编程性以在网络层上定义针对数据转发和流量分 类的规则。用户可以在策略引擎中定义策略以在网络内控制网络元件的路由动作,基于通 常不用于传统网络协议的参数(包括例如,身份考虑、成本考虑、合约考虑以及天气考虑, 或任何其他任意标准)允许流量控制。例如,在一个实施例中,策略引擎可以通过评估传输 成本并将流量转移到最低成本链路来将路由优化为最低成本(在货币方面)。在另一实施 例中,策略被优化用于客户体验,并且转移流量以保护服务水平协议(SLA)。充分利用软件 定义网络(SDN)使能网络的可编程方面,这里公开的实施例允许各种各样的非传统路由标 准来影响路由和转发决策。
[0014] 软件定义网络(SDN)允许网络(传统的静态实体)本质上变得更加动态。SDN向 应用开发者开放数据网络,应用开发者可编写应用来管理网络元件和通过网络元件的数据 流而无需到网络元件自身的物理接入。网络元件不仅是"器具",SDN将网络硬件视为能够 由软件操纵的分布式计算系统的一部分。为SDN编写应用的应用开发者可以在可接入网络 的任何装置上执行应用。应用可以远程地或本地位于网络元件自身上地执行命令并将功能 应用于网络装置(和其中的数据流)。通过在SDN中使用应用,开发者可以管理网络元件的 网络行为(包括路由、服务质量(QoS)和带宽分配)以及管理网络元件自身。更具体地,在 SDN中执行的应用(如路由策略引擎)可以基于任何软件定义的网络标准在SDN中修改路 由。此外,不同的编程逻辑可以被应用于相同网络拓扑中的不同流或分组,从而使得每个网 络图不需要具有它自身的SDN应用的实例。
[0015] 各种实施例的描述在下面被呈现用于描述的目的,而并不意图穷尽或受限于所公 开的实施例。在不背离所述实施例的范围和精神的情况下,许多修改和变更对于本领域的 普通技术人员将是显而易见的。这里所用的术语被选取来最佳地描述实施例的原则、实际 应用或者相对于市场上发现的技术的技术改进,或者使得本领域的其他普通技术人员能够 理解这里所公开的实施例。
[0016] 如将由本领域的技术人员所认识到的那样,本公开的各方面可被实施为一种系 统、方法或计算机程序产品。因此,本公开的各方法可采取完全硬件实施例、完全软件实施 例(包括固件、居留软件、微代码等等)、或者组合了软件和硬件方面的实施例,其在这里一 般均可被称作"电路"、"模块"或"系统"。另外,本公开的各方面可采取在一个或多个计算 机可读介质中实施的计算机程序产品的形式,该一个或多个计算机可读介质具有在其上实 施的计算机可读程序代码。
[0017] -个或多个计算机可读介质的任何组合可被采用。计算机可读介质可以是计算机 可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于:电的、磁 的、光的、电磁的、红外的、或半导体的系统、设备或装置,或上述各项的任何合适的组合。计 算机可读存储介质的更具体示例(非详尽列表)将包括以下各项:具有一条或多条导线的 电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(R0M)、可擦除可编 程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存 储设备,或上述各项的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是 包含或存储程序以由指令执行系统、设备或装置使用或与其相连接的任何有形介质。
[0018] 计算机可读信号介质可以包括其中(例如,在基带中或者作为载波的一部分)实 施有计算机可读程序代码的传播数据信号。这种传播信号可采用多种形式中的任何一种, 该多种形式包括但不限于:电磁的、光的,或其任何合适的组合。计算机可读信号介质可以 是能够通信、传播或传送程序以供由指令执行系统、设备或装置使用或与其相连接、但不是 计算机可读存储介质的任何计算机可读介质。
[0019] 计算机可读介质上实施的程序代码可以使用任何适当的介质进行传输,适当的介 质包括但不限于:无线、有线、光纤电缆、射频(RF)等,或上述各项的任何合适的组合。
[0020] 用于执行本公开的多个方面的操作的计算机程序代码可以以一种或多种编程语 言的任何组合来编写,该一种或多种编程语言包括:诸如JAVA、Smalltalk、C++等面向对象 的编程语言,诸如"C"编程语言或类似编程语言之类的传统程序编程语言。程序代码可完 全地在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包执行,部分 地在用户的计算机上并且部分地在远程计算机上执行,或者完全地在远程计算机或者服务 器上执行。在后一种情况中,远程计算机可以通过任何类型的网络连接到用户的计算机,网 络包括局域网(LAN)或广域网(WAN),或者可以(例如,通过使用互联网服务提供商的互联 网)连接到外部计算机。
[0021] 下面参考根据本公开的实施例的方法、设备(系统)和计算机程序产品的的流程 图示和/或框图对本公开的各方面进行描述。将理解的是,流程图和/或框图的每个框以 及流程图和/或框图中的多个框的组合能够通过计算机程序指令实现。这些计算机程序指 令可以被提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器以形成一种 机器,以使得通过计算机的处理器或其它可编程指令执行装置执行的指令创建用于实现流 程图和/或框图的一个或多个框中指定的功能/动作的机制。
[0022] 这些计算机程序指令也可以被存储在计算机可读介质中,其能够指导计算机、其 它可编程数据处理设备或其它装置以特定的方式运行,以使得被存储在计算机可读介质中 的指令产生包括指令的制品,其实现流程图和/或框图的一个或多个框中指定的功能/动 作。
[0023] 计算机程序指令还可以被加载到计算机、其它可编程指令执行设备或其它装置以 使得一系列操作步骤在计算机、其它可编程设备或其它装置上被执行以产生计算机实现的 处理,从而在计算机或其它可编程设备上执行的指令提供用于实现流程图和/或框图的一 个或多
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1