CN116418664A - 自动化网络设备模型创建的方法及设备、系统及存储介质 - Google Patents
自动化网络设备模型创建的方法及设备、系统及存储介质 Download PDFInfo
- Publication number
- CN116418664A CN116418664A CN202210295816.6A CN202210295816A CN116418664A CN 116418664 A CN116418664 A CN 116418664A CN 202210295816 A CN202210295816 A CN 202210295816A CN 116418664 A CN116418664 A CN 116418664A
- Authority
- CN
- China
- Prior art keywords
- network device
- model
- configuration parameters
- operational state
- configuration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012360 testing method Methods 0.000 claims abstract description 86
- 230000015654 memory Effects 0.000 claims abstract description 75
- 238000004088 simulation Methods 0.000 claims abstract description 64
- 238000000611 regression analysis Methods 0.000 claims abstract description 53
- 238000010801 machine learning Methods 0.000 claims description 65
- 230000008859 change Effects 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000009434 installation Methods 0.000 claims description 4
- 238000012384 transportation and delivery Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 description 55
- 238000013480 data collection Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013439 planning Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000000275 quality assurance Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000000342 Monte Carlo simulation Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012417 linear regression Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004941 influx Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000005477 standard model Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/267—Reconfiguring circuits for testing, e.g. LSSD, partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
总体地,提供了一种自动化网络设备模型创建的方法及设备、系统及存储介质。包括处理器和存储器的设备可以被配置为执行本公开中所描述的技术的各种方面。处理器可以基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的多个模拟数据集。处理器可以相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,改轻量级模型预测网络设备的操作状态。处理器可以输出用于计算资源受限的网络设备的轻量级模型,以能够计算资源受限的网络设备在配置有配置参数时,预测计算资源受限的网络设备的操作状态。存储器可以存储轻量级模型。
Description
本申请要求保护于2021年12月30日提交的美国专利申请号17/646,559的权益,通过引用将其全部内容结合在此。
技术领域
本发明涉及一种计算设备,并且更具体地,涉及一种计算设备的建模。
背景技术
测试床尝试复制可以部署设备的环境。例如,测试床可以尝试复制可以部署诸如路由器的网络设备的网络。为了提供少量示例,在网络背景中,测试床可以包括多个不同的路由器、交换机、以及端用户装备,诸如电缆调制解调器、数字用户线路(DSL)调制解调器、个人计算机、智能电话、或其他蜂窝手持设备、无线接入点等。
网络管理员可以配置实现各种服务的测试床,从而提供支持各种服务的受试设备(即,在该示例中,为上述路由器)。在测试期间,网络管理员可以收集关于受试设备如何执行以尝试理解应如何配置受试设备并且网络内应部署多少受试设备来成功地实现服务的信息。
测试床可以便于很好地理解受试设备,同时还允许在被配置为支持各种服务时详细地收集受试设备的各种操作参数的数据。这种详细收集的数据可以允许对受试设备进行扩展建模,从而可能使得创建便于预测不同网络环境中的资源利用的虚拟受试设备。然而,代表虚拟受试设备的模型可能消耗大量的计算资源(例如,处理器周期、存储器、存储器总线带宽等)。
发明内容
描述了能够使用测试环境(或换言之,测试床)实现受试设备(DUT)的自动化建模的技术,即,就计算资源利用方面而言,产生轻量级的受试设备模型。通过大量应用机器学习而形成模型,从而可能消耗大量的计算资源(例如,处理器周期、存储器、存储器总线带宽等)。进一步地,由于受试设备的变化(例如,由于硬件、软件等的升级),该机器学习模型难以快速地更新。为了潜在地克服该计算资源利用与模型升级难度,对受试设备的两个配置参数应用回归分析便于进行模拟并且受试设备在模拟过程中的操作状态可以允许建立线性、非线性、变量等关系,从而能够产生由计算资源受限设备(例如,网络设备,诸如路由器、交换机、集线器等;场可编程门阵列-FPGA;专用集成电路-ASIC、虚拟机等)执行的轻量级(LW)模型。
通过开发LW模型来扩展模型的执行允许在特定的资源受限设备中开发LW模型,以便于特定的使用情况。例如,路由器可以部署LW模型来预测尚未提交的配置数据的计算资源消耗。然后,如果预测的资源利用未超过资源利用阈值,路由器则可以提交配置数据。另外,如果预测的资源利用超过一个或多个资源利用阈值,路由器则可以拒绝提交配置数据,由此防止路由器的错误配置导致错误操作、故障等。
因此,本公开中所描述的技术的各种方面可以改进网络设备自身的操作。例如,网络设备可以执行(给定所消耗的低计算资源,在设备上)LW模型,以在提交配置数据之前基于配置数据预测资源利用。在设备上执行LW模型可以建立另一层安全性,以防止在提交来自多个不同网络管理员的复杂配置数据之前发生错误配置。由此,网络设备可以防止网络设备的错误配置,即,可能导致错误操作(例如,由于计算资源过度利用)、网络流量下降(例如,再次由于计算资源过度利用)、和/或故障。给定大多数的网络设备由于缺少执行复杂机器学习模型的足够计算资源而不能执行机器学习模型,由此,应用LW模型可以改进网络设备自身的操作。
一方面,技术的各种方面面向一种对网络设备的模型创建进行自动化的方法,该方法包括:由一个或多个处理器并且基于网络设备的配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应操作数据;由一个或多个处理器相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且由一个或多个处理器输出用于计算资源受限的网络设备的轻量级模型,以在计算资源受限的网络设备配置有配置参数时,能够预测计算资源受限的网络设备的操作状态。
另一方面,技术的各种方面面向一种被配置为对网络设备的模型创建进行自动化的设备,该设备包括:一个或多个处理器,被配置为:基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应该配置参数的网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在配置有配置参数时,能够预测计算资源受限的网络设备的操作状态;以及存储器,被配置为存储轻量级模型。
另一方面,技术的各种方面面向一种非易失性计算机可读存储介质,其上存储有指令,该指令在被执行以执行网络设备的模型创建时,使一个或多个处理器:基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应该配置参数的网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在计算资源受限的网络设备配置有配置参数时,能够预测计算资源受限的网络设备的操作状态。
另一方面,技术的各种方面面向一种系统,包括:计算设备,包括:一个或多个处理器,被配置为:基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表第一网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表第一网络设备的轻量级模型,当第一网络设备配置有配置参数时,轻量级模型响应该配置参数的第一网络设备的配置参数来预测第一网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在计算资源受限的网络设备配置有配置参数时,能够预测计算资源受限的网络设备的操作状态;与存储器,被配置为存储轻量级模型;以及第二网络设备,部署在操作环境中,以支持一种或多种服务的交付,第二网络设备包括:接口,被配置为接收配置参数;以及一个或多个处理器,被配置为:执行轻量级模型,以基于配置参数获得第二网络设备的预测操作状态;确定预测操作状态是否超过一个或多个操作状态阈;并且只有预测操作状态未超过一个或多个操作状态阈,才提交配置参数。
在所附附图与下列描述中阐述了技术的一个或多个方面的细节。从描述与附图、以及权利要求中,技术的其他特征、目标、以及优点将显而易见。
附图说明
图1是被配置为执行本公开中描述的建模技术的各种方面的示例性网络建模环境的框图。
图2是示出代表部署在实现本文所描述的技术的各种方面的操作环境中的网络设备的示例性路由器的框图。
图3是示出根据本公开中描述的技术的各种方面的图1的示例中示出的获得用于设备上操作状态预测的轻量级模型的测试系统的示例性操作的流程图。
图4是示出根据本公开的一种或多种技术进行操作的计算设备的一个示例的进一步细节的框图。
具体实施方式
图1是示出被配置为执行本公开中描述的建模技术的各种方面的建模环境10的框图。如图1的示例所示,建模环境10包括驱动器12、测试环境14(也可以被称为“测试床14”)、受试设备(DUT)16、数据收集工具18、机器学习(ML)模型20、后端分析单元22、以及数据库(DB)24。
驱动器12可以表示被配置为在测试床14内自动测试DUT 16的单元。驱动器12可以自动配置测试床14和DUT 16,以使得DUT 16与测试床14协作操作,以实现一种或多种服务或执行一个或多个操作。例如,在计算机网络的上下文中,DUT 16可以表示路由器或其他网络设备(例如,L2、L3、或L2/L3交换机;路由反射器;网关;或服务网关)。如图1的示例所示,测试床14包括虚拟网络14A与基于硬件的测试网络14B的组合。驱动器12可以将测试床14配置为实现一种或多种路由服务,诸如第三层虚拟私有网络(L3VPN)服务、第二层虚拟私有网络服务(诸如以太网VPN(EVPN)和虚拟私有WAN/LAN服务)、多播、以及其他路由服务。驱动器12可以进一步将测试床14配置为与DUT 16进行通信,以路由协议会话、管理协议会话、其他通信会话。驱动器12还可以将DUT 16配置为支持路由服务与通信会话的实现方式,诸如上面列出的。
测试床14可以表示任意类型的测试环境。尽管参考虚拟网络14A和测试网络14B进行了描述,然而,测试床14仅可以包括虚拟网络14A或仅可以包括测试网络14B、或额外网络,并且不应局限于图1的示例中所示的组合。进一步地,尽管被示出为提供用于测试网络设备的各种形式的网络,然而,测试床14可以表示适合于测试任意类型的设备(包括个人计算机、膝上型计算机、蜂窝电话(包括所谓的“智能电话”)、数字手表(包括所谓的“智能手表”)、扬声器(包括所谓的“智能扬声器”)、平板计算机、处理器、或任意其他类型的电子设备)的任意平台。
DUT 16可以表示基于硬件的设备、虚拟设备(可以指被实现为由通用计算设备执行的模型的设备)、或基于硬件的设备与虚拟设备的组合。出于示出之目的,假设DUT 16表示诸如路由器的网络设备,并且因此,此处可以被称为“路由器16”。其他类型的DUT 16可以包括上述示例性设备,包括个人计算机、膝上型计算机、蜂窝电话(包括所谓的“智能电话”)、数字手表(包括所谓的“智能手表”)、扬声器(包括所谓的“智能扬声器”)、平板计算机、处理器、或任意其他类型的电子设备。
数据收集工具18可以表示被配置为检索代表DUT 16的操作状态的度量及其他数据的单元。当DUT 16表示路由器时,代表操作状态的数据的示例包括特征使用数据和资源利用数据。为了提供少量地示例,特征使用数据可以包括下列中的一项或多项:对等(例如,边界网关协议(BGP)对等)的数量、群组(例如,BGP群组)的数量、路由实例(也被称为“路由实例”)的数量、客户边缘(CE)设备地数量、CE接口的数量、路由数量、每条路由的类型。为了提供少量的示例,资源利用数据可以包括下列中的一项或多项:每个路由守护进程的中央处理单元(CPU)利用(路由器的路由引擎中)、每个路由守护进程或其他控制平面应用的存储器利用、路由器的包转发引擎(PFE)中的CPU利用、以及PFE中的存储器利用、三态内容寻址存储器(TCAM)利用等。
数据收集工具18可以在建模期间对DUT 16进行轮询,以检索代表DUT 16的操作状态17的操作数据,其中,该操作数据还可以被称为“模拟数据集”或“操作状态数据”。数据收集工具18可以调用多个不同的过程,由此,与数据收集协作,包括开源处理,诸如YAML Ain’t标记语言(YAMLTM)、Spark进程、Spark Kafka进程、以及Influx进程,以提供下面更为详细讨论的少量示例。
ML模型20表示被配置为相对于配置对DUT 16的操作状态进行建模的单元。在该方面,ML模型20可以提供用于接收参数的接口(例如,在网络上下文中,参数可以包括对等数量、群组数量、路由数量等,其可以是特征使用数据的子集或推导测量)并且可以生成指示DUT 16的操作状态的预测数据。如下面更为详细地概括的,建模环境10可以使配置变化与代表DUT 16在不同配置的DUT 16和测试床14中的操作状态的对应收集数据(可以被称为“操作数据”)相关联、并且执行机器学习或执行其他人工智能算法来获得ML模型20。
后端分析单元22可以表示被配置为相对于由ML模型20生成的预测数据和由数据收集工具18收集的操作数据而执行分析的单元。后端分析单元22可以包括用户界面(UI)模块26,该用户界面(UI)模块26通过各种形式呈现保护数据和操作数据,以便于查阅DUT 16和机器学习模型。后端分析单元22可以将分析结果存储至数据库24。
如上所述,后端分析单元22可以采用机器学习来创建ML模型20。机器学习可以指允许计算机在不被显示编程的情况下进行学习的一组数学建模过程。例如,机器学习可以包括蒙特卡罗模拟式实验。出于设备建模之目的,机器学习可能需要相对于其他类型的建模算法具有高熵值(或换言之,随机性)的大量操作数据。对于准确的模型创建,机器学习可以采用真实世界的数据,但是,由于私密性及其他原因,通常难以收集该真实世界的数据。进一步地,机器学习可能需要来自大多数(如果并非全部)可用参数配置的数据,这可能在多维配置中变得越发困难,其中,存在具有成功配置单一服务的多个不同设置的多个参数,诸如路由器的网络设备。
给定上述内容,对多维设备进行建模的多次尝试已经尝试使用不同的建模算法,这些建模算法不需要大量的真实世界数据和/或操作数据的高度随机性。然而,除提供操作状态相对于特征使用数据的初步评估之外,这些模型不能准确地预测真实世界的设备操作。评估的准确度大多数是不充分的,并且并不便于大量的网络规划,或更总体地,容量规划。进一步地,这种方式的模型开发并非是自动化的,该建模也不能足够快地创建模型,以促进质量保证或设备开发或故障排除的其他方面。
建模环境10可以通过高度随机的方式对DUT 16的配置进行自动化。建模环境10可以接着通过支持被配置为由DUT 16提供的现有服务的方式对测试环境14的配置进行自动化。而且,建模环境10还可以通过高度随机方式使用反映真实世界的值的参数对测试环境14的配置进行自动化,以促进蒙特卡罗模拟式实验。然后,建模环境10可以在测试环境14内进行DUT 16的模拟并且对操作数据收集进行自动化。建模环境10可以迭代地进行多次不同的模拟并且通过得到所收集的大量操作数据的方式而收集操作数据,这可以构成基于此建立准确的ML模型20的基础(与使用上述不同的建模算法所创建的模型相比较)。
在操作中,驱动器12初始可以获得参数28A(“params 28A”)、配置对象28B(“config 28B”)、以及全局文件28C(“全局文件28C”),以上左右项还可以被统称为“模拟配置文件28”。在一些实例中,可以使用YAMLTM定义模拟配置文件28。YAMLTM是一种基于跨语言的统一码、围绕常见的本地数据类型的编程语言而设计的数据序列化语言。YAMLTM定义三种基本的原始数据结构,包括映射(例如,散列和/或字典)、序列(例如,阵列和/或列表)、以及标量(例如,字符串和/或数字)。从这三种原始数据结构可以构建YAMLTM中的全部其他数据结构。YAMLTM利用原始数据结构的优势并且添加打字系统和混叠机制来构成用于对任意本地数据结构进行序列化的语言。诸如Perl、Python、PHP、Ruby、以及Javascript的许多灵活的编程语言可以采用YAMLTM来存储并且传输数据。在题为“YAML Ain’t Markup Language(YAMLTM)”的1.2版本、第3次编辑的2009年10月1日修订的Ben-Kiki,O.等人的文献中能够找出关于YAMLTM的许多信息,如同其整体阐述的,通过引用而结合其全部内容。
在任意情况下,驱动器12可以基于YAMLTM文件来生成每次模拟的DUT配置对象15(“DUT config 15”)的不同实例。为了生成DUT配置对象15的不同实例,驱动器12首先可以对一组给定的模拟配置文件28的配置文件28B进行解析。即,每组模拟配置文件28可以包括参数文件28A、配置文件28A、以及全局文件28C。每组模拟配置文件28可以定义测试环境14内的DUT 16的不同类别的模拟。例如,一组模拟配置文件可以定义L3VPN模拟。另一组模拟配置文件可以定义标签交换路径(LSP)自动带宽模拟,而另一模拟配置文件定义内部边界网关协议(iBGP)、中间系统到中间系统(IS-IS)路由协议、和/或L3VPN服务内的资源预留路由协议(RSVP)的模拟。
配置文件28B定义创建DUT配置对象15的不同实例的模板。模板通常定义模拟的类别(或换言之,类型),从而提供能够创建配置DUT 16所需的DUT配置对象15、以根据所模拟的具体服务、功能、或操作而进行操作的一般语法。配置文件28B可以使用指定的语法参考参数文件28A。
即,配置文件28B可以包括使用指定语法定义的变量(或换言之,参数)形式的占位符,该占位符向驱动器12发出应从参数文件28A拉取所参考的参数指定的值的信号。驱动器12可以对参数文件28A进行解析,以识别配置文件28B中所参考的参数。响应于识别参数,驱动器12可以对参数文件28A进行处理,以确定对应参数的值。参数文件28A可以将值定义为一个或多个范围或者静态值。参数文件28A还可以在最大值和最小值方面定义值。驱动器12可以从所定义的范围中随机地选择值并且设置DUT配置对象15内的值。驱动器12可以使用参数的随机分配值创建就参数值而言改变的DUT配置对象15的不同实例(或换言之,迭代),由此,将高熵值注入到模拟中并且允许使用蒙特卡罗式实验进行准确的模型创建。
配置文件28B还可以保留使用不同语法定义的变量形式的占位符,占位符向驱动器12发出应从全局文件28C拉取所参考的参数指定的值的信号。全局文件28C定义在同一模拟内的DUT配置对象15的不同实例之间应相同的参数值。全局文件28C还可以定义最大和最小参数值或对参数值选择的其他全局约束(以避免特定的设备出现问题-诸如超过特定路由器的最大数量的路由等)。
如下面更为详细描述的,在生成DUT配置对象15的实例之后,驱动器12可以通过这样的方式生成测试器配置对象13,即,确保DUT配置对象15的不同实例之间的充分随机性。接着,驱动器12可以针对测试环境14生成测试器配置对象13的实例,以在根据DUT配置对象15进行配置时适应DUT 16的操作。
为了示出,DUT 16的DUT配置对象15可以在一个客户端边缘(CE)设备与另一CE设备之间配置特定的L3VPN。驱动器12可以针对测试环境14指定测试器配置对象13,以使得所预期的两个CE设备通过建立并且模拟由DUT 16提供的预期L3VPN的使用的方式而执行路由协议。在该方面,驱动器12可以定义用于相干配置测试环境14和DUT 16(分别)的测试器配置对象13和DUT配置对象15,以使得DUT 16与测试环境14一致地操作而支持一种或多种服务,即,上述示例、操作、或功能中的L3VPN服务。
与DUT配置对象15的生成相似,驱动器12可以通过反映实际网络环境或换言之真实世界的网络环境的方式来随机地指定测试器配置对象13内的参数值。为了示出,并非经由逻辑有序的方式向测试环境14内的接口分配IP地址(例如,向接口1分配1.1.1.1,向接口2分配1.1.1.2,向接口3分配1.1.1.3等),驱动器12可以向IP地址引入随机化(例如,向接口1分配1.1.1.1,向接口2分配10.1.0.90等)。如此,驱动器12可以生成包括具有随机分配、以反映实际环境的值的参数的测试器配置对象13。如上所述,这些输入参数需要进行大量地改变来反映真实世界的环境。除三层(L3)地址之外,从高度可变性获益的其他输入参数可以包括二层(L2)媒体访问控制(MAC)地址、路由实例、路由数量、路由对等地数量、自主系统编号、不同组合和数量的网络服务等。如此,与人工排序的测试环境中所创建的模型相比较,参数值的分配可以促进更好地反映DUT 16的操作状态的更真实建模。
在选择DUT配置对象15的不同实例的子集之后,驱动器12可以与DUT 16对接,以根据DUT配置对象15的第一个实例而配置DUT 16。就DUT配置对象15的实例的一个以上参数与DUT配置对象15的另一实例不同的意义而言,使用DUT配置对象15的实例的DUT 16的配置是多维的。换言之,DUT配置对象15并不迭代地测试同一参数的不同值,而是表示随机选择具有高熵值的参数,这可以提供比一维(指迭代地改变单一参数的值)测试更有意义的结果。
驱动器12可以接着或同时配置DUT 16、与测试环境14对接,以根据一个对应的测试器配置对象13配置测试环境14。作为一个示例,驱动器12可以经由测试器配置对象13来模拟并且改变用户边缘(CE)设备和多协议标签交换(MPLS)远程运营商边缘(PE)设备的数量。此外,驱动器12可以经由测试器配置对象13来模拟并且改变CE协议中的变量、每个CE设备和/或远程PE设备的路由数量、路由实例的数量、互联网协议(IP)地址、自主系统(AS)编号、分网、掩码长度等。
在配置DUT 16和测试环境14之后,驱动器12可以进行模拟,由此,驱动器12可以与测试环境14对接,以发起路由协议操作(例如,BGP、IS-IS、OSPF等)、服务执行(例如,L3VPN)、以及其他网络操作,以测试由DUT 16支持的各种服务、功能、以及操作。在模拟的过程中或同时,数据收集工具18可以与DUT 16对接,以收集代表DUT 16的操作状态的操作数据17。
数据收集工具18可以向DUT 16发布命令和/或其他查询,以收集操作数据17。例如,数据收集工具18可以发布诸如生成每个守护进程和总存储器的“UNIX-TOP”的命令、生成BGP对等的总结的“显示bgp总结(show bgp summary)”命令、生成BGP群组的总结的“显示bgp总结(show bgp groups summary)”、生成路由数量的总结的“显示路由总结(showroute summary)”、生成路由实例的数量和类型的“显示路由实例(show routeinstance)”。作为另一示例,数据收集工具18可以发布诸如生成控制平面存储器利用的“显示任务存储器(show task memory)”的命令、生成数据平面中的挠性PIC(物理接口卡)集中器(FPC)上的处理器和存储器利用的“显示类fpc(show chassis fpc)”。作为又一示例,数据收集工具18还可以发布收集包转发引擎(PFE)的存储器利用的“显示jnh<#>池(show jnh<#>pool)”命令。数据收集工具18还可以从DUT 16检索或另行请求指示操作数据17的系统日志。
数据收集工具18可以收集操作数据17的特征使用数据,其可以指示DUT 16相对于测试环境14的操作状态并且包括例如下列中的一项或多项:对等(例如,边界网关协议(BGP)对等)的数量、群组(例如,BGP群组)的数量、路由实例的数量、用户边缘(CE)设备的数量、CE接口的数量、路由的数量、每个路由的类型。数据收集工具18还可以收集指示DUT 16的操作状态的操作数据17的资源利用数据,其可以包括每个路由守护进程的中央处理单元(CPU)利用(路由器的路由引擎)、每个路由守护进程的存储器利用、路由器的包转发引擎(PFE)中的CPU利用、以及PFE中的存储器利用。
数据收集工具18可以对操作数据17进行调整,以形成序列化数据19。即,数据收集工具18可以对每种形式的操作数据17(例如,轮询数据和系统日志)进行处理,以在时间上示意性地布置数据,并且由此生成序列化数据19。驱动器12与数据收集工具18可以协作,以迭代地收集关于每个模拟配置文件28的序列化数据19,重复上述处理,以收集关于每个模拟配置文件28的序列化数据19。数据收集工具18可以将序列化数据19输出至后端分析单元22。
后端分析单元22可以基于序列化数据19生成ML模型20。在一些示例中,后端分析单元22可以识别与用于进行模拟的每个DUT配置对象15相关联的序列化数据19,即,参考已调整的操作数据17的另一种方式。DUT配置对象15可以在路由器或其他网络设备的上下文中表示与特定类型相关联的离散配置数据,诸如接口、半径服务器、路由实例、转发信息库(FIB)等。后端分析单元22可以确定DUT配置对象15与序列化数据19的不同部分之间的关联性。基于DUT配置对象15与序列化数据19的不同部分之间的关联性,后端分析模块22可以响应于配置参数而生成代表预测DUT 16的操作状态的DUT 16的ML模型20。
例如,假设出于示出DUT 16是路由器之目的,序列化数据19可以包括上述资源利用数据,其再次可以包括下列中的一项或多项:由路由器执行的每个路由守护进程的处理利用、由路由器执行的每个路由守护进程的存储器利用、路由器的包转发引擎(PFE)中的处理器利用、以及路由器的PFE中的存储器利用。在该示例中,序列化数据19中的特征使用数据可以定义对等、群组、路由实例、用户边缘(CE)设备、CE接口、以及路由的不同数量、以及定义每个路由的类型。后端分析单元22可以识别对等的数量、群组地数量、路由实例的数量、用户边缘(CE)设备的数量、CE接口的数量、路由的数量、以及每个路由的类型中的一项或多项之间、以及由路由器执行的每个路由守护进程的处理利用、由路由器执行的每个路由守护进程的存储器利用、路由器的包转发引擎(PFE)中的处理器利用、以及路由器的PFE中的存储器利用中的一项或多项之间的关联性。
因为模型生成需要模拟之间的一定程度的可变性来确保DUT 16的完整表示,所以后端分析单元22可以确定每个非冗余对的序列化数据19之间的相似度。尽管每个参数范围内的随机采样可以提供一种使每个模拟期间所收集的操作数据多样化的方案,然而,由于参数28A中所预定义的阈值逻辑,全部随机化是不可能的。即,特定参数在其分布方面被偏置,或者换言之,不是每个值以等量的方式统计性地随机化。
因此,考虑到特定参数值的偏置采样分布,后端分析单元22可以确定每个非冗余对的序列化数据19之间的相似度(其中,每个序列化数据19与同一模拟的不同迭代对应)。后端分析单元22可以响应于相似度与分集阈值的比较而选择序列化数据19的子集。在本公开中,参考“子集”旨在指具有比更大集合中的元素的总数量更少的数据的“非零子集”,除非另有明确规定,并且并非指包括更大集合中的零个或多个元素、多至更大集合中的全部元素的子集的严格数学定义。驱动器12可以选择序列化数据19的实例的子集来减少偏置,并且由此响应于配置参数而生成更好地预测DUT 16的操作状态的更完整的ML模型20。
在一些实例中,后端分析模块22可以相对于序列化数据19执行机器学习(例如,指示序列化数据19的DUT配置对象的特征使用数据与序列化数据19的资源利用数据之间的上述识别关联性),以生成DUT 16的ML模型20。后端分析模块22首先可以执行数据清理,在此期间,后端分析模块22可以补全丢失的值并且滤除序列化数据19的异常值。后端分析模块22还可以累积一些数据(例如,以确定不同路由协议之间的路由的总数量)。接着,后端分析模块22可以执行特征工程化,在此期间,后端分析模块22可以将序列化数据19分割成不同的类别并且对序列化数据19的每个类别进行规范化。后端分析模块22可以相对于不同子模型的序列化数据19的每个类别执行模型校准,包括线性和非线性子模型。在对每个子模型进行校准之后,后端分析模块22可以执行模型验证,包括k-文件夹交叉验证和前向链接验证。
子模型各自可以预测上述DUT 16的操作状态的一个指定类别。即,第一子模型可以预测由路由器执行的每个路由守护进程的处理利用,第二子模型可以预测由路由器执行的每个路由守护进程的存储器利用,第三子模型可以预测路由器的包转发引擎(PFE)中的处理器利用,并且第四子模型可以预测路由器的PFE中的存储器利用。在一些实例中,给定子模型可以预测DUT 16的两个或多个上述操作状态。在任意情况下,子模型的集合可以构成机器学习模型。
在模型验证期间,后端分析单元20可以将DUT配置对象15的实例和/或DUT 16的其他配置数据(通常可以被称为配置参数)输入至ML模型20中,以生成预测操作数据、并且将预测操作数据与针对DUT配置对象15的同一实例所收集的对应操作数据17进行比较。当ML模型20生成实际操作数据17的阈相似度内的预测操作数据时,后端分析单元20可以验证与DUT 16充分相似,以使得其可以部署用于预测分析。然后,后端分析单元22可以将配置对象迭代地输入至ML模型20中,以收集反映DUT 16的预测操作状态的预测操作数据,从而将预测操作数据存储至数据库24。后端分析单元22可以包括用户界面(UI)模型26,后端分析单元22通过用户界面(UI)模型26与数据库24及其他可视化工具对接,以与预测操作数据交互。
在生成预测DUT 16的操作状态的ML模型20时,建模环境10可以允许DUT 16的用户在资源消耗方面更好地理解DUT 16的实际能力,由此允许用户更好地理解现有的设备部署。进一步地,用户可以利用模型来更好地理解需要具有特定配置的多少对应设备来满足已配置服务的预期需求。该建模可以允许用户更好地理解设备部署、每个设备的服务部署、以及规划满足预期需求地设备采购。如此,ML模型20可以允许对实际环境内的现有与未来设备部署的更好可见性。
即,ML模型20允许用户从资源消耗方面理解服务如何影响DUT 16及DUT 16内执行的其他服务。而且,ML模型20允许用户更好地理解哪些服务最为影响性能和/或规模。进一步地,ML模型20可以通过自动化方式反映DUT 16的缺陷,诸如存储器泄露,并且由此可以促进质量保证,同时还验证了性能并且提供对DUT 16的操作系统的更新的详细理解。给定特定的配置状态,ML模型20还可以预测收敛性。此外,ML模型20可以提供关于将客户放置到边缘网络上的指导。在2018年3月22日提交的题为“AUTOMATED NETWORK DEVICE MODELCREATION USING RANDOMIZED TEST BEDS”的美国专利号11,093,666中可以找出关于ML模型20和模型生成的更多信息,如同此处整体阐述的,通过引用而特此结合其内容。
在该方面,测试床14可以促进对DUT 16的更好理解,并且当被配置为支持各种服务时,允许对DUT 16的各个操作参数(操作数据17)进行详细地数据收集。该详细的数据收集可以允许对DUT 16进行大量地建模,从而可以使得创建便于预测不同网络环境中的资源利用的虚拟测试设备(例如,机器学习模型)。
然而,代表虚拟测试设备的ML模型20在执行时可能消耗大量的计算资源(例如,处理器周期、存储器、存储器总线带宽等),从而使得不适合于部署在实际的操作环境内。如上所述,ML模型20便于在实际操作环境外进行的设备部署规划、离线质量保证、性能验证等,诸如服务供应商、操作服务供应商网络的情况。由于支持操作环境的网络设备中的资源专用于支持操作环境中的服务交付并且不可用于复杂的机器学习模型的低效执行,ML模型20不适于部署在操作环境中。因此,支持操作环境的网络设备可能缺少执行复杂的ML模型20所需的计算资源(并且可以被称为计算资源受限的网络设备)。
而且,ML模型20自身可能难以保持。ML模型20需要大量的输入(例如,上述配置参数和/或配置对象)及对应的输出(例如,操作状态17),以对ML模型20进行适当地训练。DUT16的硬件和/或软件的任意变化可能需要完整地重复模拟来收集足够的输入及对应的输出,之后,进行大量的机器学习来创建复杂(就计算资源消耗而言)的更新版本地ML模型20。由于硬件和/或软件开发之间的交互继续减少,保持ML模型20处于完全更新的容量变得困难。
根据本公开中所描述的技术的各种方面,建模环境10能够使用测试环境14(或换言之,测试床14)实现DUT 16的自动化建模,测试环境14生成就计算资源利用方面而言较轻(与ML模型20相比较)的DUT 16的轻量级(LW)模型40。通过测试床14和DUT 16的大量配置与重新配置而形成的模型20可能消耗大量的计算资源(例如,处理器周期、存储器、存储器总线带宽等)。为了潜在地克服该计算资源利用与模型升级难度,后端分析单元22可以在模拟期间对DUT 16的DUT配置15(可以表示DUT 16的指定配置参数)和DUT 16的操作状态17执行多项式回归分析,这可以允许建立线性、非线性等的关系以构成能够由计算资源受限的设备(例如,网络设备,诸如路由器、交换机、集线器等;场可编程门阵列-FPGA;专用集成电路-ASIC、虚拟机等)执行的LW模型40。
在操作中,后端分析单元22可以相对于DUT配置15和操作数据17执行回归分析,以生成代表DUT 16的LW模型40,当配置有由DUT配置15表示的配置参数的相同或不同实例时,LW模型40响应于DUT 16的配置参数28来预测网络设备的操作状态。后端分析单元22可以执行任意形式的回归分析,包括线性回归分析、非线性回归分析(诸如多项式回归分析)、指数式分析等。关于所执行的回归分析的形式,后端分析单元22可以识别DUT配置15与操作数据17(可以表示DUT 16的操作状态并且因此还可以被称为“操作状态17”)之间的关系,该关系表示为一个或多个系数。后端分析单元22可以接着使用一个或多个系数配置回归模型以获得LW模型40。
针对特定形式(或多种特定形式)的回归分析的选择可能需要分析给定测试环境的输入(例如,DUT配置15)和输出(例如,操作数据17),包括DUT 16的类型。在建模环境10的示例中,其中,测试环境14对网络进行模拟并且假设DUT 16表示网络设备(即,贯穿本公开的该示例及其他示例中的路由器),后端分析单元22可以被配置为相对于DUT配置15和操作数据17执行多项式回归分析,以生成LW模型40。
在执行多项式回归分析时,后端分析单元22可以获得定义DUT配置15与操作数据17之间的关系的一个或多个多项式系数和一个或多个截距。为了实现特定阈的准确度,后端分析单元22可以使用特定数量的多项式系数对多项式回归分析进行配置,以得到DUT配置15与操作数据17之间的关系。即,较少的多项式系数仅可以粗略地(例如,具有50%或更大的准确度)预测操作数据。使用两个或更多个多项式系数能够满足更高的准确度阈值(例如,80%以上)。
后端分析单元22可以通过针对DUT配置15与操作数据17之间的关系的不同结果来进行迭代,直至实现规定的准确度阈值,从而增加多项式系数的数量,直至能够确保预测准确度的特定结果。即,后端分析单元22可以执行回归分析,以在阈值准确度内将DUT配置15与操作数据17之间的关系识别为拟合,从而确保规定的准确度。该阈值准确度可以包括多个阈值准确度,其中,特定的预测结果(例如,97%的预测结果)满足第一阈值准确度97%并且其余预测结果(例如,3%的预测结果)满足第二阈值准确度80%,由此确保全部预测结果满足全部阈值准确度80%。该准确度保证能够实现LW模型40的可靠执行。
在任意情况下,后端分析单元22可以利用多项式系数(例如,两个多项式系数)对多项式回归模型进行配置来获得LW模型40。如上所述,与相对于配置参数和对应的操作数据的ML模型20的执行相比较,LW模型40可以被配置为在该LW模型40的执行期间消耗更少的计算资源。然后,当计算资源受限的网络设备配置有配置参数时,后端分析单元22可以存储或另外输出用于计算资源受限的网络设备的LW模型40,以能够预测计算资源受限的网络设备的操作状态。如此,如下面参考图2的示例更为详细描述的,本公开所描述的技术的各种方面可以通过开发LW模型40来扩展执行模型,以允许在特定的资源受限设备中开发LW模型40而利于特定的使用情况。
图2是示出代表部署在实现本文所描述的技术的各种方面的操作环境中的网络设备的示例性路由器210的框图。尽管被描述为代表部署在操作环境中的网络设备的路由器210,然而,路由器210还可以表示图1的示例所示的DUT 16。应当理解的是,任意类型的DUT(包括DUT 16)可以表示被配置为部署在操作环境中的网络设备,因此,由于设备能够支持操作环境而便于准确地开发LW模型40,如果不同,DUT 16应相似。
如图2的示例中所示,路由器210包括控制单元212、交换结构214、以及多个包转发引擎(PFE)216A-216N(“PFE 216”)。控制单元212可以表示执行软件指令的一个或多个处理器(图2中未示出),诸如用于存储至非易失性计算机可读介质(再次,图2中未示出)的定义软件或计算机程序,该非易失性计算机可读介质诸如存储设备(例如,盘驱动或光学驱动)、或存储器(诸如闪存存储器、随机访问存储器RAM)、或存储指令的任意其他类型的易失性或非易失性存储器,该软件指令在被执行时,使一个或多个处理器执行本文所描述的技术。
可替代地,控制单元212可以表示用于执行本文所描述的技术的专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个场可编程门阵列(FPGA)、或一个或多个专用硬件的上述示例的任意组合。通常,即使被实现为专用硬件,专用硬件也支持可以实现本公开中所描述的技术的一个或多个方面的软件的执行。因此,通常可以在硬件或硬件与软件的组合中实现技术。
控制单元212包括为路由器210提供控制平面功能的路由引擎218。路由引擎226通常表示这样的模块,即,提供将网络拓扑存储为所谓的“路由表”的形式的控制平面功能,从而执行路由协议来与对等路由设备进行通信。并且由此保持并且更新路由表,并且提供管理接口来允许用户访问并且配置路由器210。
在图2的示例中将管理接口示出为接口模块220。控制单元212包括便于与路由器210进行通信的接口模块220。接口模块22可以表示任意常见类型的接口,包括命令行接口(CLI)或图形用户界面(GUI)。接口模块220可以包括与将数据键入路由器210的部件交互所需的任意接口。当路由器210表示DUT 16时,接口模块220还可以表示这样的一个或多个接口,驱动器12通过其可以输入设备配置31,并且收集器18通过其可以输入命令35来获得报告17并且发起系统日志37的输出。
交换结构214提供用于将传入的数据包转发至一个正确的PFE 216、以通过网络进行传输的高速互连,诸如通常被称为“互联网”的大型公共网络。PFE 216经由相关联的接口卡(IFC)222A-222N(“IFC 222”)接收并且发送数据包。每个IFC 222可以表示通信链路与路由器210之间的接口或端口,路由器210通过该接口或端口发送并且接收数据包。每个PFE216可以包括控制单元230A-230N(“控制单元230”)中的一个控制单元,每个控制单元可以与控制单元212相似。每个控制单元230可以包括专门针对包处理而设计的专用硬件和中央处理单元(CPU)的组合,该中央处理单元用于配置该专用硬件并且能够另外实现路由引擎218与该专用硬件之间的通信。IFC 222与PFE 216可以结合交换结构214构成负责根据转发信息来转发数据包的“数据平面”(也可以被称为“转发平面”)。每个PFE 216还可以包括一个存储器(“MEM”)234A-234N(“MEM 234”)。
如图2的示例中所示,路由引擎218包括CPU 240(可以代表一个或多个CPU 240)和存储器242(“MEM 242”,也可以代表一个或多个存储器)。数据收集工具18可以经由接口模块220与路由器210进行对接,以收集指示每个路由守护进程的CPU 240的利用并且指示每个路由守护进程的MEM 242的利用的操作数据17。数据收集工具18还可以经由接口模块220与路由器210对接,以收集指示CPU 232的利用并指示MEM 234的利用的操作数据。
如此,数据收集工具18可以与路由器210对接,以收集指示路由器210的操作状态的操作数据17并且由此便于构建可以允许对路由器210进行更准确地建模地模型。更准确的模型可以产生上面详细讨论的益处、改进网络规划、并且更好地利用现有的路由器,这可以改进网络自身的性能。
如图2的示例中进一步示出地,路由引擎218可以存储路由信息(RI)250和配置数据(CD)252(至存储器242)。路由信息250描述了操作环境的拓扑(例如,网络),其中,路由器210支持由操作环境提供的服务并且具体地通过网络进行路由。例如,路由信息250可以包括描述网络内的各个路由的路由数据以及指示每个路由的网络内的适当相邻设备的对应下一跳数据。对路由信息250进行周期性地更新,以准确地反映网络的拓扑。通常,路由器210经由入站网络链路接收包,并且控制单元212确定包的目的地地址并且基于目的地在出站网络链路上输出包。
控制单元212可以经由接口模块220从一个或多个客户端设备接收配置输入。控制单元212可以将从一个或多个客户端设备接收的配置输入存储为配置数据(CD)252,配置数据252可以采用文本文件地形式,诸如ASCII文件。可替代地,控制单元212可以对配置输入进行处理并且生成多种形式中的任意一种形式的配置数据252,诸如一个或多个数据库、表格、数据结构等。
在任意情况下,响应于接收配置数据252,控制单元212可以调用LW模型40,以基于配置数据252而获得预测操作数据(POD)254。在一些实例中,控制单元212可以接收配置数据252、但抑制调用LW模型40,直至经由接口模块220接收特定的命令(诸如所谓的“提交”命令)。
作为一个示例,用于在目标设备上轻量级地执行模型40的样本伪码如下。
样本python脚本采用coef_intercept.txt(下面再现的示例)并且提供轻量级模型对接服务。
当调用LW模型40时,控制单元212可以将配置数据252作为输入传递至LW模型40,LW模型440可以进行处理来获得预测配置数据254。LW模型440可以应用利用之前(基于上面参考图1所讨论的回归分析)确定的多项式系数和截距所配置的多项式回归模型来预测规定的阈值准确度(例如,80%或甚至可能更高,诸如95%)内的操作数据254。LW模型440可以输出预测操作数据254,该预测操作数据254表示相对于配置参数(由配置数据252定义)的变化对路由器210的操作状态的预测。
响应于接收预测操作数据(POD)254,控制单元212可以将预测操作数据254与一个或多个操作状态阈值(OST)256进行比较。给定基层硬件(或换言之,计算)资源,操作状态阈值256可以被专门配置为适应不同的设备类型(例如,路由器、交换机、集线器、接入点等)或甚至不同版本的同一设备类型(例如,边缘路由器、核心路由器等),以避免过度利用计算资源而导致性能下降和/或出现故障。
在任意情况下,在提交配置参数的变化之前,控制单元212可以确定预测操作数据254是否超过一个或多个操作状态阈值256。如果预测操作数据254超过一个或多个操作状态阈值256,则控制单元212可以抑制提交配置数据252(有效地导致无法在路由引擎218及其他地方(诸如转发平面)内实现配置数据252)。如果预测出操作数据254未超过一个或多个操作状态阈值256,则控制单元212可以提交配置数据252。因此,仅当预测配置参数的变化未导致路由器210的操作状态超过操作状态阈值256时,控制单元212才可以提交配置参数(由配置数据252表示)的变化。
通过开发LW模型50来扩展执行模型,由此能够在特定的资源受限设备(诸如路由器210,其中,大多数计算资源专用于路由)中开发LW模型40而便于特定的使用情况。例如,路由器210可以通过上述方式部署LW模型40,以预测尚未提交的配置数据252的计算资源消耗。如果预测资源利用(由预测操作数据254表示)未超过资源利用阈值(由操作状态阈值256表示),则路由器210可以提交配置数据252。否则,如果预测资源利用超过一个或多个资源利用阈值,路由器210则可以拒绝提交配置数据252,由此防止路由器210的错误配置导致出现错误操作、故障等。
因此,本公开所描述的技术的各种方面可以改进网络设备自身的操作。例如,在提交配置数据252之前,路由器210可以执行(在设备上给定所消耗的低计算资源)LW模型40,以基于配置数据252预测资源利用。在设备上执行LW模型40可以建立另一层安全性,以防止在提交来自多个不同网络管理员的复杂配置数据252之前发生错误配置(经由上述客户端设备和/或网络管理系统)。由此,路由器210可以防止路由器210的错误配置,即,可能导致错误操作(例如,由于计算资源过度利用)、网络流量下降(例如,再次由于计算资源过度利用)、和/或故障。给定大多数的网络设备由于缺少执行复杂机器学习模型的足够计算资源而无法执行机器学习模型,由此,应用LW模型40可以改进网络设备自身的操作。
尽管上面相对于路由器210进行了描述,然而,LW模型40的开发和部署可以应用于其他上下文。例如,虚拟机可以通过上面相对于模拟数据中心的测试床所描述的方式进行模拟。然后,给定变化的工作流(或换言之,任务)、变化的网络包流、变化的虚拟化方案等,后端分析单元22可以开发用于虚拟机的LW模型,该LW模型随后能够被部署至相似的虚拟机以预测虚拟机的操作状态。虚拟机可以部署该LW模型以预测资源利用,以请求支持虚拟机所分配的额外资源,由此潜在地自动扩展跨虚拟机的资源利用,以可以实现数据中心资源的更有效的利用(就基层处理器利用、存储器利用、网络带宽利用、相关联的功能等方面而言)。因此,上述技术可以应用于上述示例性的网络上下文之外并且可以应用于任意计算设备,其中,LW模型的开发可以有益于在不牺牲大量基层计算资源的情况下预测计算设备的操作状态,以支持该预测。
图3是示出根据本公开所描述的技术的各种方面获得图1的示例所示的用于设备上操作状态预测的轻量级模型的测试系统的示例性操作的流程图。初始,测试系统10可以基于DUT 16的配置参数28在测试环境14内进行模拟迭代,以收集代表DUT 16的操作状态的对应的操作数据17(300)。
后端分析单元22可以相对于DUT配置15和操作数据17执行回归分析,以生成代表DUT 16的LW模型40,当DUT 16配置有由DUT配置15表示的配置参数的相同或不同实例时,LW模型40响应于DUT 16的配置参数预测DUT 16的操作状态(由操作数据17表示)(302)。后端分析单元22可以执行上述任意形式的回归分析。不管执行的回归分析的形式如何,后端分析单元22可以识别DUT配置15与操作数据17(可以表示DUT 16的操作状态并且因此也被称为“操作状态17”)之间的关系,该关系表示为一个或多个系数。接着,后端分析单元22可以使用一个或多个系数配置回归模型来获得LW模型40。
下面示出了用于将模型20有效地转换成生成LW模型40的式子的系数的示例性伪码。
下面Python脚本有助于从拼贴文件格式生成的标准模型中提取系数和截距。
尽管上面相对于值的模拟进行了描述,然而,可以通过LW模型40预测值来预测操作状态。在该方面,由于用户(例如,网络管理员)可以调用LW模型40以从命令行接口或任意其他接口预测操作状态,存在使用LW模型40的多种方式。
所提取的系数和截距可能与下列相似:
------------START-----------
coef_
0.0
0.6983823288383693
-167.175650449061
3594.4140676937513
10789.04665064319
981.419392849983
5.18538620704527e-08
0.0011025353763208195
0.3854971297757422
0.024074439192127102
0.8314773006680882
-105.33140703170375
-21.433233390334046
461.7365041784043
-178.3386092332355
-40.50223522972955
230.86030741156165
-799.8218368982072
-961.024467855721
10789.046650643197
981.4193928501733
intercept_
211769.90850101272
------------END----------
后端分析单元22可以通过针对DUT配置15与操作数据17之间的关系的不同结果进行迭代,直至实现规定的准确度阈值,从而增加多项式系数的数量,直至能够以预测准确度确保特定的结果。即,后端分析单元22可以执行回归分析,以在阈值准确度内将DUT配置15与操作数据17之间的关系识别为拟合,从而确保规定的准确度。该阈值准确度可以包括多个阈值准确度,其中,特定的预测结果(例如,97%的预测结果)满足第一阈值准确度97%,并且其余预测结果(例如,3%的预测结果)满足80%的第二阈值准确度,由此确保全部预测结果满足80%的整体阈值准确度。该准确度保证能够实现LW模型40的可靠执行。
然后,后端分析单元22可以存储或另外输出用于计算资源受限的网络设备的LW模型40,以能够在计算资源受限的网络设备配置有配置参数时,预测计算资源受限的网络设备的操作状态(304)。如此,如下面参考图2的示例更为详细描述的,本公开中所描述的技术的各种方面可以通过开发LW模型40来扩展模型的执行,以允许在特定的资源受限设备中开发LW模型40从而便于特定的使用情况。
通过转换成LW模型40来扩展模型20的执行允许在特定的资源受限设备中开发LW模型40以便于特定的使用情况。例如,路由器(出于易于示出之目的而未示出)可以部署LW模型40来预测尚未提交的配置数据的计算资源消耗。然后,如果预测资源利用未超过资源利用阈值,路由器可以提交配置数据,或者如果预测资源利用超过一个或多个资源利用阈值,则可以拒绝提交配置数据。下面讨论了额外的使用情况。
PFE ASIC资源评估
·包转发引擎(PFE)ASIC使用转发结构(与数据结构相似)执行类似路由查询表、包滤波等的包转发功能。
·使用存在于ASIC中的资源及附接至这些ASIC的存储器芯片中的资源来构建转发结构。该资源的示例包括:
·片外存储器,存储包查询数据结构、包封装字符串、防火墙过滤原语、计数器等
·片上存储器、表格等
·片外TCAM存储器
·转发平面所使用的资源量取决于各种因素。资源利用与这些因素之间的相互关系是复杂的并且并不易于分析建模。
PFE资源1-查询存储器
·用于构建包查询表/树。
·一定量的查询存储器所使用的一些因素取决于:
·不同地址族的路由表的数量
·每个表格中的路由的数量
·每个表格中的前缀的分布
·向表格添加前缀的顺序
·是否支持一些前缀的负载平衡、负载平衡的扇出
·是否支持路由级计数器
PFE资源2-下一跳处理存储器
·用于在被发送至下一路由器/交换机之前保持将3层至1层封装重写至包中所需的全部状态
·下一跳存储器所使用的量取决于:
·下一跳的类型
·不同类型的下一跳的数量
·出口接口的类型(确定1/2层封装信息)
·所推送的MPLS标签
·其他特征,如:采样,
·许多以上项取决于高级因素,如:
·源于PFE的外部接口的数量
·能够在这些接口上实现的控制平面协议(传输与服务层)
2层地址学习守护进程(L2ALD)存储器
·L2ALD负责创建并且管理以太网桥接功能所使用的MAC路由
·L2ALD存储器可用性对系统所支持的全部L2桥接功能至关重要
·处理本地MAC学习(新MAC路由的基于HW的学习)和控制平面驱动的EVPN MAC学习两者
·EVPN MAC学习涉及与路由协议守护进程(RPD)的密切交互
·L2ALD存储器利用取决于许多因素,一些突出的因素如下:
·交换/桥接实例与转发表的数量
·表格中的活跃MAC地址的数量
·MAC老化参数
·随时间的每个MAC流量流
·基于EVPN的表格的数量
·学习EVPN的MAC地址的数量
换言之,路由引擎软件的软件资源消耗能够基于贡献于路由协议的功能的属性而极大地改变。其可能高度有利于提前预见消耗模式,以避免系统不能支持操作网络中的资源需求时可能产生的昂贵支出。然而,给定贡献于资源消耗的变量的数量以及属性的动态添加和省略以及各个属性之间的相互关系,这些预测可能不是特别直接的并且涉及复杂的计算和分析。本文所描述的技术的各种方面可以使用LW模型40来有效地预测实时网络中的路由协议软件的资源消耗。
作为示例,提供RPD进程的存储器利用作为下列原因地使用情况:
·RPD是JUNOS的潜在至关重要的一部分;实现控制平面的大部分
·可能需要足够的资源(CPU、存储器、…)以顺利地执行
·由于资源不可用-远距离对整个网络的影响,出现RPD故障
·系统存储器的最大用户当中
·RPD存储器利用取决于通过复杂方式进行组合的多种因素
·存储器足迹可能因版本不同而改变
·存储器利用可以由于配置变化或网络的其他部分中的变化而改
变
·存储器利用取决于整个网络中所呈现的特定状态的规模
·评估RPD存储器利用可以有助于:
·确保系统可以支持其用于下面各种情景
·确保足够的存储器缓冲,以处理在网络收敛情况期间所发生的存储器消耗的暂时性增长
·例如,如BGP、OSPF等的协议
·评估RPD存储器利用有助于:
·检查软件升级或配置变化或规模变化是否能够产生RPD存储器利用;并且其是否位于安全裕度内
由此,本文所描述的技术的各种方面潜在地解决以下项:
·引入在执行时计算路由引擎软件资源消耗的机制
·预测执行时的资源利用。
图4是示出根据本公开的一种或多种技术进行操作的计算设备的一个示例的进一步细节的框图。图4可以示出包括用于执行任一个或多个驱动器12的一个或多个处理器502、或者本文所描述的任意其他应用的服务器或其他计算设备500的具体示例。可以在其他实例中使用计算设备500的其他示例。出于示例性之目的,尽管图4中计算设备500被示出为单独的,然而,计算设备可以是任一部件或系统(包括用于执行软件指令的一个或多个处理器或者其他合适的计算环境),并且例如,并不必包括图4所示的一个或多个元件(例如,通信单元506;并且在一些示例中,诸如存储设备508的部件可能不与其他部件位于同一位置或同一机架中)。
如图4的示例中所示,计算设备500包括一个或多个处理器502、一个或多个输入设备504、一个或多个通信单元506、一个或多个输出设备512、一个或多个存储设备508、以及用户界面(UI)设备510。在一个示例中,计算设备500还包括一个或多个应用522、驱动器12、以及可由计算设备500执行的操作系统516。部件502、504、506、508、510、以及512中的每个进行(物理、通信、和/或操作的)耦接以用于部件间的通信。在一些示例中,通信信道514可以包括系统总线、网络连接、进程间通信数据结构、或用于通信数据的任意其他方法。作为一个示例,部件502、504、506、508、510、以及512可以通过一个或多个通信信道514而耦接。
在一个示例中,处理器502被配置为实现用于在计算设备500内执行的功能和/或过程指令。例如,处理器502能够对存储在存储设备508中的指令进行处理。处理器502的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、或等同离散或集成的逻辑电路中的任一个或多个。
一个或多个存储设备508可以被配置为在操作期间将信息存储在计算设备500内。在一些示例中,将存储设备508描述为计算机可读存储介质。在一些示例中,存储设备508是临时存储器,指存储设备508的主要目的不是长期存储。在一些示例中,将存储设备508描述为易失性存储器,指存储设备508在计算机关闭时并不保存所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、以及本领域中已知的其他形式的易失性存储器。在一些示例中,存储设备508用于存储由处理器502执行的程序指令。在一个示例中,由在计算设备500上执行的软件或应用所使用的存储设备508在程序执行期间临时存储信息。
在一些示例中,存储设备508还包括一个或多个计算机可读存储介质。存储设备508可以被配置为存储比易失性存储器更大量的信息。存储设备508可以被进一步配置为用于信息的长期存储。在一些示例中,存储设备508包括非易失性存储元件。该非易失性存储元件地示例包括磁性硬盘、光盘、软盘、闪存存储器、或者电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。
在一些示例中,计算设备500还包括一个或多个通信单元506。在一个示例中,计算设备500利用通信单元506经由一个或多个网络(诸如一个或多个有线/无线/移动网络)与外部设备进行通信。通信单元506可以包括网络接口卡,诸如以太网卡、光学收发器、射频收发器、或能够发送并且接收信息的任意其他类型的设备。该网络接口的其他示例可以包括3G和WiFi无线电。在一些示例中,计算设备500使用通信单元506与外部设备进行通信。
在一个示例中,计算设备500还包括一个或多个用户界面设备510。在一些示例中,用户界面设备510被配置为通过触觉、音频、或视频反馈从用户接收输入。用户界面设备510的示例包括存在敏感显示器、鼠标、键盘、语音响应于系统、摄像机、麦克风、或用于检测来自用户的命令的任何其他类型的设备。在一些示例中,存在敏感显示器包括触摸敏感屏。
计算设备500中还可以包括一个或多个输出设备512。在一些示例中,输出设备512被配置为使用触觉、音频、或视频模拟将输出提供给用户。在一个示例中,输出设备512包括存在敏感显示器、声卡、视频图形适配器卡、或用于将信号转换成人类或机器可理解的适当形式的任意其他类型的设备。输出设备512的额外示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)、或能够生成到用户的智能输出的任意其他类型的设备。
计算设备500可以包括操作系统516。在一些示例中,操作系统516控制计算设备500的部件的操作。例如,在一个示例中,操作系统516促进一个或多个应用522和驱动器12与处理器502、通信单元506、存储设备508、输入设备504、用户界面设备510、以及输出设备512的通信。应用522和驱动器12还可以包括由计算设备500执行的程序指令和/或数据。
除上述内容之外或作为上述内容的可替代方案,对下列示例进行描述。本文所描述的任意其他示例可以利用任意下列示例中所描述的特征。
示例1.一种自动化网络设备的模型创建的方法,该方法包括:由一个或多个处理器基于网络设备的配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的操作数据;由一个或多个处理器相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应于网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且由一个或多个处理器输出用于计算资源受限的网络设备的轻量级模型,以在计算资源受限的网络设备配置有配置参数时,能够预测该计算资源受限的网络设备的操作状态。
示例2.根据示例1所述的方法,其中,执行回归分析包括:执行回归分析,以识别网络设备的配置参数与网络设备的操作状态之间的关系,该关系表示为一个或多个系数;并且使用一个或多个系数来配置回归模型以获得轻量级模型。
示例3.根据示例2所述的方法,其中,执行回归分析包括:执行多项式回归分析,以识别网络设备的配置参数与网络设备的操作状态之间的关系,该关系表示为一个或多个多项式系数和一个或多个截距;并且其中,配置回归模型包括:使用一个或多个多项式系数和一个或多个截距来配置多项式回归模型以获得轻量级模型。
示例4.根据示例3所述的方法,其中,多项式回归模型包括多项式基函数,该多项式基函数用于将网络设备的配置参数与网络设备的操作状态之间的表示为一个或多个多项式系数与一个或多个截距关系定义为的非线性关系。
示例5.根据示例3和4中任一项所述的方法,其中,一个或多个多项式系数包括表示网络设备的配置参数与网络设备的操作状态之间的关系的至多两个多项式系数。
示例6.根据示例2至5中任一项所述的方法,其中,执行回归分析包括:执行回归分析,以在阈值准确度内将网络设备的配置参数与网络设备的操作状态之间关系识别为拟合,以确保所规定的准确度。
示例7.根据示例1至6中任一项所述的方法,其中,输出轻量级模型包括:输出用于安装在计算资源受限的网络设备上的轻量级模型,以能够在提交配置参数的变化之前预测相对于该配置参数的变化的网络设备的操作状态,并且仅当预测出配置参数的变化未导致网络设备的操作状态超过阈值操作状态时,才提交配置参数的变化。
示例8.根据示例1至7中任一项所述的方法,其中,计算资源受限的网络设备包括具有控制平面和转发平面的路由器;并且其中,转发平面包括包转发引擎。
示例9.根据示例1至8中任一项所述的方法,其中,操作数据包括指示网络设备内的资源利用的资源利用数据;并且其中,资源利用数据包括以下项中的一项或多项:在每次模拟期间由网络设备执行的每个控制平面应用的资源利用、以及在每次模拟期间网络设备的PFE中的存储器利用。
示例10.一种被配置为自动化网络设备的模型创建的设备,该设备包括:一个或多个处理器,被配置为:基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应于该配置参数的网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在预测计算资源受限的网络设备配置有配置参数时,能够预测该计算资源受限的网络设备的操作状态;以及存储器,被配置为存储轻量级模型。
示例11.根据示例10所述的设备,其中,当被配置为执行回归分析时,一个或多个处理器被配置为:执行回归分析,以识别网络设备的配置参数与网络设备的操作状态之间的关系,该关系表示为一个或多个系数;并且使用一个或多个系数来配置回归模型以获得轻量级模型。
示例12.根据示例11所述的设备,其中,当被配置为执行回归分析时,一个或多个处理器被配置为执行多项式回归分析,以识别网络设备的配置参数与网络设备的操作状态之间的关系,该关系表示为一个或多个多项式系数与一个或多个截距;并且其中,当被配置为配置回归模型时,一个或多个处理器被配置为使用一个或多个多项式系数和一个或多个截距来配置多项式回归模型以获得轻量级模型。
示例13.根据示例12所述的设备,其中,多项式回归模型包括多项式基函数,该多项式基函数用于将网络设备的配置参数与网络设备的操作状态之间的表示为一个或多个多项式系数与一个或多个截距的关系定义为非线性关系。
示例14.根据示例12和13中任一项所述的设备,其中,一个或多个多项式系数包括表示网络设备的配置参数与网络设备的操作状态之间的关系的至多两个多项式系数。
示例15.根据示例11至14中任一项所述的设备,其中,当被配置为执行回归分析时,一个或多个处理器被配置为执行回归分析,以在阈值准确度内将网络设备的配置参数与网络设备的操作状态之间的关系识别为拟合,以确保规定的准确度。
示例16.根据示例10至15中任一项所述的设备,其中,当被配置为输出轻量级模型时,一个或多个处理器被配置为输出用于安装在计算资源受限的网络设备上的轻量级模型,以能够在提交配置参数的变化之前预测相对于该配置参数的变化的网络设备的操作状态,并且仅当预测出配置参数的变化未导致网络设备的操作状态超过阈值操作状态时,才提交配置参数的变化。
示例17.根据示例10至16中任一项所述的设备,其中,计算资源受限的网络设备包括具有控制平面和转发平面的路由器;并且其中,转发平面包括包转发引擎。
示例18.根据示例10至17中任一项所述的设备,其中,操作数据包括指示网络设备内的资源利用的资源利用数据;并且其中,该资源利用数据包括以下项中的一项或多项:在每次模拟期间由网络设备执行的每个控制平面应用的资源利用、以及在每次模拟期间网络设备的PFE中的存储器利用。
示例19.一种非易失性计算机可读存储介质,其上存储有指令,当指令被执行以执行网络设备的模型创建时,使一个或多个处理器:基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表网络设备的轻量级模型,当网络设备配置有配置参数时,轻量级模型响应于该配置参数中的网络设备的配置参数来预测网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在计算资源受限的网络设备配置有配置参数时,能够预测计算资源受限的网络设备的操作状态。
示例20.一种系统,包括:计算设备,包括:一个或多个处理器,被配置为:基于配置参数在测试环境内执行多次模拟迭代中的每次模拟迭代,以收集代表第一网络设备的操作状态的对应的多个模拟数据集;相对于多个配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表第一网络设备的轻量级模型,当第一网络设备配置有配置参数时,轻量级模型响应于该配置参数中的第一网络设备的配置参数来预测第一网络设备的操作状态,与使用机器学习相对于配置参数和对应的操作数据而生成的模型的执行相比,轻量级模型被配置为在轻量级模型的执行期间消耗更少的计算资源;并且输出用于计算资源受限的网络设备的轻量级模型,以在配置有配置参数时,能够预测计算资源受限的网络设备的操作状态;与存储器,被配置为存储轻量级模型;以及第二网络设备,部署在操作环境中,以支持一种或多种服务的交付,第二网络设备包括:接口,被配置为接收配置参数;以及一个或多个处理器,被配置为:执行轻量级模型,以基于配置参数获得第二网络设备的预测操作状态;确定预测操作状态是否超过一个或多个操作状态阈值;并且只有预测操作状态未超过一个或多个操作状态阈值,才提交配置参数。
在该方面,至少可以部分在硬件、软件、固件、或其任意组合中实现本公开中所描述的技术。例如,可以在一个或多个处理器内实现所描述的技术的各种方面,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、或任意其他等同的集成或离散逻辑电路、以及该部件的任意组合。术语“处理器”或“处理电路”通常可以指单独或结合其他逻辑电路的任意上述逻辑电路、或任意其他等同电路。包括硬件的控制单元还可以执行本公开中的一种或多种技术。
可以在相同设备或独立设备内实现该硬件、软件、以及固件,以支持本公开中所描述的各种操作和功能。此外,所描述的任意单元、模块、或部件可以一起或单独地实现为离散、但可相互操作的逻辑设备。作为模块或单元的不同特征的描绘旨在突出不同的功能方面并且并不一定必须默示必须由单独的硬件或软件部件实现该模块或单元。确切地,与一个或多个模块或单元相关联的功能可以由单独硬件或软件部件执行、或被集成在共同或单独的硬件或软件部件内。
本公开中所描述的技术还可以涵盖或编码成包含指令的计算机可读介质,诸如非易失性的计算机可读介质或计算机可读存储介质。涵盖或被编码到计算机可读介质中的指令可以致使可编程处理器或其他处理器执行方法,例如,当执行指令时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、磁带盒、磁介质、光介质、或其他计算机可读存储介质。尽管术语“计算机可读介质”可以包括除物理存储介质之外的诸如信号的瞬态介质,然而,术语“计算机可读存储介质”指物理存储介质、而非信号或载体波。
Claims (20)
1.一种自动化网络设备的模型创建的方法,所述方法包括:
由一个或多个处理器基于所述网络设备的配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表所述网络设备的操作状态的对应的操作数据;
由所述一个或多个处理器相对于多个所述配置参数中的每个配置参数和多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表所述网络设备的轻量级模型,当所述网络设备配置有所述网络设备的所述配置参数时,所述轻量级模型响应于所述网络设备的所述配置参数来预测所述网络设备的所述操作状态,与使用机器学习相对于所述配置参数和对应的所述操作数据而生成的模型的执行相比,所述轻量级模型被配置为在所述轻量级模型的执行期间消耗更少的计算资源;并且
由所述一个或多个处理器输出用于计算资源受限的所述网络设备的所述轻量级模型,以在计算资源受限的所述网络设备配置有所述配置参数时,能够预测计算资源受限的所述网络设备的所述操作状态。
2.根据权利要求1所述的方法,其中,执行所述回归分析包括:
执行所述回归分析,以识别所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系,所述关系表示为一个或多个系数;并且
使用所述一个或多个系数来配置回归模型,以获得所述轻量级模型。
3.根据权利要求2所述的方法,
其中,执行所述回归分析包括:执行多项式回归分析,以识别所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系,所述关系表示为一个或多个多项式系数和一个或多个截距;并且
其中,配置所述回归模型包括:使用所述一个或多个多项式系数和所述一个或多个截距来配置多项式回归模型,以获得所述轻量级模型。
4.根据权利要求3所述的方法,其中,所述多项式回归模型包括多项式基函数,所述多项式基函数用于将所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的表示为所述一个或多个多项式系数和所述一个或多个截距的关系定义为非线性关系。
5.根据权利要求3所述的方法,其中,所述一个或多个多项式系数包括表示所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系的至多两个多项式系数。
6.根据权利要求2所述的方法,其中,执行所述回归分析包括:执行所述回归分析,以在阈值准确度内将所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系识别为拟合,以确保规定的准确度。
7.根据权利要求1所述的方法,其中,输出所述轻量级模型包括:输出用于安装在计算资源受限的所述网络设备上的所述轻量级模型,以能够在提交所述配置参数的变化之前预测相对于所述配置参数的所述变化的所述网络设备的操作状态,并且仅当预测出所述配置参数的所述变化未导致所述网络设备的所述操作状态超过阈值操作状态时,才提交所述配置参数的所述变化。
8.根据权利要求1所述的方法,
其中,计算资源受限的所述网络设备包括具有控制平面和转发平面的路由器;并且
其中,所述转发平面包括包转发引擎。
9.根据权利要求1所述的方法,
其中,所述操作数据包括指示所述网络设备内的资源利用的资源利用数据;并且
其中,所述资源利用数据包括以下中的一项或多项:在每次模拟期间由所述网络设备执行的每个控制平面应用的资源利用、以及在每次模拟期间的所述网络设备的PFE中的资源利用。
10.一种被配置为自动化网络设备的模型创建的设备,所述被配置为自动化网络设备的模型创建的设备包括:
一个或多个处理器,被配置为:
基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表所述网络设备的操作状态的对应的多个模拟数据集;
相对于多个所述配置参数中的每个配置参数和所述多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表所述网络设备的轻量级模型,当所述网络设备配置有所述网络设备的所述配置参数时,所述轻量级模型响应于所述配置参数中的所述网络设备的配置参数来预测所述网络设备的所述操作状态,与使用机器学习相对于所述配置参数和所述多个模拟数据集中的每个模拟数据集而生成的模型的执行相比,所述轻量级模型被配置为在所述轻量级模型的执行期间消耗更少的计算资源;并且
输出用于计算资源受限的所述网络设备的所述轻量级模型,以在所述网络设备配置有所述配置参数时,能够预测计算资源受限的所述网络设备的所述操作状态;以及
存储器,被配置为存储所述轻量级模型。
11.根据权利要求10所述的设备,其中,当被配置为执行所述回归分析时,所述一个或多个处理器被配置为:
执行所述回归分析,以识别所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系,所述关系表示为一个或多个系数;并且
使用所述一个或多个系数来配置回归模型以获得所述轻量级模型。
12.根据权利要求11所述的设备,
其中,当被配置为执行所述回归分析时,所述一个或多个处理器被配置为执行多项式回归分析,以识别所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系,所述关系表示为一个或多个多项式系数和一个或多个截距;并且
其中,当被配置为配置所述回归模型时,所述一个或多个处理器被配置为使用所述一个或多个多项式系数和所述一个或多个截距来配置多项式回归模型,以获得所述轻量级模型。
13.根据权利要求12所述的设备,其中,所述多项式回归模型包括多项式基函数,所述多项式基函数用于将所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的表示为所述一个或多个多项式系数和所述一个或多个截距的关系定义为非线性关系。
14.根据权利要求12所述的设备,其中,所述一个或多个多项式系数包括表示所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的关系的至多两个多项式系数。
15.根据权利要求11所述的设备,其中,当被配置为执行所述回归分析时,所述一个或多个处理器被配置为执行所述回归分析,以在阈值准确度内将所述网络设备的所述配置参数与所述网络设备的所述操作状态之间的所述关系识别为拟合,以确保规定的准确度。
16.根据权利要求10所述的设备,其中,当被配置为输出所述轻量级模型时,所述一个或多个处理器被配置为输出用于安装在计算资源受限的所述网络设备上的所述轻量级模型,以能够在提交所述配置参数的变化之前预测相对于所述配置参数的所述变化的所述网络设备的所述操作状态,并且仅当预测出所述配置参数的所述变化未导致所述网络设备的所述操作状态超过阈值操作状态时,才提交所述配置参数的所述变化。
17.根据权利要求10所述的设备,
其中,计算资源受限的所述网络设备包括具有控制平面和转发平面的路由器;并且
其中,所述转发平面包括包转发引擎。
18.根据权利要求10所述的设备,
其中,操作数据包括指示所述网络设备内的资源利用的资源利用数据;并且
其中,所述资源利用数据包括以下中的一项或多项:在每次模拟期间由所述网络设备执行的每个控制平面应用的资源利用、以及在每次模拟期间的所述网络设备的PFE中的资源利用。
19.一种非易失性计算机可读存储介质,其上存储有指令,所述指令在被执行以执行网络设备的模型创建时,使一个或多个处理器:
基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表所述网络设备的操作状态的对应的多个模拟数据集;
相对于多个所述配置参数中的每个配置参数和所述多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表所述网络设备的轻量级模型,当所述网络设备配置有所述网络设备的所述配置参数时,所述轻量级模型响应于所述配置参数中的所述网络设备的配置参数来预测所述网络设备的所述操作状态,与使用机器学习相对于所述配置参数和所述多个模拟数据集中的每个模拟数据集而生成的模型的执行相比,所述轻量级模型被配置为在所述轻量级模型的执行期间消耗更少的计算资源;并且
输出用于计算资源受限的所述网络设备的所述轻量级模型,以在所述网络设备配置有所述配置参数时,能够预测计算资源受限的所述网络设备的所述操作状态。
20.一种系统,包括:
计算设备,包括:
一个或多个处理器,被配置为:
基于配置参数在测试环境内执行多次模拟迭代中的每一次模拟迭代,以收集代表第一网络设备的操作状态的对应的多个模拟数据集;
相对于多个所述配置参数中的每个配置参数和所述多个模拟数据集中的每个模拟数据集执行回归分析,以生成代表第一网络设备的轻量级模型,当所述第一网络设备配置有所述第一网络设备的所述配置参数时,所述轻量级模型响应于所述配置参数中的所述第一网络设备的配置参数来预测所述第一网络设备的操作状态,与使用机器学习相对于所述配置参数和所述多个模拟数据集中的每个模拟数据集而生成的模型的执行相比,所述轻量级模型被配置为在所述轻量级模型的执行期间消耗更少的计算资源;并且
输出用于计算资源受限的网络设备的所述轻量级模型,以在所述计算资源受限的网络设备配置有所述配置参数时,能够预测所述计算资源受限的网络设备的操作状态;以及
存储器,被配置为存储所述轻量级模型;以及
第二网络设备,部署在操作环境中以支持一种或多种服务的交付,所述第二网络设备包括:
接口,被配置为接收所述配置参数;以及
一个或多个处理器,被配置为:
执行所述轻量级模型,以基于所述配置参数获得所述第二网络设备的预测操作状态;
确定所述预测操作状态是否超过一个或多个操作状态阈值;并且
仅当所述预测操作状态未超过所述一个或多个操作状态阈值,才提交所述配置参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/646,559 US11797408B2 (en) | 2021-12-30 | 2021-12-30 | Dynamic prediction of system resource requirement of network software in a live network using data driven models |
US17/646,559 | 2021-12-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116418664A true CN116418664A (zh) | 2023-07-11 |
Family
ID=80820076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210295816.6A Pending CN116418664A (zh) | 2021-12-30 | 2022-03-24 | 自动化网络设备模型创建的方法及设备、系统及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11797408B2 (zh) |
EP (1) | EP4207702A1 (zh) |
CN (1) | CN116418664A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11924054B1 (en) * | 2022-09-27 | 2024-03-05 | Schneider Electric (Australia) Pty Ltd. | Managing remote terminal communications |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003039070A2 (en) * | 2001-11-01 | 2003-05-08 | British Telecommunications Public Limited Company | Method and apparatus for analysing network robustness |
US7500158B1 (en) * | 2006-07-06 | 2009-03-03 | Referentia Systems, Inc. | System and method for network device configuration |
US7792770B1 (en) * | 2007-08-24 | 2010-09-07 | Louisiana Tech Research Foundation; A Division Of Louisiana Tech University Foundation, Inc. | Method to indentify anomalous data using cascaded K-Means clustering and an ID3 decision tree |
US8886779B2 (en) * | 2007-10-19 | 2014-11-11 | Oracle America, Inc. | Performance modeling for SOA security appliance |
US10866952B2 (en) * | 2013-03-04 | 2020-12-15 | Fisher-Rosemount Systems, Inc. | Source-independent queries in distributed industrial system |
US9600386B1 (en) * | 2013-05-31 | 2017-03-21 | Sandia Corporation | Network testbed creation and validation |
US10326674B2 (en) * | 2013-08-27 | 2019-06-18 | Purdue Research Foundation | Compressing trace data |
US9471452B2 (en) | 2014-12-01 | 2016-10-18 | Uptake Technologies, Inc. | Adaptive handling of operating data |
CA3026091A1 (en) * | 2016-06-02 | 2017-12-07 | Massachusetts Institute Of Technology | Apparatus and methods for optical neural network |
CN109716346A (zh) * | 2016-07-18 | 2019-05-03 | 河谷生物组学有限责任公司 | 分布式机器学习系统、装置和方法 |
US11277420B2 (en) * | 2017-02-24 | 2022-03-15 | Ciena Corporation | Systems and methods to detect abnormal behavior in networks |
US10560481B2 (en) * | 2017-06-16 | 2020-02-11 | Sap Se | Stereotyping for trust management in IoT systems |
US10671435B1 (en) * | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US10360214B2 (en) * | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
EP3528435B1 (en) * | 2018-02-16 | 2021-03-31 | Juniper Networks, Inc. | Automated configuration and data collection during modeling of network devices |
US11429862B2 (en) * | 2018-03-20 | 2022-08-30 | Sri International | Dynamic adaptation of deep neural networks |
US20200012890A1 (en) * | 2018-07-06 | 2020-01-09 | Capital One Services, Llc | Systems and methods for data stream simulation |
US10868732B2 (en) * | 2019-04-02 | 2020-12-15 | Sap Se | Cloud resource scaling using programmable-network traffic statistics |
US11277499B2 (en) * | 2019-09-30 | 2022-03-15 | CACI, Inc.—Federal | Systems and methods for performing simulations at a base station router |
US20220407841A1 (en) * | 2019-11-15 | 2022-12-22 | Naukowa i Akademicka Siec Komputerowa - Panstwowy Instytut Badawczy | A Method And Unit For Adaptive Creation Of Network Traffic Filtering Rules On A Network Device That Autonomously Detects Anomalies And Automatically Mitigates Volumetric (DDOS) Attacks |
CN112822032B (zh) * | 2019-11-18 | 2024-03-22 | 瞻博网络公司 | 网络的网络模型感知诊断 |
US11688111B2 (en) * | 2020-07-29 | 2023-06-27 | International Business Machines Corporation | Visualization of a model selection process in an automated model selection system |
CN116171532A (zh) * | 2020-08-10 | 2023-05-26 | 交互数字Ce专利控股有限公司 | 通信网络上的逐片ai/ml模型推断 |
US11611474B2 (en) * | 2020-12-28 | 2023-03-21 | Juniper Networks, Inc. | Edge controller with network performance parameter support |
US11157723B1 (en) * | 2021-02-12 | 2021-10-26 | Samsara Networks lac. | Facial recognition for drivers |
US20220400124A1 (en) * | 2021-06-14 | 2022-12-15 | Mellanox Technologies Ltd. | Network devices assisted by machine learning |
US20230069177A1 (en) * | 2021-08-18 | 2023-03-02 | Nvidia Corporation | Data center self-healing |
US20230128792A1 (en) * | 2021-10-23 | 2023-04-27 | Adobe Inc. | Detecting digital objects and generating object masks on device |
US11832116B2 (en) * | 2021-11-01 | 2023-11-28 | Verizon Patent And Licensing Inc. | Systems and methods for machine learning model augmentation using target distributions of key performance indicators in a wireless network |
-
2021
- 2021-12-30 US US17/646,559 patent/US11797408B2/en active Active
-
2022
- 2022-03-18 EP EP22163036.1A patent/EP4207702A1/en active Pending
- 2022-03-24 CN CN202210295816.6A patent/CN116418664A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4207702A1 (en) | 2023-07-05 |
US20230214304A1 (en) | 2023-07-06 |
US11797408B2 (en) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055453B2 (en) | Automated configuration and data collection during modeling of network devices | |
US10705808B2 (en) | Software defined network controller | |
US10445069B2 (en) | System and method for generating an application structure for an application in a computerized organization | |
US20140365196A1 (en) | Infrastructure Model Generation System And Method | |
US20210036922A1 (en) | Detect impact of network maintenance in software defined infrastructure | |
EP3780500A2 (en) | Network management with topology dependency and path generation | |
US11082293B2 (en) | System and method for validating correctness of changes to network device configurations | |
US20220094614A1 (en) | Systems for and methods of modelling, analysis and management of data networks | |
US11811610B2 (en) | Method and apparatus for holistic rendering of cloud network configuration | |
US20190296983A1 (en) | System and Method to Provide Network Insights for Correct and Efficient Network Configuration | |
EP4207702A1 (en) | Dynamic prediction of system resource requirement of network software in a live network using data driven models | |
WO2024089474A1 (en) | Method to efficiently update information regarding network infrastructure | |
CN114513437A (zh) | 一种网络测试方法、装置、介质及计算设备 |
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 |