在SDN控制器中将接入网络建模为树的方法和系统转让专利

申请号 : CN201880064671.0

文献号 : CN111164936B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张静静魏威钱留荣

申请人 : 华为技术有限公司

摘要 :

本发明提供了一种用于对具有树形拓扑的接入网等网络中的节点进行建模的网络模型。使用所述模型可以生成网络描述,所述网络描述包括所述接入网中的每个节点的节点描述。节点的节点描述包括用于定义相对于建模节点的子节点的额外字段。所述节点描述还包括用于描述从建模节点到上游节点的链路的额外字段。接入节点的连接链路和中间节点被显露出来并且能够被操作。通过提供含有子字段和链路字段的节点描述,能够避免使用单独的链路数据仓库。

权利要求 :

1.一种通信设备,其特征在于,包括:非瞬时性存储器,包括指令;以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令来:

访问接入网的网络信息,所述接入网具有包括多个节点和多个链路的树形拓扑,其中所述多个节点中的每对相连节点包括单个连接链路,每个节点与至少一个设备相关联;

基于树形拓扑的节点模型,生成所述接入网的网络描述,所述网络描述包括针对第一节点的至少一个子字段和一个链路字段,所述子字段定义相对于所述第一节点的任何下游节点,所述链路字段定义所述第一节点与其连接到的上游节点之间的距离;以及存储所述网络描述以供至少一个控制器访问,以管理所述接入网中的控制面功能。

2.根据权利要求1所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:从节点数据仓库中访问所述网络描述;

基于所述网络描述,计算所述多个节点中的两个节点之间的源到目的地路径;

其中计算所述源到目的地路径包括基于所述网络描述中的一个或多个链路字段来确定所述源到目的地路径中节点之间的链路信息。

3.根据权利要求2所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:从第一控制器提供所述源到目的地路径的配置信息,其中所述配置信息被提供给所述源到目的地路径中的一组节点。

4.根据权利要求2所述的设备,其特征在于:计算所述源到目的地路径时,不访问链路数据仓库来确定所述接入网络中节点之间的链路。

5.根据权利要求1所述的设备,其特征在于:所述多个节点构成具有根节点的第一树形结构。

6.根据权利要求1所述的设备,其特征在于:所述节点模型包括用于标识所选节点连接到的上游节点的父字段。

7.根据权利要求1所述的设备,其特征在于:所述接入网是无线通信系统的接入网;以及所述接入网提供多个客户端设备与至少一个外部网络之间的连接。

8.根据权利要求1所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:接收与所述接入网和第一应用相关联的至少一个事件,所述至少一个事件标识第一中间节点和第一连接链路;以及

响应于所述至少一个事件,操作所述第一中间节点和所述第一连接链路。

9.根据权利要求1所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;以及响应于所述至少一个事件,第一控制器基于所述网络描述来配置包括所述多个节点中的两个或更多节点的数据路径。

10.根据权利要求1所述的设备,其特征在于,生成所述网络描述包括:提供引用补充模型的至少一个附加字段,其中所述补充模型是与部署在第一节点处的设备相对应的设备模型。

11.根据权利要求1所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;

基于所述事件,修改所述接入网中的至少一个设备;

针对与所述至少一个设备相关联的一个或多个节点,更新所述网络描述,其中更新所述网络描述包括更新一个或多个链路字段。

12.根据权利要求1所述的设备,其特征在于,所述一个或多个处理器执行所述指令来:将所述网络描述传输给第一设备处的第一控制器和第二设备处的第二控制器,所述第一控制器控制所述接入网中的第一部分节点,所述第二控制器控制所述接入网中的第二部分节点。

13.根据权利要求1所述的设备,其特征在于:集中控制器生成所述网络描述并将所述网络配置输出到第一控制器和第二控制器。

14.一种通信系统,其特征在于,包括:接入网,包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一个设备相关联,所述接入网提供多个客户端设备与服务提供商之间的连接;

处理器,耦合到所述接入网并用于生成所述接入网中的第一节点的节点描述,所述节点描述定义相对于所述第一节点的至少一个下游节点并指示所述第一节点与上游节点之间的距离;以及

存储设备,用于接收和存储所述第一节点的所述节点描述。

15.根据权利要求14所述的系统,其特征在于,还包括:耦合到所述存储设备的控制器;以及所述控制器与所述第一节点之间的控制链路,其中所述控制器用于接收请求并访问所述节点描述以执行包括所述第一节点在内的数据路径计算。

16.根据权利要求14或15所述的系统,其特征在于,所述处理器用于生成所述节点描述包括:

为所述第一节点提供引用补充模型的至少一个附加字段。

17.根据权利要求15所述的系统,其特征在于,所述处理器用于:接收与所述接入网相关联的至少一个事件;

基于所述请求,修改所述接入网中的至少一个设备;以及更新与所述至少一个设备相关联的一个或多个节点的节点描述,其中更新所述节点描述包括更新一个或多个链路字段。

18.一种用于网络管理的计算机实施方法,其特征在于,包括:提供接入网,所述接入网包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一个设备相关联,所述接入网提供多个客户端设备与至少一个外部网络之间的连接;

控制器访问所述接入网的网络描述,所述网络描述包括所述多个节点中的每个节点的节点描述,其中每个节点的所述节点描述包括用来定义连接到所述节点的下游节点的子字段和用来定义所述节点与上游节点之间的距离的链路字段;以及响应于客户端请求,所述控制器生成所述接入网中的叶节点与根节点之间的源—目的路径,所述控制器用于访问至少所述叶节点和所述根节点的所述节点描述以基于所述叶节点和所述根节点的所述节点描述中的链路字段来确定连接链路。

19.根据权利要求18所述的计算机实施方法,其特征在于,还包括:在所述控制器处接收与所述接入网相关联的至少一个事件;

使用所述控制器基于所述请求来修改所述接入网中的至少一个设备;以及使用所述控制器更新与所述至少一个设备相关联的一个或多个节点的所述节点描述,其中更新所述节点描述包括更新一个或多个链路字段。

20.一种非瞬时性计算机可读介质,存储用于网络管理的计算机指令,其特征在于,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:访问多个节点和连接至少部分所述节点的多个链路的网络信息,每个节点与至少一个设备相关联;

生成接入网的网络描述,所述网络描述包括所述多个节点中的每个节点的节点描述,第一节点描述包括用来定义相对于第一节点的至少一个下游节点的至少一个子字段,所述第一节点描述包括指示所述第一节点与上游节点之间的距离的链路字段;以及输出所述网络描述以供至少一个控制器来管理所述接入网的控制面功能。

21.根据权利要求20所述的非瞬时性计算机可读介质,其特征在于,生成所述网络描述包括:

生成引用补充模型的至少一个附加字段。

22.根据权利要求20或21所述的非瞬时性计算机可读介质,其特征在于,所述一个或多个处理器执行以下步骤:

第一控制器基于所述网络描述来配置包括所述多个节点中的两个或更多节点的数据路径。

说明书 :

在SDN控制器中将接入网络建模为树的方法和系统

[0001] 相关申请案交叉申请
[0002] 本发明要求2017年10月4日递交的发明名称为“在软件定义网络控制器中将接入网络建模为树”的第15/725,035号美国非临时专利申请案的在先申请优先权,该在先申请
的全部内容以引入的方式并入本文本中。

背景技术

[0003] 数据网络包括网络节点,例如路由器、交换机、网桥和通过网络传输数据的其它设备。软件定义网络(software defined network,SDN)包括的网络技术提供传统网络管理经
常没有的定制和优化功能。数据中心网络、企业网络和运营商网络等网络可以包括一个或
多个SDN。
[0004] SDN将数据转发能力(例如数据面)与先前在网络节点上执行的路由、资源和其它管理功能(例如控制面)分离,从而使现代网络变得简单。支持软件定义网络的网络节点可
以用于执行数据面功能,而控制面功能可以由SDN控制器提供。开放式应用编程接口
(application programming interface,API)服务,例如OpenFlow协议,可以管理数据面与
控制面之间的交互,而且能够实现网络内的网络节点和SDN控制器的非供应商特定组合。因
此,软件定义网络结合开放式API服务可以为现代网络带来许多好处,包括:增加网络虚拟
化、灵活控制和利用网络、根据具体需求定制网络。
[0005] 虽然SDN相比于传统网络管理选择提供了许多优势,但也会带来许多挑战。SDN控制器通常控制和管理许多分布式网络节点的控制面功能。每个节点都可以拥有一组特定的
设备,连接到网络中的其它节点,并且具有控制和管理能力。
[0006] 接入网包括固定接入网和无线接入网,通常是树形拓扑,从而将用户流量从树的根节点分发到树的叶节点。

发明内容

[0007] 根据本发明的一个方面,提供了一种设备,包括:非瞬时性存储器,包括指令;以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令来:访
问接入网的网络信息,所述接入网具有包括多个节点和多个链路的树形拓扑,其中所述多
个节点中的每对相连节点包括单个连接链路,每个节点与至少一个设备相关联;基于树形
拓扑的节点模型,生成所述接入网的网络描述,所述网络描述包括针对第一节点的至少一
个子字段和一个链路字段,所述子字段定义相对于所述第一节点的任何下游节点,所述链
路字段定义所述第一节点与其连接到的上游节点之间的距离;以及存储所述网络描述以供
至少一个控制器访问,以管理所述接入网中的控制面功能。
[0008] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:从节点数据仓库中访问所述网络描述;基于所述网络描述,计算所述多个节点中的两个节点之间的源
到目的地路径,其中计算所述源到目的地路径包括基于所述网络描述中的一个或多个链路
字段来确定所述源到目的地路径中节点之间的链路信息。
[0009] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:从第一控制器提供所述源到目的地路径的配置信息,其中所述配置信息被提供给所述源到目的地路径
中的一组节点。
[0010] 可选地,在任一前述方面中,计算所述源到目的地路径时,不访问链路数据仓库来确定所述接入网络中节点之间的链路。
[0011] 可选地,在任一前述方面中,所述多个节点构成具有根节点的第一树形结构。
[0012] 可选地,在任一前述方面中,所述节点模型包括用于标识所选节点连接到的上游节点的父字段。
[0013] 可选地,在任一前述方面中,所述接入网是无线通信系统的接入网;所述接入网提供多个客户端设备与至少一个外部网络之间的连接。
[0014] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:接收与所述接入网和第一应用相关联的至少一个事件,所述至少一个事件标识第一中间节点和第一连
接链路;以及响应于所述至少一个事件,操作所述第一中间节点和所述第一连接链路。
[0015] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;以及响应于所述至少一个事件,第一控制器基于所述网络
描述来配置包括所述多个节点中的两个或更多节点的数据路径。
[0016] 可选地,在任一前述方面中,生成所述网络描述包括:提供引用补充模型的至少一个附加字段,其中所述补充模型是与部署在第一节点处的设备相对应的设备模型。
[0017] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;基于所述事件,修改所述接入网中的至少一个设备;以及针
对与所述至少一个设备相关联的一个或多个节点,更新所述网络描述,其中更新所述网络
描述包括更新一个或多个链路字段。
[0018] 可选地,在任一前述方面中,所述一个或多个处理器执行所述指令来:将所述网络描述传输给第一设备处的第一控制器和第二设备处的第二控制器,所述第一控制器控制所
述接入网中的第一部分节点,所述第二控制器控制所述接入网中的第二部分节点。
[0019] 可选地,在任一前述方面中,集中控制器生成所述网络描述并将所述网络配置输出到所述第一控制器和所述第二控制器。
[0020] 根据本发明的一个方面,提供了一种系统,包括:接入网,包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一个设备相关联,所述接入网提供多个客户端
设备与服务提供商之间的连接;处理器,耦合到所述软件定义接入网并用于生成所述软件
定义接入网中的第一节点的节点描述,所述节点描述定义相对于所述第一节点的至少一个
下游节点并指示所述第一节点与上游节点之间的距离;以及存储设备,用于接收和存储所
述第一节点的所述节点描述。
[0021] 可选地,在任一前述方面中,所述系统还包括:耦合到所述存储设备的控制器;以及所述控制器与所述第一节点之间的控制链路,其中所述控制器用于接收请求并访问所述
节点描述以执行包括所述第一节点在内的数据路径计算。
[0022] 可选地,在任一前述方面中,所述处理器用于生成所述节点描述包括:为所述第一节点提供引用补充模型的至少一个附加字段。
[0023] 可选地,在任一前述方面中,所述处理器用于:接收与所述软件定义网络相关联的至少一个事件;基于所述请求,修改所述软件定义网络中的至少一个设备;以及更新与所述
至少一个设备相关联的一个或多个节点的节点描述,其中更新所述节点描述包括更新一个
或多个链路字段。
[0024] 根据本发明的一个方面,提供了一种用于网络管理的计算机实施方法,包括:提供接入网,所述接入网包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一
个设备相关联,所述接入网提供多个客户端设备与至少一个外部网络之间的连接;控制器
访问所述接入网的网络描述,所述网络描述包括所述多个节点中的每个节点的节点描述,
其中每个节点的所述节点描述包括用来定义连接到所述节点的下游节点的子字段和用来
定义所述节点与上游节点之间的距离的链路字段;以及响应于客户端请求,所述控制器生
成所述接入网中的叶节点与根节点之间的源到目的地路径,所述控制器用于访问至少所述
叶节点和所述根节点的所述节点描述以基于所述叶节点和所述根节点的所述节点描述中
的链路字段来确定连接链路。
[0025] 可选地,在任一前述方面中,所述方法还包括:在所述控制器处接收与所述软件定义网络相关联的至少一个事件;使用所述控制器基于所述请求来修改所述软件定义网络中
的至少一个设备;以及使用所述控制器更新与所述至少一个设备相关联的一个或多个节点
的所述节点描述,其中更新所述节点描述包括更新一个或多个链路字段。
[0026] 根据本发明的一个方面,提供了一种非瞬时性计算机可读介质,存储用于网络管理的计算机指令,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执
行以下步骤:访问多个节点和连接至少部分所述节点的多个链路的网络信息,每个节点与
至少一个设备相关联;生成软件定义接入网的网络描述,所述网络描述包括所述多个节点
中的每个节点的节点描述,第一节点描述包括用来定义相对于第一节点的至少一个下游节
点的至少一个子字段,所述第一节点描述包括指示所述第一节点与上游节点之间的距离的
链路字段;以及输出所述网络描述以供至少一个控制器来管理所述软件定义网络的控制面
功能。
[0027] 可选地,在任一前述方面中,生成所述网络描述包括:生成引用补充模型的至少一个附加字段。
[0028] 可选地,在任一前述方面中,所述一个或多个处理器执行以下步骤:第一控制器基于所述网络描述来配置包括所述多个节点中的两个或更多节点的数据路径。
[0029] 本发明内容简单地介绍了下文在具体实施方式中进一步描述的一系列概念。本发明内容并非旨在识别所要求保护的主题的关键特征或必要特征,也非旨在帮助确定所要求
保护的主题的范围。所要求保护的主题不限于解决背景技术中所述的任意或所有缺点的实
施方式。

附图说明

[0030] 图1示出了用于传送数据的网络环境。
[0031] 图2为示例性网络环境的方框图。
[0032] 图3为软件定义网络(software‑defined network,SDN)网络的示例性实施例的示意图。
[0033] 图4为示例性SDN的方框图。
[0034] 图5为包括多个控制器的示例性网络环境的方框图。
[0035] 图6为包括树形拓扑中节点的示例性网络环境的方框图。
[0036] 图7为示出了可由网络控制器创建并用来管理SDN的示例性网络描述的表格。
[0037] 图8为根据一个实施例的描述了包括子字段和链路字段的节点模型的数据结构的表格。
[0038] 图9为描述一种生成网络配置的过程的一个实施例的流程图。
[0039] 图10为描述根据一个实施例建模的示例性SDN的方框图。
[0040] 图11为描述一种修改设备的过程的一个实施例的流程图。
[0041] 图12为描述包括补充字段的节点模型的数据结构的表格。
[0042] 图13为一个或多个服务器的一个实施例的方框图。
[0043] 图14为网元的一个实施例的方框图。
[0044] 图15为计算系统的高级方框图。

具体实施方式

[0045] 所公开技术涉及计算机网络,更具体地,涉及软件定义网络(software‑defined network, SDN)等网络的网络描述。SDN通常包括多个节点以及其中一些节点之间的多个链
路。例如,软件定义接入网可以提供多个用户设备(例如客户端设备)与接入网和一个或多
个服务提供商或外部网络之间的连接。所公开技术包括将网络中的节点建模为树的网络模
型。在树形拓扑中,部分连接节点被建模为树的分支,该分支不存在将部分节点连接到树的
其它分支上节点的边缘。通过这种方式,树的分支可能不直接进行通信。这种树形结构准确
地描述了接入网等网络,比通用图形更容易描述。
[0046] 在一个实施例中,提供了一种包括节点模型的网络模型。节点模型包括用于定义相对于建模节点的子节点的字段。节点模型还包括用于描述从建模节点到上游节点的链路
的额外字段。本技术支持建模,而不是像传统技术中那样使用单独链路模型。此外,接入节
点的连接链路和中间节点显露出来并且能够被操作,而将接入网建模为简单交换机的技术
可能无法实现这一点。
[0047] 在一个实施例中,服务器访问描述SDN的网络信息。网络信息可以是物理拓扑信息,这些物理拓扑信息可以通过以下方式访问:从SDN中的节点接收拓扑信息,对SDN中的节
点轮询,或读取预先存在的拓扑信息。生成SDN的软件定义描述等网络描述,网络描述包括 
SDN中每个节点的节点描述。部分节点描述可以包括用于描述网络的物理拓扑的子字段和/ 
或链路字段。节点描述中的子字段定义了相对于节点模型中的建模节点的一个或多个下游
节点。链路字段指示建模节点与相对于建模节点的上游节点之间的距离。节点描述可以包
括用于定义相对于建模节点的一个或多个子节点的一个或多个子字段。节点模型可以包括
用于定义建模节点与上游节点之间的链路的一个或多个链路字段。
[0048] 传统上,网络拓扑已被建模为图形,这些图形使得控制器能够描述任何类型的网络。控制器通常被设计为对任何网络拓扑进行建模。当控制器被一般地设计为能够描述任
何类型的网络时,它们可能无法考虑特定网络的唯一性。例如,在建模接入网时通常没有考
虑接入网的树形拓扑。部分控制器或硬件抽象层可以将接入网建模为聚合上游用户流量并
分发下游用户流量的简单交换机。将接入网建模为具有一组输入端口和一组输出端口的交
换机可以简化建模。然而,这种模型隐藏了接入网内的中间节点以及接入网中节点之间的
连接链路。
[0049] 所公开的技术使用子字段和链路字段将接入网建模为树,这些子字段和链路字段使接入网的连接链路和中间节点显露出来。在这种方式下,各应用能够访问连接链路和中
间节点。例如,各应用能够操作连接链路,并且管理和控制接入网中的中间节点。此外,控制
器可以涵盖更广泛的接入网定义,可能一直延伸到终端用户设备,例如用户计算机或移动
设备(例如手机)。
[0050] 通过使用具有子字段和链路字段的节点模型对网络建模,可以省略单独的链路模型。在这种方式下,控制器可以通过仅更新节点存储来升级和/或修改节点处的设备。这使
得控制面中的处理速度更快。例如,两个节点之间的数据路径计算可能更快。在传统实施方
式中,从链路数据仓库中访问路径中的每个链路的链路描述,并且在节点数据仓库中搜索
每个链路的所有节点以确定数据路径。通过在节点描述中提供子字段和链路字段,仅访问
所涉及的节点的节点描述。根据节点描述确定连接链路。
[0051] 根据一个实施例,使用一个数据库仓库来存储具有树形拓扑的网络的全部拓扑信息。相比于利用多个数据库仓库进行节点描述和链路描述的建模技术,这种简化方法采用
的建模技术更有效,并且使用网络描述进行更快的网络操作。
[0052] 在一个实施例中,可以自定义节点模型以在使用树形模型的接入网中引入不同的节点属性。例如,可以引入引用特定节点类型的特定模型的附加字段。在这种方式下,模型
可以描述包括来自任何供应商的设备的任何复杂接入网。
[0053] 图1示出了用于传送数据的网络环境50。网络50包括基站58,基站58包括拥有覆盖范围106的一个或多个天线。基站(base station,BS)58可以包括通信控制器。网络环境50 
包括多个用户设备(user equipment,UE)56和一个网络52,例如回传网络。描述了两个UE,
但是可以存在更多UE。基站58中的通信控制器可以是能够通过尤其是与UE 56建立上行连
接(虚线)和/或下行连接(点线)来提供无线接入的任何组件。基站58可以包括增强型基站
(enhanced base station,eNB)、微微蜂窝基站、豪微微蜂窝基站和其它无线启用设备。UE 
56可以是能够与移动电话、智能电话、平板电脑、传感器等BS 58建立无线连接的任何组件。
网络52可以是允许在BS 58与远程终端(未示出)之间交换数据的任何组件或组件的集合。
在一些实施例中,网络52可以包括各种其它无线设备,例如中继器、毫微微蜂窝基站等。
[0054] 图2为可以实践所公开技术的各实施例的示例性网络环境10的框图。网络环境包括软件定义网络(software‑defined network,SDN)110、至少一个控制面控制器120和至少
一个集中控制器40。SDN 110、控制面控制器120和集中控制器130通过光学方式、电气方式
或无线方式相互通信。虽然示出了控制器120与SDN 110分开,但是,例如,控制器120可以在 
SDN 110中的其中一个节点112处实现。控制器120可以在其中一个节点112处的服务器或其
它计算设备中实现,或者在远离SDN 110的计算设备中实现。
[0055] SDN控制器可以基于Openflow协议来操作。SDN是一种能够在不需要物理接入到网络中设备的情况下对网络流量进行可编程集中控制的网络拓扑。SDN可以采用利用传输控
制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)的互
联网协议(Internet Protocol,IP)网络。SDN可以将数据面等数据转发能力与路由、资源和
先前在网络节点上执行的控制面等其它管理功能分离开来。将网络的控制面与数据面分离
使得网络控制器能够通过全局优化的流量工程和路由来有效地控制网络流量,而全局优化
的流量工程和路由与本地优化的最短路径优先不同。SDN还可以简化网络操作,或者甚至有
能力通过扩展的数据路由向量使网络扁平化。
[0056] 可以设计一种控制器来控制和管理整个网络,例如接入网(例如包括GPON、EPON、 G.Fast等)。SDN控制器的示例包括开放网络操作系统(open network operating system,
ONOS) 和OpenDaylight(ODL)。控制器可以利用各种协议,包括netconf、OpenFlow或私有供
应商协议。在一些示例中,在供应商设备与SDN控制器之间提供硬件抽象层。Voltha是能够
提供的硬件抽象层的一个示例。在一些示例中,Openflow和/或Netconf协议可以用于在
VOLTHA 硬件抽象层与ONOS或ODL控制器之间进行通信。
[0057] 在一个实施例中,SDN 20可以实现为提供用户设备56与网络52之间的连接的接入网。例如,SDN 20可以包括多个网络节点,这些节点提供多个可配置数据路径,从而提供用
户设备56与网络52之间的连接。
[0058] 在一个实施例中,SDN 20是一个分组交换网络,在该网络中,数据流量使用多个数据包或多个帧沿着网络路径或网络路线进行传输。基于控制器30计算的和/或节点22开发
的路径,这些数据包可以沿着通过多协议交换(multiprotocol label switching,MPLS)或
通用MPLS (Generalized MPLS,GMPLS)等信令协议建立的流量工程标记交换路径进行路由
或交换。 SDN 20包括使用光学链路、电气链路或无线链路相互耦合的多个节点22。SDN 20
还可以包括多个域,例如自治系统(autonomous system,AS)域或IGP区域,每个域都可以包
括对应于同一地址管理和/或路径计算责任的一组网元。这些域通过物理机制(例如位置、
连接等) 和/或逻辑方法机制(例如网络拓扑、协议、通信层等)来组织。不同域相互耦合,每
个域都包括一些节点22。
[0059] 节点22为支持通过SDN 20传输多个数据包的任何设备或组件。例如,节点22可以包括网桥、交换机、路由器或这些设备的各种组合。节点22可以包括用于从其它节点22接收
数据包的多个入端口、确定将帧发往哪些节点22的逻辑电路、用于向其它节点22传输帧的
多个出端口。在一些实施例中,至少一些节点22是标记交换路由器(label switched 
router, LSR),用于修改或更新在标记交换网络20中传输的多个数据包的标记。在一些实
施例中,一些节点22是标记边缘路由器(label edge router,LER)。例如,处于SDN 20边缘
的节点22 用于插入或移除在标记交换网络110与外部网络之间传输的多个数据包的标记。
沿着一条路径的第一节点22和最后一个节点22有时分别称为源节点或头端节点和目的节
点或尾端节点。虽然示出SDN 20中存在四个节点22,但是SDN 20可以包括任何数量的节点
22。另外,节点22可以位于SDN 20中的不同域内,并且可以用于跨多个域进行通信。例如,对
应于不同域的节点22可以沿着跨多个域建立起来的路径来交换多个数据包。
[0060] 控制面控制器30为用于协调SDN 20内各种活动的任何设备。控制器30可以包括网络管理系统(Network Management System,NMS)或操作支持系统(Operations Support 
System, OSS)。具体地,控制面控制器30从SDN 30接收路由请求并返回对应的路径信息。控
制面控制器30可以执行路径计算并向至少一个节点22转发计算出的路径。控制面控制器30
可以位于SDN 30外部的组件中,例如位于外部服务器中,还可以位于SDN 110内部的组件
中,例如位于节点22处的服务器中。
[0061] 集中控制器40为用于协调控制面控制器30进行的各种活动的任何设备,例如使用多个控制面控制器来管理SDN 20内的控制面功能。集中控制器40可以位于SDN 20外部的外
部服务器等组件中,还可以位于SDN 20内部的节点22处服务器等组件中。在一个实施例中,
集中控制器执行本文描述的过程以生成网络配置。网络配置可以提供给一个或多个控制面
控制器30。
[0062] 控制面控制器可以包括未示出的路径计算引擎(path computation engine,PCE)或者与 PCE进行通信。PCE是用于基于路径计算请求等为SDN 20执行所有或部分路径计算
的任何设备或组件。PCE可以从控制面控制器30、节点22或两者接收用于计算路径的信息。
PCE 处理该信息以获取路径。例如,PCE计算路径并确定包括沿着该路径的LSR的节点22。然
后,PCE可以向控制面控制器30或直接向至少一个节点22发送所有或部分计算出的路径信
息。此外,PCE通常耦合到或包括流量工程数据库(traffic‑engineering database,TED)、
P2MP 路径数据库(P2MP Path database,PDB)、P2P路径数据库、光通道性能监测(optical 
performance monitor,OPM)、物理层约束(physical layer constraint,PLC)信息数据库
或它们的组合,他们都可以用于计算路径。PCE可以位于SDN 20外部的组件中,例如位于外
部服务器中,还可以位于SDN 20内部的组件中,例如位于节点22处的组件中。PCE可以配置
为控制面控制器30的一部分。可替换地,PCE可以配置为集中控制器40的一部分。
[0063] 请求设备向PCE发送路径计算请求。该请求设备是请求由PCE来执行路径计算的任何客户端应用。该请求设备还可以是提出这种请求的任何网络组件,例如控制面控制器30,
或 LSR等任何节点22。例如,该请求设备可以在SDN 20的单个域内或跨多个域向PCE请求 
P2MP路径或P2P路径。另外,该请求设备可以通过路径计算请求和/或通过链路状态公告
(link state advertisement,LSA)的广播信令等向PCE发送至少一些路径所需信息。
[0064] 图3为SDN网络100的示例性实施例的示意图。网络100包括SDN控制器130、多个网络节点122和多个末端节点124。网络节点122包括交换机、路由器、网桥和/或用于在网络中
接收和/或转发数据的任何其它设备。控制路径由虚线表示,数据路径由实线表示。系统配
置、管理信息和路由/转发表信息通过控制路径在网络控制器130与网络节点122之间交换。
[0065] 数据包从末端节点124接收并通过数据路径在网络节点122之间转发。例如,来自充当发布者的末端节点124‑1的数据由充当入边界路由器(Ingress Border Router,IBR)
的网络节点122‑2接收、通过充当发射路由器(Transit Router,TR)的网络节点122‑1进行
路由,并且通过充当出边界路由器(Egress Border Router,EBR)的网络节点122‑3传递到
充当目的节点的末端节点124‑2。边界路由器是连接到SDN域外部的至少一个节点的SDN域
的边缘上的路由器,IBR是从SDN域外部接收流量的SDN边界路由器,EBR是在SDN域外部发送
流量的SDN边界路由器。TR是在SDN域内传输流量的SDN路由器并且没有接口连接到SDN域外
部。根据通过LSP传输的业务流,单个边界路由器可以用作IBR、EBR或两者。末端节点 124为
用于传输、接收、发起和/或终止数据的任何网元,或者在替换实施例中,为IP网络、 MPLS网
络等其它网络。在一些实施例中,网络控制器130为用于控制网络节点122和末端节点124的
通用网络控制器。网络控制器130为用于执行控制路径和/或控制面功能的任何设备,例如
创建网络地图和定义路由表中的信息,其中路由表定义如何路由传入数据包。网络控制器
130还用于执行控制面的管理和控制功能,包括路由和资源管理。网络节点122和末端节点
124包括根据某个标准通过网络100接收和传输数据的设备。网络节点122和末端节点124中
的至少一些节点和网络控制器130可以符合如在开放网络基金会(Open Networking
Foundation,ONF)文档OpenFlow交换机规范第1.3.4版、ONF文档Openflow控制器交换机 
NDM同步第1.0版和ONF文档软件定义网络:网络新规范,ONF白皮书(统称为Openflow) 中定
义的某个标准。
[0066] 控制器130从网络节点接收数据并向网络节点传输消息。一些传入消息或部分传入消息被转换成标准独立格式以便由网络控制器130中的一些模块进行处理。标准独立格
式以抽象网络控制数据模型为基础,该模型提供各种标准格式的属性或特性的抽象。网络
控制器130 通过Openflow等各种应用编程接口(application programming interface,
API)协议与网络节点进行交互。控制器确定网络的全局网络拓扑。根据全局网络拓扑、状态
信息、动态业务流/ 量信息和其它网络状态信息,网络控制器确定如何分配资源和路由应
用、信息和/或流经网络的数据包。
[0067] 图4为包括SDN控制器230和多个网络节点的另一示例性SDN 200的框图。在一个示例中,SDN 200可以是接入网,其中设计控制器230来管理和控制整个接入网。在具体描述的
示例中,接入网包括千兆比特无源光网络(Gigabit Passive Optical Network,GPON)子网 
202、GPON+G.Fast(数字用户线协议标准)子网204和G.Fast网络206。GPON子网包括光线路
终端(optical line terminal,OLT)节点221‑1和两个光网络终端(optical network 
terminal,ONT)节点222‑2和222‑3。GPON+G.Fast网络包括OLT节点222‑4、两个中间OLT+
FTU‑O 节点222‑5和222‑8以及三个FTU‑R节点222‑6、222‑7和222‑9。G.Fast网络包括FTU‑O
节点222‑10和两个FTU‑R节点222‑11。
[0068] 图5为包括用于管理和控制多个网络节点322的多个SDN控制器330的另一示例性网络环境300的框图。可以在需要管理大量网络节点的实施方式中使用多个控制器,还可以
使用多个控制器来提供高可用性。在图5中,控制器330‑1包括与节点322‑1、322‑2和322‑3
的控制链路。控制器330‑2包括与节点322‑7、322‑8和322‑9的控制链路。控制器330‑3包括
与节点322‑4、322‑5和322‑6的控制链路。
[0069] 在这种方式下,将节点划分为三个节点分区,还称为节点集群,其中每个分区包括三个网络节点。同样地,可以称三个控制器构成所有网络节点对应的控制器集群。通过使用
多个控制器,在发生故障时一个控制器能够接管另一个控制器,因此使用多个控制器可以
提高可用性。节点322‑1、322‑2和322‑3构成由控制器330‑1控制的节点集群。节点322‑7、
322‑8 和322‑9构成由控制器330‑2控制的节点集群。节点322‑4、322‑5和322‑6构成由控制
器330‑3 控制的节点集群。
[0070] 在一个实施例中,节点或节点处的设备只与单个主控制器进行通信。该节点可以连接到其它控制器,但是只在给定时间点与主控制器进行通信。然而,如果该节点对应的主
控制器发生故障,则连接到该节点的另一控制器可以接管由发生故障的控制器控制的节点
的控制面功能。例如,为了响应指示控制器330‑1发生故障的事件,对节点322‑1、322‑2和
322‑3的控制可以转移到控制器330‑2。
[0071] 图6为继续如图5所示的包括接入网的示例性SDN 300的框图。图6示出了包括接入网内的中间节点之间的连接链路的物理拓扑。对节点和链路结构的研究揭示了接入网的公
共属性,即,树形拓扑拥有至少一个根节点,一个或多个下游节点的数据穿过该至少一个根
节点。
[0072] 在图6中,节点322‑1是每个其它节点的根节点。树形拓扑由根节点322‑1和下游节点构成。图6具有源自根节点322‑1的五个独立的连接路径。树的第一分支包括下游节点
322‑2 和322‑3。树的第二分支包括下游节点322‑2和322‑6。树的第三分支包括下游节点
322‑5和 322‑9。树的第四分支包括下游节点322‑4和322‑7。树的第五分支包括下游节点
322‑4和322‑8。
[0073] 在如图所示的树形拓扑中,所有节点并不像如图1所示的网状架构等许多架构中那样互连。在树形拓扑下,接入网可以将用户流量从树的根节点分发到叶节点或末端节点。
根节点可以认为是树的基础,其中连接以类似树的方式扩展到其它节点,包括中间节点并
且在树的顶部以叶节点结束。同样地,接入网可以聚合来自根节点上的叶节点的用户流量。
根节点可以将叶节点连接到服务提供商。根节点可以连接到服务提供商的服务器或连接到
外部网络。
[0074] 分支没有连接边缘,因此不直接进行通信。相反,分支通过一个或多个中间连接节点进行通信。例如,每个分支上的叶节点没有直接的连接链路。因此,叶节点与根节点之间
的通信必须经过中间节点。
[0075] 传统上,具有树形拓扑的网络或子网已被建模为整个网络描述中的一个特殊节点。例如,设计用于执行光线路终端(optical line terminal,OLT)的控制和管理功能的控
制器具有典型建模的树形拓扑,例如如同在接入网络中一样,作为交换机。已经使用了具有
入端口和出端口的2层交换机模型。根据这种观点,接入网在分发下游流量的同时聚合上游
流量。这种观点使用简化数据结构来生成接入网的描述。虽然简单,但是这种类型的模型隐
藏或不显露接入网中的中间节点或连接链路。接入网中的中间节点和连接链路无法访问
和/或操作。
[0076] 图7为示出了可用来创建网络描述以供网络控制器来管理SDN的示例性网络模型的表格。该网络模型提供了网络拓扑的模块化描述。该描述包括两个模型:链路模型
“augment /nd:networks/nd:network:”和节点模型“augment/nd:networks/nd:network/
nd:node:”。在模型的结构中,用括号括出列表键。符号“rw”是指配置数据,“ro”是指操作状
态数据,“?”表示可选节点。符号“+”表示换行符。
[0077] 通过这种模型,为网络中的每个节点以及节点之间的每个链路生成描述。例如,结合图 6,可以生成九个节点描述来描述节点322,可以生成八个链路描述来描述节点322之
间的链路。节点描述可以存储在节点数据仓库中,链路描述可以存储在链路数据仓库中。
[0078] 节点模型包括对应节点的多个字段。网络终止点字段包括标识符“tp‑id”。支持终止点字段包括标识符“network‑ref”、“node‑ref”和“tp‑ref”。
[0079] 链路模型包括描述对应链路的多个字段。链路字段包括标识符“link‑id”。源节点字段包括链路上的源节点的标识符“rw source‑node”以及标识符“rw source‑tp”。目的节
点字段包括链路上的目的节点的标识符“rw dest‑node”以及标识符“rw dest‑tp”。链路标
识符字段包括链路的标识符“link‑id”。支持链路字段包括标识链路所处网络的标识符“rw
network‑ref”以及标识参考链路的标识符“rw link‑ref”。
[0080] 根据图7所示的数据模型生成的网络描述可能存在几个缺点。节点描述可以存储在节点数据仓库中,链路描述可以存储在链路数据仓库中。
[0081] 如先前所述,数据路径计算需要访问链路描述以确定源节点与目的节点之间的路径。控制器将搜索与链路描述相关联的所有节点描述以计算路径。该重复过程可能既耗时
又低效。例如,控制器可以将节点存储信息和链路存储信息放入存储器中。这时,源到目的
地路线会变得复杂,复杂度为O(n^2)。
[0082] 图7还示出了典型的网络模型可能不会识别和建模许多网络中存在的树形结构。对于给定节点,既不标识下游节点,也不标识关于给定节点及其父节点的信息。在这种方式
下,提供了一种更复杂的模型,其可能不能准确地反映许多网络的真实拓扑。
[0083] 根据一个实施例,提供了一种网络模型,用于标识和描述接入网等网络的树形拓扑。通过将SDN建模为树,使网络中边缘节点之间的或边缘节点与外部网络之间的中间节点
显露出来。在一个实施例中,树形拓扑标识接入网内的中间节点。这可以包括使包含ONU或
FTU 的节点显露出来,例如,这些节点通常隐藏在SDN描述中。此外,在描述中显露出边缘节
点与中间节点之间的或中间节点之间的连接链路。从数据结构的角度来看,建模树形结构
可以比许多建模体系中建模为图形简单。
[0084] 图8为根据一个实施例的描述包括子字段和链路字段的网络模型的数据结构的表格。该网络模型表明其描述的是模块化接入网拓扑,但该网络模型可以用于对任何具有树
形节点结构的网络中的节点进行建模。网络模型表明其增强了网络配置,从而标识网络和
节点“nd”。节点模型包括标识节点的终止点的标识符“tp‑id”和节点的支持终止点的标识
符tp‑ref,包括底层网络和节点。
[0085] 值得注意的是,图8中的模型不包括如图7所示的单独链路模型。图8的网络模型中删除了链路模型。此外,添加了允许准确、简单地描述接入网的树形结构的字段。这样,可以
使用一个节点数据仓库来完整地描述网络。具体而言,节点模型包括附加字段“children”
和“distance”。附加字段添加在模型的“termination‑point”部分中。“children”字段标识
节点 nd的直连节点,而不是节点nd的父节点。子字段包括标识节点nd的子节点的标识符
“node‑id”。标识符“node‑ref”可以标识建模节点。链路字段“distance”表示所选节点与其
父节点之间的距离(例如km)。虽然没有示出,但是链路字段可以可选地标识父节点。通过
“children”和“distance”字段,可以在时间复杂度O(n)下确定关于整个接入网的完整拓扑
信息,其中n是树中的总节点数。
[0086] 在一个实施例中,节点模型还可以包括父字段,父字段是指所选节点的父节点id。通过父节点id,可以在复杂度O(log(n))下确定从叶节点到根节点的路线,其中n是树中的
总节点数。这与图形模型形成对比,在图形模型中,链路存储和节点存储必须放置在存储器
中,并用于通过复杂度为O(n^2)的复杂算法来计算源到目的地路线。
[0087] 通过使用单个节点数据仓库来完整地描述网络,简化了对网络配置的更新。例如,如果更新(例如,降级)网络中的设备,则涉及单次数据库操作。同样地,考虑添加一个设备
及其n–1个子设备的情况。使用图9中的网络模型,在节点数据仓库中更新n个节点,以将设
备添加到网络描述中。相比之下,在如图7所示的图形模型中,将在节点数据仓库中更新n 
个节点,并在链路数据仓库中更新n个链路。图9提供的时间复杂度是图7提供的时间复杂度
的一半。
[0088] 图9为描述一种生成网络描述的过程400的一个实施例的流程图。过程400可以包括生成一个或多个节点描述,节点描述包括表示接入网等网络的树形拓扑的子节点描述
和/或链路描述。过程400可以在环境10、50、100、200和300等网络环境中执行。然而,过程
400并不限于在这些环境中执行。过程400可以在服务器或其它计算设备中实现,也可以通
过服务器或其它计算设备来实现,以生成网络描述并配置网络。过程400可以由SDN中的控
制面控制器30、集中控制器40或SDN控制器130、230或330等控制器来执行。例如,控制器可
以是专用控制器,也可以实现为网络管理系统。在一个实施例中,过程400可以由节点322 
处的设备来执行。例如,在路由器等专用网络设备中,控制器可以实现为一个或多个电路。
可替代地,例如,该过程可以在处理器中实现为用于对过程进行编程的处理器可读代码。
[0089] 在步骤402处,访问接入网的详细网络信息。在一个实施例中,可以访问物理拓扑信息。在一个实施例中,SDN中的服务器访问物理信息。在一个示例中,物理拓扑信息可以通
过从网络节点接收一个或多个消息来访问。在另一个示例中,该信息可以通过轮询一个或
多个网络节点或者访问包含物理拓扑信息的一个或多个数据仓库来访问。物理拓扑信息描
述了SDN 内的基础设施和连接以及与任何外部网络的连接。在步骤402处,可以针对所选节
点访问网络信息。网络信息可以包括该节点的物理拓扑信息。该信息可以包括链路信息和
关于连接到所选节点的节点的信息。
[0090] 在步骤404处,服务器基于节点模型来生成接入网中节点的节点描述。步骤404包括使用步骤402中的物理拓扑信息等详细网络信息。
[0091] 节点描述可以用作网络描述的一部分以管理SDN的控制面功能。在一个实施例中,SDN 的控制器生成网络描述。网络描述可以包括整个或一部分SDN的树形拓扑定义。树形拓
扑定义可以基于使用来自建模的软件定义配置或使用手动配置的网络信息。可以使用流量
分布模式、站点配置和分组层保护和流量工程规则来生成网络描述。
[0092] 在一个实施例中,节点描述可以包括节点的标识符、节点的终止点的标识符,和/或可以标识底层网络和节点的支持终止点的标识符。
[0093] 在步骤406处,如果所选节点不是根节点,则创建节点描述的链路字段。链路字段包括所选节点与其父节点之间的物理距离(例如km)的指示。在步骤408处,创建节点描述的
父字段。步骤408是可选的。父字段包括所选节点的父节点的标识符。应注意,由于树的根节
点没有上游节点,因此对于该根节点,省略了步骤406和408。
[0094] 在步骤410处,服务器确定是否存在与所选节点之间有连接链路的任何下游节点。如果所选节点有下游节点,则在步骤412处,创建节点描述的子字段。在一个实施例中,该子
字段包括子节点的标识符。该子字段可以包括附加信息,例如关于所选节点与子节点之间
的链路的信息。在一个实施例中,步骤412包括为与所选节点之间有直连链路的每个下游节
点创建子字段。
[0095] 过程400可以重复,直到描述完树形结构的每个节点。服务器确定SDN中是否存在其它要描述的节点。在一个实施例中,过程400开始于根节点,沿着下游方向进行,直到描述
完树形结构中的所有节点。在描述完树形结构中的每个节点之后,过程可以从接入网中的
另一个根节点开始重复。在一个实施例中,为接入网中的每个网络节点生成节点描述。在另
一个实施例中,为SDN中的部分节点生成节点描述。在描述完所有节点之后,在步骤414处,
服务器输出网络配置,包括每个节点的描述。网络描述可以通过任何合适的格式输出。例
如,网络描述可以包括表格、原理图、图表、平面文件、网络配置文件以及它们的组合。例如,
网络描述文件可以由多个控制器用来配置软件定义网络。配置网络可以包括建立和配置穿
过光网络、分组网络和/或任何其它合适网络的数据流路径。
[0096] 图10为描述具有根据节点的物理树形拓扑建模的节点的示例性软件定义接入网的框图。描述了一个或多个控制器530,用于管理一组节点522的控制面功能。在本示例中,
接入网包括多个网络节点522,这些网络节点构成三个网络树形结构。控制器与网络节点
522之间的控制链路未示出。
[0097] 控制器与网络描述550通过接口连接,网络描述550可以存储在存储器中并由控制器访问。网络描述包括SDN 500中的多个节点522的节点描述552。在适当的情况下,节点的
节点描述包括用于标识相对于建模节点的一个或多个下游节点的一个或多个子字段554以
及用于标识相对于建模节点的上游节点的链路字段556。
[0098] 第一树形结构包括根节点522‑1,该根节点包括光线路终端。第一树形结构包括两个子节点(OLT)522‑2和522‑3,这两个子节点均包括光网络终端(optical network 
terminal,ONT)。
[0099] 第二树形结构包括根节点522‑4,该根节点包括光线路终端。根节点522‑4连接到下游中间节点522‑5和522‑8。节点522‑5和522‑8各包括光线路单元(optical line unit,
OLU)和快速传输单元(FTU‑O)。中间节点522‑5连接到下游节点522‑6和522‑7。中间节点
522‑8连接到下游节点522‑9。节点522‑6、522‑7和522‑9可以各自包括一个FTU‑R。
[0100] 第三树形结构包括根节点522‑10,该根节点包括FTU‑O以及两个下游节点522‑11和 522‑12,每个下游节点包括FTU‑R。
[0101] 使用所描述的节点模型为网络创建的树形网络描述使接入网中的中间节点522‑5和522‑8 以及每个连接链路显露出来。控制器530可以直接访问、控制和管理连接链路和中
间节点中的每一个。此外,各种应可以基于所描述的包括节点字段和链路字段的网络描述
来访问链路和节点以进行操作等。在一个实施例中,节点522‑5和522‑8是与接入网的内部
通信相关联的中间节点。在一个示例中,其余节点是与载波终端或用户设备相关联的根节
点和叶节点。
[0102] 图11为描述一种对具有树形节点模型配置的SDN中的节点处的设备进行升级和/或修改的过程600的一个实施例的流程图。过程600可以在环境10、50、100、200和300等网络
环境中执行。然而,过程600并不限于在这些环境中执行。在一个实施例中,过程600可以在
服务器或其它计算设备中实现,也可以通过服务器或其它计算设备来实现,以修改设备并
更新节点模型。过程500可以由SDN中的控制面控制器30、集中控制器40或SDN控制器130、 
230或330等控制器来执行。例如,控制器可以是专用控制器,也可以实现为网络管理系统。
在一个实施例中,过程500可以由节点322处的设备来执行。例如,在路由器等专用网络设备
中,控制器可以实现为一个或多个电路。可替代地,例如,该过程可以在处理器中实现为用
于对过程进行编程的处理器可读代码。
[0103] 在步骤602处,服务器处的网络控制器接收事件。该事件可以是从SDN内部接收的网络事件或者来自外部网络或外部设备的事件,例如,来自连接到接入网的客户端或用户
设备。网络事件可以是接收到的指示接入网的变更或状态的消息或信息。网络事件可以指
示当前带宽使用情况或可用性、设备状态(例如,交换机或路由器启动或关闭)或者任何其
它与网络有关的信息。事件还可以包括客户端对路径计算的请求或网络组件对路径计算的
请求。
[0104] 在步骤604处,控制器修改SDN中的一个或多个设备。修改设备可以包括修改分配给设备或网络组件的资源,例如连接到节点处的设备的链路。控制器可以通过以下方式修
改设备:使用所连接的设备来生成数据路径,并分配该设备的资源来创建路径。可以基于网
络描述来配置包括SDN中两个或更多节点的数据路径。该数据路径可以包括响应于用户请
求而在叶节点与根节点之间生成的源到目的地路径。例如,可以生成路径以通过接入网在
客户端设备与服务提供商之间创建连接。
[0105] 在步骤606处,控制器根据设备变更来修改一个或多个节点描述。控制器可以修改节点描述来指示在变更之后节点的或节点处设备的能力。
[0106] 在步骤608处,可以更新节点描述来指示新的或改变后的下游连接。例如,可以更新节点描述来指示子节点的变更。该变更可以指示与子节点、新子节点或已移除的子节点
相关联的那部分资源的变更。在一个实施例中,步骤608可以作为步骤606的一部分执行。
[0107] 在步骤610处,可以更新节点描述来指示新的或改变后的上游连接。例如,可以更新节点描述来指示链路字段的变更。该变更可以指示与父节点相关联的那部分资源集合的
变更或指示父节点已发生变更。在一个实施例中,步骤610可以作为步骤606的一部分执行。
[0108] 在步骤612处,控制器输出包括更新后的节点描述的网络描述。在一个实施例中,输出的网络描述可以用于建立和配置穿过光网络、分组网络和/或任何其它合适网络的数
据流路径。
[0109] 图12为根据一个实施例的描述包括补充模型字段的节点模型的数据结构的表格。如上文所述,节点模型包括网络和节点标识符、终止点标识符、支持终止点标识符、子字段
和链路字段。另外,图12的节点模型还包括补充模型字段,标识进一步描述节点的补充模
型。在一个实施例中,补充模型字段标识与部署在节点处的设备的类型相对应的yang模型。
模型字段可以包括指向补充模型的指针,补充模型可以相对于建模节点存储在本地或远
端。
[0110] 图13为用于配置软件定义网络(software‑defined network,SDN)(例如接入网中的网络节点)的一个或多个服务器730的一个实施例的框图。在一个实施例中,服务器730可
以包括SDN控制器。服务器可以可替代地包括用于配置SDN的专用控制器或外部控制器。服
务器还可以包括客户端设备或另一网络设备,如上所述进行配置。在某些实施例中,可以基
于服务器730执行过程400和600。各单元可以在单个服务器上实现,也可以分布在多个服务
器上。
[0111] 服务器包括信息单元702、配置单元704、建模单元706、输出单元708和节点数据仓库 710。各种单元可以通过硬件和/或软件的任何组合来实现。
[0112] 一般而言,信息单元702可以用于访问信息,例如待建模的一个或多个SDN的物理拓扑信息。信息单元702是一个示例性信息访问构件。单元702是用于访问多个节点和连接
至少部分节点的多个链路的信息的一个示例性构件。
[0113] 配置单元704用于生成SDN的网络描述。单元704是一个示例性网络配置构件。网络配置可以包括资源分配、数据路径计算和/或穿过网络的应用、数据和数据包流的路由信
息。如先前所述,网络描述可以包括文件格式的网络描述。配置单元204还可以用于基于控
制器接收的事件来修改SDN中的设备。
[0114] 节点建模单元706用于生成SDN中的一个或多个节点的节点描述。单元706是一个示例性节点建模构件。单元706可以用于生成节点描述作为网络描述的一部分。单元706可
以生成包括一个或多个子字段的节点描述,这些子字段定义相对于被建模的节点的一个或
多个下游节点。节点描述还可以包括指示与上游父节点的距离的链路字段。可选地,节点建
模单元706可以生成标识相对于建模节点的父节点的父字段。在一个实施例中,建模单元用
于将节点描述添加到SDN的网络描述中。在一个实施例中,节点建模单元706实现为网络配
置单元 704的一部分。节点建模单元706可以响应于从SDN或从SDN外部(例如,从客户端设
备) 接收到的事件而更新节点描述。
[0115] 建模单元706还可以用于生成节点描述的补充参考字段。补充参考字段可以通过地址或其它位置标识符等来标识用于进一步描述节点的补充模型。在一个实施例中,参考
字段可以指向特定设备类型的模型。
[0116] 输出单元708用于输出网络描述以供至少一个控制器来管理SDN的控制面功能。在一个实施例中,输出单元708输出网络配置文件以存储在节点数据仓库710中。单元208还可
以将网络描述文件直接输出到一个或多个控制器。在一个示例中,第一控制器包括网络配
置单元704和输出单元708,并将网络配置输出到第二控制器。在另一个示例中,中央控制器
包括输出单元,并将网络配置输出到第一控制器和第二控制器。
[0117] 节点数据仓库710可以存储如上文所述的包括节点描述的网络描述。数据仓库710可以通过任何合适的格式来实现,以维护所描述的网络描述信息。可以使用易失性或非易
失性存储器来维护节点数据仓库710中的网络描述。数据仓库710可以在一个或多个物理设
备中实现。数据仓库710可以存储在一个或多个网络节点处,和/或由控制器存储,控制器包
括中央控制器、主控制器或从控制器。
[0118] 图14为网元800的一个实施例的框图。网元800可适用于实施所公开的实施例。网元 800可以是通过网络、系统和/或域来传送或协助传送数据的任何设备(例如调制解调
器、交换机、路由器、网桥、服务器、客户端、控制器等)。例如,网元800可以用于实现用户设
备 56,基站58,控制器30、40、130、230、330、530,服务器730以及节点22、122、124、 222、322
和522。网元800可以用于实现本文描述的其它设备。
[0119] 网元800包括端口810、收发器单元(Tx/Rx)822、处理器820和存储器840。处理器 820耦合到存储器840和收发器单元822。端口810耦合到收发器单元822,收发器单元822 可
以是发射器、接收器或其组合。收发器单元822可以经由端口810传输和接收数据。处理器
820用于处理数据。存储器840用于存储用于实施本文描述的各实施例的数据和指令。在一
个实施例中,存储器840实现服务器730和此处描述的各种单元。
[0120] 网元800还可以包括耦合到端口810和收发器单元822的电光(electrical‑to‑optical,EO) 组件和光电(optical‑to‑electrical,OE)组件,用于接收和传输电信号和光
信号。
[0121] 处理器820可以通过硬件和软件来实现。处理器820可以实现为一个或多个中央处理器 (central processing unit,CPU)芯片、逻辑单元、内核(例如,实现为多核处理器)、
现场可编程门阵列(field‑programmable gate array,FPGA)、专用集成电路(application 
specific integrated circuit,ASIC)和数字信号处理器(digital signal processor,
DSP)。处理器820与端口810、收发器单元822和存储器840通信。
[0122] 存储器840包括磁盘、磁带驱动器和固态硬盘中的一个或多个,并且可以用作溢流数据存储设备,以在程序被选择执行时存储这类程序以及存储在程序执行期间读取的指令
和数据。存储器840可以是易失性的或非易失性的,可以是只读存储器(read‑only memory,
ROM)、随机存取存储器(random‑access memory,RAM)、三重内容寻址存储器(ternary
content‑addressable memory,TCAM)和静态随机存取存储器(static random‑access 
memory, SRAM)。在一个实施例中,存储器840用于实现控制器830和/或网络描述850。在一
个实施例中,控制器830可以包括程序指令,或能够由处理器820执行的例程。类似地,在一
个实施例中,信息单元702、配置单元704、建模单元706和输出单元708包括能够由处理器
820 执行的编程程序、指令或例程。各单元可以由处理器820实现,以执行用于访问网络信
息以及基于网络信息来生成网络配置的指令。包含服务器730或此处描述的任一单元改进
了网元 800的功能。这些单元将网元800转变到另一状态。
[0123] 图15为可以用于实施各种实施例的计算系统1300的高级框图。在一个示例中,计算系统1300是网络系统1300。特定设备可以利用示出的所有组件或仅组件的一个子集,且
设备之间的集成程度可能不同。此外,设备可以包括组件的多个实例,例如多个处理单元、
处理器、存储器、发射器和接收器等。
[0124] 网络系统可以包括配备有一个或多个输入/输出设备的处理单元1301,这些输入/输出设备包括网络接口、存储接口等。处理单元1301可以包括连接到总线的中央处理器
(central processing unit,CPU)1310、存储器1320、大容量存储设备1330,以及I/O接口
1360。该总线可以为任何类型的若干总线架构中的一个或多个,包括存储器总线或者存储
器控制器、外设总线,等等。处理单元1301可以用于实现本文描述的任何计算设备,例如服
务器、控制器和/或客户端设备。
[0125] CPU 1310可以包括任何类型的电子数据处理器。通过实施例中描述的任一步骤或步骤组合,CPU 1310可以用于实施本文描述的任何方案,例如过程400和600。存储器1320可
以包括任何类型的系统存储器,例如静态随机存取存储器(static random access 
memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM
(synchronous DRAM,SDRAM)、只读存储器(read‑only memory,ROM)或其组合,等等。在一个
实施例中,存储器1320可以包括在开机时使用的ROM以及在执行程序时使用的存储程序和
数据的DRAM。在实施例中,存储器1320是非瞬时性的。大容量存储设备1330可以包括任何类
型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息可通过
总线访问。大容量存储设备1330可以包括如下项中的一种或多种:固态硬盘、硬盘驱动器、
磁盘驱动器、光盘驱动器,等等。
[0126] 处理单元1301还包括一个或多个网络接口1350,网络接口1350可以包括以太网电缆等有线链路,和/或到接入节点或者一个或多个网络1380的无线链路。网络接口1350允许
处理单元1301通过网络1380与远程单元通信。例如,网络接口1350可以通过一个或多个发
射器 /发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单
元1301 耦合到局域网或广域网以用于处理数据以及与远程设备进行通信,所述远程设备
包括其它处理单元、互联网、远程存储设施等。在一个实施例中,网络接口1350可以用于在
SDN中接收和/或传输事件、消息、数据、路由信息等。在本文中,术语“网络接口”将理解为包
括端口。
[0127] 通过实施例中描述的任一步骤或步骤组合,处理单元1301可以用于实施本文描述的任何方案,例如过程400和600。
[0128] 图15的计算系统中描述的组件是通常在计算系统中发现的适用于本文所述技术的组件,旨在代表本领域中众所周知的一大类这种计算机组件。可以使用多种不同的总线
配置、网络平台和操作系统。
[0129] 在第一示例中,存在一种设备,包括:非瞬时性存储器,包括指令;以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令来:访问接入网的
网络信息,所述接入网具有包括多个节点和多个链路的树形拓扑,其中所述多个节点中的
每对相连节点包括单个连接链路,每个节点与至少一个设备相关联;基于树形拓扑的节点
模型,生成所述接入网的网络描述,所述网络描述包括针对第一节点的至少一个子字段和
一个链路字段,所述子字段定义相对于所述第一节点的任何下游节点,所述链路字段定义
所述第一节点与其连接到的上游节点之间的距离;以及存储所述网络描述以供至少一个控
制器访问,以管理所述接入网中的控制面功能。
[0130] 根据所述第一示例,在第二示例中,所述一个或多个处理器执行所述指令来:从节点数据仓库中访问所述网络描述;基于所述网络描述,计算所述多个节点中的两个节点之
间的源到目的地路径,其中计算所述源到目的地路径包括基于所述网络描述中的一个或多
个链路字段来确定所述源到目的地路径中节点之间的链路信息。
[0131] 根据所述第一和第二示例中的任一个,在第三示例中,所述一个或多个处理器执行所述指令来:从第一控制器提供所述源到目的地路径的配置信息,其中所述配置信息被
提供给所述源到目的地路径中的一组节点。
[0132] 根据所述第一至第三示例中的任一个,在第四示例中,计算所述源到目的地路径时,不访问链路数据仓库来确定所述接入网络中节点之间的链路。
[0133] 根据所述第一至第四示例中的任一个,在第五示例中,所述多个节点构成具有根节点的第一树形结构。
[0134] 根据所述第一至第五示例中的任一个,在第六示例中,所述节点模型包括用于标识所选节点连接到的上游节点的父字段。
[0135] 根据所述第一至第六示例中的任一个,在第七示例中,所述接入网是无线通信系统的接入网;所述接入网提供多个客户端设备与至少一个外部网络之间的连接。
[0136] 根据所述第一至第七示例中的任一个,在第八示例中,所述一个或多个处理器执行所述指令来:接收与所述接入网和第一应用相关联的至少一个事件,所述至少一个事件
标识第一中间节点和第一连接链路;以及响应于所述至少一个事件,操作所述第一中间节
点和所述第一连接链路。
[0137] 根据所述第一至第八示例中的任一个,在第九示例中,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;以及响应于所述至少一个事件,
第一控制器基于所述网络描述来配置包括所述多个节点中的两个或更多节点的数据路径。
[0138] 根据所述第一至第九示例中的任一个,在第十示例中,生成所述网络描述包括提供引用补充模型的至少一个附加字段,其中所述补充模型是与部署在第一节点处的设备相
对应的设备模型。
[0139] 根据所述第一至第十示例中的任一个,在第十一示例中,所述一个或多个处理器执行所述指令来:接收与所述接入网相关联的至少一个事件;基于所述事件,修改所述接入
网中的至少一个设备;以及针对与所述至少一个设备相关联的一个或多个节点,更新所述
网络描述,其中更新所述网络描述包括更新一个或多个链路字段。
[0140] 根据所述第一至第十一示例中的任一个,在第十二示例中,所述一个或多个处理器执行所述指令来:将所述网络描述传输给第一设备处的第一控制器和第二设备处的第二
控制器,所述第一控制器控制所述接入网中的第一部分节点,所述第二控制器控制所述接
入网中的第二部分节点。
[0141] 根据所述第一至第十二示例中的任一个,在第十三示例中,集中控制器生成所述网络描述并将所述网络配置输出到所述第一控制器和所述第二控制器。
[0142] 在第十四示例中,提供了一种系统,包括:接入网,包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一个设备相关联,所述接入网提供多个客户端设备与
服务提供商之间的连接;处理器,耦合到所述软件定义接入网并用于生成所述软件定义接
入网中的第一节点的节点描述,所述节点描述定义相对于所述第一节点的至少一个下游节
点并指示所述第一节点与上游节点之间的距离;以及存储设备,用于接收和存储所述第一
节点的所述节点描述。
[0143] 根据所述第十四示例,在第十五示例中,还包括:耦合到所述存储设备的控制器;以及所述控制器与所述第一节点之间的控制链路,其中所述控制器用于接收请求并访问所
述节点描述以执行包括所述第一节点在内的数据路径计算。
[0144] 根据所述第十四和第十五示例中的任一个,在第十六示例中,所述处理器用于生成所述节点描述包括为所述第一节点提供引用补充模型的至少一个附加字段。
[0145] 根据所述第十四至第十六示例中的任一个,在第十七示例中,所述处理器用于:接收与所述软件定义网络相关联的至少一个事件;基于所述请求,修改所述软件定义网络中
的至少一个设备;以及更新与所述至少一个设备相关联的一个或多个节点的节点描述,其
中更新所述节点描述包括更新一个或多个链路字段。
[0146] 在第十八示例中,提供了一种用于网络管理的计算机实施方法,包括:提供接入网,所述接入网包括多个节点以及部分所述节点之间的多个链路,每个节点与至少一个设
备相关联,所述接入网提供多个客户端设备与至少一个外部网络之间的连接;控制器访问
所述接入网的网络描述,所述网络描述包括所述多个节点中的每个节点的节点描述,其中
每个节点的所述节点描述包括用于定义连接到所述节点的下游节点的子字段和用来定义
所述节点与上游节点之间的距离的链路字段;以及响应于客户端请求,所述控制器生成所
述接入网中的叶节点与根节点之间的源到目的地路径,所述控制器用于访问至少所述叶节
点和所述根节点的所述节点描述以基于所述叶节点和所述根节点的所述节点描述中的链
路字段来确定连接链路。
[0147] 根据所述第十八示例,在第十九示例中,还包括:在所述控制器处接收与所述软件定义网络相关联的至少一个事件;使用所述控制器基于所述请求来修改所述软件定义网络
中的至少一个设备;以及使用所述控制器更新与所述至少一个设备相关联的一个或多个节
点的所述节点描述,其中更新所述节点描述包括更新一个或多个链路字段。
[0148] 在第二十示例中,提供了一种非瞬时性计算机可读介质,存储用于网络管理的计算机指令,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行以下
步骤:访问多个节点和连接至少部分所述节点的多个链路的网络信息,每个节点与至少一
个设备相关联;生成软件定义接入网的网络描述,所述网络描述包括所述多个节点中的每
个节点的节点描述,第一节点描述包括用来定义相对于第一节点的至少一个下游节点的至
少一个子字段,所述第一节点描述包括指示所述第一节点与上游节点之间的距离的链路字
段;以及输出所述网络描述以供至少一个控制器来管理所述软件定义网络的控制面功能。
[0149] 根据所述第二十示例,在第二十一示例中,生成所述网络描述包括:生成引用补充模型的至少一个附加字段。
[0150] 根据所述第二十或第二十一示例,在第二十二示例中,所述一个或多个处理器执行以下步骤:第一控制器基于所述网络描述来配置包括所述多个节点中的两个或更多节点
的数据路径。
[0151] 本文描述的技术可以使用硬件、软件或者硬件与软件的组合来实现。所用软件存储在上述处理器可读存储设备(例如存储器1320或大容量存储器1330)中的一个或多个上,
以对处理器中的一个或多个进行编程,从而执行本文描述的功能。处理器可读存储设备可
以包括计算机可读介质,例如易失性和非易失性介质、可移动和不可移动介质。例如而非限
制,计算机可读介质可以包括计算机可读存储介质和通信介质。计算机可读存储介质是非
瞬时性的,可以在任何用于存储计算机可读指令、数据结构、程序模块或其它数据等信息的
方法或技术中实现。计算机可读存储介质的示例包括RAM、ROM、EEPROM、闪存或其它存储技
术、 CD‑ROM、数字多功能光盘(digital versatile disk,DVD)或其它光盘存储器、盒式磁
带、磁带、磁盘存储器或其它磁存储设备,或可以用来存储所需信息并且可以由计算机访问
的任何其它介质。通信媒体通常体现计算机可读指令、数据结构、程序模块或例如载波或其
它输送机构的调制后数据信号中的其它数据,且包含任何信息传送媒体。“调制数据信号”
这一术语是指这样一种信号:信号的一个或多个特性通过对该信号中的信息进行编码的方
式来设置或更改。例如而非限制,通信介质包括有线介质,例如有线网络或直接有线连接,
还包括无线介质,例如RF和其它无线介质。任何上述介质的组合也包括在计算机可读介质
的范围内。
[0152] 非瞬时性计算机可读介质包括磁性存储介质、光存储介质和固态存储介质等各种类型的计算机可读介质,但不包括信号。应理解,软件可以安装在路由器、客户端或其它网
络设备中并且随该路由器、客户端或其它网络设备一同出售。可替代地,可以获取软件并将
其加载到设备中,包括通过磁盘介质或者以网络或分配系统的任何方式获取软件,例如,包
括从软件开发者所有的服务器或从非软件开发者所有但为其所用的服务器获取软件。例
如,软件可以存储在服务器上,以便通过互联网分发。
[0153] 在替代性实施例中,可以将部分或所有软件替换为专用硬件,包括自定义集成电路、门阵列、FPGA、PLD和专用计算机。在一个实施例中,使用实施一个或多个实施例的(存储
在存储设备上的)软件来对一个或多个处理器进行编程。该一个或多个处理器可以与一个
或多个计算机可读介质/存储设备、外围设备和/或通信接口进行通信。在替代性实施例中,
可以将部分或所有软件替换为专用硬件,包括自定义集成电路、门阵列、FPGA、PLD和专用计
算机。在实施例中,“单元”这一术语可以包括电路(或集成电路)或软件组件。
[0154] 出于说明性和描述性目的,提供了前述具体实施方式。其并非旨在穷举或限制发明主题为所公开的精确形式。根据上述教示,许多修改和变更是可能的。选出所描述的各个
实施例的目的是为了更好地解释所公开技术的原理及其实际应用,因而使本领域技术人员
能够更好利用各个实施例的技术和适合预期特定用途的各种变更。本发明的范围由所附权
利要求书限定。
[0155] 本发明已结合各种实施例进行了描述。但是,通过对附图、公开内容和所附权利要求书的研究,可以理解和实现所公开的实施例的其它变体和修改,这类变体和修改应解释
为包含在所附权利要求书中。在权利要求书中,“包括”这一词语不排除其它元素或步骤,量
词“一个”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。在仅
凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施
的结合不能被有效地使用。计算机程序可以存储或分发到合适的介质上,例如,与其它硬件
一起或者作为其它硬件的一部分提供的光存储介质或者固态介质,还可以以其它形式分
发,例如,通过互联网或者其它有线或无线电信系统分发。