CN115037624A - 全局网络状态管理 - Google Patents

全局网络状态管理 Download PDF

Info

Publication number
CN115037624A
CN115037624A CN202110595164.3A CN202110595164A CN115037624A CN 115037624 A CN115037624 A CN 115037624A CN 202110595164 A CN202110595164 A CN 202110595164A CN 115037624 A CN115037624 A CN 115037624A
Authority
CN
China
Prior art keywords
network
information
topology
thread
state information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110595164.3A
Other languages
English (en)
Inventor
希瓦普拉萨德·加利
斯里·萨姆帕思·马利普迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN115037624A publication Critical patent/CN115037624A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2869Operational details of access network equipments
    • H04L12/287Remote access server, e.g. BRAS
    • H04L12/2876Handling of subscriber policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了全局网络状态管理。具体地,本文描述了用于全局网络状态管理的设备、系统和技术。在一个示例中,本公开描述了一种示例方法,该方法由管理多个设备的网络的软件定义网络(SDN)控制器执行。该方法包括由SDN控制器的处理电路来保持全局网络状态信息;由处理电路用针对全局网络状态信息的一部分的更新的订阅来配置通知服务,其中,通知服务被配置为将全局网络状态信息的一部分的更新排布成多个事件;以及由通知服务经由多个接口将多个事件作为事件通知分发至SDN控制器的多个订阅者微服务。

Description

全局网络状态管理
相关申请的交叉引用
本申请要求于2021年3月6日提交的美国申请第17/249,612号的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及联网系统。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。在基于分组的网络(诸如以太网网络)中,计算设备通过将数据分成被叫做分组的小块来传送数据,这些小块通过网络从源设备单独地路由至目的设备。目的设备从分组中提取数据,并将数据组合成其原始形式。中间设备(被称为网络设备或节点)被互连,以便提供用于在计算设备之间转发分组的基础设施。例如,计算机网络可以包括路由器、交换机、网关、防火墙和各种其他网络设备。
在网络设备处,操作系统实施多个组件/特征,这些组件/特征将网络设备内的硬件/软件资源配置以作为路由器、交换机、网关等来操作。操作系统将硬件部件配置以用于路由并转发分组,例如,通过调用多个路由协议的方式。有些实例中,网络设备必须依靠操作系统来将网络设备配置以用于路由和转发分组。
发明内容
总体上,本公开描述了实现网络状态管理的技术。通过网络状态管理,这些技术调节网络状态改变(例如,处理网络状态改变的速率),以改善(例如,优化)多个性能指标。本文描述的网络状态改变可以指设备配置文件(profile)信息和/或网络拓扑信息的更新。包括其设备到当前状态的网络更新可能在计算方面上是很昂贵的且资源密集性的。在任何网络中,在当前或最近的网络拓扑(或其至少一部分)被解析并且具有描述性信息的(多个)数据集可用时,设备正常操作。网络往往依靠针对用户/在某些设备上运行的主机的可访问状态信息,这些设备包括同一网络中的一个或多个设备或其他网络中的实体。对于状态信息,一些网络在集中式或分布式系统中保持上述状态信息(例如,作为设备配置文件),并且网络控制器确保这些配置文件是最新的。确保正常操作涉及到网络控制器在短时间窗口内传播这些更新。
本公开的技术利用网络的资源来确保网络设备的正常操作,并高效地使用可用资源,例如,通过利用发布者-订阅者模式来减少识别网络状态更新然后接着向订阅者传播这些更新的延迟。甚至对于小型网络,尤其对于大型网络,传播这些更新是资源密集型的,而发布者-订阅者模式降低了其他控制器模块/应用的资源要求。这些技术使控制器能够处理来自相当数量的网络状态信息源的传入通信,识别网络状态更新,以及利用发布者-订阅者模式以用于向客户端微服务传播这些更新,而不会在任何操作中引起错误。
总体上的网络和服务提供商网络通常具有包括微服务的相当数量的计算服务,并且本公开的网络控制器向这些微服务提供最新状态信息。本文描述的技术也有益于网络控制器的组件。如本文所描述的,控制器可以将各种模块作为微服务来部署,以支持网络服务。通过将一个或多个微服务配置为网络状态更新的发布者,并且将一个或多个其他微服务配置为此类更新的订阅者,控制器可以将通知服务配置为分发事件通知。事件通知可以是向订阅者微服务通知对感兴趣的数据集的更新的消息。发布者微服务可以将通知服务配置为将某些数据集映射到某些事件,并且如果网络控制器中的任何客户端模块/应用要运行要求来自这些数据集的最新信息的微服务,则通知服务被配置为发送事件通知,该事件通知可以包括新信息或者包括用于访问新信息的机制。控制器可以将发布者微服务或另一微服务配置为实施(例如,可配置的)睡眠时间段(例如,对于特定订阅者微服务),同时使进程/线程跟踪添加/移除/更新事件的通知(例如,通过使事件计数器递增的方式),并且当睡眠时间段过去时,使第二进程/线程开始处理针对当前拓扑改变的那些通知。取决于订阅,控制器可以将第二进程/线程配置为在可配置的时间段过去时,暂停或继续监听未来的事件通知。在第一或第二进程/线程上强制执行睡眠时间段,给控制器提供了针对事件通知泛滥的过载保护,避免了设备配置文件不匹配和数据不一致,并且还给用户提供了按需(例如,在运行时间)为睡眠时间段配置时间窗口(例如,系统_调度器_设备-配置文件-更新-间隔)的灵活性。
在一个示例中,一种由管理多个设备的网络的软件定义网络(SDN)控制器执行的方法。该方法包括:由SDN控制器的处理电路来保持全局网络状态信息,其中,该全局网络状态信息包括与网络中的每一个设备对应的设备配置文件信息或网络拓扑信息;由处理电路用针对对全局网络状态信息的一部分的更新的订阅来配置通知服务,其中,该通知服务被配置为将对全局网络状态信息的一部分的更新排布成多个事件;以及通过通知服务并且经由多个接口将该多个事件作为事件通知分发至SDN控制器的多个订阅者微服务,其中,第一线程被配置为等待可配置的时间段,而第二线程从通知服务中接收一个或多个事件通知,并且当可配置的时间段过去时,第一线程读取所接收的一个或多个事件通知中的对全局网络状态信息的一部分的至少一个更新。
在另一示例中,一种用于管理一个或多个网络设备的网络的软件定义网络(SDN)控制器。该SDN控制器包括:存储器,其被配置为存储用于网络设备的全局网络状态信息,其中,该全局网络状态信息包括与每一个网络设备对应的设备配置文件信息和网络拓扑信息;一个或多个处理器,其被配置为执行用于发布者微服务的逻辑,其中,该逻辑可操作以:在数据库中保持全局网络状态信息,其中,该全局网络状态信息包括与网络中的每一个设备对应的设备配置文件信息或网络拓扑信息;用针对对全局网络状态信息的一部分的更新的订阅来配置通知服务,其中,该通知服务被配置为将对全局网络状态信息的一部分的更新排布成多个事件;以及经由多个接口将该多个事件作为事件通知分发至SDN控制器的多个订阅者微服务,其中,第一线程被配置为等待可配置的时间段,同时第二线程从通知服务中接收一个或多个事件通知,并且当该可配置的时间段过去时,第一线程读取所接收的一个或多个事件通知中的对全局网络状态信息的一部分的至少一个更新;以及一个或多个核心模块或者一个或多个核心应用,其作为多个订阅者微服务中的一个或多个来操作,并且被配置为经由第一线程或第二线程接收与订阅对应的事件通知的至少一部分。
在另一示例中,一种计算机可读存储介质,包括:处理器可执行指令,当在管理一个或多个网络设备的网络的软件定义网络(SDN)控制器中执行时,处理器可执行指令使该SDN控制器执行以下:对于第一线程的睡眠定时器的每次迭代:在可配置的时间段期间,由第二线程从被配置为在一个或多个数据库中保持全局网络状态信息的通知服务中接收事件通知,其中,该全局网络状态信息包括与网络中的每一个网络设备对应的设备配置文件信息或网络拓扑信息,其中,该事件通知包括对该全局网络状态信息的更新;当该可配置的时间段过去时,由第一线程基于对该全局状态信息的更新的至少一部分,从一个或多个数据库中读取新网络拓扑信息或新设备配置文件信息的至少一部分;并且由一个或多个模块基于该新网络拓扑信息或新设备配置文件信息的至少一部分来计算包括网络拓扑和设备配置文件的网络配置;以及由一个或多个模块或者一个或多个应用通过经由多个网络设备协议接口用新网络拓扑信息和新设备配置文件信息对多个网络设备进行编程来实施网络配置。
一个或多个示例的细节将在附图和以下描述中进行阐述。从说明书和附图中,并且从权利要求书中,其他特征、目标和优点将变得显而易见。
附图说明
图1是图示了根据本公开中描述的技术的各个方面来操作的示例网络的框图。
图2是图示了根据本公开中描述的技术的各个方面来操作的示例控制器的框图。
图3是图示了根据本公开中描述的技术的各个方面来操作的示例控制器的第二框图。
图4是图示了根据本公开中描述的技术的各个方面来操作的示例路径计算元件的框图。
图5是图示了根据本公开中描述的技术的各个方面的示例系统的概念图。
图6是图示了根据本公开中描述的技术的各个方面的示例方法的流程图。
图7A是图示了根据本公开中描述的技术的各个方面的在SDN控制器中执行的示例处理的流程图。图7B和图7C各自是图示了根据本公开中描述的技术的各个方面的由在SDN控制器中执行的第一线程和第二线程执行的示例子处理的流程图。
具体实施方式
本公开描述了用于网络状态管理的设备、技术和系统,并且在多个示例中,这些设备、技术和系统保持最新的网络状态信息,并且如果需要,在没有明显延迟的情况下分发更新。这些示例表明,设备、技术和系统能在短时间内处理大量更新,包括处理通常由多个来源发送的(冗余)更新。
图1至图7A、图7B、图7C和本文中其相应描述介绍了如本文所描述的用于服务提供商的网络和网络控制器,并且本公开的网络控制器提供了上述能力,并且向网络及网络的用户和服务提供商订阅者提供了其他益处。再则,网络控制器在短时间段内(连续地)接收更新流,而不会被压垮或让更新干扰重要的网络管理任务。一些技术采用批处理来控制在某一时间时刻正在处理的更新的数量(例如,最大数量),从而允许网络控制器保留用于执行其他任务的资源,同时保持网络拓扑状态更新。
网络总体上提供控制器,该控制器包括多个硬件和/或软件组件,当由处理电路和操作系统执行时,这些硬件和/或软件部件运行微服务和服务(例如,应用服务),这些微服务和服务使用网络状态更新来支持一些功能或操作,诸如网络服务(例如,互联网或VPN)中的网络功能或用于云服务提供商的应用服务。如本文所描述的,另一微服务,即发布者微服务,配置通知服务以在网络中运行,并将这些更新作为事件(例如,键空间事件)来发布,其中每个事件都是对(全局)网络状态信息的数据集的引用。接收事件可以提示订阅者微服务从这些数据集中请求新信息。每个事件定义与(例如,链接/映射到)上述数据集(例如,数据库中的数据集)对应的属性数据。
图1图示控制器35来表示任何网络控制器,其包括多个硬件和软件组件,这些组件中的一个或多个可以构成模块(例如,内核模式模块)或应用(例如,用户模式应用),并且可以作为服务或微服务来执行。网络20包括多个物理设备(例如,服务器)和虚拟设备(例如,容器)。本公开可以指模块,并且通常指任何可区分的硬件组件、软件组件或硬件/软件组件,但是在一些实例中,指具有相同或相似含义的可选的术语。虽然“模块”用在多个地方,但也有可选的术语,诸如“消费者”、“客户端”、“服务”、“处理器”、“适配器”和/或类似术语可以代替“模块”,并且在一些实例中,反之亦然。
如图1至图5所图示的和本文针对图1至图5所描述的,存在网络拓扑信息和设备配置文件信息的多个源,并且发布者模块78将网络状态信息66作为对于网络控制器可用的本地存储来保持,本地存储用于至少一些全局网络状态信息。发布者模块78运行发布者微服务来确保任何订阅者客户端可以有利地使用状态信息。在图1的服务提供商网络20中,状态信息的任何消费者可以建立对状态信息的数据集的订阅,并成为通知服务的客户。当这些微服务经由网络控制器订阅通知服务以接收这些更新时,这些微服务在本文中可以被称为消费者、客户、订阅者、订阅者客户端或其任意组合。
模块、应用或控制器的其他组件,诸如SDN控制器40,可以通过调用发布者微服务来发起示例进程,该发布者微服务可以由发布者模块78操作。发布者模块78可以将通知服务配置为在包括控制器本身的网络中的任何位置运行。发布者微服务发送对网络状态信息的本地/远程数据存储中保持的全局网络状态信息的更新。发布者模块78可以采用多种机制以用于识别这些更新,并且本文描述了多个示例。
图2至图5图示了这样的示例,即其中一些源向控制器(诸如图2的SDN控制器40)提供这些更新以供至少一个模块/应用和(在大多数情况下)运行发布者微服务的发布者模块78(例如,由它操作的微服务)消费。发布者模块78和发布者微服务使用多个方式来接收和/或识别这些更新。一旦被识别,发布者微服务就确定任何客户端或订阅者客户端(其可以是该控制器中的一个或多个模块和/或一个或多个应用)是否期望这些更新的通知。
图2至图5还图示了这样的示例,即其中发布者模块78以某种形式接收对全局网络状态信息的更新,并且将通知服务配置为保持最新全局网络状态信息,同时监控事件通知的分发,例如,如果任何订阅者客户端期望新网络拓扑信息和/或新设备配置文件信息。如所描述的,例如,在图5中,订阅包括与所订阅的数据集对应的属性值,并且任何匹配的数据集将在事件通知本身或另一消息中被传送至订阅者客户端。发布者模块78可以被配置为用多种属性来定义订阅。在一个示例中,对于移动服务提供商网络中的无线设备,订阅属性可以使用将无线设备指定为无线电接入网络、小区、基站或另一移动或无线电网络资源中的订阅者设备的数据,来确定设备状态(例如,设备配置文件)。对于另一服务提供商网络中的网络设备,订阅属性可以将网络设备识别为节点(诸如具有节点id、端口id、会话id、隧道id和/或类似的路由器)。每个设备配置文件或网络拓扑可以用各种数据(诸如路由和转发信息、可用应用的标识、可访问连接点的地址及其对应的通信协议和/或类似数据)描述无线设备或网络设备。
发布者模块78可以被配置为向控制器中的任何客户端提供输入,并且被配置为消费网络状态和设备状态信息。一个示例订阅者可以基于新网络拓扑和/或新设备配置文件使用一个或多个数据库来计算网络配置。示例订阅者(或控制器中的另一模块)可以用网络配置编程网络设备。
发布者微服务可操作以向作为订阅者的模块/应用转发每个事件通知或仅事件通知的子集。在一个示例中,移除与由于某种原因(例如,陈旧更新)不再有效的更新对应的每个事件通知,使得其移除进一步减少了新网络配置实施中的延迟。作为另一种技术,对于第一线程106A的睡眠定时器的迭代,第二线程106B可以读取对传入事件通知中的全局网络状态信息的更新,并生成以标识用于计算网络配置的更新的子集的标记。示例标记可以标识最近更新,包括取代先前更新的更新。第一线程106A可以通过将数据读取操作集中到更新的子集,来读取新网络拓扑信息和/或新设备配置文件信息。
图1是图示了根据本文描述的技术的示例网络系统10的框图。如图1的示例所示出的,网络系统10包括联接至公共网络22的服务提供商网络20。服务提供商网络20作为向订阅者设备18A、18B(本文中的“订阅者设备18”)提供基于分组的网络服务的专用网络来操作。订阅者设备18A可以是例如个人计算机、膝上型计算机或与订阅者相关联的其他类型的计算设备。订阅者设备18可以包括例如移动电话、具有例如3G无线卡的膝上型或台式计算机、支持无线功能的上网本、视频游戏设备、寻呼机、智能电话、个人数据助理(PDA)或类似设备。每个订阅者设备18可以运行各种软件应用,诸如文字处理和其他办公支持软件、网络浏览软件、支持语音呼叫的软件、视频游戏、视频会议和电子邮件等。
在图1的示例中,服务提供商网络20包括集中式控制器35,该控制器跨图1的各种网络设备协调各种端到端解决方案。如下文进一步详细描述的,SDN控制器35在网络与客户端应用之间双向传送反馈环路机制。经由控制器35,应用可以向服务提供商网络20中的设备通知某些所请求的方面,诸如服务等级协议(SLA)或保证。SDN控制器35将应用和服务提供商网络20结合在一起,使得服务提供商网络20可以适应应用的需求,并且使得应用可以适应变化的服务提供商网络20。以这种方式,控制器35提供了用于实时应用到网络协作的机制。
聚合网络24为与订阅者18相关联的网络业务提供传输服务。聚合网络24通常包括一个或多个聚合节点(“AG”)19,诸如在接入节点(AX)28、36与边缘路由器(ER)30之间提供传输服务的内部路由器和交换机。聚合节点19是聚合了几个接入节点28、36的节点。在通过接入网络27或无线电接入网络25认证和建立网络接入后,订阅者设备18中的任何一个可以开始与公共网络22交换数据分组,此类分组穿过AX 28、36和AG 19。虽然未示出,但是聚合网络24可以包括其他设备,以为穿过聚合网络24的移动业务提供安全服务、负载平衡、计费、深度分组检查(DPI)和其他服务。
如本文所描述的,控制器35操作以为配置聚合网络24的AG 19提供中央配置点,向AX28、36与边缘路由器30之间的传输业务提供传输服务。例如,AG 19可以作为标签交换路由器(LSR)来操作,该LSR沿着被限定在聚合网络24内的传输标签交换路径(LSP)转发业务。接入节点28、36和边缘路由器30可以作为用于LSP的端点来操作,以用于将订阅者业务置于(map,映射)LSP中和LSP之外。例如,边缘路由器30可以将网络服务置于聚合网络24内的各个LSP,而接入节点28、36经由LSP将网络服务置于各个端点(EP)32、38。控制器35根据网络服务应用的带宽、服务质量(QoS)和可用性要求,通过聚合网络24对LSP进行流量工程控制,如下文进一步描述的。
如下文进一步描述的,控制器35包括路径计算模块(PCM),该PCM处理整个聚合网络24的拓扑计算和路径供应。也就是说,控制器35的PCM处理聚合网络24的拓扑信息,基于包括订阅者业务的当前负载状况的各种因素实时执行路径计算和选择,并在聚合网络内供应LSP。
AX 28、36和ER 30在聚合网络24的边界处操作,并且响应于控制器35,将诸如授权、策略供应和网络连接性之类的网络服务应用于与接入节点28、36通信的订阅者18相关联的网络业务。在图1的示例中,出于便于解释的目的,服务提供商网络20被示出为具有两个接入节点28、36,但是服务提供商网络典型地可以服务数千或数万个接入节点。
在该示例中,服务提供商网络20包括接入网络27,该接入网络27具有向订阅者设备18A提供对聚合网络24的接入的AX 36和EP 38。在一些示例中,AX 36可以包括路由器,该路由器保持订阅者设备18A与聚合网络24之间的路由信息。例如,AX 36典型地包括宽带远程接入服务器(BRAS)功能,以将来自一个或多个EP 38的输出聚合到连接至聚合网络24的高速上行链路中。边缘路由器30为订阅者设备18A提供活动会话的锚点。在这个意义上,边缘路由器30可以保持会话数据,并且对于与当前正在经由聚合网络24接入公共网络22的基于分组的服务的订阅者设备18A建立的通信会话,作为终止点来操作。
EP 38可以通过支持各种协议的物理接口与AX 36通信。EP 38可以包括交换机、路由器、网关或作为客户装置(诸如订阅者设备18B)与服务提供商装置之间的分界点来操作的其他终端。在一个示例中,EP 38可以包括数字订阅者线路接入复用器(DSLAM)或其他交换设备。每一个订阅者设备18A可以利用点对点协议(PPP),诸如经由异步传输模式(ATM)的PPP或经由以太网的PPP(PPPoE),来与EP 38通信。例如,使用PPP,订阅者设备18中的一个可以请求接入聚合网络24,并提供登录信息,诸如用户名和密码,以供策略服务器(未示出)认证。其他实施例可以使用除了DSL线路之外的其他线路,例如电缆、经由T1/T3的以太网或其他接入链路。
如图1所示出的,服务提供商网络20可以包括无线电接入网络25,该无线电接入网络25具有接入节点(AX)28和EP 32,它们经由无线电信号给订阅者设备18B提供对聚合网络24的接入。例如,EP 32可以连接到一个或多个无线无线电或基站(未示出),以与订阅者设备18B无线地交换分组化数据。EP 32可以包括交换机、路由器、网关或将从无线无线电接收的分组化数据聚合到AX 28的其他终端。分组化数据接着可以通过AG 19和边缘路由器(ER)30,通过服务提供商的聚合网络24而被传送,并最终传送至公共网络22。
聚合网络24提供会话管理、移动性管理和传输服务,以支持订阅者设备18B接入公共网络22。边缘路由器30为订阅者设备18B提供活动会话的锚点。边缘路由器30可以保持会话数据,并且对于与当前正在经由聚合网络24接入公共网络22的基于分组的服务的订阅者设备18B建立的通信会话,作为终止点来操作。
在一些示例中,接入网络27和无线电接入网络25中的一个或多个可以包括光接入网络。例如,AX 36可以包括经由光纤线缆连接到一个或多个EP或光网络单元(ONU)的光线路终端(OLT)。在这种情况下,AX 36可以使用光发射器,即,激光器和调制器,将来自聚合网络24的电信号转换成光信号。接着,AX 36通过一根或多根光纤线缆将已调制的光信号发送至CPE,该CPE用作光接入网络的终止点。作为一个示例,EP 38将从AX 36接收的已调制的光信号转换成电信号,以便通过铜缆发送至订阅者设备18A。作为一个示例,EP 38可以包括位于能提供对多个订阅者设备18A的接入的社区或办公室或公寓大楼中的交换机。在其他示例中,诸如光纤到户(FTTH),EP 38可以包括直接位于单一家庭场所或能提供对该场所的一个或多个订阅者设备18A的接入的个体企业的网关。在无线电接入网络25的情况下,EP可以连接到无线无线电站或基站,并将已调制的光信号转换成电信号,以用于经由无线信号发送至订阅者设备18B。
以下描述通过概念基础的方式介绍了多个示例,在这些示例中,本公开的技术改善了诸如移动服务提供商网络之类的网络。以下示例中的一些利用控制器35来减少软件定义网络(例如,在数据中心中)和相关协议中的延迟,以支持订阅者设备18的操作和聚合网络24内的至少一个网络设备的数据平面/控制平面功能(例如,移动核心内的专用设备的控制平面功能的移动性特定方面)。典型的移动服务提供商网络(或移动网络或服务提供商移动网络)包括核心分组交换网络(“移动核心”)、传输网络和一个或多个无线电接入网络。移动核心在附接到一个无线电接入网络的订阅者设备与分组数据网络(PDN)之间的路径上的许多支持节点之间建立被称作承载(bearer)的逻辑连接。支持节点利用承载来在订阅者设备与PDN之间传输交换的基于分组的订阅者业务,该PDN可以包括例如因特网、企业内部网、层3 VPN和服务提供商的专用网络。各种PDN向订阅者设备提供多种基于分组的数据服务,以使订阅者设备能够与PDN的应用或其他服务器交换服务数据。越来越多数量的移动订阅者设备可获得越来越多数量的服务,这给可用的移动网络资源带来了压力。
服务提供商操作服务提供商网络20来向订阅者设备18提供网络接入、数据传输和其他服务。虽然相对于长期演进(LTE)架构进行了图示和描述,但是总体上,服务提供商网络20可以实施任何共同定义的蜂窝网络架构,包括由诸如全球移动通信系统(GSM)协会、第三代合作伙伴计划(3GPP)、第三代合作伙伴计划2(3GGP/2)、互联网工程任务组(IETF)和全球微波接入互操作性(WiMAX)论坛之类的标准机构定义的那些蜂窝网络架构。例如,服务提供商网络20可以实施以下各项中的一项或多项:GSM架构、通用分组无线电业务(GPRS)架构、通用移动电信系统(UMTS)架构、5G NR(新无线电接入技术(RAT))标准和LTE,它们中的每一个都由3GGP标准化。5G NR是用于3GPP 5G(第五代)移动网络的空中接口的全球标准,特别是由3GPP为宽带蜂窝网络开发的。服务提供商网络20可以可选地或结合上述架构中的一个,实施码分多址2000(“CDMA 2000”)架构。服务提供商网络20可以同样作为上述架构中一个或多个的替换或与之结合来实施由WiMAX论坛定义的WiMAX架构。
示例订阅者设备18B是无线通信设备,其可以表示例如蜂窝或移动智能电话和功能电话、平板计算机、具有例如3G无线卡的膝上型或台式计算机、支持无线功能的上网本、视频游戏设备、寻呼机、智能电话或个人数据助理(PDA)。例如,订阅者设备18B可以运行一个或多个应用,诸如蜂窝语音呼叫、视频游戏、视频会议、视频点播和电子邮件。在订阅者设备6上运行的某些应用可以要求对由AN 24提供的服务的访问。在各种架构实施例中,订阅者设备18B也可以被称为用户设备(UE)或移动站(MS)。
同样,尽管出于说明的目的,在本文相对于一个或多个具体架构进行了描述,但是服务提供商网络20可以使用任何架构来实施移动网络,包括由任何标准机构提出的那些架构和那些专有的架构。因此,该技术不应限于本文引用的蜂窝网络架构。因此,SGW 14、PGW16和移动核心网络10的其他元件以及RAN 8可以各自表示在上述蜂窝网络架构中的任何一个内发现的设备的抽象化。
在移动网络中,诸如AN 24、RAN 25之类的移动核心网络、(多个)订阅者设备18B和服务提供商,使用SDN控制器35作为传输站(transport),合作建立和操作业务承载,这些业务承载组合起来构成一个或多个服务承载,以在用户设备18B与AN 24之间以PDP分组数据单元(PDU)的形式传输用户服务业务。业务承载是网络资源集和服务提供商网络20中的数据传输功能,以在两个网络实体之间传输用户业务。业务承载可以包括两个网络设备之间的路径、逻辑连接、或物理或无线连接。服务承载是由较短的业务承载或“子承载”组合而成的业务承载,以提供PDP承载服务。例如,订阅者设备18B与AN 24(例如,包括公共互联网22)之间的具体服务承载可以根据会话数据和在订阅者设备18B、RAN 25的元件和AN 24的元件上执行的各种协议来操作。服务承载是订阅者设备18B与(例如,经由参考点)相接于AN 24的节点之间的逻辑连接。服务承载可以包括将PDU从节点向AN 24传送的外部业务承载。关于承载设立和管理的进一步细节可以在2010年6月第三代合作伙伴计划、技术规范组服务和系统方面第10.0.0版的“3GPP TS 23.401-General Packet Radio Service(GPRS)enhancements for Evolved Universal Terrestrial Radio Access Network)”中找到,每个的全部内容通过引用并入本文。
AN 24和/或RAN 25中的节点与订阅者设备18B交换信令消息,以在发送和接收PDU期间经由AN 24建立和维持服务会话。订阅者设备18B可以经由示例服务会话从数据中心的资源中获得数据和/或计算服务。数据中心可以表示移动核心网络外部的专用设施,其为订阅者和其他实体提供数据服务和备份以及其他基于网络的服务。例如,数据中心可以表示单个设施,其托管所有基础设施设备,诸如联网和存储系统、服务器、冗余电源和环境控件。可选地或附加地,数据中心可以表示执行通用硬件的一个或多个服务器,以为控制平面实体提供计算资源。数据中心可以表示由单独的云服务提供商提供的云服务,或者可以位于服务提供商网络20内。在一些实例中,控制平面实体的每一个和SDN控制器35在单个计算设备上执行。数据中心的各种实例可以为移动核心网络执行更多、更少和/或不同类型的控制实体。
AN 24和/或控制器35为移动核心网络提供控制平面功能的各方面。例如,AN 24传统上经由PGW/GGSN或移动核心网络的类似网关实体提供控制平面功能,包括UE PDP地址分配、订阅者管理、承载设立/绑定和管理、动态主机配置协议(DHCP)功能和每个UE和承载的计费。作为另一示例,AN 24提供传统上经由SGW/SSGN或移动核心网络的类似支持节点提供的控制平面功能,包括移动锚定、分组路由、交互操作计费、合法拦截以及承载设立/绑定和管理。作为又一示例,AN 24提供传统上经由MME、SGSN或移动核心网络的类似移动管理实体提供的功能,包括网络接入层(NAS)信令和安全性、用于3GPP接入网络间移动性的核心网络节点间信令、PGW和SGW选择、漫游、认证、授权、承载设立和管理、信令流量的合法拦截等等。作为对AN 24中专用设备的替换,控制器35可以执行传统上由任何其他上述实体提供的功能,并且对最近网络状态信息的访问允许控制器35提供更好的服务。
代替服务提供商移动网络的移动核心内的专用设备,控制器35和数据中心(例如,基于云的数据中心)使用网络状态信息来执行控制平面功能的移动性特定方面。在一些示例中,诸如订阅者会话设立、认证、计费和信令之类的移动核心控制平面应用在数据中心的通用硬件上执行,该数据中心与移动核心由软件定义网络(SDN)控制器进行中介。订阅者设备经由无线电接入网络向移动核心发出服务请求,移动核心继而将控制平面消息重导向到SDN控制器,以将控制平面消息封装在SDN协议内。对于来自订阅者设备的每个这种服务请求,SDN控制器后面的数据中心的移动核心控制平面应用提取并处理用于订阅者会话管理的控制平面消息。作为示例,数据中心可以经由控制器35提供例如批量数据传递、网络电话(VoIP)、互联网协议电视(IPTV)、短消息服务(SMS)、无线应用协议(WAP)服务或客户特定应用服务。
如图1所图示的,聚合网络(AN)24通常包括形成一个或多个分组数据网络的多个设备。聚合网络24节点可以包括路由器、交换机、网关或任何其他网络设备。聚合网络(AN)24可以表示例如局域网(LAN)、广域网(WAN)、因特网、虚拟LAN(VLAN)、企业LAN、第三层虚拟专用网(VPN)、由运营服务提供商网络20的移动服务提供商运营的互联网协议(IP)内联网、企业IP网络或它们的某种组合。在各种实施例中,AN 24连接到公共WAN、互联网或连接到其他网络。作为分组数据网络,AN 24执行一个或多个分组数据协议(PDP),诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP),以实现用于服务的分组传输。
当作为用于被包括在服务提供商网络20中的移动服务提供商网络的移动核心网络操作时,AN 24的节点从无线电接入网络(RAN)25接收设备数据(例如,设备配置文件信息),并且经由GPRS向通知服务发送移动设备数据。通知服务经由软件定义网络(SDN)接口向控制器35发送符合SDN协议的消息,并作为控制实体直接处理。移动设备数据可以包括移动设备配置文件和/或移动核心网络拓扑信息。
AN 24中的节点(例如,支持节点)可以作为用于控制器35的通知服务来操作,并且可以根据协议(例如,OpenFlow协议)经由SDN接口上传事件。例如,通知服务节点可以处理订阅者数据业务,以识别对设备配置文件和/或网络拓扑的改变,这可以触发发送针对每个改变的事件通知。通知服务节点可以遵循配置有每个事件的定义的事件策略,以向控制器35转发。在一些实例中,通知服务节点可以在一个或多个数据库中保持全局网络状态信息(例如,使用OpenFlow表流条目)。
上文描述的技术是许可支持节点通过与SDN控制器35通信来提供SDN接口以暴露其数据平面用于软件定义的联网的示例。除了访问全局状态信息之外,控制器35可以执行数据平面的移动性特定功能,从而降低对AN 24中的节点的资源利用要求,并改善AN 24中的节点的可扩展性。
AN 24的某些节点包括路由单元,这些路由单元主要负责保持路由信息库(RIB),以反映网络系统10(或特定地,订阅者设备18)和与其连接的其他网络实体的当前拓扑。特别地,路由单元周期性地更新RIB,以准确地反映网络20和其他实体的拓扑。路由单元还包括执行路由操作的路由协议,包括用于通过网络建立隧道的协议,诸如VPN和可选的LSP。
如图1所图示的,无线电接入网络(RAN)25可以包括由服务提供商网络20提供的用于移动服务提供商网络的蜂窝无线电接入网络。典型的蜂窝无线电接入网络是小区的集合,每个小区包括能向订阅者的无线设备(例如,订阅者设备18B)发送和中继信号的至少一个基站。“小区”通常表示利用特定频率或频率范围来发送数据的移动网络的不同区域。典型的基站是塔,其上可固定有多个天线,这些天线在特定频率上发送并接收数据。订阅者设备18B,诸如蜂窝或移动电话、智能电话、照相机电话、个人数字助理(PDA)和膝上型计算机,可以发起或以其他方式以指定频率向基站发送信号,以发起呼叫或数据会话并开始发送数据。无线电接入网络25将订阅者设备18B连接到AN 24的移动核心网络,并提供接入控制、分组路由和传输、移动性管理、安全性、无线电资源管理和网络管理。无线电接入网络25可以包括,例如,GSM无线接入网(GRAN)、WiMAX无线接入网、UMTS无线电接入网(UTRAN),或者被称作E-UTRAN的UTRAN的演进。
当被配置为移动服务提供商网络时,服务提供商网络20将在基站处从订阅者设备接收的蜂窝信号(例如,时分多址(TDMA)信号、正交频分复用(OFDM)信号或码分多址(CDMA)信号)转换成用于在基于分组的网络内发送的互联网协议(IP)分组。已经提出了多个标准来促进蜂窝信号到IP分组的这种转换和发送,诸如由全球移动通信系统(GSM)协会标准化的通用分组无线服务(GPRS)、通用移动电信系统(UMTS)架构、被称为长期演进(LTE)的UMTS的演进、由互联网工程任务组(IETF)标准化的移动IP,以及由第三代合作伙伴计划(3GPP)、第三代合作伙伴计划2(3GGP/2)和微波接入全球互操作性(WiMAX)论坛提出的其他标准。
RAN 25和AN 24的移动核心网络可以通过回程网络(未示出)进行通信,该回程网络包括陆基发送线路,该发送线路时常被移动服务提供商网络的服务提供商租用,以在RAN25与AN 24的移动核心网络之间传输订阅者数据并控制业务。回程网络可以包括网络设备,诸如聚合设备和路由器。
AN 24的移动核心网络在RAN 25与AN 24的PDN(例如,基于云的数据中心)之间提供会话管理、移动性管理和传输服务,以支持订阅者设备18B对PDN服务的接入。移动核心网络可以表示,例如,根据上文列出的示例蜂窝网络架构中的一个,通用分组无线电服务(GPRS)核心分组交换网络、基于IP的移动多媒体核心网络或演进分组核心(EPC)。移动核心网10包括支持节点,该支持节点包括分组网关(PGW)16,该PGW 16为穿过移动核心网络的订阅者数据业务提供防火墙、计费、深度分组检测(DPI)和其他服务。PGW 16作为至PDN 12的网关来操作,并且可以在其他架构实施例中表示例如网关GPRS服务节点(GGSN)或接入网关(aGW)。移动核心网络10的支持节点也包括服务网关(SGW)14,该SGW 14通过用作用于基站切换和网络间移动性的本地移动锚,来提供移动性支持。尽管被图示为单独的独立设备,但在一些实例中,SGW 14可以与PGW 16集成。
在服务提供商网络20的一些示例中,移动服务提供商网络可以利用用于软件定义网络(例如,在数据中心)的控制器35和相关协议来支持订阅者设备18的操作和至少一个网络设备的数据平面/控制平面功能(例如,移动核心内的专用设备的控制平面功能的移动性特定方面)。
控制器35是由几个主要逻辑部分组成的SDN控制器:1)用于在网络设备中配置和启用功能性的南向(South-bound)协议,2)保持网络拓扑的拓扑管理器,3)启用应用的核心模块/插件(如流量工程数据库、路径计算引擎),4)使用协议来提供功能性的核心应用(如PCE服务器和OpenFlow控制器),5)解决端到端用例的面向用户的应用,以及6)使得用户/用户应用能够与控制器35对话的北向(North-bound)接口。
控制器35的模块可以使用开放接口进行通信,使得每个模块可以被独立替换以服务专用应用或网络协调需求。控制器35被配置为使得新模块可以被添加到各个层(如应用层),同时再使用由其他层的模块提供的功能性。控制器35可以与网络层和/或应用层的其他控制器通信,以执行所期望的用户功能性。
控制器35可以与之接口连接以解决端到端用例的应用的一些示例包括按需连接性、云防火墙、视频点播、数据复制、自动服务创建(例如,针对移动)和类似的。通过具有模块化设计,本公开的技术可以在可扩展的控制器35上提供增量式增值服务。插件模型允许第三方插件(如不同的路径计算引擎)插入控制器35以提供差异化服务。拓扑服务就是这样的示例,其中允许使用边界网关协议流量工程(BGP-TE)的静态网络拓扑文件或活动拓扑馈送。插件和控制器应用程序向应用程序员提供RESTful API。应用层流量优化(ALTO)引擎就是这样的示例,它将使用拓扑服务并向ALTO客户端提供RESTFul接口。RESTful网络(web)服务(也被叫做RESTful网络API)是一种使用超文本传输协议(HTTP)和表现层状态转换(REST)原理实施的网络服务。
除了上述之外,并且为了进一步支持服务提供商网络20,控制器35可以运行服务(例如,网络服务),其中一个或多个模块(例如,移动核心网络模块)和/或一个或多个应用使用接口(例如,联网协议接口)交换数据,同时完成针对一个或多个设备的任务,一个或多个设备包括订阅者设备18和/或AN 24中的任何网络设备。在一些示例中,多个支持模块被配置为执行由上文提及的模块(包括核心模块和上述拓扑管理器)提供的功能的一些部分。一个示例模块可以被称为发布者模块,其被配置为创建和保持用于最新全局网络状态信息的数据源。如本文所描述的,全局网络状态信息可以包括描述了服务提供商网络20的一些方面的任何数据项(例如,元组)和用于RAN 25、AN 27和/或服务提供商网络20的任何其他网络(例如,虚拟网络)(包括任何这些网络中的任何设备)的状态信息。
在多个示例中,本公开描述了控制器35的模块和/或应用,当被配置为作为用于全局网络状态信息事件通知的(被动)监听器来操作时,该模块和/或应用接收网络节点数据(例如,描述服务网络提供商20的拓扑的数据,或者出于简洁目的,网络拓扑信息)和/或订阅者设备数据(例如,描述订阅者设备18的设备配置文件的数据,或者出于简洁目的,设备配置文件信息)。本公开还描述了全局网络状态信息的额外的示例,但是此信息不限于此,并且如本文的描述所设想的,可以包括支持服务提供商网络20的任何有用信息。除了对网络拓扑信息或设备配置文件信息的熟知示例的订阅之外,在控制器35的其他实施方式中,客户端模块/应用可以请求用户定义的数据集。
此数据源的示例可以被配置在与控制器35不同的主机(例如,不同的容器或外部设备)中,诸如通信联接到AN 24中的一个或多个节点。可选的示例数据源可以在同一主机中(例如,同一设备或同一容器)。对在控制器35中运行的模块/应用,并且不管数据源是远程操作还是本地操作,上述数据源都将最新全局网络状态信息作为指示服务提供商网络20的拓扑的改变和设备配置文件的改变的多个(例如,序列)事件(例如,键空间事件)来排布。网络拓扑的改变包括添加事件、删除事件、更新事件和/或类似事件。例如,添加事件可以指示新所获知的路径,包括服务提供商网络20内的设备之间的新路线以及内部设备与与(例如,外部网络的)外部设备之间的新路线。
设备配置文件的改变也可以包括添加事件、删除事件、更新事件和/或类似事件。添加事件可以指示为新订阅者设备、新网络路由器、交换机和其他节点、新外部网络节点、新专用节点和/或类似设备(最近)创建新配置文件。针对设备配置文件或网络拓扑的删除事件可以指示任何设备配置文件或任何所获知的路径的移除。删除事件之后可以是指示设备配置文件重建的添加事件。更新事件可以指示已更新的网络拓扑信息和/或已更新的设备配置文件。管理员(经由命令行接口)或控制器35可以执行修改服务提供商网络20的拓扑和/或修改订阅者设备18的设备配置文件的动作,这可以提示分发更新事件的通知服务。订阅者设备18B的用户可以触发(或以其他方式引起/控制)全局状态信息中其设备配置文件的重建。
如本文所描述的,通知服务可以代表在控制器35中运行的客户端模块/应用打开连接至数据源的接口作为通信信道,并使用该接口接收新的/已更新的全局网络状态信息以存储在一个或多个数据库中,然后接着,分发在多个事件通知中。作为可选的,事件通知包括对新的/已更新的全局网络状态信息的远程存储位置的引用(例如,超链接)。在一些示例中,通知服务可以在控制器35上执行,或者作为可选的,在远程集中式计算环境和/或分布式计算环境上执行。在一些示例中,客户端模块/应用在订阅中指定设备配置文件的一部分(例如,设备状态)和/或路径信息,该路径信息包括该设备的拓扑(例如,邻居节点)和到该设备的已建立的路线。
在一些示例中,控制器35执行用于上述发布者模块的软件代码,并生成发布者微服务的实例,该实例具有至源的上述通信信道。代表客户端模块/应用,发布者微服务可以执行第一线程和第二线程来操作(例如,并行操作)和处理传入事件通知(例如,在批处理中)。在一些示例中,发布者微服务建立了具有可配置的时间段的睡眠定时器,以用于在可配置的时间段的迭代之间的间隔中(迭代地)处理事件通知;当可配置的时间段过去时,第二线程可以对于对全局网络状态信息的更新处理在前一次迭代中接收的事件通知。
在一些示例中,出于有益于客户端模块/应用的目的,第一线程和/或第二线程用作针对对网络拓扑的某方面的更新和/或对设备状态/配置文件的某方面的改变的获取机制(fetching mechanism)。第二线程还可以被配置为为睡眠定时器的下一次迭代重置事件计数器。第二线程可以被配置为当可配置的时间段过去时,暂停或继续监听未来的事件通知。第二线程还可以被配置为响应于在睡眠定时器的迭代期间接收到每个未来的事件通知而锁定事件计数器或增加事件计数器,使得在一些示例中,第二线程还可以被配置为为睡眠定时器的下一次迭代重置事件计数器。
在一些示例中,可配置的时间段可以是第一可配置的时间段,并且出于有益于一个或多个第二客户端模块/应用的目的,第三线程和/或第四线程用作针对对网络拓扑的某方面的更新和/或对设备状态/配置文件的某方面的改变的相同或相似的获取机制。第三线程和第四线程可以由控制器35中的处理电路执行,以用于向多个订阅者微服务中的至少第二订阅者微服务提供更新。第三线程被配置为在第四线程从通知服务接收一个或多个事件通知的同时,启动睡眠定时器和/或等待第二可配置的时间段,并且当第二可配置的时间段过去时,第一线程读取对一个或多个所接收的事件通知中的全局网络状态信息的部分的至少一个更新。第二可配置的时间段和第一可配置的时间段可以被设置为相同的时间量。在其他示例中,第二可配置的时间段可以与第一可配置的时间段不同。
基于更新,客户端根据所处理的事件从数据源中请求任何新网络拓扑信息和/或新设备配置文件信息。因此,客户端模块/应用可以实践批事件处理。在其他示例中,客户端模块/应用可以仅基于在前一次迭代期间所接收的事件通知中对全局网络状态信息的更新的子集来读取新网络拓扑信息和新设备配置文件信息。合并(Coalescing)是一种技术,其中事件(例如,顺序的事件)被聚合或组合成单一事件和/或被一起消除,因为出于某种原因,事件不再有效。作为合并事件的一个示例,指示对设备配置文件的连续更新的一序列事件(其中最后一个事件是对于设备的删除事件)可以被客户端模块/应用移除,因为设备不再在线,也不处于新全局网络状态。
具有这样的数据源有多个益处和优点,诸如减少了控制器35实施对网络状态的改变的延迟。发布者模块可以将数据源配置为可被控制器35的上文提及的客户模块/应用或服务提供商网络中的网络节点(例如,专门设备)的模块/应用访问。在一个示例中,具有最新全局网络状态信息、网络拓扑信息和/或最新设备配置文件信息的数据源,客户端模块/应用使得一个或多个核心模块或一个或多个核心应用能够基于最新网络拓扑信息和/或最新设备配置文件信息来计算包括新网络拓扑和/或新设备状态(例如,新设备配置文件)的网络配置,然后接着,实施网络配置,例如,通过用包括新网络拓扑信息和/或新设备配置文件信息的新全局状态信息的至少一部分来编程服务提供商网络20中的多个网络设备的方式。为了实施网络配置,控制器35被配置有网络设备协议接口,其中一个或多个核心模块或一个或多个核心应用可以使用该网络设备协议接口中的一个或多个来与网络设备中的至少一个交换新网络拓扑信息和/或新设备状态。
本公开描述了支持由SDN网络的控制器35或管理多个网络设备的网络的任何控制器进行批量网络拓扑改变管理的上述数据源,以及被配置为存储最新全局网络状态信息的一个或多个数据库,该最新全局网络状态信息包括用于订阅者设备18或AN 24中的网络节点的网络拓扑信息和设备配置文件信息。
图2是图示了根据本公开的示例控制器的框图。SDN控制器40在云中或在服务提供商场所中运行的一个或多个设备上实施,从而控制其所在网络中的网络设备(例如,节点)。SDN控制器40是控制器35的示例,其中功能性可以被划分成至少两层,软件定义网络(SDN)应用/协调层42和SDN网络层44。在一个示例中,服务提供商网络包括软件定义网络(SDN)和网络功能虚拟化基础设施(NFVi),并且SDN控制器40可以提供用于配置和管理服务提供商网络的路由和交换基础设施的高级的控制器。SDN控制器40也可以提供高级的协调器,用于配置和管理核心应用/模块以及将网络服务虚拟化为数据中心和/或云服务的服务节点。在一些实例中,数据中心中的节点和SDN控制器40在单个计算设备上执行。
如本文所描述的SDN控制器40被配置为调节网络状态更新的处理(例如,批处理),网络状态更新可以包括网络拓扑更新和设备配置文件更新,以确保各种模块和应用都可以访问最新网络拓扑和最新设备配置文件。图2图示了这些模块和应用中的至少一些。SDN控制器40可以将一个模块专用为作为用于最新网络状态信息(包括新网络拓扑信息和/或新设备配置文件信息)的单一真实源来操作。在一些示例中,发布者模块78通过用数据源配置网络中的通知服务的方式来实现专用,该数据源用于存储最新全局网络状态信息。通知服务可以在网络设备上运行,并且当改变网络的拓扑或一个或多个设备配置文件的事件发生时,通知服务准备事件通知以向每个已订阅的客户端模块/应用分发,如本文所描述的。设备配置文件可以对应于设备对象(device-object)名称,并且发布者模块78可以配置该标识符属性以实现对该对应的配置文件的订阅;相应地,当诸如设备配置文件的重建之类的事件被触发时,具有该设备对象名称的事件通知被发送到SDN控制器40中的订阅者客户端。
为了智能地计算和调度通过网络的路径,SDN网络层44的一个或多个模块或SDN应用/协调层42中的一个或多个核心应用利用网络拓扑信息、设备配置文件信息和/或与当前/最近网络状态对应的任何其他数据集。网络拓扑信息描述了网络的可用资源,例如,移动服务提供商网络中的无线电接入网络的可用无线电资源、基于云的服务提供商网络的可用数据中心资源、服务提供商网络的多层处的可用资源和/或其他可用资源。
代替几个外部源,诸如拓扑服务器、覆盖控制器、路由器和交换机和/或类似外部源,图2中图示的模块和应用利用发布者模块78在单一资源中提供来自这些和其他外部源的数据,该单一资源可以包括(多个)外部数据存储、(多个)内部数据存储或(多个)外部和内部数据存储二者。本公开(大部分)将这些数据存储称为包含(多个)数据库和(多个)数据库系统。在一些示例中,发布者模块78可以将一个或多个数据库配置为保持与设备的网络的拓扑及其设备状态(例如,由设备配置文件存储的设备状态)对应的最新信息。发布者模块78可以将网络设备配置为运行通知服务(未示出),以用于向SDN控制器40的订阅者客户端模块/应用分发事件通知或者将其分发到一个或多个网络设备(例如,订阅者设备)中。
作为可选的,发布者模块78可以将内部数据存储配置为作为订阅者客户端模块/应用的用于最新全局网络状态信息的单一真实源来操作。该内部数据存储可以包括一个或多个数据库,该数据库被配置为保持本文描述的全局网络状态信息的各种示例的任意数量。本公开通常将内部数据存储称为网络状态信息,其在图2中表示为网络状态信息66。
在其他示例中,发布者模块78可以不在上述内部数据存储或上述外部数据存储中保持最新全局网络状态信息。代替利用特定设备或容器来存储上述信息的至少一部分,发布者模块78可以根据客户端的订阅或请求,从在SDN控制器40中运行的其他模块/应用中检索拓扑信息和/或设备配置文件信息。因此,通知服务可以是发布者模块78本身,并且此微服务可以静态地和/或动态地运行,诸如当被客户端指示/提示/触发时。发布者模块78可以将外部节点(例如,容器或物理服务器)配置为作为通知服务来操作,该通知服务被配置为用拓扑信息和/或设备配置文件信息来动态地响应来自客户端模块/应用的订阅和/或请求,以满足客户端查询或客户端要求。
发布者模块78也可以在上述内部数据存储设备或上述外部数据存储设备二者中保持最新全局网络状态信息。在一些示例中,客户端订阅和/或客户端请求可以例如通过一个或多个数据集的元数据和/或其他属性(例如,标识符)来指定要接收的某些数据集。该外部(支持)节点可以利用或可以不利用SDN控制器40中的特定(内部)模块/应用以作为与客户端的管道/接口来操作。在一些示例中,SDN控制器40中的客户端模块/应用利用对应的(例如,特定)接口以交换状态信息的数据集。
为了通过示例说明,客户端模块/应用和通知服务可以建立订阅,该订阅请求对具有唯一标识符(例如,设备对象名称)的设备的配置文件的更新和/或对具有唯一标识符(例如,节点ID标识符)的节点的拓扑的更新。当路由信息(例如,路由)被添加、更新和/或删除时,客户端可以接收事件通知。除了添加、更新、删除事件之外,可能还有多个其他事件类型。通知服务可以根据ReDisTM键空间事件格式将示例事件作为键空间事件来实施。有多种不同的数据类型和/或格式来实施上述事件。
SDN控制器40在网络中保持通常用于存储全局网络状态信息的一个或多个数据库。SDN控制器40的发布者模块78将具有最新网络拓扑信息和/或设备配置文件信息的网络状态信息66存储在SDN控制器的计算机存储器中至少相当长(non-trivial)的一段时间。在一些示例中,SDN控制器40将网络状态信息66存储在外部设备、内部存储空间(例如,硬盘驱动器或闪存驱动器)和/或存储器缓冲区(例如,高速缓存或RAM)中。SDN控制器40的网络包括接口,该接口被配置为在SDN控制器40中的模块/应用与对应于通知服务和/或数据源的外部设备(例如,容器/服务器)之间传送数据,以用于向SDN控制器40中的客户端提供(例如,新)网络拓扑信息和/或(例如,新)设备配置文件信息。在一些示例中,客户端模块/应用(利用用于这些接口的任何数量的控制机制,这些接口可以被称为协议接口或网络设备协议接口,和/或根据任何网络协议)可以经由这些接口中的一个或多个来接收事件通知和一个或多个数据库中的新网络拓扑信息和/或新设备配置文件信息(最初)的至少一部分。
在一些示例中,事件通知、新网络拓扑信息和/或新设备配置文件信息可以在诸如进程间通信(IPC)之类的消息中传输,并且构成进程间通信(IPC)传输机制的一个或多个接口可以被配置为处理针对订阅者客户端的此类消息。在一个示例中,一个或多个接口可操作以向适当的订阅者客户端转发IPC消息;首先,从IPC中提取消息有效载荷数据,然后其次,向适当的订阅者客户端提供该数据作为输入;或者首先,提取消息有效载荷数据,读取与对全局网络状态信息的改变/更新对应的每个事件,然后接着,作为输入数据向适当的订阅者客户端提供。因此,接口可以是主动/被动事件监听器,并且(如果合适的话)被配置为以某种方式执行事件处理。对于一个事件通知或多个通知,SDN控制器40的接口可以识别表示对网络拓扑和/或设备配置文件(例如,设备状态)的至少一个更新的一个或多个事件,然后接着,在某种程度上对一个或多个事件执行事件处理。代替客户端或除了客户端之外,SDN控制器40的接口可以向发布器模块78转发IPC消息,并且继而,发布器模块78对一个或多个事件执行事件处理(在某种程度上),以及接着,向适当的客户端中继IPC消息。
在一些示例中,客户端模块/应用、发布者模块78和/或在SDN控制器40中运行的接口可以处理多个事件,以用于对全局网络状态信息的一个更新或多个更新,然后接着,读取新网络拓扑信息和/或新设备配置文件信息的至少一部分。在一些示例中,由发布者模块78代表客户端模块/应用实例化的线程可以传送IPC消息,以请求从通知服务中和/或用于此信息的上述数据源中返回新网络拓扑信息和/或新设备配置文件信息的至少一部分。在多个事件中,可以识别此信息的特定数据集和/或对此类数据集的特定更新/改变;有益的是,客户端模块/应用程序、发布者模块78和/或在SDN控制器40中运行的接口可以应用被获取用于识别的信息,以请求用于网络的拓扑和/或设备状态的更新信息。
如本文所描述的,本文提及的多个事件可以包括对全局网络状态信息的更新,并且在一些示例中,客户端模块/应用、发布者模块78和/或在SDN控制器40中运行的接口可以确定对进一步进程的更新的子集,例如以请求用于网络的拓扑和/或(多个)设备状态的更新信息。响应于接收到一个或多个事件通知并通过应用多个技术的方式,客户端模块/应用、发布者模块78和/或在SDN控制器40中运行的接口可以确定是否移除/丢弃所接收的事件通知、所接收的事件通知中描述的事件和/或与事件对应的对全局网络状态信息的更新。
在一些示例中,包含事件通知的IPC消息也可以包含与事件通知对应的数据,诸如对订阅者设备状态的更新(例如,设备配置文件)或对网络节点的邻居的更新(例如,拓扑)。任何不再有效的更新都会因过时而被移除。因此,SDN控制器40中的客户端最终仅接收用于新网络拓扑信息和/或新设备配置文件的有效信息,从而减少了延迟和/或资源成本。此外,客户端仅接收与网络拓扑和/或设备配置文件的某方面的订阅/请求对应的数据集,从而减轻了与处理无效(例如,陈旧)事件相关联的成本。
在数据中心中,一个或多个节点(例如,服务器或容器)可以执行逻辑,该逻辑可操作以为SDN控制器40的网络的订阅者设备分配并利用可用的计算资源。数据中心可以表示由SDN控制器40的网络之外的单独的云服务提供商提供的云服务,或者可以位于该网络内。数据中心可以运行计算节点来执行支持移动核心网络的功能性的模块或应用。
在移动核心网络中,一个或多个节点(例如,服务器或容器)可以执行逻辑,该逻辑可操作以分配并利用无线电接入或移动资源形式的可用的资源。例如,业务承载是网络资源集和服务提供商网络中的数据传输功能,用于在两个网络实体之间传递用户业务,诸如在SDN控制器40与同一网络中的订阅者设备或路由器/交换机设备之间。根据通信会话(例如,BGP对等会话)和各种通信协议,业务承载可以包括两个网络设备之间的路径、逻辑连接、或物理或无线连接。如本文所描述的全局网络状态信息还可以包括网络拓扑信息,该网络拓扑信息描述如由用于网络设备的架构(例如,层级)所定义的网络的拓扑。无线电接入网络的元件可以构成被描述用于网络拓扑的一些资源。具有设备配置文件的订阅者设备可以通信联接到一个或多个这些元件,使得在网络的层级中,订阅者设备可以在路由器/交换机设备网络节点以下的层级中操作。网络拓扑信息的其他示例可以描述其他无线电接入网络或移动核心网络资源。
附加地或可选地,网络拓扑信息描述了网络的多个层处的可用资源,并且设备配置文件信息描述各个网络设备,各个网络设备包括进一步描述该网络的一个或多个层的信息。在一个示例中,发布器模块78将一个或多个流量工程数据库(例如,多拓扑流量工程数据库)存储在网络状态信息66中,其中的每个数据库被配置为存储用于构成用于PCE 64的路径计算域的网络的基础网络层和一个或多个覆盖网络层的拓扑信息。示例流量工程数据库(TED)可以分层级地组织用于相应的网络层的拓扑信息,其中基本网络拓扑信息支持用于一个或多个覆盖网络的拓扑信息。较低层拓扑中的路径可以呈现为较高层拓扑中的链路。例如,在基础网络层中创建的隧道(例如,TE LSP)可以呈现为覆盖网络TE拓扑中的链路。接着,一个或多个SDN模块和/或一个或多个SDN应用可以将覆盖网络链路与基础网络层中建立的路径关联起来,以有效地计算跨多个覆盖拓扑的路径。
另一示例TED可以包括一个或多个链路状态数据库(LSDB),其中链路和节点数据(例如,在路由协议广告中)从拓扑服务器接收和/或由链路层实体(诸如覆盖控制器)发现,然后接着,经由通知服务向SDN网络层44提供。发布者模块78可以识别对特定TED的更新,并存储用于网络的基础网络层和一个或多个覆盖网络层的最新拓扑信息。在一些实例中,运营商可以经由运营商接口在网络状态信息66内配置示例TED中的流量工程或其他拓扑信息。其他SDN控制器可以为作为外部源操作的每个覆盖控制器实施单独的覆盖控制器接口。
服务提供商网络的基础网络层(或“基础网络”)包括连接到主机并且以物理拓扑排布的网络交换机。网络交换机根据被管理员或SDN控制器40编程到交换机中的网络配置(例如,转发信息)和/或根据被交换机获知的转发信息,接收和转发用于网络流的分组数据单元(PDU),无论是通过一个或多个协议(例如,内部网关协议(IGP))的操作的方式还是通过记录在PDU转发期间获知的信息的方式。网络交换机的每一个可以表示路由器、第三层(“L3”)交换机、第二层(“L2”)交换机、L2/L3交换机或根据转发信息切换业务的另一网络设备。相应地,由网络交换机转发的PDU可以包括例如L3网络分组(例如,互联网协议分组)和/或L2分组(例如,以太网数据报或异步传输模式(ATM)信元)。PDU可以是单播、多播、任播和/或广播。
服务提供商网络的覆盖网络层包括覆盖交换机,该覆盖交换机在由网络交换机定义的物理拓扑“之上”的虚拟拓扑中排布。覆盖网络的虚拟拓扑的各个链路(或“覆盖链路”)可以是通过基础网络和/或连接覆盖交换机的物理链路建立的路径。例如,覆盖网络可以表示虚拟专用网络(VPN)、由一个或多个OpenFlow交换机组成的OpenFlow网络或者具有内置于端点设备的选择功能性的应用层网络。相应地,覆盖交换机的每一个可以表示路由器或路由实例(例如,虚拟路由和转发(VRF)实例);虚拟专用局域网(LAN)服务(VPLS)实例;专用L2、L3或L2/L3交换机;或者由路由器或由专用交换机实施的虚拟或“软”交换机(例如,OpenFlow交换机)。SDN控制器40可以替换外部实体(例如,覆盖控制器)并执行类似的功能性。
在网络状态信息66的一个示例中,发布者模块78将一个或多个数据库配置为存储由被称作拓扑服务器的外部源提供的信息。SDN控制器40的一些实施方式利用被称作拓扑服务器的实体,该实体从网络交换机接收拓扑信息,网络交换机包括用于多拓扑网络的基础网络的交换机。例如,拓扑服务器可以执行一个或多个IGP或外部网关协议(例如,边界网关协议(BGP)),以监听由网络交换机发送的路由协议广播。拓扑服务器收集、存储基础网络拓扑信息,然后接着,在基础拓扑更新消息中向其他网络实体(诸如SDN控制器40和/或通知服务)提供基础网络拓扑信息。基础网络拓扑信息可以包括用于网络链路的流量工程信息,诸如链路的管理属性和可供标签交换路径(LSP)使用的各种优先等级的带宽。在一些示例中,网络交换机可以向拓扑服务器发送拓扑更新消息,该消息为连接网络交换机的L2链路指定L2链路信息。
在一些示例中,网络状态信息66中的拓扑服务器信息可以被发布者模块78和SDN控制器40中的一个或多个模块/应用(诸如拓扑管理器模块)访问。在一些示例中,发布者模块78可以用针对拓扑服务器信息的特定数据集的定义(例如,键空间事件的定义)来配置通知服务。拓扑管理器模块(例如,或另一核心模块)可以针对网络的拓扑和/或设备的状态的特定方面请求对键空间事件的订阅,并且继而,发布者模块78发送针对键空间事件的订阅和适当定义。如所请求的,通知服务将一个或多个数据库查询配置为根据订阅来检索数据,并生成指示对全局网络状态信息的更新的多个(例如,序列)键空间事件。
类似地,在网络状态信息66的另一示例中,发布者模块78可以将一个或多个数据库配置为存储覆盖网络信息。发布者模块78可以在相应的通信会话中以由覆盖交换机发送的拓扑更新消息接收(例如,经由覆盖控制器)关于多拓扑网络的覆盖网络的拓扑信息。由覆盖交换机发送的拓扑更新消息可以包括虚拟和物理交换机端口信息、PDU和指定接收PDU所经由的相应端口和/或接口的相关联的元数据。在一些示例中,经由覆盖控制器的SDN控制器40是路由协议监听器,其执行一个或多个路由协议,以接收由覆盖交换机发送的路由协议广播。例如,此类路由协议广播可以与一个或多个VRF相关联。覆盖控制器收集并存储覆盖拓扑信息,接着向SDN控制器40和/或覆盖拓扑更新消息中的通知服务提供覆盖拓扑信息。在网络状态信息66的一些示例中,覆盖网络信息可被发布者模块78和SDN控制器40中的一个或多个模块/应用(诸如拓扑管理器模块)访问。SDN控制器40的其他实施方式可以包括覆盖控制器作为组件。
在网络状态信息66的一个示例中,发布者模块78将一个或多个数据库配置为存储包括设备配置文件和其他设备数据的设备状态信息。一般地,示例网络设备的配置文件信息描述了通过该示例网络设备的所获知的路径。诸如路由器之类的网络设备被配置为与诸如多拓扑网络中的其他网络或子网建立路径。网络交换机可以被配置为或以其他方式被指导为建立通过多拓扑网络的基础网络的路径。此类路径可以包括,例如,IP隧道,诸如通用路由封装(GRE)隧道、通用分组无线电服务(GPRS)隧道协议(GTP)隧道、LSP,或通过基础网络或VPN的简单路由(例如,由具有路由目标的静态路由所识别的)。网络交换机在通信会话中向通知服务(例如,经由适配器)提供关于通过网络(例如,多拓扑网络的基础网络)建立的路径的路径状态信息。路径状态(可选地,“路径状态”或“LSP状态”)信息可以包括用于现有的操作的路径的描述符以及已建立路径或路径设立操作失败的指示。例如,网络交换机可以尝试使用诸如资源预留协议(RSVP)之类的预留协议来建立LSP,但是由于沿着由显式路由对象(ERO)指定的路径的网络资源不足而失败。作为结果,网络交换机可以在通信会话中向通知服务提供路径设立操作失败的指示。PCE 64利用网络状态信息66来访问路径状态信息,并将通过网络的基础网络已建立的路径作为覆盖网络拓扑中的链路添加。
在一些示例中,发布者模块78在网络状态信息66中存储一个或多个数据库,这些数据库被配置为存储用于网络中所获知的路径的路由信息和/或转发信息。除了上述设备配置文件信息之外或作为可选的,SDN控制器40可以从拓扑服务器中或通过执行路由协议的方式来接收描述所获知的路径的路由信息和/或转发信息。如本文所描述的,SDN控制器40在网络状态信息66中保持定义网络(例如,移动核心网络)的拓扑的任何信息,并且发布器模块78例如通过分别在路由信息库(RIB)和/或转发信息库(FIB)中存储路由信息和/或转发信息的副本的方式来有效地处理对网络拓扑的更新。SDN控制器40可以执行守护进程(daemon),以分别将所获知的路由信息和/或转发信息存储在路由信息库(RIB)和/或转发信息库(FIB)内。作为可选的,发布者模块78可以将通知服务配置为运行类似的路由守护进程。
守护进程可以运行路由进程,该路由进程可操作以通过基于协议消息(例如,路由广告)、通信会话(例如,对等会话消息)和/或设备之间的其他所获知的网络路径,解析网络拓扑的方式来生成路由信息,可操作以通过进一步解析由路由信息定义的网络拓扑的方式来生成转发信息,然后接着(如果需要)选择或确定通过网络或子网络(例如,移动核心网络)的一条或多条路线。
除了流量工程数据库、多拓扑流量工程数据库、路由信息库或转发信息库中的至少一者之外,对于网络状态信息66,发布器模块78可以将一个或多个数据库配置为存储应用层流量优化(ALTO)映射和/或高层级网络拓扑信息的其他示例。在其他示例中,SDN控制器40实施发布者模块78,以在网络状态信息66中存储网络拓扑信息,以供ALTO 76用来产生ALTO映射。每当对此拓扑信息进行更新或改变时,发布者模块78被配置为向通知服务发布关于此更新或改变的信息,并且作为响应,通知服务向任何订阅/请求客户端模块/应用分发关于该更新或改变的事件通知。
以这种方式,每个客户端模块/应用可以访问由网络的路由协议说话者发起或转发的有关每个服务承载或网络层的网络拓扑信息。所接收的拓扑信息描述了网络节点(例如,路由器、交换机和其他网络设备)的拓扑以及任何网络路由器对网络地址前缀的可达性。
本公开的技术可以提供一个或多个优点。例如,SDN控制器40改善了操作的效率,因为当网络状态由于一个或多个原因而转变或改变时,网络是自动配置的(没有人为干预)。一些示例技术实现了在转变/改变的发生与该转变/改变通过网络传播到其他设备之间的时间间隔中,以及在SDN控制器40通知该转变/改变与SDN控制器40的网络重配置之间的第二时间间隔中的延迟减少,以符合网络的拓扑及其设备的状态。根据一种示例技术,为了达到减少延迟的目的,SDN控制器40实施用于分发新网络拓扑信息和/或新设备配置文件信息的发布者-订阅者模式。为了说明,响应于识别出网络拓扑或设备配置文件的改变,SDN控制器40发布了任何新信息,然后接着,向订阅者客户端(假设匹配的订阅)分发,并且移除任何无效信息,并将其移除散布到其他网络设备。
在发布新信息的过程中,考虑到网络拓扑/设备配置文件中的改变,SDN控制器40可以重写已经变得无效的信息;已重写的信息的示例包括先前的网络拓扑信息或先前的设备配置文件信息。SDN控制器40可以向网络可寻址的数据源发送新网络拓扑信息和/或新设备配置文件信息,在该数据源处,新信息用于更新先前的网络拓扑和/或先前的设备状态(例如,设备配置文件),并且从该数据源通知每个订阅者客户端已经对网络拓扑和设备配置文件进行了一个或多个更新。网络可寻址的数据源可以继续保持最新网络拓扑信息和/或设备配置文件信息,以供SDN控制器40中的客户端模块/应用有利地使用。
PCE 64提供了接口,通过该接口,客户端可以在指定的时间内请求任何主机的组合之间的专用路径。例如,客户端可以在特定日期的下午1点到下午3点请求从主机A到主机B的100MB/s的路径。再如,客户端可以在同一日期的下午2点到下午3点请求从主机B到主机C的50MB/s的路径。又如,客户端可以在特定日期的下午4点到下午6点请求使主机中的每一个相互连接的50MB/s的路径的网格(或“多路径”)。所请求的网格(mesh)是由多条点到点路径组成的多点到多点路径。除了上面例示的带宽、主机和时间路径参数之外,客户端可以请求符合其他服务质量(QoS)路径请求参数(诸如延迟和抖动(jitter))的路径,并且可以进一步指定额外的相关联的分类器来识别所指定的端点之间的流。下文提供了示例流分类器(或“参数”)。
PCE 64使用有关从拓扑服务器接收的网络的基础网络拓扑信息、有关从覆盖控制器接收的网络的覆盖网络拓扑信息以及从网络交换机接收的路径状态信息,来计算和调度主机之间通过网络的路径,这些路径满足由客户端请求的有关路径的参数。
SDN控制器也可以提供更大的服务灵活性,因为网络可以被动态地修改以支持新的应用体验。SDN控制器也可以提供资金效率,即以更少的资源做更多的事情的能力,因为网络不需要为特定服务或应用而被过度构建或专门构建。相反,网络资源可以仅在需要时被分配,并被预留给高优先级的应用和关键业务应用。
保持描述最近网络拓扑和重建设备配置文件的信息有多个额外的益处。作为一个益处,特定客户端应用可以请求特定应用网络配置,并且具有最多的网络拓扑允许控制器40确保所请求的特定应用网络配置符合最新网络拓扑。
在一个示例中,视频服务器从客户端订阅者设备上的视频服务应用接收用户对流式视频的请求。视频服务器不知道用户(例如,订阅者设备)的物理位置。客户端上的视频服务应用可以经由视频点播服务模块46的北向接口与控制器35的视频点播服务模块46通信,而非仅仅依靠视频服务器来猜测从哪个数据中心为该订阅者发送视频业务。客户端上的视频服务应用可以向视频点播服务模块46指定内容和内容类型(高清晰度或标准清晰度)。作为响应,视频点播服务模块46可以获得关于具有服务内容类型的能力的最靠近的数据中心的信息,并且可以向客户端上的视频服务应用指示它应该从哪个数据中心获取视频。例如,视频点播服务模块46可以向连接性调度模块56传送请求,该连接性调度模块56可以指示ALTO模块76基于网络状态信息78来确定托管视频的最靠近的服务器或数据中心。在一些示例中,ALTO模块76可以向网络状态信息78(例如,一个或多个TED)查询信息(例如,在BGP-TE信息中),以确定内容服务器位置,然后接着,向上传送信息至连接性调度模块56。其他实施方式依靠ALTO服务器来存储内容服务器位置。
另外,客户端上的视频服务应用可以请求具有某些特性的带宽保证路径(例如,具有6兆位带宽的路径)。根据本公开的技术,客户端上的视频服务应用可以经由连接性按需服务模块50的北向接口与控制器40的连接性按需服务模块50通信,以请求路径。在一些示例中,连接性按需服务模块50可以参考预留库52,和/或可以参考由策略引擎54应用的策略。连接性按需服务模块50向SDN网络层44中的路径计算引擎64提供客户端要求。作为响应,路径计算引擎64基于在网络状态信息66的流量工程数据库(TED)中找到的网络拓扑信息来计算网络中的路径。
在路径计算引擎64计算出具有保证的带宽的路径之后,SDN网络层44的路径部署模块68在网络中供应所计算的路径。作为一个示例,路径部署模块68(或路径计算元素协议(PCEP)适配器80)向网络中的路由器提供信息,以诸如通过提供显式路由对象(ERO)的方式向头端路由器给出路径的指示。路由器使用带有流量工程扩展的资源预留协议(RSVP-TE)来发信号通知路径,以发信号通知多协议标签交换(MPLS)LSP。作为另一示例,OpenFlow适配器82可以使用OpenFlow来供应路径。以这种方式,控制器40可以给客户端上的视频服务应用提供来自连接性按需服务模块50的保证,即由路径计算引擎64选择并由路径部署模块68供应的通过网络的路径上的带宽是可用的。因此,视频服务应用客户端不仅能够连接到可提供内容的最佳数据中心,而且能够预留网络资源以确保用户获得良好的视频观看体验。
如本文所描述的具有可用的最新网络拓扑信息实现了路径计算引擎64的路径选择和路径部署模块68的路径供应;否则,路径计算引擎64和路径部署模块68二者很有可能返回趋向于失败的错误,从而使SDN控制器取向于失败或选择/供应无效的路径。本公开描述了用于以减少的延迟来保持最新网络拓扑信息的技术。在改变网络的拓扑的事件(例如,用户动作)发生之后,该改变被传播至SDN控制器40,并(根据请求或订阅)提供给SDN控制器40中的任何客户模块/应用或另一设备(例如,网络节点或订阅者设备),而没有明显延迟。即使在网络的拓扑发生大量改变之后,本文描述的技术仍然利用订阅者-发布模式在整个网络中传播这些改变。
在一个示例中,假设某种攻击正在互联网上发生(例如,黑客试图摧毁国防部的网站)。网络管理员希望阻止来自某组主机的所有流量。使用与云防火墙模块62相关联的北向API,网络管理员的客户端设备可以经由北向API与控制器40通信,以请求阻止来自这些主机的流量。云防火墙模块62将指令转换成需要被编程到网络中的路由器中的防火墙特定规则。例如,云防火墙模块62可以生成防火墙规则,诸如“如果流量来自IP地址X,则丢弃”。云防火墙模块62可以使用防火墙策略引擎60和/或防火墙规则库58来生成防火墙规则。
云防火墙模块62向防火墙适配器84提供防火墙规则。防火墙适配器84使用路由器上的委托(commit)命令用所生成的规则对网络中的(多个)适当的路由器进行编程。委托管理模块88可以被包含在该过程中。路由器使用其往常的防火墙组件,但是防火墙规则从防火墙适配器84自动接收。以这种方式,网络管理员不需要通过各个特定配置命令对网络中的一个或多个路由器进行单独地编程。相反,网络管理员可以使用北向接口告诉高等级的SDN控制器35在网络中期望什么结果。SDN控制器40将该请求分解成特定配置命令,并用这些命令配置网络中的各个路由器。如果网络使用位于网络边缘的独立的、单独的防火墙设备,则防火墙适配器84将对防火墙设备(而非路由器)进行编程,并且因此达到相同的行为。
在一些方面,例如,SDN控制器40也可以提供互连两个或更多个数据中心的虚拟化环境。例如,网络管理员可以请求数据复制事件,诸如使存储在第一数据中心的数据被复制(存储)在第二数据中心的请求。网络管理员的客户端设备可以与和数据复制服务模块48相关联的控制器35的北向API进行交互。数据复制服务模块48接收请求,并可以调用连接性调度模块56。连接性调度模块56正在接收网络拓扑信息,(直接地)经由至通知服务的接口和/或(间接地)在网络状态信息66内的TED处,诸如经由发布者模块78或可选地,BGP-TE 74。连接性调度模块56使路径计算引擎64计算数据中心之间的路径。例如,路径计算引擎64可以使用CSPF 70或其他算法提供器72,以用于计算路径。
路径部署模块68供应路径,诸如通过使用PCEP适配器80来向路径的头端路由器提供路径ERO。例如,头端路由器可以使用RSVP-TE通过路径发信号通知LSP,以用于在数据中心之间发送数据,从而实现复制。在数据复制的情况下,LSP路径可能不需要是最短的或最佳的路径,这可以由路径计算引擎64来考虑。连接性调度模块56可以使用OpenFlow适配器82将数据流置于LSP。多个数据流可以被置于到同一条网络路径。连接性调度模块56可以基于改变需求,诸如网络管理员的改变请求,或者网络状态信息66的改变(例如,如经由BGP-TE 74、ALTO 76或者SDN网络层44的南向侧上的其他协议所获知的对网络拓扑的改变),来提供路径大小调整和重新路由。
SDN控制器40可以解决面向客户的问题。例如,随着客户继续在其数据中心采取虚拟化技术,并增加虚拟机、工作负载移动性和动态资源共享,这可能会引起网络高效配置方面的问题,从而导致性能低下和运营效率低下,即过多的人工开销。根据本公开的技术,SDN控制器40可以通过保持最新全局网络状态信息并协调此信息的分发以有益于至少一个客户端的方式,来减少数据中心资源管理的某些问题的影响,特别是跨多个数据中心围绕容量规划、数据中心利用和高效运营方面。
连接性调度模块56可以使用上述最新全局网络状态信息来动态地为SDN控制器40和/或订阅者设备中的客户端模块/应用预留带宽。连接性调度模块56与控制器35的SDN网络层44中的路径计算引擎64接口连接。网络状态信息66存储(最终)例如,经由BGP-TE模块74、ALTO模块76和/或发布者模块78来自网络设备的基础网络拓扑和覆盖网络拓扑信息。路径计算引擎64分析各种拓扑以协调来自多个客户端应用的请求,并尝试识别通过网络的层或各层的组合的路径,这些路径可以在请求时考虑到临时专用路径所请求的规格和网络中可用的预期带宽/容量来建立。
路径计算引擎64调度通过网络的一个或多个层的所识别的路径,以便为传送所请求的路径的业务。为了接着建立所请求的路径,路径计算引擎64指示路径部署模块68在预定时间将路径转发信息编程到参与沿着所识别的路径转发业务的多层、多拓扑网络的任意层处的一个或多个网络节点中。例如,路径部署模块68可以向路径的头端路由器提供所计算的路径,该头端路由器继而使用路径信息来沿着使用RSVP-TE的指定路径发信号通知LSP。在另一示例中,路径部署模块68可以将路径转发信息(例如,包括MPLS标签)直接编程到沿着路径的每个网络设备中。以这种方式,连接性调度模块56和路径计算引擎64可以以预留路径的形式建立通过网络的专用带宽信道,以及将流量引导到专用带宽信道上,以提供例如分布式客户端应用之间的连接性。
该技术可以提供一个或多个优点。例如,连接性调度模块56可以通过路径计算引擎64和网络状态信息66的操作来访问多个不同层处的网络的当前状态的增强视图,这可以使路径计算引擎64能够识别对标签边缘路由器不可见的路径,例如,具有更有限的视图。路径计算引擎64可以附加地借助于访问该增强视图而将业务引导到网络的未充分利用的部分,以提高网络容量利用率。更进一步地,使用连接性调度模块56和路径计算引擎64来识别、建立并且在一些情况下抢占临时专用路径以用于协调多个可能冲突的应用请求,可以减少对网络资源的第一时间、第一权利访问,而有利于针对专用路径的应用请求的明确的、集中式优先化。
在一些示例中,与连接性调度模块56相关联的北向API GUI可以示出MPLS路径和带宽预留。北向API GUI也可以将SSH终端包括到路由器中,以示出OpenFlow条目。在一些示例中,连接性调度模块56可以提供“带宽日历应用混合模式”,该模式使用Openflow和PCE二者的组合来对网络中的设备进行编程。路径部署模块68使用PCEP适配器80为用户的视频流对经由MPLS跨主干网的特定带宽预留进行编程。路径部署模块68使用OpenFlow适配器82为用户的视频流对特定转发路径进行编程。
在一些示例中,路径计算引擎64可以确定通过覆盖网络层的端到端路径不可用,并且因此PCEP适配器80可以在基础网络层中计算的路径上编程隧道,并在多拓扑流量工程数据库66中将用于隧道的新覆盖网络链路存储到用于覆盖网络层的拓扑信息中。Openflow适配器82可以基于由PCEP适配器80存储的新覆盖网络链路,将用于隧道的设备配置文件信息编程到覆盖网络层中的覆盖交换机中,新覆盖网络链路作为服务请求的端到端路径的一部分。在一些示例中,PCEP适配器80可以指的是PCEP库86。在一些示例中,PCEP适配器80可以指的是资源依赖性90。
在其他示例中,连接性调度模块56可以提供“带宽日历应用Openflow模式”,在该模式中,路径部署模块68仅使用Openflow适配器82来为用于用户的视频流的特定转发路径编程网络。
在一些示例中,SDN控制器40也可以提供移动网络控制。诸如订阅者会话设立、认证、计费和信令之类的移动核心控制平面应用在数据中心的通用硬件上执行,该数据中心与移动核心之间介入有SDN控制器40。订阅者设备经由无线电接入网络向移动核心发出服务请求,移动核心继而将控制平面消息重导向到SDN控制器40,以将控制平面消息封装在SDN协议中。对于来自订阅者设备的每个此服务请求,与SDN控制器35的移动服务模块63相关联的北向接口提取并处理用于订阅者会话管理的控制平面消息。SDN网络层44中的移动服务适配器85响应于服务请求并使用SDN协议,向移动核心提供任何服务响应或其他控制平面消息,移动核心将该任何服务响应或其他控制平面消息转发给对应订阅者设备以用于用户会话管理和控制。另外,数据中心的移动核心控制平面应用可以对移动服务模块63的北向接口确定并传送移动性特定信息,以处理并转发针对订阅者设备的订阅者数据业务。移动服务适配器85继而用移动性特定信息对移动核心数据平面的支持节点进行编程,以配置数据平面,数据平面用于处理和转发与关于订阅者设备的订阅者会话相关联的用户数据业务。
例如,假设移动订阅者想要从他在加州以外的移动手机与明尼苏达州的朋友的移动设备进行通信,并且两者之间没有已经设立的网络路径。移动手机将与移动服务63的北向API接口连接,北向API接口继而使移动服务适配器85首先在加利福尼亚与明尼苏达之间设立MPLS传输路径。例如,移动服务63可以包含PCE 64来确定适当的路径。移动服务适配器85可以调入移动规范应用来发信号通知所有移动协议参数,使得移动电话呼叫可以在加利福尼亚与明尼苏达之间成功完成。在一些情况下,移动服务适配器85可以用适当的参数来配置路径中的每个节点,并且在其他情况下,移动服务适配器85可以向发出请求的移动设备或其他设备提供参数信息,以允许该设备基于参数执行发信号通知和设立。这些参数都设立好之后,用户的移动电话就接通了。以这种方式,控制器35可以促进自动服务创建。
可以由控制器40使用的用于SDN控制的移动网络的示例机制可以在于2012年12月21日提交的题为“Software-Defined Mobile Core”的美国申请号13/724,975中找到,其全部内容通过参考并入本文。
图3是图示了向一个或多个模块和/或一个或多个应用提供最新网络状态信息的示例控制器的框图。发布者模块78和可能的一个或多个额外的组件在数据存储器中保持最新网络状态信息,该数据存储器被配置为支持各种功能性(诸如连接性调度)的网络拓扑信息的单一源,以改善客户端模块或客户端应用的操作。例如,SDN控制器40接收对网络拓扑和/或设备配置文件的更新,向订阅者客户端发布新网络拓扑信息和/或新设备配置文件信息,然后接着,基于新网络拓扑信息和/或新设备配置文件信息来计算并实施网络配置。出于简明的目的,图3是从网络重配置的示例的角度来描述的,但是控制器40也可以包括图3中未示出的其他用例功能性。控制器40可以包括例如服务器或网络控制器,并且可以表示图1的控制器35的示例实例。
SDN控制器40包括联接至网络接口130的控制单元100,以通过入站链路132和出站链路134与其他网络设备交换分组。控制单元100可以包括一个或多个处理器140,该一个或多个处理器140执行软件指令,诸如用来定义软件或计算机程序的软件指令,这些软件指令被存储到计算机可读存储介质(同样,在图2中未示出),诸如包括存储设备(例如,磁盘驱动器或光盘驱动器)或存储器(诸如闪存或随机存取存储器(RAM))或任何其他类型的易失性或非易失性存储器的非暂时性计算机可读介质,其存储指令以使一个或多个处理器执行本文描述的技术。可选地或附加地,控制单元100可以包括专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)、或者一个或多个前述专用硬件示例的任意组合,以用于执行本文描述的技术。
SDN控制器40包括发布者模块78,以配置运行微服务(即订阅者微服务)的客户端的通知服务。发布者模块78使得那些订阅者微服务能够受益于既没有停机时间也没有成本的可用最新网络状态信息。通知服务的客户端还受益于完成网络状态改变的延迟减少。通过卸下获取某些数据的任务,通知服务的客户端还受益于资源成本和其他支出的节省。
SDN控制器40的网络中的设备可以使用网络服务应用104的客户端接口102来请求通过网络的路径。这些设备可以是订阅者设备、网络节点(例如,路由器、交换机和/或类似设备)、专用设备、服务器、虚拟机/容器等。设备本身可以是物理服务器或虚拟容器,其被配置为运行一个或多个内核模式模块或一个或多个用户模式应用;通常,每个设备被配置为与SDN控制器40交换状态信息。一般地,路径请求包括所请求的日期/时间、所要求的带宽或其他约束以及至少两个端点。例如,客户端接口102可以是命令行接口(CLI)或图形用户接口(GUI)。客户端接口102也可以或者可选地提供应用编程接口(API)。诸如网络服务。用户使用客户端应用来调用客户端接口102,以输入路径请求参数,并将该请求提交给网络服务应用,诸如带宽日历应用。客户端接口102从客户端接收路径请求,并将路径请求推送至路径请求队列、存储路径请求的数据结构,以供路径计算引擎112进行计算分发。
控制单元100为各种模块和应用提供操作环境。在一个示例中,发布者模块78包括在控制单元40中的处理电路上执行的可编程逻辑。发布者模块78可以使用产生可由合适的平台(例如,Java应用)执行的指令的任何合适的编程语言来实施。此外,虽然图示并描述了在发布者模块78中执行,但是发布者模块78的各方面可以被委托给其他计算设备。
控制单元100提供机制,该机制被配置为专用于网络设备来操作通知服务。专用网络设备可以与SDN控制器40在同一网络中,并且发布者模块78可以运行微服务,从而以有益于上述订阅者微服务和/或网络设备的方式操作通知服务。在其他示例中,通知服务由不同的控制器和/或在不同的网络中实例化。
在一个示例中,发布者模块78可以运行第一线程106A和第二线程106B来作为与通知服务通信的接口来操作,例如,请求并接收新网络拓扑信息和新设备配置文件信息,以存储在网络状态信息66中的一个或多个数据库中。发布者模块78在(多个)拓扑数据库108A中存储描述最近网络拓扑的信息,并且在(多个)设备配置文件数据库108B中存储进一步描述最近网络拓扑的信息以及例如与多个网络层对应的路由信息和描述通过网络的路径的信息。在一个示例中,第二线程106B可以被配置为从通知服务中接收事件通知,该事件通知指示对网络状态信息66的更新,并且第一线程106A可以被配置为读取新网络拓扑信息和/或新设备配置文件信息,以用于更新(多个)拓扑数据库108A和/或(多个)设备配置文件数据库108B。如本文所描述的,通知服务在一个或多个数据库(例如,远程数据库)中保持全局网络状态信息,包括用于网络(例如,移动核心网络)的一个或多个网络层的当前网络拓扑信息和当前设备配置文件信息。在一些实例中,控制器40保持一个或多个数据库的副本,作为(多个)拓扑数据库108A和/或(多个)设备配置文件数据库108B。
发布者模块78和/或通知服务可以从多个数据源接收关于基础网络、覆盖网络、分组定义的网络(诸如基于云的数据中心或移动核心网络)、无线电接入网络和/或类似网络的拓扑信息。在一些实例中,发布者模块78、通知服务和/或拓扑服务器可以是既不转发也不发起路由协议广告的被动监听器。在一些实例中,发布者模块78和/或通知服务可以各自接收由拓扑服务收集的拓扑信息的摘要(digest),而非执行路由协议来直接接收路由协议广播。发布者模块78可以将拓扑信息的摘要(例如,与TE信息一起)存储在控制单元100的计算机可读存储介质中,以供在路径计算中使用。
类似于图1的控制器40,SDN控制器40也包括一个或多个模块(例如,移动核心网络的模块),该一个或多个模块被配置为响应于网络拓扑和/或设备配置文件的更新来计算新网络配置。SDN控制器40也包括拓扑管理器(其一个示例在图3中被图示为拓扑模块116),以随着时间(例如,多次迭代)聚合来自诸如拓扑服务(例如,在上述拓扑服务器上运行的拓扑服务)之类的一个或多个外部数据源的网络拓扑信息。SDN控制器40也包括一个或多个(移动核心网络)应用,该一个或多个应用被配置为随着时间(例如,多次迭代)聚合来自诸如设备服务(例如,在无线电接入网络的基站上、在上述覆盖控制器上或在专用网络设备上运行的设备服务)之类的一个或多个第二外部数据源的设备配置文件信息。为了在网络拓扑和/或设备配置文件的更新之后实施新网络配置,SDN控制器40使用网络设备协议接口将新网络拓扑信息和/或新设备配置文件信息编程到网络设备(例如,网络设备的控制单元)中。
如本文所提及的,拓扑管理器是被配置为保持网络控制器中和其他网络设备中的模块的网络拓扑信息的网络实体。SDN控制器40可以包括拓扑模块116,以运行用于网络的拓扑管理器(例如,其组件)。拓扑模块116可以从包括网络节点和订阅者设备的网络资源中接收输入数据集,解析当前/最近网络拓扑,然后接着,生成网络拓扑信息的数据集,以供其他模块在执行一些功能时使用。数据集可以指根据预定格式的结构化数据,并且网络拓扑信息的数据集可以指用于描述/建立网络拓扑的某方面(例如,参数)的属性数据的排布。SDN控制器40中的模块可以以已知的具体格式并且此外还按照用于完成请求的任何必要的协议或机制来请求一组特定属性。拓扑模块116可以向发出请求的模块输出用于通信的兼容数据集(例如,IPC),和/或可以将该数据集存储在网络状态信息66中。
发布者模块78继而可以根据发布者-订阅者模式来发布上述数据集(或修改版本)。例如,发布者模块78可以将外部网络设备配置为操作通知服务,向外部数据存储器发送兼容数据集以用于存储,以及通过使用该组特定属性中的一个或多个,建立针对与数据集的更新或者一般地由特定属性表示的网络拓扑信息的更新对应的事件通知的订阅。请求模块的订阅指示通知服务和发布者模块78提供(例如,作为输入馈送)与已发布的数据集对应的任何新信息。发布者模块78可以被配置有动态操作模式,并且响应于接收到指示发出请求的模块的请求的消息,返回一个或多个数据集。在其他示例中,发布者模块78除了发布与网络拓扑中的最近改变和全局网络状态的其他更新对应的新网络拓扑信息之外,还运行拓扑管理器(例如,代替拓扑模块116或作为其替代)。请求模块也可以访问新网络拓扑信息,而无需任何模块操作拓扑管理器。
发布者模块78被配置为通过向通知服务发送网络拓扑信息的数据集来发布此类数据集以用于存储在外部数据存储器中。发布者模块78可以将外部数据存储器配置为保持关于控制器40的其他模块的最新网络拓扑信息,包括核心模块/插件(如流量工程数据库、路径计算引擎),其启用应用,诸如核心应用和用户定向应用。为了接收关于当前或最近网络拓扑的新信息,上述模块/插件/应用利用发布者模块78和外部数据源作为最新全局网络状态信息的单一真实源。
SDN控制器40还包括一个或多个处理器140和一个或多个摄取装置(ingestion)150,其中(多个)处理器140和(多个)摄取装置150是单独的硬件单元(例如,专用硬件的硬件单元),二者都包括计算机存储器、诸如可编程逻辑之类的逻辑、和一个或多个电路,并且每个都执行不同的操作集以实现功能。一般地,处理器140是指包括处理硬件(例如,处理电路)的执行元件,并且摄取装置150是指数据摄取管线;在操作中,摄取装置150为处理器140提供指令和其他数据,以用于将来自多个源的流式数据和批量数据移动到集中式数据存储器中,诸如在网络状态信息66中。在一个示例中,作为组件硬件单元的一对(多对)摄取装置150和处理器140可以被组合到网络实体中,并且SDN控制器40可以为联网协议(诸如NETCONF功能性)编排(instrument)该实体。SDN控制器40可以将上述多对摄取装置150和处理器140配置为根据所计算的网络配置对网络设备进行编程。
SDN控制器40可以包括硬件/软件组件,以用于作为带有对已发布的网络状态信息中的改变的订阅的客户端模块/应用来操作。在一个示例中,ML适配器160是机器学习(ML)架构适配器,其被配置为使主机设备在线成为ML架构(例如,辅助学习框架)的一部分。ML适配器160可以消费(consume,使用)最新网络拓扑信息和/或设备配置文件信息来训练机器学习模型和/或使用该模型进行预测。外部/远程设备可以使用标准化的REST协议操作向ML适配器160传送此数据。
在另一示例中,PCE服务器162是操作PCE服务器的专用客户端服务,该服务器通常被配置为为所有PCE客户端管理网络拓扑和隧道属性,这有助于网络管理。按照当前网络配置,PCE服务器162可以利用路径计算元素协议(PCEP),以用于PCC与PCE之间或者两个PCE之间的通信。PCE服务器162可以提供服务,其中在外部节点上运行的其他客户端模块/应用可以采用计算的资源以用于路径计算。
作为又一个示例,PRPD CLI 164是根据通用可编程路由协议(PRPD)的客户端。一般地,PRPD CLI 164是配置有公共API的守护进程,以对拓扑中的路由和其他网络设备进行编程,实施拓扑的改变,以及授予用户直接接入API以定制拓扑的权限,这可能会影响网络行为。如果启用了PRPD CLI 64,则SDN控制器40可以使用本地ASBR处的PRPD客户端64向网络设备推送网络拓扑信息和/或设备配置文件信息。PRPD规定了至少一种用于排布网络拓扑信息的格式。PRPD可以为数据集中的每个元组规定映射格式,并且在一个示例中,发布者模块78为该数据集生成元组,其中每个元组包括入口设备与出口设备之间的映射。管理员可以经由命令行接口(CLI)输入数据来改变网络拓扑,或者规定用于描述网络拓扑的数据格式。这些改变被传播至SDN控制器40,由发布者模块78发布,然后接着,最终被分发至其他订阅者客户端模块/应用。
在第四示例中,BMP监控器166是BGP监控协议(BMP),其可用来监控BGP对等会话。BMP意图为获取路线视图和其他网络状态信息提供方便的接口。BMP监控器166的可操作性可以取决于最新网络状态信息,否则,线路视图可能无效。
在第五示例中,设备连接服务168是用于传输机制的硬件/软件组件,该传输机制将SDN控制器40连接到外部网络设备。特别地,设备连接服务168可以用外部网络设备的地址来创建TCP套接字(socket)。在一个示例中,发布者模块78可以将外部网络设备配置为操作本文描述的通知服务,并存储网络状态信息66的远程副本。为了与该网络设备交换网络状态信息,发布者模块78可以使用配置有上述TCP套接字的传输机制。
发布者模块78或SDN控制器40中的另一模块/应用可以调用网络协议功能,并且在一个示例中,(多个)处理器140和/或(多个)摄取装置150可以执行NETCONF操作,NETCONF操作被配置为安装、修改/操纵和/或删除网络设备的配置。网络配置通常指给定的网络的架构,包括识别控制器40在网络中供应的不同网络资源以及还识别控制器40针对网络设备的特定子集供应的虚拟网络资源的数据。对于多个网络设备,示例网络配置为网络设备的子集指定基础网络层的参数和/或覆盖网络的参数,诸如被设立为VPN的自治系统(Autonomous System)。一些网络资源被供应以满足要求或需求。安装网络配置可以包括部署(开通,供应,provision)网络设备之间的路径,包括子网络(例如,虚拟网络)之间的隧道。
如果移动服务提供商网络包括SDN控制器40,则对应的网络配置通常指网络的蜂窝网络架构,包括这样的数据,该数据定义蜂窝无线电接入网络资源并且还定义移动服务以提供订阅者设备。示例网络配置指定了用于限定无线电接入网络的小区的集合的参数,和用于一个或多个小区的参数,每个小区包括至少一个能向订阅者的无线设备(例如,订阅者设备18B)发送和中继信号的基站。用于“小区”的示例配置参数通常限定移动服务提供商网络的不同区域,该区域利用特定频率或频率范围以用于数据的发送。网络的蜂窝网络架构很可能符合已发布的网络标准或其他公知的架构;例如,如上文所提及的,NETCONF协议是由IETF定义的,并且NETCONF操作是在远程过程调用(RPC)层之上使用XML编码实现的,并且提供了一组基本的操作来编辑和查询网络设备上的配置。
网络拓扑信息和/或设备配置文件信息可以被分发至订阅者微服务的时间性(timeliness,及时性)取决于一个或多个因素,并且提高该及时性可以显著改善控制器40的性能。本文描述的发布者模块78的示例确保了向核心模块提供的全局网络状态信息是最新的,例如,通过被配置为增加接收到全局状态信息的更新的速率,然后接着,将其作为新全局状态信息并入数据源和/或减少接收与并入之间的延迟的各种技术。一些技术针对全局状态信息的更新采用批处理,使得在一次迭代中(例如,主动地)(一起)处理多个更新,而不是在到达时一次处理一个(例如,被动地)。主动批量处理允许多种增强,例如,使得控制器40仅处理更新的子集,由于多个原因而忽略一个或多个其他更新。
控制单元100为网络服务应用104、路径计算元件112和边缘授权部署模块提供操作环境。在一个示例中,这些模块可以被实施为在一个或多个服务器的一个或多个虚拟机上执行的一个或多个进程。也就是说,虽然通常被图示并描述为在单个控制器40上执行,但是这些模块的各方面可以被委托给其他计算设备。
网络服务应用104表示一个或多个进程,其根据本公开的技术向服务提供商网络的客户端提供服务以管理聚合域(可选地,被称为“路径计算域”)中的连接性,该服务提供商网络包括控制器40。网络服务应用104可以例如向服务提供商网络的客户端提供包括网络电话(VoIP)、视频点播(VOD)、批量传输、围墙式花园/开放式花园、IP移动子系统(IMS)和其他移动服务、以及互联网服务。网络服务应用104要求由路径计算元件112提供的服务,诸如节点管理、会话管理和策略执行。网络服务应用104的每一个可以包括客户端接口102,一个或多个客户端应用通过该客户端接口102请求服务。例如,客户端接口102可以表示命令行接口(CLI)或图形用户接口(GUI)。客户端102也可以或者可选地向客户端应用提供诸如网络服务之类的应用编程接口(API)。
网络服务应用104利用任务调度110通过客户端应用和SDN模块或应用来调度任务。网络服务应用104向路径计算元件112发出路径请求,以请求由控制器40控制的路径计算域中的路径。例如,路径请求包括所要求的带宽或其他约束以及表示接入节点和边缘节点的两个端点,这两个端点通过由控制器40管理的路径计算域进行通信。路径请求还可以指定路径必须能工作的时间/日期以及CoS参数(例如,某些路径的每类所要求的带宽)。
路径计算元件112接受来自网络服务应用104的路径请求,以在路径计算域上的端点之间建立路径。可以在不同的时间和日期以及不相同的带宽要求下请求路径。路径计算元件112基于所请求的路径参数和预期的网络资源可用性,协调来自网络服务应用104的路径请求,以将所请求的路径复用到路径计算域上。
为了智能地计算和建立通过路径计算域的路径,路径计算元件112包括拓扑模块116,以接收描述路径计算域的可用资源的信息,包括接入、聚合和边缘节点、其接口以及互连通信链路。在一些示例中,拓扑模块116是通知服务的客户端,并且在针对网络拓扑信息的特定数据集的订阅下接收事件通知。当那些数据集以某种方式改变时,通知服务可以针对每个改变分发事件通知,并且在一些示例中,该分发可以通过与拓扑模块116的直接通信或者通过经过发布者模块78与拓扑模块116的间接通信。在其他示例中,拓扑模块116访问网络状态信息66中的上述信息。
路径计算元件112的路径计算模块114计算通过路径计算域的所请求的路径。一般地,路径是单向的。在计算路径时,路径计算模块114调度由路径部署模块118部署的路径。所计算的路径包括路径部署模块118可用来在网络中建立路径的路径信息。部署路径可能要求在委任路径以提供分组传输之前进行路径验证。路径计算模块114可以对应于路径计算引擎64(图2),并且路径部署模块118可以对应于路径部署模块68。
图4是图示了图3的控制器40的路径计算元件112的示例实施方式的框图。在该示例中,路径计算元件112包括北向和南向接口,它们的形式为北向应用编程接口(API)230和南向API(232)。北向API 230包括方法和/或可访问的数据结构,网络服务应用104可以通过这些方法和/或可访问的数据结构来配置并请求路径计算以及查询路径计算域内已建立的路径。南向API 232包括方法和/或可访问的数据结构,路径计算元件112通过这些方法和/或可访问的数据结构接收路径计算域的拓扑信息,并通过对路径计算域内的聚合节点和/或接入节点的数据平面进行访问和编程来建立路径。
路径计算模块114包括数据结构,以存储用于计算和建立所请求的路径的路径信息。这些数据结构包括约束234、路径要求236、操作的配置238和路径出口240。网络服务应用104可以调用北向API 230来安装/查询来自这些数据结构的数据。约束234表示描述路径计算时的外部约束的数据结构。约束234允许网络服务应用104例如在路径计算模块114计算一组路径之前修改链路属性。例如,射频(RF)模块(未示出)可以编辑链路,以指示资源在组之间被共享,并且资源必须被相应地分配。
网络服务应用104可以修改链路的属性,以实现最终的流量工程计算。在此实例中,链路属性可以优先于从拓扑指示模块250接收的属性,并且在拓扑中的节点/随行(attendant)端口的持续时间内保持有效。针对约束234的链路编辑消息可以包括指定节点标识符和端口索引的链路描述符,以及指定带宽、预期传输时间、共享链路组和命运共享(fate shared)组的链路属性。链路编辑消息可以由PCE 214发送。
可操作的配置238表示数据结构,该数据结构向路径计算元件214提供配置信息以相对于例如服务类别(CoS)描述符和迂回行为(detour behavior)来配置路径计算算法。可操作的配置238可以根据CCP接收可操作的配置信息。例如,可操作的配置消息指定CoS值、队列深度、队列深度优先级、调度规程、过度部署因素、迂回类型、路径故障模式和迂回路径故障模式。单个CoS配置文件可用于整个路径计算域。在于2013年3月15日提交的题为“Aggregation Network with Centralized Control”的美国申请号13/842,453描述了示例CoS值,该申请的全部内容通过参考并入本文。分配给CoS的服务类别可以作为路径计算域的属性独立于节点。
路径出口240表示接口,该接口存储用于路径计算域中当前委任或建立的所有路径的路径描述符。响应于经由北向API 230接收的查询,路径出口240返回一个或多个路径描述符。所接收的查询可以请求终止(多条)路径的任意两个边缘和接入节点之间的路径。在一些示例中,路径描述符可以由网络服务应用104用来在终止(多条)路径的边缘与接入节点处设立转发配置。路径描述符可以包括显式路由对象(ERO)。响应于来自相关方的查询,可以发送路径描述符或“路径信息”。路径出口消息传递路径信息,该路径信息包括路径类型(主要或迂回)和用于每个CoS值的带宽。响应于接收到路径描述符,接收设备可以使用RSVP-TE从路径的入口向出口发信号通知MPLS LSP。
路径要求236表示接口,该接口接收对要由路径计算模块236计算的路径的路径请求,并向路径引擎244提供这些路径请求(包括路径要求)以用于计算。路径要求236可以被PCE接收或处理。在此类实例中,路径要求消息可以包括路径描述符,该路径描述符具有用于终止所指定的路径的节点的入口节点标识符和出口节点标识符,以及包括CoS值和带宽的请求参数。路径要求消息可以添加到用于所指定的路径的现有路径要求中或从其中删除。
拓扑模块116包括拓扑指示模块250,以处理拓扑发现,并且在需要时,以保持路径计算元件112与路径计算域的节点之间的控制信道。拓扑指示模块250可以包括向路径计算模块114描述所接收的拓扑的接口。拓扑模块116可以使用网络状态信息66来确定当前/最近网络拓扑。
拓扑指示模块250可以使用拓扑发现协议来向路径计算模块114描述路径计算域拓扑。在一个示例中,使用云控制协议机制进行拓扑发现,拓扑指示模块250可以接收节点邻居列表以及链路属性列表,每个邻居包括节点标识符、本地端口索引和远程端口索引,每个属性指定例如端口索引、带宽、预期传输时间、共享链路组和命运共享组。受益于本公开,上述示例可以转移(offload)到图2的发布者模块78或通知服务。
拓扑指示模块250可以与诸如路由协议路由反射器之类的拓扑服务器通信,以接收用于网络的网络层的拓扑信息。拓扑指示模块250可以包括路由协议进程,该路由协议进程执行路由协议,以接收路由协议广告,例如开放最短路径优先(OSPF)或中间系统到中间系统(IS-IS)链路状态广告(LSA)或边界网关协议(BGP)UPDATE消息。在一些实例中,拓扑指示模块250可以是既不转发也不发起路由协议广告的被动监听器。在一些实例中,拓扑指示模块250可以可选地或附加地执行拓扑发现机制,诸如用于应用层流量优化(ALTO)服务的接口。拓扑指示模块250因此可以接收由拓扑服务器(例如ALTO服务器)收集的拓扑信息摘要,而不是执行路由协议以直接接收路由协议广告。
在一些示例中,拓扑指示模块250接收包括流量工程(TE)信息的拓扑信息。拓扑指示模块250可以例如执行具有TE扩展的中间系统到中间系统(IS-IS-TE)或者具有TE扩展的开放最短路径优先(OSPF-TE),以接收用于所广告的链路的TE信息。此TE信息包括链路状态、管理属性和度量中的一个或多个,诸如在连接路径计算域的路由器的链路的各种LSP优先级下可用的带宽。在一些实例中,拓扑指示模块250执行BGP-TE,以接收用于自治系统间的和其他网络外链路的广告的TE信息。
流量工程数据库(TED)242将拓扑指示模块250接收的有关网络的拓扑信息存储到计算机可读存储介质(未示出)中,该网络构成用于控制器40的路径计算域。TED 242可以包括一个或多个链路状态数据库(LSDB),其中链路和节点数据在路由协议广告中接收,从拓扑服务器接收,和/或由链路层实体(诸如覆盖控制器)发现,然后接着,向拓扑指示模块250提供。在一些实例中,运营商可以经由客户端接口在MT TED 242内配置流量工程或其他拓扑信息。
路径引擎244以TED 242的形式接受路径计算域的当前拓扑快照,并使用TED 242来计算节点之间的CoS感知流量工程路径,如所配置的节点特定策略(约束234)所指示的和/或通过经由API与外部模块动态联网的路径。路径引擎244还可以根据所配置的故障转移和容量要求(分别在可操作的配置238和路径要求236中指定),以每个CoS为基础计算关于所有主路径的迂回。
一般地,为了计算所请求的路径,路径引擎244基于TED 242和所有所指定的约束来确定在所请求的时间的持续时间内,层中是否存在满足所请求的路径的TED规范的路径。路径引擎244可以使用迪科斯彻(Djikstra)约束SPF(CSPF)246路径计算算法,以用于识别通过路径计算域的满意的路径。如果没有TE约束,则路径引擎244可以恢复到SPF。如果对于所请求的路径存在满意的计算路径,则路径引擎244向路径管理器248提供关于所计算的路径的路径描述符,以使用路径部署模块118来建立路径。由路径引擎244计算的路径可以被称为“所计算的”路径,直到路径部署218将所调度的路径编程到网络中,于是所调度的路径变成“活动的”或“所委任的”路径。所调度的或活动的路径是在所调度的时间内的临时专用带宽信道,在该时间内,该路径可操作或将变得可操作以传输流。
路径管理器248使用路径部署模块118来建立所计算的所调度的路径,在该实例中,该路径部署模块118包括转发信息库(FIB)配置模块252(其被图示为“FIB CONFIG.252(FIB配置252)”)、策略器配置模块254(其被图示为“POLICER CONFIG.254(策略配置254)”)和CoS调度器配置模块256(其被图示为“COS SCHEDULER CONFIG.256(CoS调度器配置256)”)。
FIB配置模块252将转发信息编程到路径计算域的聚合节点或接入节点的数据平面中。聚合节点或接入节点的FIB包括MPLS交换表、用于每个主LSP的迂回路径、每个接口的CoS调度器和LSP入口处的策略器。FIB配置模块252可以实施例如软件定义网络(SDN)协议,诸如OpenFlow协议或I2RS协议,以提供并引导节点将转发信息安装到它们各自的数据平面。相应地,“FIB”可以指例如一个或多个OpenFlow流表形式的转发表,每个OpenFlow流表包括指定处理匹配分组的一个或多个流表条目。FIB配置模块252可以附加地或可选地实施其他接口类型,诸如简单网络管理协议(SNMP)接口、路径计算元素协议(PCEP)接口、设备管理接口(DMI)、CLI、到路由系统的接口(I2RS)或任何其他节点配置接口。FIB配置模块接口62建立与聚合节点或接入节点的通信会话,以安装转发信息,从而接收路径设立事件信息,诸如已成功安装所接收的转发信息或无法安装所接收的转发信息(指示FIB配置失败)的确认。
根据从路径计算模块114接收的信息,FIB配置模块252可以添加、改变(即,隐式添加)或删除转发表条目。从路径计算模块114到FIB配置模块252的FIB配置消息可以指定事件类型(添加或删除);节点标识符;路径标识符;一个或多个转发表条目,每个条目包括入口端口索引、入口标签、出口端口索引和出口标签;以及指定路径标识符和CoS模式的迂回路径。
策略器配置模块254可以由路径计算模块114调用,以请求将策略器安装在用于特定LSP入口的特定聚合节点或接入节点上。如上所述,用于聚合节点或接入节点的FIB包括LSP入口处的策略器。策略器配置模块254可以接收策略器配置请求。策略器配置请求消息可以指定事件类型(添加、改变或删除);节点标识符;LSP标识符;并且,对于每个服务类别,策略器信息列表包括CoS值、最大带宽、突发和丢弃/备注。FIB配置模块252根据策略器配置请求来配置策略器。
CoS调度器配置模块256可以由路径计算模块114来调用,以请求在聚合节点或接入节点上配置CoS调度器。CoS调度器配置模块256可以接收CoS调度器配置信息。调度配置请求消息可以指定事件类型(改变);节点标识符;端口标识值(端口索引);以及指定带宽、队列深度和调度规程的配置信息。
图5是图示了根据本公开中描述的技术的各个方面的示例系统的概念图。图5的系统300和各种系统组件表示示例系统,并提供用于网络状态更新的发布者-订阅者模式,其中发布者微服务保持关于订阅者微服务的最新网络状态信息。
图5的示例系统遵循用于上述发布者-订阅者模式的处理流程,并且一般地,该处理流程包含示例订阅者微服务,该订阅者微服务期望来自网络状态信息的某些数据集的最新信息,并且为了有利于示例订阅者微服务,发布者微服务使用期望数据集的一个或多个属性来建立订阅,使得对期望数据集的更新或改变(例如,事件)使(例如,触发)事件通知被传送至示例订阅者微服务。事件通知可以识别由更新或改变导致的期望数据集中的新信息和/或修改/删除信息,并且基于事件通知,示例订阅者微服务可以从本地数据存储中检索新信息(例如,图2的网络状态信息66)。事件通知的其他示例可以存储新信息和/或识别任何修改/删除信息。在一些示例中,发布者微服务可以将事件通知作为消息序列来传送(例如,在连续事件的输入馈送中),并且示例订阅者微服务可以实时或以其他方式(例如,批量)处理事件通知。
上文提及的订阅可以定义期望的数据集(例如,具有属性),并且包括控制事件通知的分发的其他参数。发布者-订阅者模式的示例参数包括用于访问期望数据集中的明文信息的用户凭证、用于用保护机制保护期望数据集/攻克用于保护数据集的保护机制的加密信息、用于订阅的可配置到期时间段、以及还定义期望数据集的任何其他参数。订阅还可以指定操作模式(例如,主动/被动事件通知)。另一参数可以是由示例订阅者微服务用于批处理的可配置的时间段的副本。
图5描绘了作为上述发布者-订阅者模式的示例实施方式的系统300,并且还描述了(多个)发布者微服务与(多个)订阅者微服务之间的上述流程。如图5所图示的,通知服务330表示示例发布者微服务,并且客户端消费者340A-340C表示示例订阅者微服务。网络控制器(例如,发布者模块,诸如图2的SDN控制器40的发布者模块78)适当地配置示例发布者微服务,即通知服务330,以根据针对每个示例订阅者微服务(即客户端消费者340)建立的订阅来分发事件通知。
本公开描述了关于通知服务330的多个示例实施方式,并且根据一个示例,网络控制器(例如,上文提及的网络控制器的发布者模块)将通知服务330作为REDIS服务来配置。一般地,REDIS是指包括内存数据结构存储的技术,用作分布式内存键值数据库、高速缓存存取存储器和消息代理。通过实施REDIS数据库,通知服务330可以定义用于在多个订阅者微服务之间分发对如本文所描述的全局网络状态信息的一部分的更新的订阅。通知服务330可以定义具有属性(例如,节点标识符-设备对象标识符对)的散列图(散列映射,hashmap),以用于识别全局网络状态信息的订阅部分的数据集。
在一些示例中,上文提及的发布者模块可以包括REDIS客户端数据库模块,该REDIS客户端数据库模块被配置为在与网络控制器相同的主机上或者在不同的主机上运行REDIS通知微服务。在这些示例中,REDIS通知微服务可以对其他服务/事件监听器(例如,设备服务和拓扑服务)进行编程,以向其馈送具有上述属性(例如,节点标识符-设备对象标识符对)的全局网络状态信息的任何更新。对于被配置为处理这些更新的一个或多个订阅者微服务中的每一个,REDIS通知微服务(例如,如上文提及的发布者模块所实例化的)可以实例化相应的第一线程以等待可配置的时间段,同时相应的第二线程从REDIS通知微服务接收一个或多个事件通知,并且当可配置的时间段过去时,第一线程读取一个或多个所接收的事件通知中的全局网络状态信息的一部分的至少一个更新。在一些示例中,每个订阅者微服务被配置有各自的线程对,使得第一订阅者微服务配置有第一和第二线程,并且第二订阅者微服务配置有第三和第四线程。此外,第一订阅者微服务和第二订阅者微服务可以配置有第一和第二可配置的时间段,第一和第二可配置的时间段设置为每个时间段设置的不同或相同时间量。在一些示例中,第一订阅者微服务和第二订阅者微服务可以基于一个或多个参数(例如,统计)而配置有各自的睡眠时间段,该一个或多个参数诸如是更新/事件通知被分发(或馈送)至特定订阅者微服务以用于处理的速率。一些参数指定了两个或更多个微服务之间的差异(例如,数据传输速率的差异)。
本公开的技术适用于大多数(如果不是全部的话)网络类型,包括公共的和专用的两种。其他网络类型的示例包括局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网(VPN)和类似网络。在一些示例中,网络305可以联接到一个或多个额外的专用或公共网络,例如互联网。在其他示例中,网络305可以包括互联网或另一公共网络。在一些情况下,网络305可以包括多协议标签交换(MPLS)网络。网络305由多个客户端站点组成,其中每一个客户端站点包括局域网(LAN)或广域网(WAN),该LAN或WAN包括多个订阅者设备,诸如台式计算机、膝上型计算机、工作站、PDA、无线设备、网络就绪家电、文件服务器、打印服务器或其他设备。在一些情况下,客户端站点可以被配置为支持多播业务,诸如互联网协议电视(IPTV)、桌面会议、公司广播、音乐和视频网络广播以及其他形式的多媒体内容。客户端站点中的一个或多个包括无线电接入网络(RAN),其中移动设备具有基于已知蜂窝网络架构的拓扑;在一些示例中,RAN联接到分组定义的网络,诸如移动核心网络或基于云的数据中心。
系统300的网络305是指计算机网络,其示例包括边缘路由器(例如,提供商边缘(PE)路由器),以提供网络服务并管理源设备与接收者设备之间的业务。源设备和接收者设备中的至少一些与客户端站点相关联(例如,容纳在客户端站点内或连接到客户端站点)。PE路由器的每一个经由客户边缘(CE)路由器联接到一个或多个客户端站点。在一些示例中,网络305被称为“核心”网络,并且联接到另一PE路由器的PE路由器的接口可以被称为“面向核心的”接口。在这些示例中,网络305可以表示分组定义的网络,诸如移动服务提供商网络的移动核心网络。
网络305中的每个路由器作为目的/源来接收/发送分组,或者作为在网络设备之间交换分组的中介来操作。每个分组的接收/发送包含路由器将分组沿着路径导向适当的目的。为了启用此分组接收/发送,PE路由器用关于计算机网络的信息来配置其路由和转发组件,信息诸如描述了其他路由器以及PE路由器与其他路由器之间的路径的信息。此信息的实例包括存储其他路由器和路径的标识符(例如名称)与地址(例如媒介访问控制(MAC)地址)之间的映射的表。PE路由器处理此信息,以确定例如哪些路由器是邻居/对等者(peer)(例如,BGP对等者)以及哪些路径(例如,标签交换路径(LSP))包括PE路由器,并且因此要求来自PE路由器的计算时间/资源。PE路由器运行针对多个协议的通信会话,以生成然后接着传播此信息。如本文所描述的,一些示例协议包括边界网关协议(BGP)和资源预留协议(RSVP)。
当设备(例如,诸如交换机和路由器之类的网络设备以及诸如无线用户设备之类的订阅者设备)在网络305的网络层级(例如,子网络,诸如虚拟网络、小区和/或类似的)之间移动时,拓扑服务310经由BGP-LS和/或NTAD/BMP协议接收相当数量的单独更新(例如,实时网络拓扑更新和最近设备配置文件更新)。如本文针对图2和图3所描述的,SDN控制器可以作为拓扑服务310的组件来运行拓扑模块,另一个组件(即拓扑服务器)在外部设备上运行,以从多种源中收集拓扑信息的数据集。拓扑服务310将拓扑服务器配置为识别并记录对任何所收集的数据集的更新,然后接着,向发布者微服务转发这些更新。在一个示例中,拓扑服务器向运行通知服务330的设备传送这些更新(例如,包括已更新的拓扑信息)。
在一个示例中,拓扑服务310接收流量工程(TE)信息作为示例拓扑信息。拓扑服务310可以例如执行具有TE扩展的中间系统到中间系统(IS-IS-TE)或者具有TE扩展的开放最短路径优先(OSPF-TE),以接收广告链路的TE信息。此TE信息包括链路状态、管理属性和度量中的一个或多个,诸如在连接域的路由器的链路的各种LSP优先级下可用的带宽。在一些实例中,拓扑服务310执行边界网关协议(BGP),以接收用于AS间(自治系统间)和其他网络外链路的广告的TE信息。
在一些实例中,通知服务330可以接收由拓扑服务310收集的拓扑信息的摘要,而非执行路由协议来直接接收路由协议广播。通知服务330在一个或多个数据库335中存储带有TE信息的基础网络拓扑信息,这些信息最终被复制到控制单元100的计算机可读存储介质中的存储空间,以用于路径计算。
拓扑服务310可以在对等会话中接收用于由多拓扑网络305的路由协议说话者发起或转发的基础网络层的拓扑信息。所接收的拓扑信息描述了基础网络层中的路由器的拓扑以及任何路由器对网络地址前缀的可达性。对等会话可以包括拓扑服务310与路由器之间的传输控制协议(TCP)会话。在一些实例中,拓扑服务310可以与路由反射器(未示出)建立单个对等会话,该路由反射器向拓扑服务310“反映”由路由反射器从路由器接收的拓扑信息。
对等会话也可以或者可选地包括拓扑服务310与路由器之间的内部网关协议(IGP)会话。对等会话可以表示例如OSPF或IS-IS邻居关系(或“邻接”),或者可以简单地表示当前路由信息从路由器至拓扑服务310的移动。在一些实例中,对等会话包括流量工程扩展(例如,OSPF-TE或IS-IS-TE),并且路由器向拓扑服务310提供流量工程信息。
类似于拓扑服务310的拓扑服务器,并且在同一网络中,覆盖控制器可以被配置为分发描述了连接覆盖交换机的覆盖网络链路的消息。一般地,覆盖网络链路不由关于覆盖网络的基础网络的网络交换机(例如,路由器)广告,并且因此,可以不由拓扑服务310接收的拓扑信息来描述。覆盖网络拓扑信息可以通过向通知服务330提供覆盖网络拓扑信息,来用覆盖网络拓扑链路扩充基础网络拓扑信息,该通知服务330将覆盖网络拓扑信息存储到(多个)全局网络状态信息数据库335中。通知服务330可以接收用于多个不同覆盖网络的拓扑信息,包括VPN和/或OpenFlow网络。对于不同的覆盖网络,设备服务315可以实施覆盖控制器接口的不同实例,该覆盖控制器接口的不同实例与覆盖网络的网络交换机或与拓扑服务310通信,例如,以接收各自覆盖网络的覆盖网络拓扑信息。
设备服务315是由网络控制器部署到网络设备(例如,服务器或容器)的计算服务,该网络设备被配置为经由REST从客户端站点325接收用户触发的设备配置文件更新,并且类似地,使这些更新可用于客户端订阅,然后接着,用于订阅者微服务消费。设备服务315可以用网络305的特定设备的状态信息来扩充上述拓扑信息。各个设备的用户或网络管理员可以将设备服务315配置为接收各种设备状态信息,以填充网络305中的每个设备的设备配置文件。设备状态信息的示例包括用户名、登录凭证、SNMP版本、NETFLOW禁用/启用以及与应用部署、PFM、故障管理、性能管理、配置管理和/或类似的对应的其他参数。设备服务315可以将每个设备的网络拓扑和设备配置文件存储在(多个)数据库335中的集中式数据库中。
设备服务315和/或拓扑服务310向设备配置文件适配器320提交输入数据(以某种形式);并且继而,设备配置文件适配器320使用通知服务330来发布输入数据(或其一部分),例如,通过针对网络状态信息的每个更新分发事件通知的方式。作为示例,设备配置文件适配器20可以从设备服务315和拓扑服务310接收单独的数据馈送,每个输入数据馈送传输指示网络状态信息数据集的(例如,连续的)改变的事件序列。一般地,输入数据描述了特定数据集的每个(最近的)更新,特定数据集与网络拓扑和/或设备配置文件的某方面对应。此更新可以指任何一个数据集中的新信息或已删除/修改的信息。每当对网络305有新添加、删除或其他修改时,或者如果设备用户没有被同步并发起重启/重置(这可能改变网络拓扑)时,设备服务315就可以更新上述集中式数据库(例如,散列图)并向订阅者分发适当的事件通知。本公开包括用于处理相当数量的这些通知的技术,这可以防止网络控制器被压垮(例如,由于延迟和/或错误)。
在一些示例中,通知服务330具有多种操作模式,并且一种示例模式引导通知服务330运行发布者微服务,该发布者微服务被配置为处理(例如,实时)对网络状态信息的数据集的(连续)更新流。另一种操作模式引导通知服务330对(全局)网络状态信息的更新执行批处理技术;为了图示用于这种操作模式的一种示例技术,通知服务330可以将时间间隔/时间窗口配置用于控制何时处理事件通知以进行更新。在一个示例中,通知服务330接收一个或多个更新,并且除了由上述时间间隔/时间窗口定义的时间段之外,禁止读取任何新信息或向订阅者微服务转发每个更新。通过这样做,通知服务330减少了与传播这些更新相关联的延迟,例如,由错误(诸如由处理已删除或损坏的数据集的无效或过时更新所引起的延迟)导致的延迟。
设备服务315和拓扑服务310可以分别采用gPRC和AMZQ(或类似协议),以经由设备配置文件适配器320向通知服务330递交更新。通过启用这些更新的发布,消费者340A-340C可以调节这些更新的传播,以避免泛洪,同时防止数据变得陈旧。作为示例,通知服务330可以分发数据库335的副本,同时用经由设备配置文件适配器320接收的改变通知来更新该副本。示例客户端消费者340可以是依赖性微服务,该依赖性微服务使用发布/订阅模式作为单个真实源,从通知服务330检索网络拓扑更新和设备配置文件更新。
虽然通知服务330可以被配置为比消费者340处理更多或更少的订阅者/客户端,如图5所图示的,但是消费者340A-340C中的每一个表示示例网络微服务(例如,在网络控制器中),对于该示例网络微服务,通知服务330已经配置了对任何数据集中的更新/改变的情况下(例如,响应于更新/改变)通知的订阅,数据集存储与网络拓扑和/或设备状态的一方面对应的信息。消费者340A、340B和340C在图5中分别被描绘为路径计算服务(PCS)、ML适配器(ML_Adapter)和任务调度器(Task_Scheduler)。
通知服务330向消费者340提供来自(多个)数据库335的信息,包括描述了要接收的网络的单个层或多个层处的可用资源的新信息;继而,消费者340使用该信息来计算并调度通过网络的路径。在网络305包括移动核心网络层和/或无线电接入网络层的示例中,通知服务330提供描述了这些层中的一个或多个层的(移动或无线电)资源的新拓扑信息。
在一些示例中,第一线程和/或第二线程可以用通知服务330作为接口来创建消费者信道以接收网络拓扑信息的。通知服务330可以包括路由协议守护进程,该路由协议守护进程执行路由协议,以接收/转发路由协议广告,诸如开放最短路径优先(OSPF)或中间系统到中间系统(IS-IS)链路状态广告(LSA)或BGP更新消息。在其他示例中,拓扑服务310和/或设备配置文件适配器320执行路由协议,并且通知服务330可以作为既不转发也不发起路由协议广告的被动监听器来操作。通知服务330可以用对网络拓扑信息和/或网络设备配置文件信息的更新来更新(多个)数据库335,然后接着,向消费者340发送这些更新。
通知服务330将网络拓扑数据库335保持为集中式数据库,更新通知从该数据库分发至包括消费者340在内的订阅者。当网络拓扑发生改变或设备配置文件再同步时(例如,由诸如用户320的设备用户触发),通知服务330修改网络拓扑数据库335。作为一个示例,通知服务330删除并重建设备配置文件,导致近乎连续改变的通知被分发至大量消费者客户端。在大型网络305(例如,具有多于10K客户端的网络)的情况下,网络305中的每个订阅者设备被要求处理10k通知,这可能导致性能问题和数据不一致。这些设备可以实施用于以任何速率处理更新通知的机制,诸如图6中图示的示例处理。
拓扑服务310和设备服务315二者可以是用于控制器的微服务,并且被配置为发布网络拓扑和/或设备配置文件数据的更新。在发布/订阅模型中,一个或多个(发布者)微服务可以向集中式数据库(例如,在
Figure BDA0003090627690000481
数据库中)推送单独更新,并根据散列集键空间(hash-set keyspace)“ns:1:node:id:int:profile:obj”对每个更新进行索引,该散列集键空间具有根据节点标识符-设备-对象标识符对格式来定义的键值对。图5图示了作为集中式数据库的示例的网络拓扑数据库335。消费者340可以被分类为依赖性微服务,并自动订阅有关“__keyspace@0__:ns:1:node:id:int:profile:obj”的键空间事件通知。如本文所描述的,每个消费者340可以实施监听(连续的)添加/移除/更新事件并针对每个所接收的事件通知使全局变量事件计数增加的技术。消费者340可以不处理任何事件,直到已经到达足够数量的事件和/或睡眠时间段已经过去。以这种方式,消费者340抑制事件通知,并且通过这样做,防止了在消费者340被拓扑更新淹没的情况下的泛洪。对于睡眠时间段,可以执行具有与消费者340相关联的可配置的时间窗口(例如,两秒)的定时器线程,以在由该时间窗口确定的间隔检查事件计数变量,并且如果事件计数变量超过0,则消费者340可以从集中式Redis数据库读取更新的设备数据,然后接着,将事件计数变量重置为零。
图6是图示了根据本公开中描述的技术的各个方面的示例过程的过程图。如本文所描述的网络控制器可以包括多个硬件和/或软件组件,当由处理电路和操作系统执行时,这些硬件和/或软件组件运行使用网络状态更新来支持网络功能(例如,网络服务)的微服务和服务(例如,应用服务)。如本文所描述的,另一微服务,即发布者微服务,将通知服务配置为在控制器的网络中运行,并将这些更新作为事件(例如,键空间事件)来发布,其中每个事件都是对(全局)网络状态信息的数据集的引用(400)。
如图1至图5所图示的和本文针对图1至图5所描述的,有网络拓扑信息和设备配置文件信息的多个源,并且发布者模块78将网络状态信息66作为对于网络控制器可用的全局网络状态信息的至少一些的本地存储来保持。发布者模块78运行发布者微服务来确保任何订阅者客户端可以有利地使用状态信息。在图1的服务提供商网络20中,状态信息的任何消费者可以建立对状态信息的数据集的订阅,并成为通知服务的客户端。当这些微服务经由网络控制器订阅通知服务以接收这些更新时,这些微服务在本文中可以被称为消费者、客户端、订阅者、订阅者客户端或其任意组合。
模块、应用或控制器的其他组件,诸如SDN控制器40,可以通过调用发布者模块(诸如发布者模块78)来发起示例处理。发布者模块78可以将通知服务配置为在网络中的任何位置运行。发布者模块78发送在网络状态信息66中保持的对全局网络状态信息的更新(410)。有多种机制发布者模块78可以采用以用于识别这些更新,并且本文描述了多个示例。
图1至图5图示了一些源向控制器(诸如图2的SDN控制器40)提供这些更新的示例。发布者模块78以某种形式接收对全局网络状态信息的这些更新,并且将通知服务配置为保持最新全局网络状态信息,同时监控事件通知的分发,例如,如果任何订阅者客户端期望新网络拓扑信息和/或新设备配置文件信息。如所描述的,例如,在图5中,订阅包括与所订阅的数据集对应的属性值,并且任何匹配的数据集将在事件通知本身或另一消息中被传送至订阅者客户端。
如果网络和服务提供商需要,发布者模块78可以向在SDN控制器40中运行的模块/应用馈送(例如,作为流)输入数据。发布者模块78可以生成第一线程和第二线程,以作为通知服务的接口来操作,用于请求并接收与对上述全局网络状态信息的特定更新对应的某些事件的通知。
发布者模块78将通知服务配置为针对服务提供商网络上运行微服务/服务的任何其他模块/应用的计算服务。通知服务可以在SDN控制器40本身、网络中不同于SDN控制器40的专用网络设备和/或不同网络中的远程设备上运行。在一些示例中,发布者模块78和SDN控制器40中的另一模块/应用通过执行以下操作的方式来执行事件通知的批处理,以减少传播全局网络状态信息的延迟。
发布器模块78可以为第一线程建立睡眠定时器。发布者模块78可以为睡眠定时器建立可配置的时间段,使得第一线程在可配置的时间段期间等待(即,睡眠),同时第二线程接收事件通知。当该时间段过去时,第一线程从通知服务或本地数据存储(诸如网络状态信息66)中读取新网络拓扑信息和/或新设备配置文件信息(430)。发布者模块78可以向示例订阅者客户端(例如,微服务)提供对新网络拓扑信息和/或新设备配置文件信息的访问,以用于计算网络配置和/或转发更新(例如,在输入数据馈送中)。如本文所描述的,发布者模块78可以保持一个或多个数据库,以用于存储网络状态信息(例如,在包括网络状态信息66的多个位置),然后接着,使用新网络拓扑信息和/或新设备配置文件信息来更新这些数据库中的全局网络状态信息,以指示具有新网络拓扑和/或新设备状态(例如,配置文件)的网络配置。示例订阅者可以基于新网络拓扑和/或新设备配置文件,使用一个或多个数据库来计算网络配置。示例订阅者或控制器中的另一模块可以用网络配置对网络设备进行编程(440)。
在一些示例中,其中诸如控制器40之类的SDN控制器被提供对通知服务的订阅,该通知服务用于分发指示对全局网络状态信息的更新的事件通知。在控制器40中,至少一个服务接口(例如,事件监听器)可以被配置为从通知服务中接收一个或多个事件通知。这些示例中的全局网络状态信息可以远程地保持在一个或多个数据库中,通知服务可操作以从这些数据库分发对全局网络状态信息的最新更新。控制器35可以使用事件通知来确保数据源被立即用新网络拓扑信息和/或新设备配置文件信息更新,并且还确保计算(新)网络配置以准确地反映每个新设备配置文件和/或新网络拓扑。控制器35可以生成一个或多个网络设备协议接口,该一个或多个网络设备协议接口中的每一个可以被配置为与一个或多个网络设备交换全局网络状态信息的部分。在这些示例中,控制器40可以使用一个或多个网络设备协议接口来实施新网络配置,当计算该新网络配置时,结合了全局网络状态信息的最近更新的部分。控制器35可以使用网络设备协议接口,用基于对设备配置文件信息的更新和/或对新网络拓扑信息的更新的新设备配置文件和新网络拓扑对多个网络设备进行编程。
在SDN控制器40中,一个或多个核心模块可以利用最新全局网络状态信息来启用(并且可能增强)由在控制器40中或另一网络设备中运行的应用提供的功能。如上文所提及的,核心应用使用南向协议来启用PCE服务器162、OpenFlow控制器和针对控制器40的其他功能,而其他应用使用北向接口以使得用户/用户应用程序能够与控制器40通话。这些以及可能的其他应用依靠核心模块来访问上述外部数据存储;例如,示例核心模块可以从外部数据存储中检索网络拓扑信息的数据集,然后接着,使用这些数据集来执行网络配置的成功实施,该网络配置反映了全局网络状态(例如,网络拓扑和/或设备配置文件)的最近改变。在一些示例中,此实施方式可以包含:首先,基于最新全局网络状态信息(例如,最新网络拓扑信息和/或设备配置文件信息)来计算包括设备配置文件和网络拓扑的网络配置,然后,用网络配置的设备配置文件和网络拓扑对网络设备进行编程。通过作为单个真实源来操作,发布者模块的数据源可以随着全局网络状态随时间的变化而增强每个网络配置迭代的实现。
SDN控制器40可以生成一个或多个操作系统(例如,内核空间)处理,以用于将全局网络状态信息的已更新的部分并入包括新设备配置文件和新网络拓扑的新网络配置中。在一些示例中,SDN控制器40可以实例化第一线程和第二线程,以各自执行(并行)处理,这些处理协作实现包括对设备配置文件信息的更新和/或对新网络拓扑信息的更新的事件通知的批处理。
在一个示例中,发布者模块78可以实例化,然后接着,在处理电路上执行第一线程106A和第二线程106B,第一线程106A可操作以睡眠可配置的时间段,第二线程106B可操作以在第一线程睡眠时存储来自通知服务的一个或多个传入事件通知。当第一线程106A继续等待时,第二线程106B存储每个事件通知(例如,由服务接口中的一个接收),并且(可能)读取每个所存储的对全局网络状态信息的更新。在一些示例中,第二线程106B可以被配置为存储在可配置的时间段内接收的事件通知的子集,使得当可配置的时间段过去时,核心模块计算结合了新网络拓扑和新设备配置文件的新网络配置。在其他示例中,第二线程106B可以存储每一个事件通知,例如,作为一个对全局网络状态信息的更新序列来存储。
第二线程106B可以初始化变量以作为事件计数器来操作,用于计数事件通知以及全局网络状态信息的更新的序列。第二线程106B可以监控服务接口,该服务接口作为控制器35与通知服务之间的通信链路操作,并且响应于接收到传入的事件通知,第二线程106B被配置为解锁事件计数器,使事件计数器增加,然后接着,锁定事件计数器变量。事件计数器还可操作为用于第一线程106A的触发机制,以发起由第二线程106B接收并存储的事件通知的批处理。
在一些示例中,第一线程106A可操作以等待直到在可配置的时间段之后,向一个或多个核心模块或一个或多个核心应用发送(例如,转发)一个或多个传入事件通知。在其他示例中,第一线程106A可操作以自动读取全局网络状态信息的更新序列,然后接着,执行计算反映新全局状态的网络配置的技术。在一种技术中,第一线程106A被配置为将更新并入网络拓扑信息或设备配置文件信息中,然后接着,生成(部分地)指示新网络拓扑和/或新设备配置文件的新全局网络状态信息。在一个示例中,第一线程106A可以读取全局网络状态信息的更新,并且识别存储在控制器35中的网络拓扑信息和/或设备配置文件信息的更新。基于所识别的更新,第一线程106A可以请求存储在由通知服务保持的数据库中的新网络拓扑信息和/或新设备配置文件信息的至少一部分。该请求可以针对与可配置的时间段或另一时间段对应的对网络拓扑信息和/或设备配置文件信息的更新。
在另一种技术中,第一线程106A可以通过组合对相同设备配置文件或网络拓扑的顺序更新的方式来结合(例如,聚合)更新,然后接着,生成(部分地)指示新网络拓扑和/或新设备配置文件的新全局网络状态信息。
在其他示例中,第一线程106A被配置为对更新的子集执行上述技术。第一线程106A可以通过将数据读取操作集中到更新的子集,来读取新网络拓扑信息和/或新设备配置文件信息。有多种方法来生成此子集,例如,通过移除与由于某种原因不再有效的更新(例如,陈旧更新)对应的每个事件通知。作为要移除的陈旧更新的示例,如果网络设备在线,然后接着,在第一线程106A的可配置的时间段(例如,睡眠定时器)期间离线,则该更新是陈旧的(例如,由于过时),并且其移除还减少了新网络配置实施方式中的延迟。对于第一线程106A的睡眠定时器的迭代,第二线程106B可以读取对传入事件通知中的全局网络状态信息的更新,并生成标记来标识用于计算网络配置的更新的子集。示例标记可以识别最近的更新,包括取代先前更新的更新。当睡眠定时器过去时,第一线程106A(例如,响应于来自睡眠定时器的信号)使用该标记来生成用于计算网络配置的更新的子集。
图7A是图示了根据本公开中描述的技术的各个方面的在SDN控制器中执行的示例处理500的流程图。图7B和图7C各自是图示了根据本公开中描述的技术的各个方面的分别由在SDN控制器中执行的第一线程和第二线程执行的示例子处理的流程图。
如本文所描述的SDN控制器可以包括使用网络更新来支持网络功能(例如,网络服务)的多个微服务。当这些微服务经由SDN控制器订阅了通知服务以接收这些更新时,这些微服务在本文中可以被称为消费者、客户端或订阅者。控制器内的示例订阅者可以通过调用通知服务(作为订阅服务)并请求关于某些事件的通知(诸如包括网络拓扑更新的事件通知),来发起示例进程。
订阅者可以将定时器间隔变量设置为等于设备-配置文件-更新-间隔(502)。控制器中的管理守护进程(MGD)可以例如基于经由控制器的管理接口接收的输入,将该间隔定义为特定的秒数。守护程序可以由SDN控制器中的控制单元作为运行网络管理软件的用户级进程来执行。通知服务可以从拓扑服务接收信息,该拓扑服务执行一个或多个守护进程以执行路由协议,例如,从而与对等路由设备通信;执行从管理员接收的配置命令;保持并更新一个或多个路由表;管理订阅者流处理;以及创建一个或多个转发表以安装到转发组件;等功能。订阅者微服务通过来自管理守护进程的通知来接收定时器间隔。订阅者微服务可以将事件计数变量初始化为0(504)。此时,示例处理500划分为并行任务506和508。子处理506指当拓扑和/或设备配置文件更新可用时用于读取这些更新的操作,并且子处理508指用于确定来自通知服务的一个或多个(最近的)事件通知何时/是否可用于处理的操作。即使一个或多个少数通知可用,控制器仍然可以用预定义的睡眠时间段或预定义的最小数量的通知来配置示例处理500,使得如果睡眠时间段还未结束或不满足最小值,则示例处理500可以继续等待额外的通知。可以修改预定义的最小值以适应订阅者。如果没有接收到事件通知或者示例处理500被调度终止,则示例订阅者结束用通知服务的计算服务(550)
例如,子处理506可以由与给定订阅者微服务相关联的第一线程来执行。每一个订阅者微服务340可以具有执行子处理506的对应实例的相关联的第一线程。在一些示例中,子处理506可以由图3的第一线程106A执行。如图7B针对子处理506所图示的,订阅者微服务启动作为定时器线程的第一线程(600),并且如图7C针对子处理508所图示的,订阅者微服务启动作为键空间事件监听器线程的第二线程(650)并且订阅键空间事件通知(651)。除非通知服务停止(601的“是”分支),否则第一线程继续睡眠由定时器间隔变量定义的秒数(602)。如果通知服务停止(601的停止分支),则第一线程可以终止。
例如,子处理508可以由与给定订阅者微服务相关联的第二线程来执行。每一个订阅者微服务340可以具有执行子处理508的对应实例的相关联的第二线程。在一些示例中,子处理508可以由图3的第二线程106B执行。如图7C针对子处理508所图示的,除非通知服务停止(652的“(是)”分支),否则第二线程在第一线程睡眠的同时确定控制器是否在定时器间隔睡眠期间接收到键空间事件(653)。如果接收到,则第二线程锁定事件计数变量,从而防止该变量被另一过程改变(654),增加事件计数变量(655),然后接着,开启事件计数变量(656)。如果未接收到,订阅者微服务继续确定是否停止处理通知(657)。除非通知服务已经真正停止(652的停止分支),否则第二线程恢复监听额外的事件通知,直到子处理506的睡眠时间段过去。
当第一线程唤醒时,第一线程锁定事件计数变量(603),并确定事件计数是否大于0(604)。如果订阅者微服务在睡眠时间段期间接收到一个或多个事件通知,则第一线程发起设备数据的重读取(605),将事件计数设置为0(606),然后接着,开启事件计数变量(607)。设备数据表示新网络拓扑信息和/或新设备配置文件。除非通知服务已经真正停止(608),否则订阅者微服务进入另一睡眠时间段,同时子处理508对传入事件通知进行计数。如果子处理506和子处理508二者确定通知服务已经停止,则第一线程和第二线程终止示例处理500。
已经对各种示例进行了描述。这些和其他示例都在以下权利要求的范围内。

Claims (20)

1.一种由软件定义网络SDN控制器执行的方法,所述SDN控制器管理多个设备的网络,所述方法包括:
由所述SDN控制器的处理电路来保持全局网络状态信息,其中,所述全局网络状态信息包括与所述网络中的每一个所述设备对应的设备配置文件信息或网络拓扑信息;
由所述处理电路用对所述全局网络状态信息的一部分的更新的订阅来配置通知服务,其中,所述通知服务被配置为将所述全局网络状态信息的所述一部分的所述更新排布成多个事件;以及
由所述通知服务经由多个接口将所述多个事件作为事件通知分发至所述SDN控制器的多个订阅者微服务,其中,第一线程被配置为等待可配置的时间段,同时第二线程从所述通知服务中接收一个或多个所述事件通知,并且当所述可配置的时间段过去时,所述第一线程读取所接收的所述一个或多个事件通知中的所述全局网络状态信息的所述一部分的至少一个更新。
2.根据权利要求1所述的方法,其中,订阅者微服务在与所述SDN控制器相同的主机上或不同的主机上运行。
3.根据权利要求1所述的方法,还包括由所述处理电路确定针对所述可配置的时间段设置的时间量,其中,所述确定基于与所述分发相关联的一个或多个参数。
4.根据权利要求1所述的方法,还包括由所述处理电路执行所述第一线程和所述第二线程,以向所述多个订阅者微服务中的至少第一订阅者微服务提供所述更新。
5.根据权利要求1至4中任意一项所述的方法,所述可配置的时间段包括第一可配置的时间段,所述方法还包括由所述处理电路执行第三线程和第四线程,以用于向所述多个订阅者微服务中的至少第二订阅者微服务提供所述更新,其中,所述第三线程被配置为等待第二可配置的时间段,同时所述第四线程从所述通知服务中接收所述一个或多个事件通知,并且当所述第二可配置的时间段过去时,所述第一线程读取所接收的所述一个或多个事件通知中的所述全局网络状态信息的所述一部分的所述至少一个更新,其中,所述第二可配置的时间段不同于所述第一可配置的时间段。
6.根据权利要求1至4中任意一项所述的方法,还包括由所述处理电路确定针对第二可配置的时间段设置的时间量,其中,所述确定基于与所述分发相关联的一个或多个参数。
7.根据权利要求1至4中任意一项所述的方法,其中,所述第一线程被配置为基于所述全局网络状态信息的所述更新来请求新网络拓扑信息和新设备配置文件信息。
8.根据权利要求1至4中任意一项所述的方法,其中,所述第一线程建立具有所述可配置的时间段的睡眠定时器,其中,所述第二线程被配置为当所述可配置的时间段过去时,暂停或继续监听未来的事件通知。
9.根据权利要求1至4中任意一项所述的方法,其中,由所述处理电路发送所述全局网络状态信息的所述更新还包括:由在所述处理电路上执行的发布者模块将所述全局网络状态信息的所述更新存储在所述多个网络设备的一个网络设备上操作的一个或多个数据库中。
10.根据权利要求9所述的方法,其中,响应于所述全局网络状态信息的所述更新,所述通知服务在所述一个或多个数据库内的散列集键空间中发布所述全局网络状态信息的所述更新。
11.根据权利要求10所述的方法,其中,所述通知服务将一个或多个键空间事件存储,所述键空间事件包括与作为键值对的节点标识符-设备-对象标识符对对应的新网络拓扑信息或新设备配置文件信息。
12.根据权利要求11所述的方法,其中,由所述通知服务经由所述多个接口分发所述多个事件还包括:由所述处理电路向所述通知服务建立对所述事件通知的订阅,以用于将所述事件通知发送到一个或多个模块,所述一个或多个模块操作所述网络的所述订阅者微服务,其中,所述订阅对应于所述全局网络状态信息的所述一部分中的特定节点标识符-设备-对象标识符对。
13.根据权利要求12所述的方法,其中,由所述处理电路建立所述订阅还包括:由在所述处理电路上执行的一个或多个模块合并所述事件,以确定所述一个或多个数据库中的所述新网络拓扑信息或所述新设备配置文件信息。
14.一种软件定义网络SDN控制器,管理一个或多个网络设备的网络,所述SDN控制器包括:
存储器,被配置为存储关于所述网络设备的全局网络状态信息,其中,所述全局网络状态信息包括与每一个所述网络设备对应的设备配置文件信息和网络拓扑信息;
一个或多个处理器,被配置为执行用于发布者微服务的逻辑,其中,所述逻辑可操作以:
在数据库中保持全局网络状态信息,其中,所述全局网络状态信息包括与所述网络中的每一个设备对应的设备配置文件信息或网络拓扑信息;
用对所述全局网络状态信息的一部分的更新的订阅来配置通知服务,其中,所述通知服务被配置为将所述全局网络状态信息的所述一部分的所述更新排布成多个事件;以及
经由多个接口将所述多个事件作为事件通知分发至所述SDN控制器的多个订阅者微服务,其中,第一线程被配置为等待可配置的时间段,同时第二线程从所述通知服务中接收一个或多个事件通知,并且当所述可配置的时间段过去时,所述第一线程读取所接收的所述一个或多个事件通知中的所述全局网络状态信息的所述一部分的至少一个更新;以及
一个或多个核心模块或一个或多个核心应用,可操作为所述多个订阅者微服务中的一个或多个,并且被配置为经由所述第一线程或所述第二线程接收与所述订阅对应的所述事件通知的至少一部分。
15.根据权利要求14所述的SDN控制器,其中,所述一个或多个核心模块或一个或多个核心应用还被配置为存储在可配置的时间段内接收的每个事件通知,并且当所述可配置的时间段过去时,读取关于所述全局网络状态信息的每次更新的新设备配置文件信息或新网络拓扑信息。
16.根据权利要求14所述的SDN控制器,其中,一个或多个第二订阅者微服务中的每一个被配置为运行第三线程和第四线程,其中,所述第三线程启动被设置为第二可配置的时间段的睡眠定时器,同时所述第四线程接收一个或多个所述事件通知,其中,在所述睡眠定时器结束后,所述第三线程读取关于所述全局网络状态信息的一个或多个更新的新设备配置文件信息或新网络拓扑信息。
17.根据权利要求14所述的SDN控制器,其中,所述第二线程读取所接收的事件通知的序列,并基于所述全局网络状态信息的所述一个或多个更新来确定所述多个事件的子集,其中,所述第一线程请求与所述多个事件的所述子集对应的新设备配置文件信息或新网络拓扑信息。
18.根据权利要求14所述的SDN控制器,其中,所述网络包括移动核心网络,所述移动核心网络经由无线电接入网络通信联接到订阅者设备。
19.根据权利要求14所述的SDN控制器,其中,所述一个或多个核心模块或所述一个或多个核心应用被配置为计算包括新网络拓扑和新设备状态的网络配置,以符合与所述多个网络设备的拓扑对应的信息或与所述多个订阅者设备的配置文件对应的信息;生成新全局网络状态信息以实施所述网络配置;以及使用网络设备协议接口以用基于所述新设备配置文件的新设备配置文件信息和基于所述新网络拓扑的新网络拓扑信息来对所述多个网络设备进行编程。
20.一种计算机可读存储介质,编码有指令,所述指令用于使一个或多个可编程处理器执行如权利要求1至13中任一项所述的方法。
CN202110595164.3A 2021-03-06 2021-05-28 全局网络状态管理 Pending CN115037624A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/249,612 2021-03-06
US17/249,612 US11750464B2 (en) 2021-03-06 2021-03-06 Global network state management

Publications (1)

Publication Number Publication Date
CN115037624A true CN115037624A (zh) 2022-09-09

Family

ID=76197256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110595164.3A Pending CN115037624A (zh) 2021-03-06 2021-05-28 全局网络状态管理

Country Status (3)

Country Link
US (1) US11750464B2 (zh)
EP (1) EP4054125A1 (zh)
CN (1) CN115037624A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116074388A (zh) * 2023-03-28 2023-05-05 武汉卓鹰世纪科技有限公司 一种基于日志队列的流量转发方法及系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11784883B2 (en) * 2021-03-30 2023-10-10 At&T Intellectual Property I, L.P. Automation agent for network equipment configuration
US11792471B2 (en) * 2021-09-23 2023-10-17 Gulfstream Aerospace Corporation Aircraft wireless speaker pairing management with multiple pairing transmitters
US11792088B1 (en) * 2022-09-02 2023-10-17 Microsoft Technology Licensing, Llc Network management engine for a cloud computing system
CN115766687B (zh) * 2022-11-15 2024-05-28 四川天邑康和通信股份有限公司 一种家庭网关ipv6文件系统及其交互方法
US11855859B1 (en) * 2023-07-07 2023-12-26 Plume Design, Inc. Computerized systems and methods for application prioritization during runtime

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104780099A (zh) * 2014-01-10 2015-07-15 瞻博网络公司 利用网络服务链化的跨多个网络层的动态端到端网络路径设立
US9450817B1 (en) * 2013-03-15 2016-09-20 Juniper Networks, Inc. Software defined network controller
US20170374157A1 (en) * 2016-06-24 2017-12-28 At&T Intellectual Property I, L.P. Facilitation of session state data management
US20180069793A1 (en) * 2016-09-02 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for architecture-independent dynamic flow learning in a packet forwarder
CN111165019A (zh) * 2017-10-03 2020-05-15 华为技术有限公司 接入网中的控制器通信
CN111327452A (zh) * 2018-12-17 2020-06-23 瞻博网络公司 使用消息总线的网络设备配置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062550B1 (en) 1999-01-20 2006-06-13 Bindview Corporation Software-implemented method for identifying nodes on a network
US6973023B1 (en) 2000-12-30 2005-12-06 Cisco Technology, Inc. Method for routing information over a network employing centralized control
US20030208572A1 (en) 2001-08-31 2003-11-06 Shah Rajesh R. Mechanism for reporting topology changes to clients in a cluster
US7287063B2 (en) 2001-10-05 2007-10-23 International Business Machines Corporation Storage area network methods and apparatus using event notifications with data
US20030149756A1 (en) * 2002-02-06 2003-08-07 David Grieve Configuration management method and system
US7701858B2 (en) 2003-07-17 2010-04-20 Sensicast Systems Method and apparatus for wireless communication in a mesh network
US9537731B2 (en) 2004-07-07 2017-01-03 Sciencelogic, Inc. Management techniques for non-traditional network and information system topologies
US7827270B2 (en) 2007-10-31 2010-11-02 Cisco Technology, Inc. Mobility service clustering using network service segments
US20090172149A1 (en) 2007-12-28 2009-07-02 International Business Machines Corporation Real-time information technology environments
US9215082B2 (en) 2009-10-06 2015-12-15 Thomson Licensing Method and apparatus for hop-by-hop reliable multicast in wireless networks
US8861527B1 (en) * 2011-12-30 2014-10-14 Emc Corporation Network-assisted routing for topology-aware overlay networks
US9070268B2 (en) 2012-10-31 2015-06-30 California Institute Of Technology Wireless sensor node for autonomous monitoring and alerts in remote environments
US8711855B1 (en) 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US9461877B1 (en) 2013-09-26 2016-10-04 Juniper Networks, Inc. Aggregating network resource allocation information and network resource configuration information
US10447538B2 (en) 2013-10-30 2019-10-15 Micro Focus Llc Facilitating autonomous computing within a cloud service
US10142444B2 (en) 2014-07-01 2018-11-27 Trinity Mobile Networks, Inc. Methods, devices, and systems for implementing centralized hybrid wireless self-organizing networks
US20170250869A1 (en) 2014-09-12 2017-08-31 Andreas Richard Voellmy Managing network forwarding configurations using algorithmic policies
US10027728B2 (en) 2015-03-06 2018-07-17 Ebay Inc. Systems and methods of streaming data
US9736185B1 (en) * 2015-04-21 2017-08-15 Infoblox Inc. DNS or network metadata policy for network control
US10212257B2 (en) * 2015-05-14 2019-02-19 Deephaven Data Labs Llc Persistent query dispatch and execution architecture
US10003498B2 (en) * 2015-06-29 2018-06-19 Ca, Inc. Efficient management of network configuration-dependent network functionality
US10365915B2 (en) 2015-10-08 2019-07-30 Lightbend, Inc. Systems and methods of monitoring a network topology
DE112016004860T5 (de) 2015-10-21 2018-07-26 Arris International Ip Ltd. Verteilte Regelbereitstellung in einer Extended Bridge
US10127120B2 (en) 2015-10-22 2018-11-13 Oracle International Corporation Event batching, output sequencing, and log based state storage in continuous query processing
JP6820954B2 (ja) 2016-03-18 2021-01-27 プリューム デザイン インコーポレイテッドPlume Design, Inc. Wi−Fiネットワークのクラウドベース制御
US10237176B2 (en) * 2016-06-30 2019-03-19 Juniper Networks, Inc. Auto discovery and auto scaling of services in software-defined network environment
US10992536B2 (en) * 2016-08-15 2021-04-27 At&T Intellectual Property I, L.P. Method and apparatus to control anycast traffic using a software defined network controller
US20180152525A1 (en) * 2016-11-29 2018-05-31 International Business Machines Corporation System and method for attribute based device and service discovery
US11303723B2 (en) * 2018-12-11 2022-04-12 Level 3 Communications, Llc Systems and methods for processing requests for content of a content distribution network
WO2020255084A1 (en) * 2019-06-19 2020-12-24 Calgary Scientific Inc. Software collaboration platform for advanced workflows and digital twins
US20220237203A1 (en) * 2021-01-22 2022-07-28 Vmware, Inc. Method and system for efficiently propagating objects across a federated datacenter

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450817B1 (en) * 2013-03-15 2016-09-20 Juniper Networks, Inc. Software defined network controller
CN104780099A (zh) * 2014-01-10 2015-07-15 瞻博网络公司 利用网络服务链化的跨多个网络层的动态端到端网络路径设立
US20170374157A1 (en) * 2016-06-24 2017-12-28 At&T Intellectual Property I, L.P. Facilitation of session state data management
US20180069793A1 (en) * 2016-09-02 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Techniques for architecture-independent dynamic flow learning in a packet forwarder
CN111165019A (zh) * 2017-10-03 2020-05-15 华为技术有限公司 接入网中的控制器通信
CN111327452A (zh) * 2018-12-17 2020-06-23 瞻博网络公司 使用消息总线的网络设备配置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘泽宇;沈苏彬;: "一种基于SDN的跨域服务协商方案", 计算机技术与发展, no. 09 *
尹弼柏;刘江;张然;黄韬;刘韵洁;: "基于SDN拓扑集中更新的NDN路由策略", 北京邮电大学学报, no. 04 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116074388A (zh) * 2023-03-28 2023-05-05 武汉卓鹰世纪科技有限公司 一种基于日志队列的流量转发方法及系统
CN116074388B (zh) * 2023-03-28 2023-06-27 武汉卓鹰世纪科技有限公司 一种基于日志队列的流量转发方法及系统

Also Published As

Publication number Publication date
EP4054125A1 (en) 2022-09-07
US20220286360A1 (en) 2022-09-08
US11750464B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
US9819540B1 (en) Software defined network controller
US11750464B2 (en) Global network state management
US11316730B2 (en) Cross-stratum optimization protocol across an interface between the service stratum and the transport stratum
US9893951B1 (en) Scheduled network layer programming within a multi-topology computer network
US11528190B2 (en) Configuration data migration for distributed micro service-based network applications
US9143557B2 (en) Feedback loop for service engineered paths
US10348571B2 (en) Methods and apparatus for accessing dynamic routing information from networks coupled to a wide area network (WAN) to determine optimized end-to-end routing paths
US9705781B1 (en) Multi-topology resource scheduling within a computer network
EP2747355B1 (en) Aggregation network with centralized control
CN107566274B (zh) 用于带宽管理的方法、路由器及控制器
EP2985951B1 (en) Transaction integrity for network services configuration
US9178801B1 (en) Automated service discovery in computer networks
US9634928B2 (en) Mesh network of simple nodes with centralized control
EP3123677B1 (en) A method to provide elasticity in transport network virtualisation
US9917871B2 (en) Optimizing media bitrate with explicit network feedback on one client only
EP3297245B1 (en) Method, apparatus and system for collecting access control list
US10511544B2 (en) Path computation element protocol response and simple network management protocol confirmation for tunnel configuration
US20230291679A1 (en) Dynamic use of a packet recovery mechanism to avoid congestion along a network path
Sabri QoS in MPLS and IP Networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination