CN115668877A - 用于使用图神经网络生成网络配置的方法和系统 - Google Patents
用于使用图神经网络生成网络配置的方法和系统 Download PDFInfo
- Publication number
- CN115668877A CN115668877A CN202080101700.3A CN202080101700A CN115668877A CN 115668877 A CN115668877 A CN 115668877A CN 202080101700 A CN202080101700 A CN 202080101700A CN 115668877 A CN115668877 A CN 115668877A
- Authority
- CN
- China
- Prior art keywords
- matrix
- routers
- network
- gnn
- nodes
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 59
- 239000011159 matrix material Substances 0.000 claims abstract description 140
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000012549 training Methods 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 28
- 239000013598 vector Substances 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000004931 aggregating effect Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000002474 experimental method Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 235000018453 Curcuma amada Nutrition 0.000 description 1
- 241001512940 Curcuma amada Species 0.000 description 1
- 229920000459 Nitrile rubber Polymers 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种用于使用图神经网络(graph neural network,GNN)生成网络配置的方法、处理系统和处理器可读介质。所述方法可以包括:接收基于网络要求集合生成的第一矩阵M;存储具有多个节点v和多个边的GNN;基于具有多个元素的第二矩阵Xv初始化GNN,每个元素对应于所述GNN的多个节点v中的一个节点;以及生成具有基于所述第一矩阵M标记的多个节点的输出矩阵。
Description
技术领域
本发明涉及网络配置,具体涉及一种用于使用图神经网络(graph neuralnetwork,GNN)生成网络配置的方法、系统和处理器可读介质。
背景技术
数十亿用户和设备通过园区网、企业网和互联网服务提供商(Internet serviceprovider,ISP)网络连接到互联网。这些网络,称为自治系统(autonomous system,AS),使用边界网关协议(border gateway protocol,BGP)交换数据流量可以通过互联网携带的可达性信息。此外,数据中心架构的快速增长和发展为数据中心内使用BGP作为内部网关协议(interior gateway protocol,IGP)提供了新的方向。
BGP是一种标准的外部网关协议,负责在自治系统之间交换可达性信息。BGP是一种路径矢量路由协议,它将路由信息通告为目的互联网协议(Internet protocol,IP)前缀P和可访问P的自治系统列表。路由器可以定义针对传入或传出BGP通告的过滤器,以丢弃、接受或修改这些通告。BGP使用外部边界网关协议(external border gateway protocol,EBGP)会话在边界路由器之间通告可达性信息。同一AS中的路由器之间的路由交换使用内部边界网关协议(Internal border gateway protocol,IBGP)会话进行。IBGP学习到的路由不会在内部重新通告,以防止自治系统内部的转发环路。此外,BGP路由器会丢弃在AS列表中具有本地AS号的EBGP路由通告,以防止转发环路。如果同一前缀有多个通告可用,则路由器可能会首选本地优先级最低的路由。对于具有相同本地优先级的路由,BGP使用其它因素,例如路径长度、多出口区分(multi exit discriminator,MED)和IGP度量。BGP在控制流量如何通过自治系统传输时引入的这种灵活性增加了网络配置的复杂性。
网络配置可以定义为获取、组织和维护有关计算机网络所有组件的信息的过程。这种过程通常是人工完成的,从而为每个网络设备生成低级别配置。随着网络设备数量的大幅增加,网络配置变得非常具有挑战性且容易出错。此外,在各种故障条件下,人工配置没有得到充分评估,这使得当出现意外的配置错误(例如,备份路径配置错误)时,会导致严重的业务损失。与BGP相关的配置错误事件可能会导致各种公司的网络停机。此外,研究表明,人为引起的配置错误是导致大多数网络停机的主要原因。
因此,需要一种改进的系统和方法,以生成可靠的网络配置,同时高效地利用计算资源。
发明内容
本发明提供了一种用于使用图神经网络(graph neural network,GNN)生成网络配置的方法、处理系统和处理器可读介质。在一些实施例中,该方法、处理系统和处理器可读介质使用Readout神经网络(readout neural network,readout NN)来进一步细化使用GNN的输出确定的边状态矩阵。边状态矩阵可用于基于给定的网络要求集合计算奖励。当奖励小于预定义阈值时,优化器可以用于更新GNN或Readout NN中的一个或多个权重。当奖励等于或大于预定义阈值时,GNN和Readout NN的训练可以停止,并且可以将边状态矩阵转换为一组网络配置进行部署。
在本发明的一个方面中,提供了一种系统,包括处理器和存储指令的非瞬时性存储器,所述指令由处理器设备执行时,使所述处理器:接收表示具有多个路由器的网络的第一矩阵M,其中,M中的每个元素可以指示基于网络要求集合所述多个路由器中的两个路由器之间的数据流量的连接状态;在所述非瞬时性存储器中存储包括多个节点v和多个边的GNN,其中,所述多个节点v中的每个节点对应于所述多个路由器中的相应路由器,并且所述多个边中的每个边对应于所述多个路由器中的两个或两个以上路由器之间的物理链路连接;训练所述GNN以生成输出矩阵Ov,其中,Ov包括基于所述第一矩阵M标记的多个节点。
在另一方面,示例性实施例涉及一种用于使用GNN生成网络配置的方法。所述方法包括:接收表示具有多个路由器的网络的第一矩阵M,其中,M中的每个元素指示基于网络要求集合所述多个路由器中的两个路由器之间的数据流量的连接状态;存储包括多个节点v和多个边的图神经网络(graph neural network,GNN),其中,所述多个节点v中的每个节点对应于所述多个路由器中的相应路由器,并且所述多个边中的每个边对应于所述多个路由器中的两个或两个以上路由器之间的物理链路连接;训练所述GNN以生成输出矩阵Ov,其中,Ov包括基于所述第一矩阵M标记的多个节点。
所公开的实施例可以消除为网络设备和路由器人工设计网络配置的负担。GNN和Readout NN经过训练后,可以根据网络拓扑和高级网络要求自动生成全网配置。
在一些实施例中,训练GNN可以包括:基于具有多个元素的第二矩阵Xv初始化所述GNN;聚合所述GNN的所述多个节点v中每个节点的邻域信息;基于所述相应的邻域信息,计算所述GNN的所述多个节点v中每个节点的隐藏状态;基于所述GNN的所述多个节点v中每个节点的所述隐藏状态生成所述Ov。
在一些实施例中,第二矩阵Xv可以是单位矩阵,并且Xv的每一列可以与多个路由器中的路由器相关联。
在一些实施例中,Xv的每一列是表示所述多个路由器中的相应路由器的热向量。
在一些实施例中,
V是具有多个元素的边状态矩阵,其中,V的每个元素指示来自所述多个路由器中的每个路由器的数据流量的传输状态。
在一些实施例中,所述方法可以包括训练Readout神经网络(Readout NN),其中,所述Readout NN接收Ov作为输入并生成所述边状态矩阵V。
在一些实施例中,所述方法可以包括:接收所述边状态矩阵V并使用配置验证器生成奖励;使用优化器单元基于所述奖励更新所述GNN和所述Readout NN中的一个或多个权重参数。
在一些实施例中,所述配置验证器用于基于所述网络要求集合评估所述边状态矩阵V。
在一些实施例中,所述优化器单元用于更新所述GNN和所述Readout NN中的所述一个或多个权重参数,以最大化所述奖励。
在一些实施例中,当来自所述配置验证器的所述奖励具有满足预定义阈值的值时,所述方法可以在将所述边状态矩阵V转发给配置写入器之前停止训练所述GNN。
在一些实施例中,所述预定义阈值为1。
在一些实施例中,所述配置写入器可以用于将所述边状态矩阵V转换为有效的网络配置。
在一些实施例中,所述方法可以包括将所述有效的网络配置部署到所述多个路由器中的一个或多个路由器中。
根据可以与本文公开的其它实施例结合的另一方面,提供了一种非瞬时性处理器可读介质,所述非瞬时性处理器可读介质包括处理器能够执行以执行上文描述的方法步骤的指令。
附图说明
现在将参考附图通过示例描述实施例,其中,相同的附图标记可以用于指示相同的特征。
图1示出了具有网络问题的示例性网络拓扑;
图2示出了本文描述的示例性实施例提供的可用于实现GNN的示例性处理系统的框图;
图3示出了本文描述的示例性实施例提供的训练中的示例性GNN;
图4示出了本文描述的示例性实施例提供的具有中间节点的示例性网络拓扑;
图5示出了另一个示例网络拓扑,其中网络路径基于网络要求集合示出;
图6示出了基于图5所示的网络拓扑的示例性GNN图,包括示例性外部网关协议(exterior gateway protocol,EGP)图和示例性内部网关协议(interior gatewayprotocol,IGP)图;
图7是用于生成输入矩阵以训练GNN的示例性YAML文件的片段;
图8是本文描述的示例性实施例提供的、用于优化训练中的GNN的权重参数的算法示例;
图9是本文描述的示例性实施例提供的用于使用GNN生成网络配置的示例性方法的流程图;
图10示出了本文描述的示例性实施例提供的由配置写入器生成的BGP会话的示例表;
图11描述了根据本文描述的示例性实施例,由GNN使用优化器算法执行的每个训练回合中实现的奖励;
图12描述了训练阶段和训练GNN所需的训练挂钟时间与网络拓扑大小的关系图;
图13示出了前馈时间和验证时间与网络拓扑大小的关系图。
具体实施方式
本发明是参考附图进行的,附图中示出了实施例。但是,可以使用许多不同的实施例,因此描述不应解释为局限于本文中阐述的实施例。相反,提供这些实施例是为了使得本发明透彻和完整。在可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同的元件,并且在替代实施例中使用素数表示法来指示相同的元件、操作或步骤。所示系统和设备的功能元件的单独框或所示分离不一定需要这些功能的物理分离,因为这些元件之间的通信可以在没有任何这种物理分离的情况下通过消息传递、函数调用、共享内存空间等方式发生。因此,尽管为了便于解释,本文分开示出了功能,但是这些功能不需要在物理或逻辑上分离的平台中实现。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中实现这些功能,该处理器具有从机器可读介质获得的代码。最后,以单数提及的元件可以是复数,反之亦然,除非上下文明确或固有地指示。
图1示出了具有网络问题的示例性网络拓扑100。为数据中心分配IP地址空间128.2.0.0/16。在数据中心内部,如图所示,有四个不同的子网124、126。为了减少路由表空间并限制路由表不稳定性,路由器120向互联网服务提供商(Internet service provider,ISP)110通告一条聚合路由。此外,路由器120从ISP 110接收未知前缀的默认路由。只要所有子网124、126都处于激活状态,此配置就能正常工作。当前缀128.2.3.0/24 126发生故障时,ISP 110继续通过路由器120向该前缀发送流量。由于路由器120不再具有与前缀128.2.3.0/24 126的直接连接,因此它将此流量与默认路由匹配,并将流量重定向到ISP110。因此,该流量在ISP 110与路由器120之间不断往返,从而在路由器120与ISP 110之间形成转发环路。这个简单的示例说明了网络配置如何复杂,并且需要不时人工干预。但是,随着网络设备数量指数级增长,并且在运营商意图的复杂性下,网络配置变得非常具有挑战性且容易出错。
存在几种方案来避免或解决如上所述的网络问题,例如通过验证现有配置、在现有网络配置上运行预定义的验证场景、完成现有网络模板,或使用预定义的模板并填写此类模板中的空白。另一个提出的方案使用基于可满足性模理论(satisfiability modulotheory,SMT)的方法来合成网络配置,这些方法在大型网络拓扑中无法很好地扩展。
本发明中的示例性实施例描述了训练神经网络以基于网络要求生成网络配置。示例性实施例可以是可扩展的,并适合于各种不同的网络类型和协议。在一些实施例中,实现可扩展的基于神经网络的模型以使为特定网络拓扑生成网络配置设置(或简称“网络配置”)的过程自动化。所提出的方案可以针对各种网络类型和过滤器实施,例如BGP、多协议标签交换(multiprotocol label switching,MPLS)、访问控制列表(access controllist,ACL)和IGP(例如RIP和OSPF)。基于神经网络的模型,特别是下文一些实施例中描述的基于GNN的模型,可以基于BGP网络的网络要求集合生成网络配置。
现在将关于用于基于网络要求集合生成网络配置的方法、系统和非瞬时性介质来描述示例性实施例。网络要求可以基于网络的目标或限制人工生成(例如由网络管理员),也可以由人工智能设备生成。例如,列出了几个示例(下文复现)如何将意图应用于网络基础设施,可访问https://www.ciscopress.com/articles/article.asp?p= 2995353。
图2示出了可用于实现GNN的示例性处理系统200的框图。处理系统200包括用于执行计算机程序指令的处理器202和用于存储可执行指令和数据的存储器204。
处理器202可以被实施为能够执行计算机程序指令的任何处理资源,例如计算机或一个或多个计算平台上的一个或多个处理器。存储器204可以被实施为任何数据存储资源,例如一个或多个磁盘驱动器、随机存取存储器或一个或多个计算平台上的易失性或非易失性存储器。
存储器204上存储了几种类型的呈可执行指令形式的计算机程序。该存储器上有用于执行本文所述方法的一组可执行指令210。该存储器上还存储有经训练的神经网络或其它机器学习模型的一组或多组指令,以基于特定网络拓扑的给定网络要求集合生成网络配置。
存储器204上可以存储几种类型的数据280。对于矩阵表示212,数据280可以包括权重参数361、362和隐藏状态向量216。矩阵表示212可以包括用作神经网络(例如GNN)输入的矩阵,以及由神经网络更新或生成的矩阵。权重参数361、362和隐藏状态向量216都在GNN的训练过程中迭代更新,以细化GNN的输出,GNN的输出也可以是矩阵。
在一些示例性实施例中,处理系统200包括神经网络系统300,该神经网络系统300根据高级运营商意图合成网络配置。如图3所示,图神经网络(graph neural network,GNN)330和Readout神经网络(Readout neural network,Readout NN)340可以用于表示网络拓扑,对网络要求集合进行编码并生成网络配置370。配置验证器350可以用于计算奖励355,基于该奖励355,优化器单元360可以更新GNN的一个或多个神经网络权重参数361、362。处理系统200重复神经网络调优步骤,直到满足由配置验证器350验证的所有运营商要求。在验证后,处理系统200可以使用配置写入器365生成网络配置370。然后,网络配置370可以部署到网络的一个或多个路由器中。下文示出了示例性网络配置370的片段。
#output Configuration for node A
system-view
ip ip-prefix IP_PREFIX_1_100 index 10permit 192.168.16.0
24
ip ip-prefix IP_PREFIX_1_100index 20permit 10.10.2.0 24
ip ip-prefix IP_PREFIX_1_100index 30permit 10.10.3.0 24
ip ip-prefix IP_PREFIX_1_100index 40permit 10.10.4.0 24
route-policy ROUTE_POLICY_1_100permit node 10
if-match ip-prefix IP_PREFIX_1_100
quit
ip ip-prefix IP_PREFIX_1_2index 50permit 10.10.1.0 24
route-policy ROUTE_POLICY_1_2 permit node 10
if-match ip-prefix IP_PREFIX_1_2
quit
ip ip-prefix IP_PREFIX_1_3 index 50permit 10.10.1.0 24
route-policy ROUTE_POLICY_1_3permit node 10
if-match ip-prefix IP_PREFIX-1_3
quit
bgp 500
peer 192.168.17.2 as-number 100
peer 192.168.16.2 as-number 500
peer 192.168.16.6 as-number 500
peer 192.168.17.2 route-policy ROUTE_POLICY_1_100
export
peer 192.168.16.2 route-policy ROUTE_POLICY_1_2 export
peer 192.168.16.6 route-policy ROUTE_POLICY_1_3 export
ipv4-family unicast
network 192.168.16.0 24
quit
auit
现在转向GNN 330,在一些实施例中,网络要求集合310可以由矩阵M 320表示。网络要求310可以包括网络大小(例如,边界和内部路由器的数量)、网络拓扑、网络协议(例如,BGP)、访问权限、可达性、隔离规则等。在一些示例性实施例中,网络要求集合310可以首先使用一种或多种编程语言来表示,例如人类可读数据序列化语言YAML。YAML通常用于配置文件和存储或传输数据的应用程序。图7中示出了YAML文件片段的示例。YAML文件可以使用一种或多种编程语言(例如)转换为输入矩阵M 320。
所考虑的网络可能具有一个或多个自治系统,每个自治系统具有至少一个边界路由器和一个或多个内部路由器。因此,网络可以基于多个路由器来表示,所述多个路由器包括每个AS内的边界路由器和内部路由器。图7中的YAML文件显示,为每个AS上的一个或多个前缀、网络路由器接口、路由器之间的连接和运营商意图提供了单独的部分。解析这种YAML文件可以使用PyYAML包执行。此后,可以在如下所述运行神经网络系统300之前对YAML文件进行健全性检查。健全性检查可用于验证所有连接的接口都属于同一个子网,并且子网之间不存在重叠。
处理系统200可以生成网络配置的两部分:(i)静态配置和(ii)动态配置。静态配置可以直接从YAML文件中获取,例如设置主机名和接口地址。基于神经网络系统300的输出,考虑到如路由器ID、网络前缀等静态参数,生成动态配置。在一些实施例中,路由信息协议(routing information protocol,RIP)可用于配置内部路由器之间的全互联连接。
输入矩阵M 320是用于训练GNN 330的标签矩阵。在一些实施例中,输入矩阵M 320包括GNN 330中的每个节点的向量,并且GNN 330中的每个节点与来自多个路由器的相应路由器相关联。例如,矩阵M 320中的每一列Mij,i=1…m=[M1j,M2j…Mmj]T可以包括从路由器j发起到网络中的所有路由器(包括该路由器j本身)的数据包的连接状态信息。例如,正连接表示路由器A与路由器B之间存在数据包的路由通告。
此外,M 320中的每个元素Mij可以基于网络要求集合表示多个路由器中的两个路由器之间的数据流量的连接状态。具体而言,元素Mij表示路由器i与路由器j之间的数据包的路由通告状态,例如从路由器j传输到路由器i的数据包。每个元素Mij的值是[–1,1]之间的实值,其中,大于0的值(如1)表示正连接,这表示从路由器j到路由器i的数据包可以通过(例如“通告”),等于或低于0的值(如–1)表示断开,这表示在任何路由配置条件下,来自路由器j的数据包都无法到达路由器i。矩阵M 320还可以表示数据包何时从源传播到目的地,以及有多条路由要走,哪条(些)路由可以优于其它路由。例如,鉴于元素M23中的值为0.8,元素M21中的值1表示传输到路由器2的数据包通过路由器1传输优于通过路由器3传输。
GNN 330是一种对图结构操作的神经网络。在GNN中,G=(V,E)是具有节点ν∈V和边e∈E的有向图。在GNN 330中,通过对所有相邻特征向量应用聚合函数Agg(.),为每个节点ν计算本征向量hν,也称为隐藏状态向量。这种过程称为消息传递。聚合器Agg(.)的输出被传递给前馈神经网络,以计算每个节点的新隐藏状态向量,其中,前馈神经网络具有第一权重参数如下面的等式(1)所示。
在GNN中,是节点ν在时间步长t时的隐藏状态,一般表示为hν;NBR(ν)是节点ν的所有邻居的集合;是前馈神经网络的权重参数。Agg(.)是聚合函数,可以是每个边项的sum(.)或mean(.)函数。这些计算对每个层执行,初始条件如等式(2)所示,其中,xv是初始节点特征向量。在一些实施例中,Xv可以是单位矩阵。例如,Xv的每一列可以是表示多个路由器中的相应路由器的热向量。
此处,节点的邻居NBR的定义可以是预定义的。例如,邻居NBR可以定义为节点ν的近邻。
在一些实施例中,由σ表示的激活函数,例如双曲正切函数tanh(.),可用于将hν的值限制为[–1,1],原因在下文进一步解释。
GNN的输出Ov 335是包括多个元素的矩阵,每个元素包括通过将隐藏状态hv连同节点特征xv传递给函数g(.)而生成的向量,该函数可以是等式(3)中描述的又一个神经网络。例如,g(.)可以定义为在每个时间步长t时的这导致其中,bt是偏置向量,σ2是另一个激活函数,并且是神经网络g(.)的权重参数。
在一些实施例中,g(.)可以是没有另一个神经网络的简单激活函数σ2。
在一些实施例中,Ov 335可以是其中,M是最初基于网络要求集合310生成的矩阵M 320,并且V是如下进一步描述的边状态矩阵V。Ov 335的大小可以基于网络中路由器和物理链路的数量确定。例如,Ov 335的总数可以为N个节点,其中
N=(路由器总数+(物理链路总数×2))×路由器总数。
矩阵Ov 335被转发到作为读出层的可选Readout神经网络(readout neuralnetwork,Readout NN)340。Readout NN 340可以基于矩阵Ov 335生成用于BGP网络的物理路由器之间的路由通告或块的边状态矩阵V 345。矩阵V 345中的每一列Vij,i=1…m=[V1j,V2j…Vmj]T可以包括从路由器j发起到网络中的所有路由器(包括该路由器j本身)的数据包的传输状态信息。矩阵V 345的每个相应元素可以称为边状态向量,包括基于数据包的始发路由器的每个路由会话(每对路由器之间)的传输状态信息。
例如,具有四个边界路由器的网络(如图4所示)可以具有如下所示的边状态矩阵V345:
每个边状态向量都有一个表示传输状态的值。该值可以是[–1,1]之间的实值,其中,大于0的值(如1)表示数据包将通过(例如“通告”),等于或小于0的值(如–1)表示数据包将被拒绝/阻断。在一些实施例中,该值还可以表示数据包何时从源传播到目的地,以及有多条路由要走,哪条(些)路由可以优于其它路由。例如,鉴于元素中的值为0.8,元素中的值1表示从路由器4(源)传输到路由器1(目的地)的数据包通过路由器2传输优于通过路由器3传输。
边状态矩阵V 345中的边状态向量的总数可以基于网络中的路由器总数和物理链路总数确定。例如,对于具有4个路由器和4个路由器之间的3个物理链路的网络,可以有总共24个元素,通过物理链路总数×路由器总数×2确定,因此,边状态向量可以表示为Vij,i=1至6,j=1至4。
在一些实施例中,可以通过仅考虑路由通告的前一步骤而不是网络中的路由器总数来减少边状态向量的总数。即,表示从节点z接收并从节点x转发到节点y的流量通告的状态。例如,对于具有4个路由器和4个路由器之间的3个物理链路的网络,包括6个边状态向量Vij,i=1至3,j=1至2的边状态矩阵V可以表示为:
Readout NN 340可以包括类似于GNN 330的神经网络的神经网络。例如,ReadoutNN 340可以首先使用下面的等式(4)细化矩阵Ov 335:
其中,bt是另一个偏置向量,σ3是另一个激活函数,是Readout NN 340的神经网络的权重参数。可以初始化为单位矩阵,b可以初始化为[0]。然后,用于生成边状态矩阵V 345。Readout NN 340是可选的步骤,并且在一些实施例中可以省略,这取决于例如计算资源约束。
配置验证器350接收边状态矩阵V 345,并基于一组预定义规则计算奖励R 355。配置验证器350可以用于根据网络要求集合310(例如,可达性、隔离性、无传输、负载平衡和路径偏好)评估边状态矩阵V 345。
边状态矩阵V 345在每次迭代中由配置验证器350评估。例如,配置验证器350可以用于计算最大长度为16跳的每对源路由器与目的路由器之间的所有最短路径。这是基于如下假设:所有路由器都使用IP报头中的生存时间(time-to-live,TTL)字段作为数据包在其生命周期内可以传输的最大跳数。此后,配置验证器350可以使用计算出的最短路径来生成一阶逻辑约束,然后,这些一阶逻辑约束用于验证边状态矩阵V 345是否满足网络要求310,包括可达性和隔离要求。奖励R 355可以基于满足的网络要求与所有网络要求310的比率计算。当所有网络要求310都被满足时,奖励R 355具有等于或十分接近预定义阈值的值(例如1或0.99999),在这种情况下,处理器202可以将边状态矩阵V 345转发到配置写入器365以生成网络配置370。
当计算的奖励R 355小于预定义阈值时,它被发送到优化器单元360,该优化器单元360可以使用各种优化策略来更新一个或多个神经网络参数361、362,以细化GNN输出Ov335和边状态矩阵V 345。当实现Readout NN 340时,神经网络参数361可以包括来自GNN330的一个或多个权重参数和/或并且神经网络参数362可以包括来自Readout NN340的权重参数
在一些实施例中,强化学习(reinforcement learning,RL)由优化器单元360实现,以细化权重参数361、362。RL是机器学习范式之一,它训练软件代理在给定时间步长自动确定理想行为。这种从给定系统状态映射到合适操作的行为称为策略。或者,深度强化学习(deep reinforcement learning,DRL)模型可以用于优化器单元360的实现。RL和DRL最初都是为具有离散动作空间的系统设计的。最近,通过支持代理生成定义连续空间中的理想动作的平均值μ和标准偏差σ,DRL被扩展用于连续动作空间系统。鉴于GNN 330和ReadoutNN 340最终为所有路由通告会话生成边状态矩阵V 345,需要多元正态分布来使σ成为方阵。因此,DRL模型的复杂性和所需的计算能力随动作数量的平方线性增加。
在一些实施例中,可以使用进化策略(evolution strategy,ES)算法而不是使用RL或DRL来实现优化器单元360。与RL相比,ES算法可以提供更快的收敛速度和更高的并行化。ES算法在执行过程中类似于高维空间中的爬山优化问题。因此,它不需要反向传播,因此与RL和DRL相比,需要的时间和计算能力更少。此外,ES算法具有高度并行性,因为工作节点之间所需的通信仅限于几个标量,即计算的奖励和随机生成器种子。
在一些实施例中,可以实现协方差矩阵自适应进化策略(covariance matrixadaptation evolution strategy,CMA-ES)以改进作为黑盒优化问题的输出。处理器202可以使用计算出的奖励R 355来决定如何在改进输出的同时更新神经网络参数。图8示出了由处理器202基于存储在存储器204中的指令210执行的示例性ES算法800。ES算法800被设计成随机采样一组(p个)解候选,其中,p∈O...P-1在多维高斯分布中,如ES算法800中的第5行和第6行所描述。接下来,更新神经网络权重361、362(第7行),其中,θt是当前时间步长t处的权重,σ是噪声标准偏差。在第8行和第9行中,处理器202如下执行前馈过程:通过GNN330和可选的Readout NN 340基于更新的权重参数361、362生成新输出,并调用配置验证器350计算更新的奖励R 355。如果更新的奖励R 355满足预定义阈值(例如,1),则处理器202将边状态矩阵V 345发送到下一个组件,即配置写入器365(第10-12行)。否则,处理器202基于计算的梯度更新模型权重(第14行),并在下一次迭代中重复相同的过程,直到更新的奖励R 355满足预定义阈值。
ES算法在分布式环境中易于扩展。一些研究表明,ES通过将计算负载分配到数百个工作节点上,在较短的挂钟时间内实现与RL相似的结果。
在调优神经网络参数361、362之后,并且当奖励R 355达到预定义阈值(例如1)时,将边状态矩阵V 345转发到配置写入器365。配置写入器365可用于将边状态矩阵V 345转换为一组有效的供应商特定网络配置370,然后可以将该配置部署到网络中的一个或多个路由器中。
现在描述两个示例性网络400和500,以及用于网络400、500中的每一个网络的神经网络系统300的实现。现在转向图4,其示出了网络400的示例性EGP图。网络400具有四个自治系统(AS1、AS2、AS3、AS4),每个AS具有由原始节点410、420、430、440表示的相应边界路由器。EGP图包括用于训练GNN 330的中间节点452。中间节点452不表示物理路由器,而是为两个原始节点410、420、430、440之间的每个单向路径412添加的节点452。因此,一对原始节点之间的双向链路可以在中间添加两个中间节点。假设神经网络系统300仅涉及基于边界网关协议(border gateway protocol,BGP)生成外部边界路由器的网络配置,则在本特定示例性实施例中,每个AS内的内部路由器不示出也不考虑。BGP是用于域间路由的标准协议,并被选择作为用于实现神经网络系统300的示例性协议。需要说明的是,可以实现具有修改的配置验证器的神经网络系统300用于其它类型的网络,例如MPLS。
对于网络400,网络要求310可以指示:(1)AS2可以连接到AS1、AS3和AS4中的每一个(可达性);(2)AS3在任何情况下都无法到达AS4(反之亦然)。此外,有三条直接物理通信链路,每条链路分别在AS1与AS2、AS2与AS3以及AS2与AS4之间。
为了生成输入矩阵M 320以用于训练神经网络系统300,在EGP图中添加每个物理链路的两个中间节点452(每个方向一个中间节点)。基于节点410、420、430、440和网络要求310,输入矩阵M 320可以生成为:
包括四个特征向量xv的初始特征矩阵Xv可以表示为:
其中,xAS1=[1 0 0 0]T,xAS2=[0 1 0 0]T,xAS3=[0 0 1 0]T,xAS4=[0 0 0 1]T。
输入矩阵M 320和初始特征矩阵Xv都用于基于以下等式训练GNN 330:
即,GNN 330和Readout NN 340经过训练,以根据节点410、420、430、440的标签,预测所有中间节点452中的每个中间节点452的相应传输状态。所有中间节点中的每个中间节点的传输状态被采集在边状态矩阵V 345中。
一旦输出Ov 335由GNN 330生成,可以将其发送到Readout NN 340,以便由Readout神经网络层进一步细化,并且从Ov 335提取边状态矩阵V 345并将该边状态矩阵发送到配置验证器350,以确定奖励R 355。
例如,为了验证AS1与AS3之间的路径是激活的,配置验证器350计算AS1与AS3之间的所有可能路径,这些路径只能通过AS2路由。然后,配置验证器350验证且(对于正向)并且对于反向,且此外,为了验证AS3与AS4之间的上述隔离要求,配置验证器350需要验证AS3与AS4之间的所有路径都被禁用,这表示:对于正向,或并且对于反向,或需要说明的是,每个方向只需要禁用一条物理链路(即AS2与AS4之间,或AS2与AS3之间的物理链路),就可以满足上述隔离要求。
当R 355的值等于或十分接近预定义阈值(例如1或0.99999)时,边状态矩阵V 345被发送到配置写入器365,用于生成网络配置370。否则,奖励R 355被发送到优化器单元360,用于细化神经网络权重参数361、362。
优化器单元360可以使用类似于图8所示的ES算法的ES算法来细化GNN 330中的权重参数361和可选地细化Readout NN 340中的权重参数362。GNN 330和Readout NN 340由处理器202在新的迭代中使用细化的权重参数361、362执行,以生成更新的输出矩阵Ov335和更新的边状态矩阵V 345。配置验证器350基于更新的边状态矩阵V 345确定更新的奖励R355,并继续训练过程,直到更新的奖励R 355达到预定义阈值,或直到达到预定义的最大迭代次数。
一旦R 355达到预定义阈值,将最终边状态矩阵V 345发送到配置写入器365,用于生成图4所示的网络400的最终网络配置集合370。
现在参考图5,其示出了具有五个自治系统AS100、AS200、AS300、AS400和AS500的另一个示例性网络500。在这种示例中,可以实现神经网络系统300以便为ISP AS500生成网络配置,该ISP AS500具有四个内部路由器A、B、C、D 525。AS500连接到一个客户端网络AS100和三个对端网络,即AS200、AS300和AS400。网络要求集合310可以包括:
1)AS100可以到达所有对端网络AS200、AS300和AS400。
2)AS500不应用传输规则,即AS200、AS300和AS400无法通过AS500相互到达。
3)发往AS200的数据包相比路由器C偏好路由器B。
图9是使用由神经网络系统300的处理器202执行的GNN 330和可选的Readout NN340为给定网络(例如图5所示的网络500)生成网络配置370的示例性方法900的流程图。下面将结合图6描述示例性方法900。
在步骤902,处理器202接收基于上文列出的网络要求集合310生成的输入矩阵M320。输入矩阵M 320是基于图6所示的GNN图600生成的标记矩阵。如图所示,GNN图600具有基于图5中的网络500的外部网关协议(exterior gateway protocol,EGP)图620和内部网关协议(interior gateway protocol,IGP)610。GNN图600表示控制面,其中,边界路由器表示为外部节点510,ISP 520内的内部路由器表示为内部节点525,并且两个路由器之间的每个路径的连接状态(例如,通过或阻断)由边表示。每个节点v 510、525可以表示客户端网络AS100或对端网络AS200、AS300、AS400中的边界路由器或ISP AS500中的内部路由器。
在本示例中,EGP 620将AS500 520内的所有内部路由器显示为全互联方案中的节点525,以表示IBGP会话。全互联方案表示内部路由器彼此互连,如EGP 620中的双向链路527所示。基于上文列出的网络要求310,它还包括外部路由器作为具有双向链路515的节点510。EGP 620中所示的每个双向链路515、527表示至少一些从任一方向传输的数据包将被允许通过(也称为“通告”)。
在一些实施例中,GNN图600可以适配不同的网络拓扑以表示AS内的内部路由器,而不是全互联方案。无论选择用于表示内部路由器的网络拓扑类型如何,内部路由器都被再现为EGP图620中的节点525,使得可以基于EGP图620确定第一或输入矩阵M 320。
为了生成输入矩阵M 320,将每个边的两个中间节点(即,每个方向一个中间节点)添加到每个链路515、527。接下来,可以使用PyYAML或另一种编程语言中的指令来生成输入矩阵M 320,该输入矩阵包括基于网络要求集合310的节点510、525的标签。输入矩阵M320如下所示:
M 320中的每个元素Mij表示AS100、AS200、AS300、AS400和AS500中的多个路由器中的两个路由器之间的数据流量的连接状态。例如,M11表示从AS100中的路由器传输到AS100中的路由器的数据包的连接状态,M21表示从AS100中的路由器传输到AS200中的路由器的数据包的连接状态,M22表示从AS200中的路由器传输到AS200中的路由器的数据包的连接状态。具体而言,元素Mij可以表示在路由器i与路由器j之间传输(例如从路由器j到路由器i)的数据包的连接状态。每个元素Mij的值是[–1,1]之间的实值,其中,大于0的值(如1)表示正连接,这表示从路由器i到路由器j的数据包可以通过(例如“通告”),等于或低于0的值(如–1)表示断开,这表示在任何路由配置条件下,来自路由器i的数据包都无法到达路由器j。矩阵M 320还可以表示数据包何时从源传播到目的地,以及有多条路由要走,哪条(些)路由可以优于其它路由。例如,鉴于元素M32中的值为0.8,元素M12中的值1表示传输到路由器2的数据包通过路由器1传输优于通过路由器3传输。
为了更清楚起见,输入矩阵M 320的每一列可以与AS100、AS200、AS300、AS400和AS500中的相应路由器相关联,如下所示:
AS100与AS200、AS300、AS400中的每一个以及AS500内的内部路由器A、B、C、D之间的连接在输入矩阵M 320的第一列中表示。值大于零(例如1)的元素指示正连接,即数据包可以通过。值等于或小于零的元素表示断开,即阻断(也称为“隔离”)。
类似地,基于网络要求集合310,将AS200与AS100、AS300、AS400和AS500中的每一个之间的连接编码在输入矩阵M 320的第二列中。例如,AS500的无传输规则表示AS200、AS300、AS400是隔离的,因此与AS300和AS400对应的M 320的第二列中的元素设置为小于零的值:例如–1。又如,AS200可以到达AS100和AS500,因此,与AS100和AS500内的内部路由器对应的M 320的第二列中的相应元素设置为大于零的值,例如1。又如,在网络要求310里面列出的网络要求310数据路径偏好指出,发往AS200的流量相比AS500中的路由器C偏好路由器B。通过将M 320的第二列中为A、B、D(偏好)指定的元素设置为高于C的元素的值来满足这一要求。例如,这些值可以分别设置为1和0.9。
AS300、AS400和AS500可以重复相同的过程,以生成输入矩阵M 320的其余部分。由于总共有五个自治系统或网络在考虑中,因此输入矩阵M 320中存在5列。
接下来,可以将包括五个特征向量xv的初始特征矩阵Xv设置为大小为5×5的单位矩阵,每个对应的节点索引设置为1。
输入矩阵M 320和初始特征矩阵Xv都用于训练GNN 330。具体地,在方法900的步骤904中,处理器202在时间步长t=0时存储并初始化GNN 330: 如果实现了Readout NN 340,则Readout NN 344也可以以类似的方式初始化。
接下来,训练GNN 330,以根据原始节点510、525的标签预测输出矩阵Ov 335,该输出矩阵Ov 335包括表示所有中间节点中的每个中间节点的连接状态的信息。训练过程包括在步骤906处,聚合GNN的多个节点v中的每个节点的邻域信息。邻居(neighbour,NBR)可以定义为节点的近邻。例如,在图6中,节点AS200具有两个相邻节点:B和C。
在步骤912处,处理器202基于输出矩阵Ov 335生成边状态矩阵V 345。边状态矩阵V345的每个元素具有表示所有中间节点中的每个中间节点的传输状态的值。边状态矩阵V345包括多个边状态向量,其中,每个边状态向量具有表示在路由器z发起并从路由器x传输到路由器y的数据包的传输状态的值。
例如,边状态向量z∈AS100,AS200,AS300,AS400,AS500表示节点B与AS200之间的中间节点的传输状态。如果则表示路由器B与AS200之间的EBGP会话必须阻止AS300和AS400的数据包。为此,在GNN上运行半监督式分类任务。训练是使用表示物理路由器(例如边界或内部路由器)的原始节点510、525的掩码的均方误差(mean squared error,MSE)损失函数完成的。
在步骤914处,处理器202将输出矩阵Ov 335和/或边状态矩阵V 345传递给配置验证器350,该配置验证器350用于验证网络要求310的可满足性,并生成奖励R 355。当奖励R355是满足的网络要求与网络要求310总数的比率时,预定义阈值可以设置为1。
当R 355的值小于预定义阈值时,在步骤916处,将奖励R 355发送到优化器单元360,用于细化神经网络权重参数361、362。可以有一个或多个神经网络权重参数,包括GNN330的和361,以及可选的Readout NN 340的
优化器单元360可以使用类似于图8所示的ES算法的ES算法来细化GNN 330中的权重参数361和可选地细化Readout NN 340中的权重参数362。GNN 330和Readout NN 340由处理器202在新的迭代中使用细化的权重参数361、362执行,以生成更新的输出矩阵Ov335和更新的边状态矩阵345。配置验证器350基于更新的边状态矩阵V 345确定更新的奖励R355,并继续训练过程,直到更新的奖励R 355达到预定义阈值,或直到达到预定义的最大迭代次数。
当R 355在方法900的步骤918处具有等于或十分接近预定义阈值的值(例如1或0.99999)时,将边状态矩阵V 345发送到配置写入器365,用于生成网络500的网络配置370。图10中呈现了BGP会话的示例表。此表示出了每个路由器(源)应通过可能的BGP会话向其邻居通告的内容。此外,如果需要,还为每个通告设置偏好索引,以指示路径偏好。此偏好索引被转换为对应BGP会话的导入过滤器中的本地偏好值。
为了验证由神经网络系统300生成的网络配置370,可以使用eNSP网络模拟器,将网络配置370复制到类似于网络500的模拟网络中的每个路由器设备中,从而测试网络配置370。下文所示的表1示出了路由器B和路由器C的BGP和IP路由表片段。可以看出,路由器B为AS200分配一条路由;路由器C有两条到AS200的路由,相比另一条路由,它偏好从路由器B学习到的路由,IP:10.10.2.0,本地偏好=10100。此外,最后一行表示路由器C在其IP路由表中采用了该路由。
表1:路由器B和路由器C处的BGP路由表
在方法900的步骤920处,可以将由神经网络系统300生成的网络配置370部署到网络500的物理路由器中。
生成的配置370的片段在下表2中示出,该表示出了路由器B被设置为对来自AS200的通告的本地偏好。因此,发往AS200的流量相比路由器C偏好路由器B。
表2:BGP配置片段
实验I-可行性
为了证明神经网络系统300的可行性,基于图5中的网络拓扑(如YAML文件中所示)进行实验I。该文件包括网络基本信息,例如接口地址和每个AS的前缀。GNN 330经过150个回合的训练,并生成有效的BGP配置,成功率为93%。当GNN 330未能获得解时,运行优化器单元360以更新GNN 330的权重参数361。在实验中,GNN 330的权重被初始化为单位矩阵。此外,使用ES算法的优化器单元360中的超参数设置如下:群体数p=50,σ=0.5,学习率lr=0.002。
图11描述了在每个训练回合中获得的最佳奖励。可以注意到,使用ES算法的优化器单元360在少于60个训练回合中成功地获得了有效解。为了比较,在不同的实验中,优化器单元360使用经过训练以根据给定当前状态矩阵值采取动作的DRL代理,而不是使用ES算法。具体而言,DRL代理采用深度Q网络(deep Q-network,DQN)算法,环境定义为边状态矩阵V 345。离散动作空间定义为A(.)=1、2……m,其中,m是边状态矩阵V 345中的元素数。定义动作函数以翻转与选定动作对应的状态矩阵元素。此外,折扣因子γ设置为0.99,探索与开发因子定义为∈=0.01+0.99*e–衰减*步长,其中,衰减=0.001。图11示出了DQN成功获得有效解决,但是,训练所需的时间和预期的一样长(80,000个回合)。用其它DRL算法(例如近端策略优化(proximal policy optimization,PPO)和优势-演员-评论家算法(advantage-actor-critic,A2C))获得的结果也类似,但为了简洁起见,被省略了。
实验II-可扩展性
在本实验中,通过使用NetworkX库为具有不同数量节点的随机生成网络集合生成网络范围配置,来证明神经网络系统300的可扩展性。网络节点分为三类(客户端40%、对等端30%、提供商30%),网络要求定义如下:
1)客户端和对等端可以到达所有节点;
2)客户端应用无传输规则;即,无法在对等端或提供商之间传输流量;
3)提供商可以到达客户端和对等端;以及
4)提供商彼此隔离。
本实验是在具有4核至强处理器和8GB内存的虚拟机上进行的。图12示出了神经网络系统300所花费的训练回合和训练挂钟时间与由节点数量表示的网络大小的关系图。可以看到,训练回合的数量随着网络大小线性增加。但是,训练挂钟时间随网络大小呈指数级增长。
图12还描述了使用英伟达GTX 1060图形处理单元(graphics processing unit,GPU)运行同一实验的结果。可以注意到,使用GPU,挂钟时间随网络大小线性增加。可以得出结论,硬件加速与执行时间减少相关。
将基于可满足性模理论(satisfiability modulo theory,SMT)的系统与神经网络系统300进行比较。在基于SMT的系统中,提供的Z3库用作SMT解算器。图12进一步表明,基于SMT的系统在处理时间方面表现更好。但是,神经网络系统300具有扩展性比基于SMT的系统更高的优点。
实验III——训练时间
为了理解使用CPU时,训练时间呈指数级增长,而训练回合呈线性增长的原因,进行了第三个实验来测试:(i)神经网络前馈时间和(ii)验证时间。图13表明神经网络前馈过程是训练时间指数增长的主要原因。这个问题可以通过使用专门用于更高效执行GNN或Readout NN的计算机硬件来解决,例如,使用GPU,这使神经网络系统300可以随拓扑大小线性扩展。
此外,神经网络系统300可以通过修改被适配成还为其它网络生成网络配置,例如多协议标签交换(multiprotocol label switching,MPLS)、访问控制列表(accesscontrol list,ACL)和内部网关协议(interior gateway protocol,IGP)。唯一需要修改的是配置验证单元。
缩略词的选定定义如下所示:
GNN 图神经网络;
GCN 图卷积神经网络;
LSTM 长短期存储器;
RL 强化学习;
DRL 深度强化学习;
DQN 深度Q网络;
CMA-ES 协方差矩阵自适应进化策略;
SD-WAN 软件定义WAN;
MED 多出口区分;
MSE 均方误差;
SDN 软件定义网络;
IoT 物联网;
PPO 近端策略优化;
A2C 优势-演员-评论家算法;
RIP 路由信息协议;
TTL 生存时间;
WAN 局域网;以及
GPU 图形处理单元。
本文描述的流程图和附图中的步骤和/或操作仅用于示例目的。在不脱离本发明的教导的情况下,这些步骤和/或操作可以有许多变化。例如,可以按不同的顺序执行步骤,或可以添加、删除或修改步骤。
考虑到本发明,用于执行描述的上述方法的软件编码在本领域普通技术人员的范围内。可由一个或多个相应设备的一个或多个处理器执行以执行上述方法的机器可读代码可以存储在如数据管理器的存储器等机器可读介质中。术语“软件”和“固件”在本发明中是可互换的,并包括存储在存储器中供处理器执行的任何计算机程序,所述存储器包括随机存取存储器(random access memory,RAM)存储器、只读存储器(read only memory,ROM)存储器、EPROM存储器、电EPROM(electrically EPROM,EEPROM)存储器和非易失性RAM(non-volatile RAM,NVRAM)存储器。上述存储器类型仅仅是示例,因此并不限制可用于存储计算机程序的存储器类型。
综述
还公开了公开范围内的所有值和子范围。此外,虽然本文所公开和示出的系统、设备和过程可以包括特定数量的元件,但是可以修改这些系统、设备和组件以包括更多或更少此类元件。虽然本文描述了几个示例性实施例,但可以进行修改、适配和采取其它实现方式。例如,可以对附图中所示的元件进行替换、添加或修改,并且可以通过替换、重新排序或添加所公开的方法的步骤来修改本文所描述的示例性方法。此外,阐述了许多具体细节,以便于透彻理解本文所描述的示例性实施例。但是,本领域的普通技术人员应理解,可以在没有这些具体细节的情况下实践本文所描述的示例性实施例。此外,为了不模糊本文所描述的示例性实施例,没有详细描述公知的方法、过程和元件。本文中描述的主题旨在覆盖和涵盖所有适当的技术变化。
尽管描述了本发明,但至少部分地,就方法而言,本领域普通技术人员应理解,本发明还涉及各种元件,用于通过硬件、软件或其组合执行所描述方法的至少一些方面和特征。因此,本发明的技术方案可以体现在非易失性或非瞬时性机器可读介质(例如,光盘、闪存等)中,该介质上存储有有形地存储在其中的可执行指令,使处理设备能够执行本文公开的方法的示例。
术语“处理器”可以包括任何可编程系统,包括使用以下各项的系统:微处理器/控制器或纳米处理器/控制器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)、精简指令集电路(reduced instruction set circuit,RISC)、逻辑电路,以及能够执行本文所述功能的任何其它电路或处理器。术语“数据库”可以指数据体、关系数据库管理系统(relational database management system,RDBMS)或两者。本文所使用的数据库可以包括任何数据集,包括层次数据库、关系数据库、平面文件数据库、对象关系数据库、面向对象的数据库和存储在计算机系统中的任何其它结构化记录或数据集。上述示例仅仅是示例,因此并不意欲以任何方式限制术语“处理器”或“数据库”的定义和/或含义。
在不脱离权利要求书的主题的前提下,本发明可以通过其它特定形式实施。所描述的示例性实施例在所有方面均被视为仅是说明性的而非限制性的。本发明旨在覆盖和涵盖所有适当的技术变更。因此,本发明的范围由所附权利要求书而不是由上述说明书进行描述。权利要求的范围不应受到示例中阐述的实施例限制,而应给予与整个描述一致的最广泛的解释。
Claims (27)
1.一种系统,其特征在于,包括处理器和存储指令的非瞬时性存储器,所述指令由处理器设备执行时,使所述处理器:
接收表示具有多个路由器的网络的第一矩阵M,其中,M中的每个元素Mij指示基于网络要求集合所述多个路由器中的两个路由器之间的数据流量的连接状态;
在所述非瞬时性存储器中存储包括多个节点v和多个边的图神经网络(graph neuralnetwork,GNN),其中,所述多个节点v中的每个节点对应于所述多个路由器中的相应路由器,并且所述多个边中的每个边对应于所述多个路由器中的两个或两个以上路由器之间的物理链路连接;
训练所述GNN以生成输出矩阵Ov,其中,Ov包括基于所述第一矩阵M标记的多个节点。
2.根据权利要求1所述的系统,其特征在于,训练所述GNN包括:
基于具有多个元素的第二矩阵Xv初始化所述GNN;
聚合所述GNN的所述多个节点v中每个节点的邻域信息;
基于相应的邻域信息,计算所述GNN的所述多个节点v中每个节点的隐藏状态;
基于所述GNN的所述多个节点v中每个节点的所述隐藏状态生成所述Ov。
3.根据权利要求1或2所述的系统,其特征在于,所述第二矩阵Xv是单位矩阵。
4.根据权利要求1至3中任一项所述的系统,其特征在于,Xv的每一列是表示所述多个路由器中的相应路由器的热向量。
6.根据权利要求1至5中任一项所述的系统,其特征在于,还包括使所述处理器训练Readout神经网络(Readout neural network,Readout NN)的指令,其中,所述Readout NN接收Ov作为输入并生成所述边状态矩阵V。
7.根据权利要求6所述的系统,其特征在于,还包括使所述处理器执行以下操作的指令:
接收所述边状态矩阵V,并使用配置验证器生成奖励;
使用优化器单元基于所述奖励更新所述GNN和所述Readout NN中的一个或多个权重参数。
8.根据权利要求7所述的系统,其特征在于,所述配置验证器用于基于所述网络要求集合评估所述边状态矩阵V。
9.根据权利要求7所述的系统,其特征在于,所述优化器单元用于更新所述GNN和所述Readout NN中的所述一个或多个权重参数,以最大化所述奖励。
10.根据权利要求9所述的系统,其特征在于,当来自所述配置验证器的奖励具有在预定义阈值内的值时,所述处理器用于基于存储在所述非瞬时性存储器中的所述指令停止训练所述GNN,并将所述边状态矩阵V转发给配置写入器。
11.根据权利要求10所述的系统,其特征在于,所述预定义阈值为1。
12.根据权利要求10或11所述的系统,其特征在于,所述处理器用于基于存储在所述非瞬时性存储器中的所述指令,使所述配置写入器将所述边状态矩阵V转换为有效的网络配置。
13.根据权利要求12所述的系统,其特征在于,所述处理器用于基于存储在所述非瞬时性存储器中的所述指令,将所述有效的网络配置部署到所述多个路由器中的一个或多个路由器中。
14.一种用于使用GNN生成网络配置的处理器实现的方法,其特征在于,所述方法包括:
接收表示具有多个路由器的网络的第一矩阵M,其中,M中的每个元素指示基于网络要求集合所述多个路由器中的两个路由器之间的数据流量的连接状态;
存储包括多个节点v和多个边的图神经网络(graph neural network,GNN),其中,所述多个节点v中的每个节点对应于所述多个路由器中的相应路由器,并且所述多个边中的每个边对应于所述多个路由器中的两个或两个以上路由器之间的物理链路连接;
训练所述GNN以生成输出矩阵Ov,其中,Ov包括基于所述第一矩阵M标记的多个节点。
15.根据权利要求14所述的方法,其特征在于,训练所述GNN包括:
基于具有多个元素的第二矩阵Xv初始化所述GNN;
聚合所述GNN的所述多个节点v中每个节点的邻域信息;
基于所述相应的邻域信息,计算所述GNN的所述多个节点v中每个节点的隐藏状态;
基于所述GNN的所述多个节点v中每个节点的所述隐藏状态生成所述Ov。
16.根据权利要求14或15所述的方法,其特征在于,所述第二矩阵Xv是单位矩阵。
17.根据权利要求14至16中任一项所述的方法,其特征在于,Xv的每一列是表示所述多个路由器中的相应路由器的热向量。
19.根据权利要求14至18中任一项所述的方法,其特征在于,还包括训练Readout神经网络(Readout neural network,Readout NN),其中,所述Readout NN接收Ov作为输入并生成所述边状态矩阵V。
20.根据权利要求19所述的方法,其特征在于,还包括:
接收所述边状态矩阵V;
基于所述网络要求集合,评估所述边状态矩阵V以生成奖励;
使用优化器单元基于所述奖励更新所述GNN和所述Readout NN中的一个或多个权重参数。
21.根据权利要求20所述的方法,其特征在于,包括更新所述GNN和所述Readout NN中的所述一个或多个权重参数以最大化所述奖励。
22.根据权利要求21所述的方法,其特征在于,包括:当来自所述配置验证器的所述奖励具有满足预定义阈值的值时,将所述边状态矩阵V转发给配置写入器。
23.根据权利要求22所述的方法,其特征在于,所述预定义阈值为1。
24.根据权利要求21或22所述的方法,其特征在于,还包括将所述边状态矩阵V转换为有效的网络配置。
25.根据权利要求24所述的方法,其特征在于,包括将所述有效的网络配置部署到所述多个路由器中的一个或多个路由器中。
26.一种非瞬时性处理器可读介质,其特征在于,包括指令,所述指令由处理系统的处理器执行时,使所述处理系统:
接收表示具有多个路由器的网络的第一矩阵M,其中,M中的每个元素指示基于网络要求集合所述多个路由器中的两个路由器之间的数据流量的连接状态;
在所述非瞬时性存储器中存储包括多个节点v和多个边的图神经网络(graph neuralnetwork,GNN),其中,所述多个节点v中的每个节点对应于所述多个路由器中的相应路由器,并且所述多个边中的每个边对应于所述多个路由器中的两个或两个以上路由器之间的物理链路连接;
训练所述GNN以生成输出矩阵Ov,其中,Ov包括基于所述第一矩阵M标记的多个节点。
27.根据权利要求26所述的非瞬时性处理器可读介质,其特征在于,训练所述GNN包括:
基于具有多个元素的第二矩阵Xv初始化所述GNN;
聚合所述GNN的所述多个节点v中每个节点的邻域信息;
基于所述相应的邻域信息,计算所述GNN的所述多个节点v中每个节点的隐藏状态;
基于所述GNN的所述多个节点v中每个节点的所述隐藏状态生成所述Ov。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/094058 WO2021243585A1 (en) | 2020-06-03 | 2020-06-03 | Method and system for generating network configurations using graph neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115668877A true CN115668877A (zh) | 2023-01-31 |
Family
ID=78831486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080101700.3A Pending CN115668877A (zh) | 2020-06-03 | 2020-06-03 | 用于使用图神经网络生成网络配置的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11929912B2 (zh) |
CN (1) | CN115668877A (zh) |
WO (1) | WO2021243585A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697229B (zh) * | 2022-03-11 | 2023-04-07 | 华中科技大学 | 一种分布式路由规划模型的构建方法及应用 |
CN114418468B (zh) | 2022-03-29 | 2022-07-05 | 成都秦川物联网科技股份有限公司 | 一种智慧城市交通调度策略控制方法和物联网系统 |
CN114827021B (zh) * | 2022-06-27 | 2022-11-25 | 南京邮电大学 | 一种基于sdn和机器学习的多媒体业务流量加速系统 |
CN116366529A (zh) * | 2023-04-20 | 2023-06-30 | 哈尔滨工业大学 | 一种sdn背景下基于深度强化学习的自适应路由方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150003296A1 (en) * | 2012-01-04 | 2015-01-01 | Hongbing Fan | System and method for providing p2p based reconfigurable computing and structured data distribution |
CN110311863A (zh) * | 2019-05-09 | 2019-10-08 | 北京邮电大学 | 一种路由路径确定方法及装置 |
CN111161315A (zh) * | 2019-12-18 | 2020-05-15 | 北京大学 | 一种基于图神经网络的多目标跟踪方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10608901B2 (en) * | 2017-07-12 | 2020-03-31 | Cisco Technology, Inc. | System and method for applying machine learning algorithms to compute health scores for workload scheduling |
WO2019081781A1 (en) * | 2017-10-27 | 2019-05-02 | Deepmind Technologies Limited | NEURAL GRAPH NETWORK SYSTEMS FOR GENERATING STRUCTURED REPRESENTATIONS OF OBJECTS |
CN108809839B (zh) * | 2018-07-17 | 2020-12-01 | 湖南理工学院 | 无线Mesh骨干网络流量控制方法与装置 |
US10581736B1 (en) * | 2018-11-13 | 2020-03-03 | At&T Intellectual Property I, L.P. | Traffic matrix prediction and fast reroute path computation in packet networks |
CN110417664B (zh) * | 2019-07-31 | 2022-02-25 | 国家电网有限公司信息通信分公司 | 基于电力通信网的业务路由分配方法及装置 |
US11544527B2 (en) * | 2020-02-06 | 2023-01-03 | International Business Machines Corporation | Fuzzy cyber detection pattern matching |
-
2020
- 2020-06-03 WO PCT/CN2020/094058 patent/WO2021243585A1/en active Application Filing
- 2020-06-03 CN CN202080101700.3A patent/CN115668877A/zh active Pending
-
2022
- 2022-12-02 US US18/074,319 patent/US11929912B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150003296A1 (en) * | 2012-01-04 | 2015-01-01 | Hongbing Fan | System and method for providing p2p based reconfigurable computing and structured data distribution |
CN110311863A (zh) * | 2019-05-09 | 2019-10-08 | 北京邮电大学 | 一种路由路径确定方法及装置 |
CN111161315A (zh) * | 2019-12-18 | 2020-05-15 | 北京大学 | 一种基于图神经网络的多目标跟踪方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230124663A1 (en) | 2023-04-20 |
US11929912B2 (en) | 2024-03-12 |
WO2021243585A1 (en) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115668877A (zh) | 用于使用图神经网络生成网络配置的方法和系统 | |
US10263882B2 (en) | Dynamically influencing route re-distribution between an exterior gateway protocol and an interior gateway protocol | |
US10574567B2 (en) | Modeling a border gateway protocol network | |
Zhang et al. | BGP design and implementation | |
Vetriselvan et al. | Survey on the RIP, OSPF, EIGRP routing protocols | |
EP3222006A1 (en) | Passive performance measurement for inline service chaining | |
US20140376402A1 (en) | Methods and systems for automatic generation of routing configuration files | |
Feamster et al. | Network-wide prediction of BGP routes | |
US20240022950A1 (en) | Decentralized coordinated reinforcement learning for optimizing radio access networks | |
US20230208724A1 (en) | Methods and systems for distributed network verification | |
Bahnasy et al. | DeepBGP: A machine learning approach for BGP configuration synthesis | |
JPWO2014069502A1 (ja) | 通信システム、経路情報交換装置、通信ノード、経路情報の転送方法及びプログラム | |
Feamster et al. | Network-wide BGP route prediction for traffic engineering | |
Buob et al. | Checking for optimal egress points in iBGP routing | |
JP7342036B2 (ja) | Ospfコスト・メトリック・ミラーリングの為の装置及びシステム | |
WO2022232994A1 (en) | Devices and methods for autonomous distributed control of computer networks | |
Tian et al. | Network routing architecture | |
Yalda | Design and Implementation of an Intra-domain routing module for an SDN controller for Traffic Engineering in SDN environment | |
Feamster et al. | Modeling BGP route selection within an AS | |
Xiaofeng et al. | Multi-Agent Reinforcement Learning With Contribution-Based Assignment Online Routing In SDN | |
Dort-Golts et al. | Load balancing algorithm exploiting overlay techniques | |
Ye et al. | LARRI: Learning-based Adaptive Range Routing for Highly Dynamic Traffic in WANs | |
Geng et al. | Dynamic distributed algorithm for computing multiple next-hops on a tree | |
Kumar et al. | Improving routing in large networks inside autonomous system | |
Sainz Lorenzo | Testing dynamic routing protocols with VNX virtual 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 |