CN110166312A - 使用随机测试床自动创建网络装置模型 - Google Patents

使用随机测试床自动创建网络装置模型 Download PDF

Info

Publication number
CN110166312A
CN110166312A CN201811389014.1A CN201811389014A CN110166312A CN 110166312 A CN110166312 A CN 110166312A CN 201811389014 A CN201811389014 A CN 201811389014A CN 110166312 A CN110166312 A CN 110166312A
Authority
CN
China
Prior art keywords
network equipment
data
configuration
routing
network
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.)
Granted
Application number
CN201811389014.1A
Other languages
English (en)
Other versions
CN110166312B (zh
Inventor
诺舍万·米恩瓦拉
朱光宇
戴维·通
何蔼
贾亚巴哈拉特·博杜
马修·杰里米·梅林
哈维尔·安蒂克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jungle Network
Original Assignee
Jungle Network
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jungle Network filed Critical Jungle Network
Publication of CN110166312A publication Critical patent/CN110166312A/zh
Application granted granted Critical
Publication of CN110166312B publication Critical patent/CN110166312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements 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)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开总体上描述了使用随机测试床自动创建网络装置模型的技术。包括处理器的装置可以被配置为执行这些技术。所述处理器可以基于模拟配置文件生成配置对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代。每个模拟迭代可以被配置为在测试环境内随机分配参数。所述驱动器可以基于配置对象在测试环境内进行每个模拟迭代,以收集表示网络装置的操作状态的模拟数据集。所述分析模块可以相对于每个模拟数据集执行机器学习,以生成模型,该模型响应于配置参数,当用网络装置的配置参数配置时,预测网络装置的操作状态。

Description

使用随机测试床自动创建网络装置模型
本申请要求2018年3月22日提交的美国专利申请No.15/928,932的 权益,该美国专利申请要求2018年2月16日提交的欧洲专利申请No. 18382090的权益,其全部内容通过引用结合于此。
技术领域
本发明涉及计算装置,更具体地,涉及计算装置的建模。
背景技术
测试床试图复制其中可能部署装置的环境。例如,测试床可以尝试复 制其中可以部署诸如路由器等网络装置的网络。在网络环境中,仅举几例, 测试床可以包括许多不同的路由器、交换机和终端用户设备,例如,电缆 调制解调器、数字用户线路(DSL)调制解调器、个人计算机、智能电话 或其他蜂窝手机装置、无线接入点等。
网络管理员可以将测试床配置为实现各种服务,提供被测装置(即, 本示例中的上述路由器),以支持各种服务。在测试期间,网络管理员可 以收集关于被测装置如何执行的信息,试图了解应该如何配置被测装置以 及应该在网络中部署多少被测装置来成功实现服务。
虽然测试床可能有助于更好地理解被测装置,但配置测试床通常很耗 时,需要手动输入所有配置数据才能成功实现服务。因为输入是手动的, 所以最终的配置往往与现实网络中的配置不同。由于配置与现实网络不 同,通常很难使用测试床来创建被测装置的真实模型,特别是考虑到路由 器和其他装置支持的配置中潜在的广泛可变性。
发明内容
描述了使用测试环境(或换言之,测试床)实现被测装置(DUT)自 动建模的技术。这些技术可以提供一种驱动器来自动配置DUT和测试床, 而不是依靠手动配置。驱动器可以尝试随机化配置,以更好地反映真实世 界的网络,从而获得更精确的模型,而不是使用遵循严格测试配置的逻辑 配置的测试床(例如,使用规则来排序和分配IP地址)。驱动器可以自动 迭代配置测试床和DUT,并根据迭代配置进行模拟。
在模拟期间,这些技术的各个方面可以允许使用各种机制来自动操作 数据收集,以序列化和格式化(或者换言之,调节)操作数据。网络装置 的操作数据的示例可以包括特征使用数据和资源利用数据。仅举几例,特 征使用数据可以包括对等体数量、组数量、路由实例数量、客户边缘(CE) 装置数量、CE接口数量、路由数量和每个路由的类型中的一个或多个。 仅举几例,资源利用数据可以包括路由引擎资源利用和/或分组转发引擎资 源利用。数据收集工具可以被配置为实现这些技术的操作数据收集方面。 数据收集工具可以查询或发出命令,来收集指示DUT操作状态的操作数 据。数据收集工具可以向分析模块提供经调节的操作数据。
此外,这些技术的各个方面可以允许分析模块将操作数据与每个模拟 同步。为了允许分析模块识别特征使用数据和资源利用数据之间的关联, 数据收集工具调节操作数据,以便于识别特征使用数据和资源利用数据之 间的关联的定义格式来设置操作数据。分析模块然后可以基于关联使用机 器学习算法(和/或可能的其他算法)生成DUT的模型。该模型可响应于 配置参数预测DUT的操作状态。
这些技术的某些方面可允许在不可能进行大规模配置随机化的预配 置环境中生成模型。在预配置的环境中,驱动器可以迭代地适配(其可以 指激活和/或停用)一个或多个预定义的配置对象,并且对于适配的每次迭 代,进行模拟,以收集操作数据。以这种方式,驱动器可以在更静态的环 境中自动创建模型,例如,由客户拥有和操作的环境,从而为客户部署的 装置创建精确的模型。
在生成预测DUT操作状态的模型时,这些技术可以允许装置的客户 更好地理解装置在资源消耗方面的实际能力,从而允许客户更好地理解现 有装置部署。此外,客户可以利用该模型来更好地理解需要多少具有特定 配置的相应装置来满足对所配置服务的预期需求。这种建模可以让客户更 好地理解装置部署、每个装置的服务部署,并计划装置购买,以满足预期 需求。这样,这些技术可以更好地了解实际环境中现有和未来的装置部署。
在一个示例中,这些技术针对一种自动创建模型的方法,所述方法包 括:由一个或多个处理器基于模拟配置文件生成配置对象,用于相对于在 测试环境内运行的网络装置执行多个模拟迭代,每个模拟迭代被配置为随 机分配测试环境中的参数,以反映实际网络环境;并且由所述一个或多个 处理器基于配置对象在测试环境内进行所述多个模拟迭代中的每一个,以 收集表示网络装置的操作状态的对应的多个模拟数据集;并且由所述一个 或多个处理器相对于多个模拟数据集中的每一个执行机器学习,以生成表 示网络装置的模型,所述模型响应于所述网络装置的配置参数,在用网络 装置的配置参数配置所述网络装置时,预测网络装置的操作状态。
在另一示例中,这些技术针对一种被配置为自动创建模型的装置,所 述装置包括:一个或多个处理器,其被配置为:基于模拟配置文件生成配 置对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代,每 个模拟迭代被配置为随机分配测试环境中的参数,以反映实际网络环境; 基于配置对象在测试环境内进行所述多个模拟迭代中的每一个,以收集表 示网络装置的操作状态的对应的多个模拟数据集;并且相对于多个模拟数据集中的每一个执行机器学习,以生成表示网络装置的模型,所述模型响 应于所述网络装置的配置参数,在用网络装置的配置参数配置网络装置 时,预测网络装置的操作状态;以及存储器,其被配置为存储该模型。
在另一示例中,这些技术针对一种非暂时性计算机可读存储介质,在 其上存储有指令,当执行这些指令时,促使第一处理器:基于模拟配置文 件生成配置对象,用于相对于在测试环境内运行的网络装置执行多个模拟 迭代,每个模拟迭代被配置为随机分配测试环境中的参数,以反映实际网 络环境;基于配置对象在测试环境内进行所述多个模拟迭代中的每一个, 以收集表示网络装置的操作状态的对应的多个模拟数据集;并且相对于多个模拟数据集中的每一个执行机器学习,以生成表示网络装置的模型,所 述模型响应于所述网络装置的配置参数,在用网络装置的配置参数配置网 络装置时,预测网络装置的操作状态。
在另一示例中,这些技术针对一种自动创建模型的方法,所述方法包 括:由一个或多个处理器基于模拟配置文件生成配置对象的不同迭代,用 于将网络装置配置为参与网络装置的测试环境内的多个模拟;由所述一个 或多个处理器基于所述配置对象的不同迭代,迭代地与网络装置接口 (interface,对接),以将所述网络装置配置为参与模拟;由一个或多个处 理器在测试环境内迭代地进行多个模拟的同时,与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态的多个模拟数据集;并且 由所述一个或多个处理器基于所述模拟数据集生成表示网络装置的模型, 所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置参数 配置网络装置时,预测所述网络装置的操作状态。
在另一示例中,这些技术针对一种被配置为自动创建模型的装置,所 述装置包括:存储器,其被配置为存储模拟配置文件;以及一个或多个处 理器,其被配置为:基于模拟配置文件生成配置对象的不同迭代,用于将 网络装置配置为参与网络装置的测试环境内的多个模拟;基于所述配置对 象的不同迭代,迭代地与网络装置接口,以将所述网络装置配置为参与模 拟;在测试环境内迭代地进行多个模拟的同时,与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态的多个模拟数据集;并且 基于所述模拟数据集生成表示网络装置的模型,所述模型响应于所述网络 装置的配置参数,在用所述网络装置的配置参数配置网络装置时,预测所 述网络装置的操作状态。
在另一示例中,这些技术针对一种非暂时性计算机可读存储介质,在 其上存储有指令,当执行这些指令时,促使一个或多个处理器:基于模拟 配置文件生成配置对象的不同迭代,用于将网络装置配置为参与网络装置 的测试环境内的多个模拟;基于所述配置对象的不同迭代,迭代地与网络 装置接口,以将所述网络装置配置为参与模拟;在测试环境内迭代地进行 多个模拟的同时,与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态的多个模拟数据集;并且基于所述模拟数据集生成表示 网络装置的模型,所述模型响应于所述网络装置的配置参数,在用所述网 络装置的配置参数配置网络装置时,预测所述网络装置的操作状态。
在另一示例中,这些技术针对一种生成装置模型的方法,包括:由一 个或多个处理器获得多个模拟配置文件,用于在测试环境内对网络装置进 行多个模拟;由所述一个或多个处理器基于所述多个模拟配置文件,相对 于测试环境内的网络装置进行所述多个模拟中的每一个,以收集指示网络 装置相对于多个模拟中的每一个的操作状态的对应的多个模拟数据集;由 所述一个或多个处理器确定所述多个模拟数据集的一个或多个非冗余对 之间的相似程度;由所述一个或多个处理器响应于相似程度与多样性阈值 的比较,选择所述多个模拟数据集的子集;并且由所述一个或多个处理器 基于所述多个模拟数据集的选定子集,生成表示所述网络装置的模型,所 述模型响应于网络装置的配置参数,在用所述网络装置的配置参数配置网 络装置时,预测所述网络装置的操作状态。
在另一示例中,这些技术针对一种被配置为生成网络装置的模型的装 置,包括:存储器,其被配置为存储多个模拟配置文件,用于在测试环境 内对网络装置进行多个模拟;以及一个或多个处理器,其被配置为基于所 述多个模拟配置文件,相对于测试环境内的网络装置进行所述多个模拟中 的每一个,以收集指示网络装置相对于多个模拟中的每一个的操作状态的 对应的多个模拟数据集;确定所述多个模拟数据集的一个或多个非冗余对 之间的相似程度;响应于相似程度与多样性阈值的比较,选择所述多个模 拟数据集的子集;并且基于所述多个模拟数据集的选定子集,生成表示所 述网络装置的模型,所述模型响应于网络装置的配置参数,在用所述网络 装置的配置参数配置网络装置时,预测所述网络装置的操作状态。
在另一示例中,这些技术针对一种非暂时性计算机可读存储介质,在 其上存储有指令,当执行这些指令时,促使一个或多个处理器:获得多个 模拟配置文件,用于在测试环境内对网络装置进行多个模拟;基于所述多 个模拟配置文件,相对于测试环境内的网络装置进行所述多个模拟中的每 一个,以收集指示网络装置相对于多个模拟中的每一个的操作状态的对应 的多个模拟数据集;确定所述多个模拟数据集的一个或多个非冗余对之间的相似程度;响应于相似程度与多样性阈值的比较,选择所述多个模拟数 据集的子集;并且基于所述多个模拟数据集的选定子集,生成表示所述网 络装置的模型,所述模型响应于网络装置的配置参数,在用所述网络装置 的配置参数配置网络装置时,预测所述网络装置的操作状态。
在另一示例中,这些技术针对一种在预配置网络环境内自动创建模型 的方法,该方法包括:由一个或多个处理器与预配置网络环境内的网络装 置接口,以迭代地适配预配置网络环境内的网络装置的一个或多个预定义 配置对象;由所述一个或多个处理器对所述网络装置的一个或多个预定义 配置对象的适配的每次迭代进行模拟,以收集表示所述网络装置在所述预 配置网络环境内的操作状态的模拟数据集;并且由所述一个或多个处理器 基于所述操作数据生成表示所述网络装置的模型,所述模型响应于所述网 络装置的配置参数,在用所述网络装置的配置参数配置网络装置时,预测 网络装置的操作状态。
在另一示例中,这些技术针对一种被配置为在预配置网络环境内自动 创建模型的装置,所述装置包括:一个或多个处理器,其被配置为:与预 配置网络环境内的网络装置接口,以迭代地适配预配置网络环境内的网络 装置的一个或多个预定义配置对象;对所述网络装置的一个或多个预定义 配置对象的适配的每次迭代进行模拟,以收集表示所述网络装置在所述预 配置网络环境内的操作状态的模拟数据集;并且基于所述操作数据生成表 示所述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用 所述网络装置的配置参数配置网络装置时,预测网络装置的操作状态;以 及存储器,其被配置为存储模型。
在另一示例中,这些技术针对一种非暂时性计算机可读存储介质,在 其上存储有指令,当执行这些指令时,促使一个或多个处理器:与预配置 网络环境内的网络装置接口,以迭代地适配预配置网络环境内的网络装置 的一个或多个预定义配置对象;对所述网络装置的一个或多个预定义配置 对象的适配的每次迭代进行模拟,以收集表示所述网络装置在所述预配置 网络环境内的操作状态的模拟数据集;并且基于所述操作数据生成表示所 述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用所述 网络装置的配置参数配置网络装置时,预测网络装置的操作状态。
在附图和下面的描述中阐述技术的一个或多个方面的细节。这些技术 的其他特征、目的和优点将从说明书和附图以及权利要求书中变得显而易 见。
附图说明
图1是被配置为执行本公开中描述的建模技术的各个方面的示例网络 建模环境的方框图;
图2是更详细地示出图1的建模环境的方框图;
图3是示出图1和图2的建模环境在各种操作层方面的方框图;
图4是更详细地示出图1-3的驱动器的方框图;
图5是更详细地示出图3的流管理模块和数据处理模块的方框图;
图6是示出根据本公开中描述的技术的各个方面的建模环境在生成模 型中的示例操作的示图;
图7A和7B是示出根据本公开中描述的技术的各个方面的预配置建 模环境的配置对象生成的示图;
图8是示出在执行本公开中描述的自动模型生成的各个方面时图1的 建模环境的示例操作的流程图;
图9是示出在使用预配置的测试环境执行配置对象生成时图3的建模 环境的示例操作的流程图;
图10是更详细地示出图1-3的测试床14的示例的方框图;
图11是示出表示上述被测装置的示例路由器的方框图;
图12是示出根据本公开的一种或多种技术操作的计算装置的一个示 例的进一步细节的方框图。
具体实施方式
图1是示出被配置为执行本公开中描述的建模技术的各个方面的建模 环境10的方框图。如图1的示例所示,建模环境10包括驱动器12、测试 环境14(也可以称为“测试床14”)、被测装置(DUT)16、数据收集工 具18、模型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或额外网络14A-14B,并且不应该局限于图1的示例中 所示的组合。此外,尽管被示出为提供用于测试网络装置的各种形式的网 络,但是测试床14可以表示适于测试任何类型的装置的任何平台,包括 个人计算机、膝上型计算机、蜂窝电话(包括所谓的“智能电话”)、数字 手表(包括所谓的“智能手表”)、扬声器(包括所谓的“智能扬声器”)、 平板计算机、处理器或任何其他类型的电子装置。
DUT 16可以表示基于硬件的装置、虚拟装置(其可以指被实现为由 通用计算装置执行的模型的装置)或者基于硬件的装置和虚拟装置的组 合。为了说明的目的,假设DUT16表示网络装置,例如,路由器,因此 在本文中可以称为“路由器16”。其他类型的DUT 16可以包括前述示例 装置,包括个人计算机、膝上型计算机、蜂窝电话(包括所谓的“智能电话”)、数字手表(包括所谓的“智能手表”)、扬声器(包括所谓的“智能 扬声器”)、平板计算机、处理器或任何其他类型的电子装置。
数据收集工具18可以表示被配置为检索表示DUT 16的操作状态的度 量和其他数据的单元。当DUT 16表示路由器时,表示操作状态的数据的 示例包括特征使用数据和资源利用数据。仅举几例,特征使用数据可以包 括多个对等体(例如,边界网关协议(BGP)对等体)、多个组(例如, BGP组)、多个路由实例(route instances)(也称为“路由实例(routinginstances)”)、多个客户边缘(CE)装置、多个CE接口、多个路由、每个 路由的类型中的一个或多个。仅举几例,资源利用数据可以包括每个路由 守护程序(在路由器的路由引擎中)的中央处理单元(CPU)利用、每个 路由守护程序的内存使用、路由器的分组转发引擎(PFE)中的CPU利用 以及PFE中的内存使用中的一个或多个。
数据收集工具18可以在建模过程期间轮询DUT 16,以检索操作数据, 该操作数据也可以称为“模拟数据集”或“操作状态数据”。数据收集工 具18可以调用许多不同的进程来协调数据收集,所述进程包括开源进程, 例如,YAML非标记语言(YAML)、Spark进程、SparkKafka进程和流入 进程,以提供下面更详细讨论的几个示例。
模型20表示被配置为相对于配置对DUT 16的操作状态建模的单元。 在这方面,模型20可以呈现用于接收参数的接口(例如,在网络环境中, 参数可以包括多个对等体、多个组、多个路由等,其可以是特征使用数据 的子集或导出测量值)并生成指示DUT 16的操作状态的预测数据。建模 环境10可将配置变化与表示DUT 16和测试床14的不同配置中的DUT16 的操作状态的相应收集数据(其可称为“操作数据”)相关联,并执行机 器学习或执行其它人工智能算法,以获得模型20,如下文更详细概述的。
后端分析单元22可以表示被配置为对模型20生成的预测数据和数据 收集工具18收集的操作数据执行分析的单元。后端分析单元22可以包括 用户接口(UI)模块26,其以各种格式呈现预测数据和操作数据,以促 进审查DUT 16和模型20。后端分析单元22可以将分析结果存储到数据 库24。
如上所述,后端分析单元22可以采用机器学习来创建模型20。机器 学习可以指一组数学建模过程,这些过程允许计算机在没有明确编程的情 况下学习。例如,机器学习可以包括蒙特卡罗模拟型实验。相对于其他类 型的建模算法,用于装置建模的机器学习可能需要具有大量熵(或者,换 言之,随机性)的大量操作数据。为了精确的模型创建,机器学习可能会 使用真实世界的数据,但是由于隐私和其他问题,这种真实世界的数据通 常很难收集。此外,机器学习可能需要来自大多数(如果不是所有)可用 参数配置的数据,这在多维配置中可能变得越来越困难,在多维配置中, 具有多个不同设置的多个参数,以成功地配置单个服务,例如,在像路由 器这种网络装置中。
鉴于上述情况,对多维装置建模的大多数尝试都试图使用不同的建模 算法,这些算法不需要大量的真实世界数据和/或操作数据的高度随机性。 然而,除了提供相对于特征使用数据的操作状态的初步估计之外,这些模 型未能准确预测真实世界的装置操作。估计的准确性大多不足,不利于广 泛的网络规划或者更普遍的容量规划。此外,以这种方式进行的模型开发 不是自动化的,这种建模也不能足够快地创建一个模型来促进质量保证或 装置开发或故障排除的其他方面。
根据本公开中描述的技术的各个方面,建模环境10可以以高度随机 的方式自动配置DUT 16。建模环境10接下来可以以支持被配置为由DUT 16提供的现有服务的方式自动配置测试环境14。此外,建模环境10还可 以使用反映真实世界值的参数以高度随机的方式自动化测试环境14的配 置,以便于蒙特卡洛模拟型实验。建模环境10然后可以在测试环境14内 对DUT 16进行模拟,并自动化操作数据收集。模型环境10可以迭代地进 行许多不同的模拟并以导致收集大量操作数据的方式收集操作数据,这可 以形成构建精确模型20的基础(与使用上述不同建模算法创建的模型相 比)。
在操作中,驱动器12可以最初获得参数28A(“params 28B”)、配置 对象28B(“config 28B”)和全局文件28C(“全局文件28C”),这些也可 以统称为“模拟配置文件28”。在某些情况下,可以使用YAMLTM来定义 模拟配置文件28。YAMLTM是一种跨语言、基于Unicode的数据序列化语 言,该语言是围绕通用的本地数据类型的编程语言设计的。YAMLTM定义 了三种基本的原型结构,包括映射(例如哈希和/或字典)、序列(例如, 阵列和/或列表)和标量(例如,字符串和/或数字)。从这三种原型结构中, 可以构建YAMLTM中的所有其他数据结构。YAMLTM利用了原型结构,并 添加了打字系统和混叠机制来形成一种用于序列化任何本地数据结构的 语言。许多敏捷编程语言,例如,Perl、Python、PHP、Ruby和Javascript, 可以使用YAMLTM来存储和传输数据。可以在Ben-Kiki、O.等人的题为 “YAMLAin’t Markup Language(YAMLTM)”,版本1.2,第3版,于 2009-10-01修补的文献中找到关于YAMLTM的更多信息,其全部内容通过 引用结合于此,就好像其全部内容已经阐述了一样。
在任何情况下,驱动器12可以基于YAMLTM文件为每个模拟生成 DUT配置对象15(“DUT配置15”)的不同实例。为了生成DUT配置对 象15的不同实例,驱动器12可以首先解析给定一组模拟配置文件28的 配置文件28B。即,每组模拟配置文件28可以包括参数文件28A、配置 文件28A和全局文件28C。每组模拟配置文件28可以定义测试环境14内 DUT 16的不同类别的模拟。例如,一组模拟配置文件可以定义L3VPN模 拟。另一组模拟配置文件可以定义标签交换路径(LSP)自动带宽模拟, 而另一模拟配置文件在L3VPN服务内定义内部边界网关协议(iBGP)、 中间系统到中间系统(IS-IS)路由协议和/或资源预留路由协议(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可以以确保DUT配 置对象15的不同实例之间充分随机化的方式生成测试器配置对象13,如 下文更详细描述的。驱动器12接下来可以为测试环境14生成测试器配置 对象13的实例,以根据DUT配置对象15配置DUT 16时适应DUT 16的 操作。
为了说明,DUT 16的DUT配置对象15可以在一个客户端边缘(CE) 装置和另一CE装置之间配置特定L3VPN。驱动器12可以为测试环境14 指定测试器配置对象13,使得预期的两个CE装置将以建立和模拟使用由 DUT 16提供的预期L3VPN的方式执行路由协议。在这方面,驱动器12 可以定义测试器配置对象13和DUT配置对象15,用于相干地配置测试 环境14和DUT 16(分别),使得DUT 16与测试环境14一致地操作,以 支持一个或多个服务,即,上面示例中的L3VPN服务、操作或功能。
类似于DUT配置对象15的生成,驱动器12可以以反映实际或换言 之真实世界网络环境的方式随机指定测试器配置对象13内的参数值。为 了说明,而不是经由逻辑有序的方式将IP地址分配给测试环境14内的接 口(例如,1.1.1.1分配给接口1,1.1.1.2分配给接口2,1.1.1.3分配给接 口3等),驱动器12可以将随机化引入IP地址(例如,1.1.1.1分配给接口1、10.1.0.90分配给接口2等。以这种方式,驱动器12可以生成测试器 配置对象13,该测试器配置对象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)”、可能导致路由号码的概要的 “显示路由概要(show route summary)”、可能导致多个路由实例和类型 的“显示路由实例(show route instance)”。作为另一示例,数据收集工具 18可以发出命令,例如,可能导致数据平面内存使用的“显示任务存储器 (show task memory)”、可能导致数据平面中的柔性PIC(物理接口卡)集 中器(FPC)上的处理器和内存使用的“显示机箱fpc(showchassis fpc)”。 作为又一示例,数据收集工具18还可以发出“、显示jnh<#>池(show jnh<#>pool)”命令,来收集分组转发引擎(PFE)的内存使用。数据收集工 具18还可以从指示操作数据17的DUT 16系统日志中检索或请求。
数据收集工具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生成模型20。在一些示例中, 后端分析单元22可以识别序列化数据19,该序列化数据19是参考与每个 DUT配置对象15相关联的调节操作数据17的另一种方式,用于进行模 拟。在路由器或其他网络装置的上下文中,DUT配置对象15可以表示与 特定类型相关联的离散配置数据,例如,接口、radius服务器、路由实例、 转发信息库(FIB)等。后端分析单元22可以确定DUT配置对象15和序 列化数据19的不同部分之间的关联。基于DUT配置对象15和序列化数 据19的不同部分之间的关联,后端分析模块22可以生成表示DUT 16的 模型20,该模型20响应于配置参数预测DUT 16的操作状态。
例如,为了说明的目的,假设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的实例子集, 以便减小偏差,从而产生更完整的模型20,该模型响应于配置参数更好地 预测DUT 16的操作状态。
在一些情况下,后端分析模块22可以相对于序列化数据19(例如, 表示DUT配置对象的序列化数据19的特征使用数据和序列化数据19的 资源利用数据之间的上述识别的关联)执行机器学习,以生成表示DUT 16 的模型20。后端分析模块22可以首先执行数据清理,在此期间,后端分 析模块22可完成缺失值并过滤序列化数据19的偏离值。后端分析模块22还可以聚集一些数据(例如,以确定不同路由协议上的路由总数)。后端 分析模块22接下来可以执行特征工程,在此期间,后端分析模块22可以 将序列化数据19分成不同的类别,并将序列化数据19的每个类别标准化。 后端分析模块22可以相对于不同子模型(包括线性和非线性子模型)的 序列化数据19的每个类别执行模型校准。后端分析模块22可以在校准每个子模型之后执行模型验证,包括k重交叉验证和正向链接验证。
子模型均可以预测DUT 16的上述类别的操作状态中的特定类别。即, 第一子模型可以预测路由器执行的每个路由守护程序的处理利用,第二子 模型可以预测路由器执行的每个路由守护程序的内存使用,第三子模型可 以预测路由器的分组转发引擎(PFE)中的处理器利用,第四子模型可以 预测路由器的PFE中的内存使用。在一些情况下,给定的子模型可以预测 DUT 16的两个或多个前述操作状态,如下面更详细描述的。在任何情况 下,子模型的集合可以形成模型20。
在模型验证期间,后端分析单元20可将DUT配置对象15的实例和/ 或DUT 16的其它配置数据(通常可称为配置参数)输入模型20中,以生 成预测操作数据,并将预测操作数据与为DUT配置对象15的相同实例收 集的相应操作数据17进行比较。当模型20在与实际操作数据17相似的 阈值水平内生成预测操作数据时,后端分析单元20可以验证模型20与DUT 16足够相似,从而可以将其部署用于预测分析。后端分析单元22然 后可以迭代地将配置对象输入到模型20中,以收集反映DUT 16的预测操 作状态的预测操作数据,将预测操作数据存储到数据库24中。后端分析 单元22可以包括用户接口(UI)模型26,通过该模型,与数据库24和 其他可视化工具对接,以与预测操作数据交互。
在生成预测DUT 16的操作状态的模型20时,建模环境10可以允许 DUT 16的客户更好地理解DUT 16在资源消耗方面的实际能力,从而允 许客户更好地理解现有的装置部署。此外,客户可以利用该模型来更好地 理解需要多少具有特定配置的相应装置来满足对所配置服务的预期需求。 这种建模可以让客户更好地理解装置部署、每个装置的服务部署,并计划 装置购买,以满足预期需求。通过这种方式,建模技术可以允许更好地了 解实际环境中的现有和未来的装置部署。
即,模型20允许客户从资源消耗的角度理解服务如何影响DUT 16 和在DUT 16内执行的其他服务。此外,模型20允许客户更好地理解哪些 服务最影响性能和/或规模。模型20还可以以自动化的方式揭示DUT 16 的缺陷,例如,存储器泄漏,从而可以促进质量保证,同时也验证性能并 提供对DUT 16的操作系统的更新的详细理解。考虑特定的配置状态,模型20也可以预测收敛。此外,模型20可以提供关于将客户下降放置到边 缘网络上的指导。
图2是更详细地示出图1的建模环境的方框图。在图2的示例中,驱 动器12被示出为分别向DUT 16和测试器客户端30输出单独的配置31 和33。装置配置31可以表示指定参数的DUT配置对象15的子集,该参 数具有随机选择的值并且具有足够的熵来允许蒙特卡洛型实验。测试器配 置33可以表示测试器配置对象13,该测试器配置对象13还指定具有随机选择的值的参数,这些参数试图复制测试器客户端30的实际现实网络配 置,并且以允许预期执行装置配置31将DUT 16配置为支持的服务、功能 和/或操作的方式对应于装置配置31。
在图2的示例中,测试环境14被示出为测试器客户端30和测试器底 盘32。测试器客户端30可以表示用于与测试器底盘32交互的接口。测试 器底盘32可以表示一个或多个虚拟网络装置和/或实际网络装置,这些装 置通过虚拟和/或实际网络链路互连,这些链路可以被配置为反射真实世界 网络。仅举几例,虚拟和/或实际网络装置可以包括例如核心路由器、边缘 路由器、客户边缘装置、宽带远程接入服务器(BRAS)、数字用户线接入 复用器(DSLAM)和客户用户设备,例如,计算机、宽带调制解调器、 交换机、集线器、蜂窝电话(包括所谓的“智能电话”)、平板电脑等。
驱动器12可以以上述方式配置DUT 16和测试环境14,并进行模拟, 如上所述,通过每个装置配置31迭代,同时数据收集器工具18(在图2 的示例中显示为“收集器18”)发出命令35,以检索指示DUT 16的操作 状态的操作数据17(在一个示例中,其可以包括报告,因此,包括在图2 的示例中显示的“报告17”)。DUT 16还可以被配置为将系统日志37(“syslog 37”)输出到日志服务器34。日志服务器34可以表示LogStash 实现方式,用于摄取syslog 37,以进行处理。虽然关于syslog 37进行了 描述,但是这些技术可以利用不同类型的日志或数据交换格式,例如, JavaScript对象符号(JSON)。
收集器18可以调节报告17,以形成上面提到的序列化数据19,其也 可以称为调节报告19(或者如图2所示的“报告19”)。收集器18可以将 报告19输出到数据平台22,这可以是参考后端分析单元22的另一种方式。 数据平台22可以从日志服务器34检索syslog 37,并执行上述操作,以生 成模型20。
图3是示出图1和图2的建模环境在各种操作层方面的方框图。在图 3的示例中,建模环境10被示出为在三层中操作,即,驱动层40、代理 层42和数据平台层44。驱动器层40包括驱动器12、测试床14和DUT 16。 驱动器12可以生成DUT 16的配置数据31和测试床14的配置数据33, 其中,配置数据31和33可以统称为模拟配置文件。
在可以不受限制地完全指定配置文件的情况下,驱动器12可以配置 每个配置文件内的所有数据,以便设置测试床14的网络结构并包含DUT 16,并且初始化用于模拟的业务数据(例如,执行路由协议,以建立路由、 功能和其他服务,例如,上述L3VPN服务)。出于示例的目的,假设L3VPN 网络,驱动器12可以在YAMLTM文件中配置多个参数,该文件包括多个 路由实例、BGP组、BGP对等体、每个协议的BGP路由等,以生成DUT 配置对象15的实例和测试器配置对象13的相应实例。驱动器12可以迭 代地加载DUT配置对象15的不同实例(显示为“配置数据31”)和测试 器配置对象13的相应实例(显示为“配置数据33”),以迭代地进行每个 模拟。
代理层42可以包括数据收集工具18和日志服务器34。数据收集工具 18可以作为代理从DUT 16提取数据(通过发出命令35来提取报告17)。 数据收集工具18可以表示处理YAMLTM文件以发出命令35并且处理报告 17的python客户端。配置数据31可以将DUT 16配置为(潜在地周期性 地)将syslogs 37输出到日志服务器34。数据收集工具18可以处理报告17并将来自报告17的数据发布到流管理模块52内的主题。
数据平台层44可以表示被配置为处理和可视化来自报告17和/或 syslogs 37的数据的层。数据平台层44包括流管理模块52、数据处理模块 54、时间序列(“TS”)数据库24(“TS DB 24”)、TS分析模块56、数据 连接模块58、分析模块60和可视化模块62。
流管理模块52可以表示被配置为处理潜在的大数据流的单元。流管 理模块52可以实现Apache或任何其他流管理平台。流管理模块 52可以为数据流的生产者和消费者提供接口(例如,应用编程接口API)。 流管理模块52可以维护生产者可以向其发布数据的主题。流管理模块52 可以允许不同的消费者订阅不同的主题,从而接收发布到每个主题的数 据。流管理模块52可以将每个数据流存储为与一个或多个主题相关联的 记录,其中,每个记录可以包括密钥、值和时间戳。这些记录有效地调节 操作数据17,根据消费者可能订阅的主题序列化数据。按主题组织的条件 记录通常可称为序列化数据19。
为了有效地序列化数据19,代理层42仅以报告17和syslogs 37的形 式从DUT 16收集数据。即,代理层42不从测试床14收集数据,只从DUT 16收集报告17和syslogs 37。数据收集限于DUT 16,以允许在单个时间 线内容易地协调所有数据。换言之,代理层42将数据收集限于单个装置 DUT 16,使得不存在可能冲突并产生时间差异的竞争定时器,流管理模块 52和/或数据处理模块54可能必须纠正这些时间差异。尽管被描述为从单 个装置DUT16收集数据,但是代理层42可以从多个装置(包括虚拟装置 或测试床14的其他装置)收集数据。
流管理模块52可以包括生产者API,通过该生产者API,应用程序可 以向一个或多个主题发布记录流。流管理模块54还可以包括消费者API, 通过该API,应用程序可以订阅一个或多个主题并处理提供给消费者的记 录流。流管理模块54还可以包括流API,通过该流API,应用程序可以充 当流处理器,来消费来自一个或多个主题的输入流,并产生到一个或多个 输出主题的输出流,从而有效地将输入流转换成输出流。流管理模块54 还可以包括连接器API,该连接器API允许构建和执行将主题连接到现有 应用程序或数据系统的可重用生产者或消费者。
在图3的上下文中,数据收集工具18和日志服务器34可以根据生产 者API操作,以向流管理模块52发布数据流(即,在该示例中分别是记 录17和syslogs 37)。数据处理模块54可以接收记录17和syslogs 37,作 为输入流,并根据流API操作,调节输入流,以形成输出流,在本文中也 称为序列化数据19。数据处理模块54可以创建序列化记录19,将序列化记录19发布到TS数据库24。TS数据库24的示例包括在流入数据平台 (其可以在码头集装箱内执行,以提高弹性)内执行的流入数据库 (“InfluxDB”)。
TS分析模块56可以表示被配置为分析发布到主题的序列化记录19 的模块。TS分析模块56可以分析序列化记录19,以识别不同的度量并向 驱动器12提供反馈,从而改进未来的模拟。可视化模块62可以表示被配 置为可视化序列化记录19和由TS分析模块56输出的任何分析的单元。
数据连接模块58可以表示被配置为协调向分析模块60的数据传送的 模块。数据连接模块58可以确保不同组的序列化记录19彼此差异足够大, 使得模型20能够准确预测大多数(如果不是所有)场景的操作数据。这 样,数据连接模块58可以实现数据相似性模型,该模型可以测量两个序 列化记录19(也可以称为“操作数据19”、“操作数据集19”或“模拟数 据集19”)上的差异(或相似性)。
从数据科学建模的角度来看,模拟数据集19预期在多个模拟中是不 同的,这可能表明模拟数据集19中的分布模式尽可能地变化。数据相似 性模型可确定两个模拟数据集19的分布模式的相似性(或差异),并提供 单值相似性测量(也可称为“差异测量”)。
数据相似性模型可以使用以下算法来评估两个不同的模拟数据集19。 首先,数据相似性模型可以从模拟数据集19中的第一个(其可以表示为 “第一模拟数据集19i”)创建随机样本集,向样本集中的每个实例添加具 有值“DS_I”的新特征“原始”。数据相似性模型接下来可以从模拟数据 集19中的第二个(其可以表示为“第二模拟数据集19ii”)创建随机样本 集,向样本集中的每个实例添加具有值“DS_II”的新特征“原始”。然后, 使用逻辑回归算法建立数据相似性模型,以使用样本集(例如,80%)从 两个模拟数据集的每一个中预测实例的“原始”,作为训练数据。
可以使用剩余(例如20%)的模拟数据集来评估数据相似性模型,以 预测每个实例的原型,如下定义评估测量(EM):
其中,TP是表示真阳性的数量的变量,TN是表示真阴性的数量的变 量,FP是表示假阳性的数量的变量,FN是表示假阴性的数量的变量。EM 可以是范围从0到1的单个数值。数据相似性模型接下来可以将EM与相 似性阈值(其例如可以设置为0.2,并且也可以称为“多样性阈值”)进行 比较。
在这方面,数据相似性模块可以从第一模拟数据集19i生成随机样本 集,并且从第二模拟数据集19ii生成随机样本集。接下来可以使用逻辑回 归算法来构建数据相似性模块,以基于第一模拟数据集19i和第二模拟数 据集19ii的剩余实例来预测每个实例的原型。数据相似性模块然后可以基 于第一模拟数据集19i和第二模拟数据集19ii的剩余实例上的预测原型的 比较(例如,使用上述等式)来确定第一模拟数据集19i和第二模拟数据集19ii之间的相似程度。如上所述的相似程度可以是0与1之间的单个值, 便于与多样性阈值(也可以称为“相似性阈值”)进行比较。
当EM小于或等于相似性阈值时,数据相似性模型可以确定第一和第 二模拟数据集19i和19ii足够不同,使得可以选择这两者。当EM大于相 似性阈值时,数据相似性模型可以确定第一和第二模拟数据集19i和19ii 相似,并消除第一或第二操作数据集19i/19ii中的一个。数据模拟模型可 以对操作数据集19的额外非冗余对重复上述过程,同时也可能应用k重 交叉验证。数据连接模块58可以将操作数据集19的选定子集输出到分析 模块60。
分析模块60可以表示被配置为生成形成模型20的多个不同子模型的 模块。分析模块60可以包括存储器预测子模型,该子模型估计考虑到路 由器状态的指定输入的存储器消耗,例如,路由实例的数量、组的数量、 对等体的数量和/或每个协议的路由的数量。存储器预测子模型可以基于指 定的输入来输出路由器的路由引擎(RE)和分组转发引擎(PFE)中的存 储器消耗的估计(为了说明的目的,假设DUT 16是路由器)。
考虑输入和RE/PFE存储器消耗之间的不同关系,分析模块60可以执 行岭回归(ridge regression)和梯度增强回归,以构建存储器预测子模型。 存储器预测子模型从与模拟配置文件28相关联的操作数据集19中“学习” 该关系。分析模块60采用岭回归来建模线性关系,同时对非线性情况采 用梯度增强回归。
岭回归指的是对解释变量和目标变量之间的线性关系建模的过程。与 其他线性模型相比,岭回归能更好地处理方差较大的数据,并减少标准误 差,从而给出更可靠的估计。尽管在某些方面是有益的,但是除了岭回归 之外的线性模型也可以用于线性情况。
梯度增强回归是用来捕捉解释变量和目标变量之间的非线性关系的 一个集成模型。梯度增强回归以弱预测模型(例如,决策树)集合的形式 产生预测模型。尽管在某些方面是有益的,但除梯度增强回归之外的非线 性模型也可用于非线性情况。
分析模块60还可以生成路由学习子模型,该子模型估计路由器完成 重新配置以适应网络环境的变化需要多长时间。路由学习持续时间也可以 称为集中于(converge on,收敛于)当前配置状态所需的持续时间。为了说 明,路由学习子模型可以预测当一个新的对等体在线时路由器需要多长时 间来重新配置,从而导致增加100万条新路由。路由学习子模型的输入包 括多个BGP路由、多个开放最短路径优先(OSPF)路由、多个虚拟专用 LAN(局域网)服务(VPLS)路由、多个标签分发协议(LDP)路由等。 路由学习子模型可以响应于一个或多个前述输入来输出预测的学习持续 时间。
分析模块60可以使用cox比例危险(CPH)算法生成路由学习子模 型。CPH算法是一种统计回归过程,用于探索患者生存和几个解释变量之 间的关系。因此,CPH算法允许考虑预测变量来估计死亡的危险(或风险) 或其他感兴趣的事件。分析模块60利用CPH算法来评估感兴趣的事件, 在这种情况下,当将学习过程视为路由器的生存周期并且将解释变量视为 上述输入时,该事件是路由学习。得到的路由学习子模型输出预期学习持 续时间(以秒或其他时间度量为单位)、最差学习持续时间(以秒或其他 时间度量为单位)和学习持续时间的概率曲线。以这种方式,分析模块60 生成模型20,作为子模型的组合。
图4是更详细地示出图1-3的驱动器12的方框图。在图4的示例中, 驱动器12包括配置生成单元82、多样性模型82和模拟驱动器84。配置 生成单元82表示被配置为基于模拟配置文件28(“SMC28”)生成DUT 配置对象15和测试器配置对象13的单元。
即,驱动器12使用域特定语言(DSL),该语言由基于YAML的模板 文件(例如,配置文件28B)中使用的标记组成。标记的输入是参数文件 28A。DSL的目的是促进创建灵活的语法来扩展强加的数据,以创建大型 随机配置。驱动器12利用配置模板机制来创建配置,DSL提供用于表示 数据扩展的语法。运行配置文件28B的输出是*set*格式的配置,这可能会导致输出前置有“set”。
DSL可能支持以下三种不同的标记语法:
'<>'[单V形];
“<<>>”[双V形];以及
'{func:..}'功能块。
上述语法可以作为关键字或值放在YAML中,下面将更详细地讨论 例外情况。当用于YAML键位置时,单V形可能会导致迭代通过参数文 件28A内的相应变量值所强加的数据。
以下示例配置文件28B可以说明在关键位置使用单V形:
示例`config.yaml`:
```
interfaces:
<my_interfaces>:
unit:0
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 0
set interfaces ge-0/0/1 unit 0
```
在上面的示例配置文件28B中,“my_interfaces”参数位于单V形中, 这导致‘ge-0/0/0’、‘ge-0/0/1’参数值中的每一个都有两次迭代,从而产 生示例预期输出中列出的两个集合配置对象。
下面是另一示例配置文件28B,该文件可以说明在其他关键位置使用 单V形:
示例“配置YAML”:
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
static_units:[0,1,2,3]
```
示例预期输出:
```
设置接口ge-0/0/0单元0
设置接口ge-0/0/0单元1
设置接口ge-0/0/0单元2
设置接口ge-0/0/0单元3
设置接口ge-0/0/1单元0
设置接口ge-0/0/1单元1
设置接口ge-0/0/1单元2
设置接口ge-0/0/1单元3
```
在上面的示例配置文件28B中,“my_interfaces”参数位于单V形中, 这导致‘ge-0/0/0’、‘ge-0/0/1’参数值的每一个都有两次迭代。在每次迭 代中,都有另一子迭代产生四个集合配置对象来设置单元0-3,从而在预 期输出中产生上面列出的八个集合配置对象。当在YAML内的*value*位 置使用单V形时,表示的值是经由参数文件28A变量值强加的第一个值。
当在YAML内的*value*位置使用单V形时,表示的值是经由参数文 件28A变量值强加的第一个值。下面是另一示例配置文件28B,该文件可 以说明在价值位置使用单V形:
示例“config.yaml”:
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
static_units:[0,1,2,3]
```
示例预期输出:
```
设置接口ge-0/0/0单元0
设置接口ge-0/0/1单元0
```
在上述示例配置文件28B中,“static_unit”参数位于值位置的单V形 内,这导致‘ge-0/0/0’、‘ge-0/0/1’参数值的每一个迭代两次,每一个参 数值都具有“static_unit”的参数文件28A列表中的第一个值的单位值(即, 在本示例中为0)。"
下面的示例配置文件28B可以说明双V形的使用:
示例“config.yaml”:
```
interfaces:
<my_interfaces>:
unit:<<static_units>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配“params.yaml”:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
static_units:[0,1,2,3]
```
示例预期输出:
```
设置接口ge-0/0/0单元0
设置接口ge-0/0/1单元0
```
在上面的示例配置文件28B中,“static_units”参数位于双V形内, 这导致‘ge-0/0/0’、‘ge-0/0/1’参数值的每一个迭代两次,从而产生示例 预期输出中列出的两组配置对象。
如图所示,双V形表示单个值。当参数文件28A中表示的变量是字 典项目的字符串、整数、列表时,双V形导致选择第一个强制值。处于值 位置的单V形可以等同于双V形起作用。
下面的示例配置文件28B可以说明双V形的额外用途:
示例“config.yaml”:
```
interfaces:
<<my_interfaces>>:
unit:<<static_units>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配“params.yaml”:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
static_units:[0,1,2,3]
```
示例预期输出:
```
设置接口ge-0/0/0单元0
```
在上面的示例配置文件28B中,“我的接口”和“static_units”参数在 双V形内,这导致了单次迭代,该迭代产生了示例预期输出中列出的单个 集合配置对象,该对象仅具有为两个参数中的每一个选择的第一个参数 值。
对于更高级的操作,在参数文件28A内也支持额外语法。参数文件 28A内的变量可以处于键位置,并与‘范围’和‘op’键和值相关联。下 面说明了启用高级操作的语法:
```
variable_name:
range:(<values>)
op:<supported_op_name>
```
支持的“op”键的操作值是“iter”、“rand”、“pick”和“choose”,这 将在下面详细解释。
[iter],迭代器,例如,Python“range()”;
[rand],返回范围内的元素的随机、非空子集;
[pick],从范围中挑选一个随机元素,每次使用,不重复;以及
[choose],从范围中随机选择单个元素。
当使用上述操作时,在YAML键位置内可以使用单V形,在YAML 值位置内可以使用双V形。双V形内的值可以采用与单V形内的值相同 的值,但是值位置内的双V形可以在关键位置下表示多次。
以下示例配置文件28B可以说明ITER操作的使用:
示例‘config.yaml’:
```
example_params_range_iter:
<example_range_iter>:
value:<<example_range_iter>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配“params.yaml”:
```
example_range_iter:
range:(1-4)
op:iter
```
示例预期输出:
```
设置example_params_range_iter 1值1
设置example_params_range_iter 2值2
设置example_params_range_iter 3值3
设置example_params_range_iter 4值4
```
如预期输出中所示,有四个“set”配置对象迭代通过参数文件28A 中所示的1-4范围,其中,双V形在每个配置对象的末尾拉动与“值”的 当前迭代相同的值。
在某些情况下,双V形内的值可以采用与单V形内的值相同的值, 但是值位置内的双V形可以在键下表示多次,如以下示例所示,显示了双 V形如何与iter操作结合使用。
示例‘config.yaml’:
```
example_params_range_iter:
<example_range_iter>:
value:<<example_range_iter>>
another_value:foobar
same_value_again:<<example_range_iter>>
```
示例匹配“params.yaml”:
```
example_range_iter:
range:(1-4)
op:iter
```
示例预期输出:
```
设置example_params_range_iter 1值1
设置example_params_range_iter 1 another_value foobar
设置example_params_range_iter 1 same_value_again 1
设置example_params_range_iter 2 值2
设置example_params_range_iter 2 another_value foobar
设置example_params_range_iter 2 same_value_again 2
设置example_params_range_iter 3值3
设置example_params_range_iter 3 another_value foobar
设置example_params_range_iter 3 same_value_again 3
设置example_params_range_iter 4值4
设置example_params_range_iter 4 another_value foobar
设置example_params_range_iter 4 same_value_again 4
上面直接说明了如何多次使用双V形来设置不同参数的各种值。 下面是iter操作的另一示例。
示例‘config.yaml’:
```
policy-options:
policy-statement:
vpn-export-<num_vpns>:
term:
a:
then:
community:
add:vpn<<num_vpns>>
accept:
b:
then:
-reject
community:
vpn<num_vpns>:
members:
-"target:<<local-as>>:<<num_vpns>>"
```
示例匹配“params.yaml”:
```
example_range_iter:
range:(1-4)
op:iter
```
示例预期输出:
```
set policy-options policy-statement vpn-export-1 term a thencommunity add vpn1
set policy-options policy-statement vpn-export-1 term a then accept
set policy-options policy-statement vpn-export-1 term b then reject
set policy-options policy-statement vpn-export-2 term a thencommunity add vpn2
set policy-options policy-statement vpn-export-2 term a then accept
set policy-options policy-statement vpn-export-2 term b then reject
set policy-options policy-statement vpn-export-3 term a thencommunity add vpn3
set policy-options policy-statement vpn-export-3 term a then accept
set policy-options policy-statement vpn-export-3 term b then reject
set policy-options community vpn1 members target:10020:1
set policy-options community vpn2 members target:10020:2
set policy-options community vpn3 members target:10020:3
以下示例配置文件28B可以说明rand操作的使用:
示例‘config.yaml’:
```
example_params_range_rand:
key<example_range_rand>:
value:<<example_range_rand>>
another_value:foobar
same_value_again:<<example_range_rand>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
example_range_rand:
range:(1-5)
op:rand
```
示例预期输出:
```
set example_params_range_rand key3 value 3
set example_params_range_rand key3 another_value foobar
set example_params_range_rand key3 same_value_again 3
set example_params_range_rand key1 value 1
set example_params_range_rand key1 another_value foobar
set example_params_range_rand key1 same_value_again 1
```
如预期输出所示,有六个“set”配置对象,从配置文件28B中显示的 1-5范围中随机选择其值,其中,双V形在每个配置对象的末尾拉动与 “value”的当前迭代相同的值。rand操作可以从范围中选择随机数量的项 目,并将所选择的数据用作强加的数据。下限可以是范围内的单个项目, 上限是范围内的所有项目。例如,当范围是“范围:(1-5)”时,rand操 作可以选择“2,3,5”作为要强加的数据。
以下示例配置文件28B可以说明pick操作的使用:
示例‘config.yaml’:
```
example_params_range_pick:
static:
value:<<example_range_pick>>
another_value:foobar
different_value_this_time:<<example_range_pick>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
example_range_pick:
range:[(1-3),5,(6-7)]
op:pick
```
示例预期输出:(随机选择5和2)
```
set example_params_range_pick static value 5
set example_params_range_pick static another_value foobar
set example_params_range_pick static different_value_this_time 2
```
如预期输出所示,有三个“set”配置对象,从参数文件28A中显示 的1-3、5和6-7范围中随机选择其值。pick操作可以从一系列元素中随机 选择单个元素,而不重复。当在比要挑选的元素范围更长的迭代器中使用 pick操作时,驱动器12可能会产生错误。
下面的示例配置文件28B可以说明pick操作与单V形符号的结合使 用:
示例‘config.yaml’:
```
example_params_range_pick:
<example_range_pick>:
value:<<example_range_pick>>
another_value:foobar
same_value_again:<<example_range_pick>>
以下示例参数文件28A可以由上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
example_range_pick:
range:[(1-3),5,(6-7)]
op:pick
```
示例预期输出:(随机选择6)
```
set example_params_range_pick 1 value 1
set example_params_range_pick 1 another_value foobar
set example_params_range_pick 1 same_value_again 1
set example_params_range_pick 2 value 2
set example_params_range_pick 2 another_value foobar
set example_params_range_pick 2 same_value_again 2
set example_params_range_pick 3 value 3
set example_params_range_pick 3 another_value foobar
set example_params_range_pick 3 same_value_again 3
set example_params_range_pick 4 value 4
set example_params_range_pick 4 another_value foobar
set example_params_range_pick 4 same_value_again 4
set example_params_range_pick 5 value 5
set example_params_range_pick 5 another_value foobar
set example_params_range_pick 5 same_value_again 5
set example_params_range_pick 6 value 6
set example_params_range_pick 6 another_value foobar
set example_params_range_pick 6 same_value_again 6
```
如上所示,pick操作从整数范围中随机选择一个整数。选取的值成为 从1(1)开始的迭代器的上限。迭代器是强加的数据。在上述预期输出中, 选取的值是6,形成迭代器的上限,从1开始,一直迭代到选取的值6。
以下示例配置文件28B可以说明choose操作的使用:
示例‘config.yaml’:
```
bgp_neighbor_qty:<<example_range_choose>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
example_range_choose:
range:(1-5)
op:choose
```
示例预期输出:(随机选择3)
```
set bgp_neighbor_qty 3
```
如上所示,选择操作从指定的整数范围(即,在本示例中为1-5)中 随机选择单个整数。
以下示例配置文件28B可以说明选择操作与单V形符号的结合使用:
示例‘config.yaml’:
```
example_params_range_choose:
key<example_range_choose>:#single chevron usage
value:<<example_range_choose>>
another_value:foobar
different_value_this_time:<<example_range_choose>>
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
```
示例匹配‘params.yaml’:
```
example_range_choose:
range:(1-5)
op:choose
```
示例预期输出:(随机选择3)
```
set example_params_range_choose key1 value 1
set example_params_range_choose key1 another_value foobar
set example_params_range_choose key1 different_value_this_time 1
set example_params_range_choose key2 value 2
set example_params_range_choose key2 another_value foobar
set example_params_range_choose key2 different_value_this_time 2
set example_params_range_choose key3 value 3
set example_params_range_choose key3 another_value foobar
set example_params_range_choose key3 different_value_this_time 3
```
类似于上面的pick操作,单V形导致从1开始的迭代的上限。在上 例中,随机选择了值3(3),导致三个集合配置对象的三次迭代。
在DSL配置文件28B中使用功能块,为自定义函数提供语法,作为 对上述YAML结构中其他地方强加的数据采取行动或获取该数据的一种 方式。YAML是自上而下处理的,因此,功能块中提到的路径应该存在于 功能块上方的YAML中,而不是下方。
DSL支持功能块中的以下功能:
[subnet]从输入子网获取IP地址;
[rand]从上述模板配置返回随机元素;
[rand_unit]返回随机interface.unit值,用于各种Junos配置语句;
[incr]整数递增器;
[hosts]返回与配置的IP地址相关联的一组随机主机相邻IP地址;
[pick]从钩路径表示的元素列表中挑选单个元素;
[hosts_network]从给定子网返回一组随机选择的IP地址,控制上限和 下限,并能够跳过IP输出;
[enum]该功能块返回基于‘hook:’路径找到的所有元素。
功能块是返回自定义值的迭代器,其中,这些值可以表示IP地址、 整数、接口等。当功能块位于单V形语句下时,激活迭代器。为了说明, 考虑在接口下创建的N个逻辑接口(可以用术语“IFL”表示),并且IFL 需要以无重叠的随机方式分配给虚拟路由功能(VRF)路由实例。自定义 函数可以执行该分配,如下所示。此外,每个VRF可能需要配置eBGP 相邻,这涉及在IFL的IP地址处形成同一子网内的IP地址。然而,因为 IP地址是随机分配的,所以在每个VRF内选择使用的IP地址是未知的。 自定义函数也可以解决这种情况,如下所示。
首先,考虑以下示例功能块语句:
示例功能块语句:
```
some_key:{func:{id:3,name:rand_unit,hook: groups|access_cpe|interfaces|*|unit|*,min:1,max:3,stateful:True}}
```
以类似Python字典的方式构建功能块语句,由以下元素组成:
`{func:`功能块语句头
`{id:<int>,`用于识别该函数输出的整数id值。如果这是有状态函 数,则可能需要
`name:<function_name>,`支持的DSL函数的名称
`hook:<到强制数据的路径>,`到你希望采取行动的强制数据的路径 (例如XPath)。
`min:<int>、max:<int>、`函数参数,这些将根据功能而改变
`stateful:True}}`(可选)确保所创建数据的输出在函数id之间是唯 一的。需要唯一的函数id。(即,同一范围内的同一IP地址不会使用超过 一次)。
在某些情况下,功能块只能在YAML值位置内(键下)使用。因此, DSL可能不允许在动态施加的值下面包含其他键或列表项。
首先考虑子网功能块,子网功能块返回给定子网内的单个IP地址, 并基于功能块内提供的网络掩码增加子网。下面所示的子网块的参数如 下:
`network:`返回地址的IP和子网掩码
`offset:`该字段根据网络地址告诉函数从哪个IP地址值开始。(例如, `network:6.0.0.0/24,offset:1`将从IP地址‘6.0.0.1’开始返回。偏移值 2将从‘6.0.0.2’开始返回等)
`id:`当‘状态:’选项设置为True时,该字段有助于识别函数的结 果。在子网范围内,具有相同ID的状态函数永远不会返回相同的值。
`stateful:`在同一功能的用法中实现独特的输出。选项是‘真’或‘假’。
以下是状态选项设置为真时的子网功能块的示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<these_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
<those_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:3,stateful:True}}
family mpls:
```
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-2)
op:iter
those_units:
range:(6-7)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 6 family inet address 6.0.2.3/24
set interfaces ge-0/0/0 unit 6 family mpls
set interfaces ge-0/0/0 unit 7 family inet address 6.0.3.3/24
set interfaces ge-0/0/0 unit 7 family mpls
set interfaces ge-0/0/1 unit 1 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 2 family inet address 6.0.5.1/24
set interfaces ge-0/0/1 unit 6 family inet address 6.0.6.3/24
set interfaces ge-0/0/1 unit 6 family mpls
set interfaces ge-0/0/1 unit 7 family inet address 6.0.7.3/24
set interfaces ge-0/0/1 unit 7 family mpls
```
以下是状态选项设置为假时的子网功能块的示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<my_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:False}}
```
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
my_units:
range:(1-3)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 family inet address 6.0.0.1/24
set interfaces ge-0/0/1 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/1 unit 2 family inet address 6.0.0.1/24
```
rand功能块基于表示一组配置值的钩路径返回元素的随机集合。下面 显示的rand块的参数如下:
`hook:`到函数语句之上的感兴趣的YAML的路径
`min:`返回元素的可能数量的下限
`max:`返回元素的可能数量的上限
`id:`(可选)用于帮助跟踪输出唯一性的函数的ID,与`stateful:True` 一起使用时必需
`stateful:`(可选)用于在具有相同ID的功能使用中维护唯一输出。
以下是rand功能块的示例:
示例‘config.yaml’:
```
interfaces:
ge-0/0/0:
unit:
<these_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
random_value:{func:{id:2,name:rand,hook:interfaces|*|unit|*,min:1,max:3,stateful:True}}
```
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
these_units:
range:(1-5)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/0 unit 4 family inet address 6.0.3.1/24
set interfaces ge-0/0/0 unit 5 family inet address 6.0.4.1/24
set random_unit 5
set random_unit 4
set random_unit 1
```
rand_unit功能块从接口语句中随机选择interface.unit值,这在根据协 议指定接口时可能很有用,但是还没有识别模板创建了哪些接口。下面显 示的rand_unit块的参数如下:
`hook:`到函数语句之上的感兴趣的YAML的路径
`min:`返回元素的可能数量的下限
`max:`返回元素的可能数量的上限
`id:`(可选)用于帮助跟踪输出唯一性的函数的ID,与`stateful:True` 一起使用时必需
`stateful:`(可选)用于在具有相同ID的功能使用中维护唯一输出。
以下是rand_unit功能块的一个示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<these_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
protocols:
ospf:
area 0:
interface:{func:{id:2,name:rand_unit,hook:interfaces|*|unit|*,min:1,max:3,stateful:True}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-5)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/0 unit 4 family inet address 6.0.3.1/24
set interfaces ge-0/0/0 unit 5 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 1 family inet address 6.0.5.1/24
set interfaces ge-0/0/1 unit 2 family inet address 6.0.6.1/24
set interfaces ge-0/0/1 unit 3 family inet address 6.0.7.1/24
set interfaces ge-0/0/1 unit 4 family inet address 6.0.8.1/24
set interfaces ge-0/0/1 unit 5 family inet address 6.0.9.1/24
set protocols ospf area 0 interface ge-0/0/1.4
set protocols ospf area 0 interface ge-0/0/0.4
```
incr功能块提供整数递增。下面显示的incr块的参数如下:
`id:`(可选)用于帮助跟踪输出唯一性的函数的ID,与`stateful:True` 一起使用时必需
‘start:`开始整数到乘积
`stateful:`(可选)用于在具有相同ID的功能使用中维护唯一输出。
以下是incr功能块的一个示例:
示例‘config.yaml’:
```
<these_units>:
my_incr:{func:{id:1,name:incr,start:1400,stateful:True}}
a:
{func:{id:1,name:incr,start:1400,stateful:True}}
b:
{func:{id:1,name:incr,start:1400,stateful:True}}
c:
{func:{id:2,name:incr,start:1400,stateful:True}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
these_units:
range:(1-5)
op:iter
```
示例预期输出:
```
set 1 my_incr 1400
set 2 my_incr 1401
set 3 my_incr 1402
set 4 my_incr 1403
set 5 my_incr 1404
set a 1405
set b 1406
set c 1400
```
主机功能块返回与配置的IP地址相关联的主机相邻IP地址的随机集 合,作为一个示例,这对于将BGP相邻IP地址与接口IP地址匹配可能是 有用的。下面显示的主机块的参数如下:
`hook:`到函数语句之上的感兴趣的YAML的路径
`min:`返回元素的可能数量的下限
`max:`返回元素的可能数量的上限
`id:`(可选)用于帮助跟踪输出唯一性的函数的ID,与`stateful:True` 一起使用时必需
`stateful:`(可选)用于在具有相同ID的功能使用中维护唯一输出。
以下是主机功能块的一个示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<these_units>:
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
routing-instances:
instance1:
interface:
{func:{id:3,name:rand_unit,hook:interfaces|*|unit|*,min:2,max:2,stateful:True}}
protocols:
bgp:
group:
ebgp_group<access_num_groups>:
neighbor:
{func:{id:4,name:hosts,hook:..|..|..|..|..|interface|*|family inet|address, min:1,max:3,skip:1,stateful:True}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-5)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/0 unit 4 family inet address 6.0.3.1/24
set interfaces ge-0/0/0 unit 5 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 1 family inet address 6.0.5.1/24
set interfaces ge-0/0/1 unit 2 family inet address 6.0.6.1/24
set interfaces ge-0/0/1 unit 3 family inet address 6.0.7.1/24
set interfaces ge-0/0/1 unit 4 family inet address 6.0.8.1/24
set interfaces ge-0/0/1 unit 5 family inet address 6.0.9.1/24
set routing-instances instance1 interface ge-0/0/0.4
set routing-instances instance1 interface ge-0/0/0.3
set routing-instances instance1 protocols bgp group ebgp_group1neighbor 6.0.2.64
set routing-instances instance1 protocols bgp group ebgp_group1neighbor 6.0.2.150
set routing-instances instance1 protocols bgp group ebgp_group2neighbor 6.0.3.28
set routing-instances instance1 protocols bgp group ebgp_group2neighbor 6.0.2.21
set routing-instances instance1 protocols bgp group ebgp_group2neighbor 6.0.3.96
```
挑选功能块允许从由钩子表示的元素列表中选择单个元素。下面显示 的挑选块的参数如下:
`hook:`到函数语句之上的感兴趣的YAML的路径
`pos:`要挑选的物品的索引。
下面是挑选功能块的一个示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<these_units>:
filter:{func:{id:1,name:incr,start:1400,stateful:True}}
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
units:{func:{name:pick,hook:interfaces|ge-0/0/0|unit|*,pos:2}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-3)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 filter 1400
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 filter 1401
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 filter 1402
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/1 unit 1 filter 1403
set interfaces ge-0/0/1 unit 1 family inet address 6.0.3.1/24
set interfaces ge-0/0/1 unit 2 filter 1404
set interfaces ge-0/0/1 unit 2 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 3 filter 1405
set interfaces ge-0/0/1 unit 3 family inet address 6.0.5.1/24
set units 3
```
下面是挑选功能块的另一示例:
示例‘config.yaml’:
```
interfaces:
<my_interfaces>:
unit:
<these_units>:
filter:{func:{id:1,name:incr,start:1400,stateful:True}}
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
units:{func:{name:pick,hook:interfaces|ge-0/0/0|unit|*,pos:2}}
protocols:
ldp:
interface:
<my_interfaces>:{func:{name:pick,hook:interfaces|*|unit|*}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-3)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 filter 1400
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 filter 1401
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 filter 1402
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/1 unit 1 filter 1403
set interfaces ge-0/0/1 unit 1 family inet address 6.0.3.1/24
set interfaces ge-0/0/1 unit 2 filter 1404
set interfaces ge-0/0/1 unit 2 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 3 filter 1405
set interfaces ge-0/0/1 unit 3 family inet address 6.0.5.1/24
set protocols ldp interface ge-0/0/0.1
set protocols ldp interface ge-0/0/1.1
```
hosts_network功能块根据给定的下限和上限,返回来自同一个子网的 随机数量的IP地址,作为输入IP地址变量。下面显示的hosts_network块 的参数如下:
`network:`IP地址/网络掩码输入,从中创建值。该值可以是静态字 符串或双V形变量。(例如,‘192.168.1.1/24’或‘<<local-ip>>/29’等)
`min:`返回元素的可能数量的下限
`max:`返回元素的可能数量的上限
`skip:`(可选)不希望返回的IP地址的位置列表
`id:`(可选)用于帮助跟踪输出唯一性的函数的ID,与`stateful:True` 一起使用时必需
`stateful:`(可选)用于在具有相同ID的功能使用中维护唯一输出。
以下是host_network功能块的一个示例:
示例‘config.yaml’:
```
neighbor:{func:{id:8,name:hosts_network,network:<<local-ip>>, min:1,max:2,skip:[1,2],stateful:True}}
foobar:
neighbor2:{func:{id:8,name:hosts_network,network:<<local-ip>>, min:1,max:2,skip:[1,2],stateful:False}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
local-ip:193.2.0.1/24
```
示例预期输出:
```
set neighbor 193.2.0.174
set neighbor 193.2.0.230
set neighbor 193.2.0.158
set neighbor 193.2.0.106
set neighbor 193.2.0.90
set neighbor 193.2.0.39
set foobar
set neighbor2 193.2.0.182
```
enum功能块返回基于钩子找到的所有元素。此外,enum功能块可以 在与接口结合使用时提供额外功能,允许返回interface.unit元素。当包括 来自VRF或其他配置部分内的协议下的接口时,可以使用额外功能。下 面显示的enum块的参数如下:
`hook:`到函数语句之上的感兴趣的YAML的路径。
下面是enum功能块的一个示例:
示例‘config.yaml’:
```
interfaces:
ge-0/0/0:
unit:
<these_units>:
filter:{func:{id:1,name:incr,start:1400,stateful:True}}
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
units:{func:{name:enum,hook:interfaces|ge-0/0/0|unit|*}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
these_units:
range:(1-3)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 filter 1400
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 filter 1401
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 filter 1402
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set units 1
set units 2
set units 3
```
下面是enum功能块的另一示例用法,说明了额外的接口功能:
interfaces:
<my_interfaces>:
unit:
<these_units>:
filter:{func:{id:1,name:incr,start:1400,stateful:True}}
family inet:
address:{func:{id:1,name:subnet,network:6.0.0.0/24,offset:1,stateful:True}}
protocols:
ldp:
interface:
<my_interfaces>:{func:{name:enum,hook: interfaces|<my_interfaces>|unit|*}}
以下示例参数文件28A可以被上述配置文件28B引用,这导致示例 参数文件28A下面列出的示例预期输出:
示例匹配‘params.yaml’:
```
my_interfaces:['ge-0/0/0','ge-0/0/1']
these_units:
range:(1-3)
op:iter
```
示例预期输出:
```
set interfaces ge-0/0/0 unit 1 filter 1400
set interfaces ge-0/0/0 unit 1 family inet address 6.0.0.1/24
set interfaces ge-0/0/0 unit 2 filter 1401
set interfaces ge-0/0/0 unit 2 family inet address 6.0.1.1/24
set interfaces ge-0/0/0 unit 3 filter 1402
set interfaces ge-0/0/0 unit 3 family inet address 6.0.2.1/24
set interfaces ge-0/0/1 unit 1 filter 1403
set interfaces ge-0/0/1 unit 1 family inet address 6.0.3.1/24
set interfaces ge-0/0/1 unit 2 filter 1404
set interfaces ge-0/0/1 unit 2 family inet address 6.0.4.1/24
set interfaces ge-0/0/1 unit 3 filter 1405
set interfaces ge-0/0/1 unit 3 family inet address 6.0.5.1/24
set protocols ldp interface ge-0/0/0.1
set protocols ldp interface ge-0/0/0.2
set protocols ldp interface ge-0/0/0.3
set protocols ldp interface ge-0/0/1.1
set protocols ldp interface ge-0/0/1.2
set protocols ldp interface ge-0/0/1.3
```
全局参数文件28C可以类似于参数文件28A,除了全局参数文件28C 可以定义对于模拟的每次迭代保持相同的参数值。全局参数文件28C还可 以定义参数值,这些参数值涉及模拟的迭代次数、关于调试模式的信息(例 如,启用或禁用)、最大路由数量(例如,跨越所有不同的路由协议)、每 个实例的最大路由数量、每个相邻的最大数量或路由、最小网络掩码长度、 最大网络掩码长度等。前述参数值可以解决DUT 16的限制(例如,DUT 16可以仅包括用于存储最多1,000,000条路由的设置数量的存储器,从而 导致路由的最大数量设置为1,000,000条,以便不超过DUT 16的存储器)。
配置生成单元80可以以上述方式为DUT 16生成配置对象31,将配 置对象31提供给多样性模型82。配置生成单元80还可以自动生成用于测 试床14的相应配置对象33。配置对象33在加载到测试床14中时,可以 配置测试床14,以在被配置为根据配置对象31操作时支持DUT 16的方 式模拟和/或执行路由协议。配置生成单元80也可以将配置对象33输出到多样性模型82。
如上所述,来自每个参数范围的随机采样可以提供使操作数据17多 样化的最佳解决方案。然而,由于预定义域逻辑导致的数据偏差,随机采 样并非在所有情况下都可行。即,配置对象的不同迭代在DUT 16的第二 操作状态上偏向DUT 16的第一操作状态。为了说明,考虑到研究显示与 200-300对等体范围、300-400对等体范围和任何其他更高范围相比, L3VPN网络模拟中BGP对等体的数量严重偏向1-100对等体范围。
结果,多样性模型82表示模型,其被配置为接收偏置采样分布,作 为输入,并使用聚类分析来重新平衡采样分布。多样性模型82的一个示 例可以采用k均值聚类,因为k均值聚类可能是有效的,并且可以很好地 扩展,以处理大量数据。尽管下面关于k均值聚类进行了描述,但是这些 技术可以使用其他聚类算法来执行。
在这个示例中,多样性模型82可以在以下三个步骤中实现k均值聚 类。首先,多样性模型可以执行k均值聚类,以在偏差分布的密集区域中 对采样数据进行分组(这是参考配置对象的不同迭代的另一种方式),并 且计算分组中心,例如,组中的参数的平均值。第二,多样性模型可以选 择距离组中心最近的采样参数(这也是参考配置对象的另一种方式),作 为组的表示。第三,多样性模型可以从每个组中选择采样参数,作为输入, 以形成每个配置数据31和33。在多样性模型生成模拟配置数据31和33 之后,驱动器12可以根据每个配置数据31和33迭代地进行模拟。
在这方面,多样性模型82可以调整DUT 16的配置对象31中阐述的 配置参数的参数,以考虑数据偏差。多样性模型82可以将适配的配置对 象31输出到模拟驱动器84。多样性模型82还可以更新配置对象33,以 反映对配置对象31的适应(adaptations)的方式来调整各种参数。多样性 模型82可以将配置对象31和33输出到模拟驱动器84。
模拟驱动器84可以表示被配置为与测试床14接口的单元。在一些示 例中,测试床14可以表示能够模拟由一个或多个网络装置(以及可能多 达数百或数千个网络装置)执行的一个或多个路由协议的虚拟化网络。例 如,测试床14可以包括由和/或提供的测试环境。这样,模 拟驱动器84可以包括ixia和/或Spirent接口,用于与测试床14接口,以 加载配置对象33。模拟驱动器84还可以包括接口,通过该接口与DUT 16 交互,以加载配置对象31。
模拟驱动器84还可以向数据收集工具18输出通知85,指示模拟的每 次迭代开始和停止、每个协议开始和停止的时间等。模拟驱动器84可以 以这种方式输出通知85,以便于数据收集。即,响应于每个通知,数据收 集工具18可以开始和结束数据收集。
图5是更详细地示出图3的流管理模块52和数据处理模块54的方框 图。如图5的示例所示,流管理模块52包括流数据库(DB)60(“流DB 60”),而数据处理模块54包括流客户端模块62、解析模块64、处理模块 66和时间序列(TS)客户端模块68(“TS客户端模块68”)。
流管理模块52可以将序列化记录19存储到流数据库60。流管理模块 52可以处理模拟数据集17和syslogs 37,以形成序列化记录。syslogs 37可 以定义配置变化的日志,其中,使用“提交”命令将每个配置变化提交给 DUT 16。流管理模块52可以处理syslogs37,以识别每个连续的“提交” 命令以及发出每个“提交”命令的相关时间。使用发出每个“提交”命令 的时间,流管理模块52可以生成序列化记录19,以仅包括在记录每个“提 交”命令时和/或之后出现的模拟数据集17的部分,从而将模拟数据集17 分成单独的序列化记录19。
数据处理模块54的流客户端模块62可以表示模块,其被配置为根据 消费者API操作,以便检索发布到流客户端模块62订阅的一个或多个主 题的序列化记录。流客户端模块62可以将序列化记录19提供给处理模块 66。
数据处理模块54的解析模块64可以表示模块,被配置为处理可以被 定义为YAML文件的数据处理规则63,并且将数据处理规则63输出到处 理模块66。以下是数据处理规则63的示例:
#|--bgp-rib:struct(nullable=true)
#| |--@style:string(nullable=true)
#| |--accepted-prefix-count:long(nullable=true)
#| |--active-prefix-count:long(nullable=true)
#| |--advertised-prefix-count:long(nullable=true)
#| |--name:string(nullable=true)
#| |--received-prefix-count:long(nullable=true)
#| |--suppressed-prefix-count:long(nullable=true)
#|--type:string(nullable=true)
root_tag:bgp-group
child_tag:bgp-rib
aggregations:
agg_name:ebgp_inet0_accepted_prefix_sum
filter:bgp-rib.name~inet.0,type=External#rib name'like'inet.0
calc:sum
calc_field:bgp-rib.accepted-prefix-count
groupby:type
agg_name:ebgp_inet0_ri_count
filter:bgp-rib.name~inet.0,type=External
calc:count#distinct count
calc_field:bgp-rib.name
在前面的数据处理规则63的示例中,“#”表示下面的注释,该注释 是不可执行代码。数据处理规则63的上述示例可以将处理模块66配置为 识别BGP组并聚集具有RIB名称inet.0的BGP路由信息库(RIB),计算 接受的前缀计数的BGP路由的总和,按类型对每个总和进行分组。在这 方面,处理模块66可以基于数据处理规则63处理序列化记录19,以生成适配的序列化记录19。
处理模块66可以表示被配置为根据数据处理规则63处理序列化记录 19的单元。处理模块66可以实现称为Pandas的Python编程语言库,创 建所谓的“数据帧”,这表示具有潜在不同类型数据(例如,整数、浮点 值、字符、字符串、布尔值等)的列的二维标记数据结构并可经由索引访 问。
处理模块66可以利用数据帧(DataFrames)来进一步将序列化记录 组19序列化,从而作为一个示例,创建指定RE和PFE内存使用的数据 帧。处理模块66可将该RE和PFE内存使用与上述各种不同数量的路由 相关联,并在序列化记录19的特征使用数据中指定。处理模块66可以通 过在不同列中设置路由数量,然后在随后的列中设置RE和PFE内存使用, 来指定数据帧中的关联。然后,每行在给定时间戳(可能是另一列)为所 标识的列定义相应的值。
作为另一示例,处理模块66可以生成指定路由学习持续时间的数据 帧,根据数据处理规则63处理序列化记录60,以去除路由学习开始时和 路由学习完成时之间的冗余或不相关数据。得到的路由学习数据帧可以在 执行路由学习的给定模拟期间识别所有持续时间。数据处理模块66可以 以类似于上述内存使用数据帧的方式指定数据帧中的关联。在该示例中, 处理模块66可以指定第一列中的时间戳,随后是每种不同类型(BGP、 OSPF等)的路由数量的列,然后是学习持续时间的列。然后,每行在给 定时间戳为所标识的列定义相应的值。换言之,处理模块66可以进一步 调节序列化数据19。
TS客户端模块68可以表示被配置为作为TS数据库24的客户端操作 的模块。TS客户端模块68可以实现专有或开源协议,通过这些协议与TS 数据库24接口。TS客户端模块68可以将处理模块66生成的所得数据帧 作为序列化数据19存储到TS数据库24。
图6是示出根据本公开中描述的技术的各个方面的建模环境10在生 成模型20中的示例操作的示图。如图6的示例所示,有三个垂直层,工 具层100、集成层102和应用层104(“应用层104”)。
在工具层100内,数据处理模块54(图3)可以执行数据清理110。 数据处理模块54可以通过完成缺失值和执行异常值过滤来“清理”数据。 分析模块60(也可称为“分析引擎60”,如图6的示例所示)可执行工具 层100的大部分剩余部分,执行特征工程112、模型校准114和模型验证 116。
在特征工程112期间,分析模块60可以执行分类特征单热编码,这 是指在应用机器学习之前调节数据的过程。分类数据是指包含标签值而不 是数值的变量。单热编码指的是这样一个过程,其中,分类数据(可能更 具体地,不存在序数关系的分类数据)减小为整数,然后,映射到二进制 值,该二进制值的位数等于分类数,其中,单个位设置为1,表示存在来 自该类别的样本。考虑以下示例,该示例显示了具有三个不同值(红色、 绿色或蓝色)的类别“颜色”的单热编码值:
在前述示例中,红色编码为100,绿色编码为010,蓝色编码为001。 分析模块60还可以在特征工程112期间执行特征归一化,该特征归一化 进一步在定义的范围内调节数据。
分析模块60还可执行模型校准114,在此期间,分析模块60可执行 线性建模和非线性建模,如上文更详细讨论的,以产生存储器效用预测子 模型120、CPU效用预测子模型122、路由学习预测子模型124(显示为 “收敛分析”子模型)等。分析模块60可以以上述方式生成存储器效用 预测子模型120和路由学习预测子模型124。
为了生成CPU效用预测子模型122,分析模块60可以利用模拟数据 集19的特征使用数据的与生成存储器效用预测子模型120时所利用的部 分相同的部分(即,在该示例中,多个对等体、多个组、多个路由实例、 多个客户边缘(CE)装置、多个CE接口、多个路由以及每个路由的类型)。 分析模块60可以识别特征使用数据的上述部分和一个或多个资源利用数 据之间的关联(例如,路由器执行的每个路由守护程序的处理器使用以及 路由器的分组转发引擎(PFE)中的处理器使用中的一个或多个)。这样, 分析模块60可以相对于每个关联执行机器学习,以生成表示装置的CPU 实用程序预测子模型124,该装置响应于配置参数(其与作为特征使用数 据获得的配置对象的子集相同)预测路由器执行的每个路由守护程序的处 理器使用以及路由器的PFE中的处理器使用。
分析模块60还可执行模型验证116,如上文更详细描述的,其可包括 K重交叉验证和正向链接验证。可视化模块62可以执行可视化118,提供 对接收器操作特性(ROC)曲线、散点图等的访问。
尽管关于特定操作数据17进行了描述,但是本公开中描述的技术也 可以捕获CPU和收敛,为CPU和收敛提供模型。可以形成额外模型的基 础的其他操作数据17包括总结的路由统计(例如,路由协议数量和/或族 类型和/或实例数量)、AS路径统计、路由改变推送通知、路由协议守护 程序(RPD)中间组件统计(例如,将路由推送至转发信息库FIB时RPD的各个部分的统计)、FIB路由对象统计(例如,下一跳指针、类似于RIB 的总结统计)和BGP输出队列统计。
图7A和7B是示出根据本公开中描述的技术的各个方面的预配置建 模环境的模拟数据集生成的示图。预配置建模环境是指测试环境14(图3) 被预配置并且经常被客户用于装置和服务的内部测试的建模环境。客户可 能允许使用其测试环境14来建模,但是客户可能不允许完全控制所有参 数。在这种情况下,可以根据技术的各个方面来配置驱动器12,以适配一 个或多个预定义的配置对象,并对适配的每次迭代进行模拟。数据收集工 具18然后可以收集操作数据17,分析模块60可以利用这些数据来生成模 型20。
首先参考图7A,驱动器12可以与DUT 16接口合,以收集预先配置 的配置对象。驱动器12还可以与测试环境14接合,以获得预配置的测试 环境14的配置数据。驱动器12可以基于预配置测试环境14的配置数据 来识别那些获得的能够被适配(例如,改变、激活、停用等)的配置对象。 在图7A的示例中,配置对象150可以表示所获得的能够适配的配置对象。
在任何情况下,驱动器12可以适配配置对象150A-150G(“配置对象 150”),向每个配置对象150分配随机值。为了说明的目的,假设配置对 象150均表示多个路由。在图7A的示例中,驱动器12接下来可以执行预 分组,从而产生三个组152A-152C(“组152”)。驱动器12可以利用k均 值聚类(或执行其他聚类分析),来对相似对象150进行分组,从而导致 在每个对应组152中具有对象150的平均值的更少数量的配置对象 154A-154C。
驱动器12可以生成掩码池(“掩码156”),其中,该池中的每个掩码 是1和0的位掩码,指示是否存在对应的一个配置对象154。这样,驱动 器12可以将掩码的数量计算为增加到2的幂的配置对象154的数量。在 图7A的示例中,驱动器12可以确定8个掩码,因为有三个模拟对象,32等于8(包括零)。掩模156可以包括以下[0,0,1]、[0,1,1]等。驱动 器12然后可以将配置对象154应用于掩模156,以获得加权掩模158。上 面示例中列出的两个掩模156的示例加权掩模158可以包括[0,0,333] 和[0,172,333]。驱动器12接下来可以执行掩码聚类,以确保模拟中的 多样性。驱动器12然后可以选择聚类加权掩码158的子集,每个聚类具有一个子集(例如,最靠近每个组的中心的掩码)。
参考图7B,驱动器12还可以生成模拟,其中,存在随机选择生成的 配置对象150。驱动器12可以执行预分组,从而产生组152A和152C。 驱动器12然后可以从组152A和152C中的每一个中随机选择配置对象150 的不同子集,以生成三个不同的配置对象160A-160C。前述模拟生成的结 果是,对于只有配置对象的子集可以调整的预定义网络配置,激活和停用各种配置对象,以便改变DUT 16的操作状态。除了完全定义所有的配置 对象,前述允许通过激活和停用那些提供控制的配置对象来实现模拟多样 性。
图8是示出图1的建模环境在执行本公开中描述的自动模型生成的各 个方面时的示例操作的流程图。驱动器12(如图1的示例所示)可以最初 获得配置参数28A(“参数28B”)、配置对象28B(“配置28B”)和全局文 件28C(“全局文件28C”),这些文件也可以统称为“模拟配置文件28”。
在一些情况下,驱动器12可以基于模拟配置文件28,以确保DUT 16 的一个不同模拟配置文件28中的配置对象28B之间充分随机化的方式, 生成DUT 16的配置对象15(200)。除了随机化参数28A之外,驱动器 12可以生成或以其他方式获得多个配置对象15,每个配置对象可以定义 测试环境14内的DUT 16的不同模拟。驱动器12可以以上述方式在对应 于模拟的不同迭代(或者换言之,“模拟迭代”)的每个不同的所得到的配 置对象15内随机化各种参数值。因为模型生成需要模拟之间一定程度的 可变性,以确保DUT 16的完整表示,所以驱动器12可以确定配置对象 15的每个非冗余对之间的相似程度(202)。
虽然来自每个参数范围的随机采样可以提供一种解决方案来使每次 模拟期间收集的操作数据多样化,但是由于参数28A中预先定义的域逻 辑,完全随机化是不可能的。即,参数28A中阐述的参数的某些值在其分 布方面存在偏差,或者换言之,不是以每个值相等数量的方式在统计上随 机的。
同样,驱动器12可以考虑参数文件28A中阐述的参数的某些值的偏 置采样分布,确定配置对象15的每个非冗余对(202)之间的相似程度。 驱动器12可以响应于相似程度与相似性阈值的比较,选择配置对象15的 子集(204)。驱动器12可以选择配置对象15的子集,以便进行给定模拟 的不同迭代,从而产生表示DUT 16的操作状态的更好的操作数据集合,从而产生更完整的模型20,该模型响应于配置参数更好地预测DUT 16的 操作状态。
当相似程度小于或等于相似性阈值时(“是”204),驱动器12可以将 两个配置对象15添加到配置对象15的子集(206)。当相似程度大于相似 性阈值时(“否”204),驱动器12可以仅将配置对象15中的一个添加到 配置对象15的子集(208)。驱动器12可以以这种方式迭代通过配置对象 15的每个非冗余对。
驱动器12可以在选择配置对象15的子集之后,与DUT 16接口,以 根据模拟配置文件28中的第一个来配置DUT 16(210)。驱动器12可以 接下来或者在配置DUT 16的同时,与测试环境14接口,以根据模拟配置 文件28中的第一个来配置测试环境14(212)。在配置DUT16和测试环 境14之后,驱动器12可以进行与模拟配置文件28的子集中所选择的一 个子集相对应的模拟(214)。驱动器12可以迭代地执行前述步骤,直到 已经执行了对应于模拟配置文件28的选定子集的所有模拟(212,214)。
在模拟期间或同时,数据收集工具18可与DUT 16接口,以收集表示 DUT 16的操作状态的操作数据17(216)。
数据收集工具18可以发出命令和/或其他查询,来收集操作数据17。 数据收集工具18还可以检索或请求指示操作数据17的系统日志。
数据收集工具18可以调节操作数据17,以形成序列化数据19(218)。 即,数据收集工具18可以处理每种形式的操作数据17(例如,轮询数据 和系统日志),以系统地暂时排列数据,从而生成序列化数据19。驱动器 12和数据收集工具18可以协调,为模拟配置文件28的每个子集迭代地收 集序列化数据19,重复上述过程,为模拟配置文件28的每个子集收集序 列化数据19。数据收集工具18可以将序列化数据19输出到后端分析单元 22。
后端分析单元22可以基于序列化数据19生成模型20。在一些示例中, 后端分析单元22可以识别序列化数据19,该序列化数据19是参考与用于 进行模拟的每个模拟配置文件28相关联的调节操作数据17的另一种方式 (220)。即,使用syslogs 37,后端分析单元22可以识别上述“提交”命 令,识别一个不同的模拟配置文件28。每个“提交”命令将全部配置对象 提交给DUT 16,从而允许后端分析单元22识别哪个操作数据17对应于 哪个模拟配置文件28。以这种方式,后端分析单元22可以访问每个模拟 配置文件28,并且识别每个模拟配置文件28和序列化数据19之间的关联。
后端分析单元22可以确定配置对象28B和序列化数据19的不同部分 之间的关联。基于配置对象28B和序列化数据19的不同部分之间的关联, 后端分析模块22可以生成表示DUT 16的模型20,该模型20响应于配置 参数,预测DUT 16的操作状态。在一些情况下,后端分析模块22可以相 对于模拟配置文件28的子集和序列化数据19之间的关联执行机器学习, 以生成表示DUT 16的模型20(222)。
图9是示出在使用预配置的测试环境执行模拟数据集生成时图3的建 模环境的示例操作的流程图。驱动器12可以最初生成具有随机分配的值 的配置对象150A-150G(“配置对象150”)(250)。在图7A的示例中,驱 动器12接下来可以执行预分组,从而产生三个组152A-152C(“组152”) (252)。驱动器12可以利用k均值聚类来对类似的对象150进行分组,从而导致配置对象154A-154c在每个相应组152中具有对象150的平均值。 以这种方式,驱动器12可以为每个组154确定配置对象154(254)。
驱动器12可以生成掩码池(“掩码156”),其中,该池中的每个掩码 是1和0的位掩码,指示是否存在对应的一个配置对象154。这样,驱动 器12可以将掩码的数量计算为增加到2的幂的配置对象154的数量(256)。 在图7A的示例中,驱动器12可以确定8个掩码,因为有三个模拟对象, 32等于8(包括零)。驱动器12然后可以将配置对象154应用于掩模156,以获得加权掩模158(258)。驱动器12接下来可以相对于加权掩码158 执行掩码聚类,以确保模拟中的多样性(260)。驱动器12然后可以选择 聚类加权掩码158的子集,每个聚类具有一个(例如,最靠近每个组的中 心的掩码)(262)。驱动器12可以从每个选择的加权掩码158生成模拟数 据集28(264)。
驱动器12还可以从生成的配置对象150的组152的随机选择中生成 (如图7B的示例所示)模拟配置文件28(266),这可以有效地激活和停 用某些配置对象。驱动器12可以执行预分组,从而产生组152A和152c。 驱动器12然后可以从组152A和152C中的每一个中随机选择配置对象150 的不同子集,以生成三个不同的模拟配置文件160A-160C。
图10是更详细地示出图1-3的测试床14的示例的方框图。在图10 的示例中,测试床14包括客户网络300A-300N、提供商路由器302(“ixP 302”)、提供商边缘(PE)路由器304A-304N(“ixPE 304A-304N”)、远程 客户站点306A-306N和308A-308N。每个客户网络300A-300N还包括相 应的一个客户驻地设备(CPE)310A-310N(“ixCPE 310A-310N”)。每个客户网络300A-300N也都支持路由312A-312N,而每个远程客户站点 306A-306N和308A-308N分别支持路由314A-314N和316A-316N。DUT 16 被示为DUT PE 16,以表示DUT 16是PE路由器。CPE 310A-310N中的 每一个可以经由外部BGP(eBGP)、内部BGP(iBGP)和/或OSPF路由 协议与DUT PE 16通信。同样,远程客户站点306A-306N和308A-308N 内的任何CE可以经由eBGP、iBGP和/或OSPF路由协议与相应的PE路 由器304A-304N通信。
如上所述,测试床14可以模仿或以其他方式模拟服务,例如,L3VPN, 测试DUTPE16在支持L3VPN服务时的性能。尽管以上描述为测试L3VPN,但是本公开中描述的技术可以扩展到多个不同的服务,包括核心 中的标签分发协议(LDP)和/或开放最短路径优先(OSPF)协议、网络 边缘的外部BGP(eBGP)、自动带宽标签交换路径(LSPs)、重叠路由、 L3VPN的内部BGP(iBGP)、L3VPN的中间系统到中间系统(ISIS)协 议、L3VPN的资源预留协议(RSVP)和各种其他服务。
此外,尽管根据每个客户网络300A-300N的路由器或其他装置的数量 显示为固定的,但是测试床14可以以任何合适的方式被配置为模拟或复 制真实世界的网络环境。此外,虽然显示为表示PE路由器,但是DUT 16 可以是任何类型的装置,包括任何类型的网络装置,例如,交换机、CPE、 提供商路由器、集线器等。
图11是示出表示上述被测装置的示例路由器410的方框图。如图11 所示,路由器410包括控制单元412、交换结构414和多个分组转发引擎 (PFE)416A-416N(“PFE 416”)。控制单元412可以表示执行软件指令 的一个或多个处理器(图11中未示出),例如,用于定义软件或计算机程 序的指令,这些指令存储到非暂时性计算机可读介质(同样,图11中未 示出),例如,存储装置(例如,磁盘驱动器或光驱)或者存储器(例如, 闪存、随机存取存储器或RAM)或存储指令的任何其他类型的易失性或 非易失性存储器,当执行指令时,所述指令促使一个或多个处理器执行本 文所述的技术。或者,控制单元38可以表示专用硬件,例如,一个或多 个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用专用处 理器(ASSP)、一个或多个现场可编程门阵列(FPGA)或者专用硬件的 一个或多个前述示例的任意组合,用于执行本文中描述的技术。通常,即 使当实现为专用硬件时,专用硬件也支持执行可以实现本公开中描述的技 术的一个或多个方面的软件。因此,这些技术通常可以用硬件或硬件和软 件的组合来实现。
控制单元412包括为路由器410提供控制平面功能的路由引擎418。 路由引擎426通常表示一个模块,该模块以将网络拓扑存储为所谓的“路 由表”的形式提供控制平面功能,执行路由协议,以与对等路由装置通信, 从而维护和更新路由表,并提供管理接口,以允许用户访问和配置路由器 410。
该管理接口在图11的示例中显示为接口模块420。控制单元412包括 接口模块420,以促进与路由器410通信。接口模块420可以表示任何常 见类型的接口,包括命令行接口(CLI)或图形用户接口(GUI)。接口模 块420可以包括与用于向路由器410输入数据的组件交互所需的任何接 口。接口模块420还可以表示一个或多个接口,驱动器12可以通过该接 口输入装置配置31,收集器18可以通过该接口输入命令35,以获得报告 17并启动syslogs 37的输出。
交换结构414提供高速互连,用于将传入的数据包转发到正确的一个 PFE 416,用于通过网络传输,例如,通常称为“互联网”的大型公共网 络。PFE 416经由相关的接口卡(IFC)422A-422N(“IFC 422”)接收和 发送数据包。IFC 422可以均表示通信链路和路由器410之间的接口或端 口,路由器410通过该接口或端口发送和接收数据包。PFE 416可以均包 括控制单元430A-430N(“控制单元430”)中的一个,每个控制单元可以 类似于控制单元412。控制单元430中的每一个可以包括专门为分组处理 设计的专用硬件和中央处理单元(CPU)的组合,该中央处理单元用于配 置该专用硬件,否则能够在路由引擎418和该专用硬件之间通信。IFC 422 和PFE 416与交换结构414相结合,可以形成负责根据转发信息转发数据 包的“数据平面”。PFE 416中的每一个还可以包括存储器(“MEM”) 434A-434N(“MEM434”)中的一个。
如图11的示例所示,路由引擎418包括CPU 440(其可以表示一个 或多个CPU 440)和存储器442(“MEM 442”,其也可以表示一个或多个 存储器)。数据收集工具18可以经由接口模块420与路由器410接口,以 收集指示每个路由守护程序使用CPU 440和指示每个路由守护程序使用 MEM 442的操作数据17。数据收集工具18还可以经由接口模块420与路 由器410接口,以收集指示CPU 432的使用和指示MEM 434的使用的操 作数据17。
以这种方式,数据收集工具18可以与路由器410接口,以收集指示 路由器410的操作状态的操作数据17,从而促进构建可以允许路由器410 更精确建模的模型。更精确的模型可能会产生上面详细讨论的好处,这些 好处会改善网络规划和现有路由器的更好利用,这可能会提高网络本身的 性能。
图12是示出根据本公开的一种或多种技术操作的计算装置的一个示 例的进一步细节的方框图。图12可以示出服务器或其他计算装置500的 特定示例,该服务器或其他计算装置500包括一个或多个处理器502,用 于执行驱动器12或者在本文中描述的任何其他应用程序中的任何一个或 多个。可以在其他情况下使用计算装置500的其他示例。尽管出于示例的 目的,在图12中示出为独立计算装置500,但是计算装置可以是包括用于 执行软件指令的一个或多个处理器或其他合适的计算环境的任何组件或 系统,并且例如不必包括图12中示出的一个或多个元件(例如,通信单 元506;并且在一些示例中,诸如存储装置508等组件可以不与其他组件 共同定位或者位于同一机箱中)。
如图12的示例所示,计算装置500包括一个或多个处理器502、一个 或多个输入装置504、一个或多个通信单元506、一个或多个输出装置512、 一个或多个存储装置508和用户接口(UI)装置510。在一个示例中,计 算装置500还包括可由计算装置500执行的一个或多个应用程序522、驱 动器12和操作系统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执行。在一个示例中,存储装置508被在计算装置500上运行的 软件或应用程序用来在程序执行期间临时存储信息。
在一些示例中,存储装置508还包括一个或多个计算机可读存储介质。 存储装置508可以被配置为存储比易失性存储器更多的信息量。存储装置 508还可以被配置用于长期存储信息。在一些示例中,存储装置508包括 非易失性存储元件。这种非易失性存储元件的示例包括磁性硬盘、光盘、 软盘、闪存、或电可编程存储器(EPROM)或电可擦除可编程存储器 (EEPROM)的形式。
在一些示例中,计算装置500还包括一个或多个通信单元506。在一 个示例中,计算装置500利用通信单元506经由一个或多个网络(例如, 一个或多个有线/无线/移动网络)与外部装置通信。通信单元506可以包 括网络接口卡,例如,以太网卡、光收发器、射频收发器或可以发送和接 收信息的任何其他类型的装置。这种网络接口的其他示例可以包括3G和 WiFi无线电。在一些示例中,计算装置500使用通信单元506与外部装置 通信。
在一个示例中,计算装置500还包括一个或多个用户接口装置510。 在一些示例中,用户接口装置510被配置为通过触觉、音频或视频反馈从 用户接收输入。用户接口装置510的示例包括存在敏感显示器、鼠标、键 盘、语音响应系统、摄像机、麦克风或用于检测来自用户的命令的任何其 他类型的装置。在一些示例中,存在敏感显示器包括触敏屏幕。
一个或多个输出装置512也可以包括在计算装置500中。在一些示例 中,输出装置512被配置为使用触觉、音频或视频刺激向用户提供输出。 在一个示例中,输出装置512包括存在敏感显示器、声卡、视频图形适配 器卡或用于将信号转换成人类或机器可理解的适当形式的任何其他类型 的装置。输出装置512的额外示例包括扬声器、阴极射线管(CRT)监视 器、液晶显示器(LCD)或可以生成用户可理解的输出的任何其他类型的 装置。
计算装置500可以包括操作系统516。在一些示例中,操作系统516 控制计算装置500的组件的操作。例如,在一个示例中,操作系统516便 于一个或多个应用程序522和驱动器12与处理器502、通信单元506、存 储装置508、输入装置504、用户接口装置510和输出装置512的通信。 应用程序522和驱动器12还可以包括可由计算装置500执行的程序指令 和/或数据。
除了上述内容之外,或者作为上述内容的替代,描述了以下示例。在 下面的任何示例中描述的特征可以与在本文中描述的任何其他示例一起 使用。
示例1A.一种自动创建模型的方法,所述方法包括:由一个或多个处 理器基于模拟配置文件生成配置对象,用于相对于在测试环境内运行的网 络装置执行多个模拟迭代,每个模拟迭代被配置为随机分配测试环境内的 参数,以反映实际网络环境;由所述一个或多个处理器基于配置对象在测 试环境内进行所述多个模拟迭代中的每一个,以收集表示网络装置的操作 状态的对应的多个模拟数据集;并且由所述一个或多个处理器相对于多个 模拟数据集中的每一个执行机器学习,以生成表示网络装置的模型,所述 模型响应于所述网络装置的配置参数,在用网络装置的配置参数配置网络 装置时,预测网络装置的操作状态。
示例2A.根据示例1A所述的方法,其中,所述多个模拟数据集中的 每一个包括指示网络装置相对于测试环境的操作状态的特征使用数据以 及指示网络装置内的资源利用的资源利用数据,其中,所述方法还包括识 别所述多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中 的每一个的相应资源利用数据之间的关联,并且其中,执行机器学习包括 相对于多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中 的每一个的相应资源利用数据之间的关联,执行机器学习。
示例3A.根据示例2A所述的方法,其中,所述特征使用数据包括对 等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接口 数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资源 利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内存 使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例4A.根据示例2A和3A的任意组合所述的方法,其中,执行机 器学习包括相对于每个关联执行机器学习,以生成表示网络装置的存储器 预测子模型,该子模型响应于网络装置的配置参数,预测网络装置执行的 每个路由守护程序的内存使用以及网络装置的PFE中的内存使用。
示例5A.根据示例2A-4A的任意组合所述的方法,其中,所述特征 使用数据包括用于多个路由协议中的每一个的多个路由中的一个或多个, 其中,所述资源利用数据包括所述多个路由协议中的每一个的路由学习持 续时间,其中,识别关联包括识别多个路由协议中的每一个的路由数量和 多个路由协议中的相应一个的路由学习持续时间之间的关联,并且其中, 执行机器学习包括相对于每个关联执行机器学习,以生成表示装置的路由 学习子模型,该路由学习子模型响应于网络装置的配置参数,预测集中于 当前配置状态所需的持续时间。
示例6A.根据示例2A-5A的任意组合所述的方法,其中,所述特征 使用数据包括多个对等体、多个组、多个路由实例、多个客户边缘(CE) 装置、多个CE接口、多个路由以及每个路由的类型中的一个或多个,其 中,所述资源利用数据包括由所述网络装置执行的每个路由守护程序的处 理器利用以及所述网络装置的分组转发引擎(PFE)中的处理器利用中的 一个或多个,并且其中,执行机器学习包括相对于每个关联执行机器学习, 以生成表示网络装置的处理器预测子模型,该处理器预测子模型响应于网 络装置的配置参数,预测网络装置执行的每个路由守护程序的处理器使用 以及网络装置的PFE中的处理器使用。
示例7A.根据示例1A-6A的任意组合所述的方法,还包括:确定模 拟配置文件的一个或多个非冗余对之间的相似程度;并且由所述一个或多 个处理器响应于相似程度与多样性阈值的比较来选择模拟配置文件的子 集,其中,基于模拟配置文件生成配置对象,包括基于模拟配置文件的子 集生成配置对象,用于相对于在测试环境内操作的网络装置执行多个模拟 迭代。
示例8A.根据示例1A-7A的任意组合所述的方法,其中,每个模拟 配置文件包括用于相干地配置测试环境和网络装置的数据,使得网络装置 与测试环境一致地操作,以支持一个或多个服务。
示例9A.根据示例8A所述的方法,其中,所述一个或多个服务包括 第三层虚拟专用网络服务。
示例10A.根据示例1A-9A的任意组合所述的方法,其中,所述机器 学习包括蒙特卡洛模拟型实验。
示例11A.一种被配置为自动创建模型的装置,所述装置包括:一个 或多个处理器,其被配置为:基于模拟配置文件生成配置对象,用于相对 于在测试环境内运行的网络装置执行多个模拟迭代,每个模拟迭代被配置 为随机分配测试环境内的参数,以反映实际网络环境;基于配置对象在测 试环境内进行所述多个模拟迭代中的每一个,以收集表示网络装置的操作 状态的对应的多个模拟数据集;并且相对于多个模拟数据集中的每一个执行机器学习,以生成表示网络装置的模型,所述模型响应于所述网络装置 的配置参数,在用网络装置的配置参数配置网络装置时,预测网络装置的 操作状态;以及存储器,其被配置为存储模型。
示例12A.根据示例11A所述的装置,其中,所述多个模拟数据集中 的每一个包括指示网络装置相对于测试环境的操作状态的特征使用数据 以及指示网络装置内的资源利用的资源利用数据,其中,所述一个或多个 处理器还被配置为识别所述多个模拟数据集中的每一个的特征使用数据 和多个模拟数据集中的每一个的相应资源利用数据之间的关联,并且其 中,所述一个或多个处理器被配置为相对于多个模拟数据集中的每一个的 特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间的 关联,执行机器学习。
示例13A.根据示例12A所述的装置,其中,所述特征使用数据包括 对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接 口数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资 源利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内 存使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例14A.根据示例12A和13A的任意组合所述的装置,其中,所述 一个或多个处理器被配置为相对于每个关联执行机器学习,以生成表示网 络装置的存储器预测子模型,该子模型响应于网络装置的配置参数,预测 网络装置执行的每个路由守护程序的内存使用以及网络装置的PFE中的 内存使用。
示例15A.根据示例12A-14A的任意组合所述的装置,其中,所述特 征使用数据包括用于多个路由协议中的每一个的多个路由中的一个或多 个,其中,所述资源利用数据包括所述多个路由协议中的每一个的路由学 习持续时间,其中,所述一个或多个处理器被配置为识别多个路由协议中 的每一个的路由数量和多个路由协议中的相应一个的路由学习持续时间 之间的关联,并且其中,所述一个或多个处理器被配置为相对于每个关联 执行机器学习,以生成表示装置的路由学习子模型,该路由学习子模型响 应于网络装置的配置参数,预测集中于当前配置状态所需的持续时间。
示例16A.根据示例12A-15A的任意组合所述的装置,其中,所述特 征使用数据包括多个对等体、多个组、多个路由实例、多个客户边缘(CE) 装置、多个CE接口、多个路由以及每个路由的类型中的一个或多个,其 中,所述资源利用数据包括由所述网络装置执行的每个路由守护程序的处 理器利用以及所述网络装置的分组转发引擎(PFE)中的处理器利用中的 一个或多个,并且其中,所述一个或多个处理器被配置为相对于每个关联 执行机器学习,以生成表示网络装置的处理器预测子模型,该处理器预测 子模型响应于网络装置的配置参数,预测网络装置执行的每个路由守护程 序的处理器使用以及网络装置的PFE中的处理器使用。
示例17A.根据示例11A-16A的任意组合所述的装置,其中,所述一 个或多个处理器还被配置为:确定模拟配置文件的一个或多个非冗余对之 间的相似程度;并且由所述一个或多个处理器响应于相似程度与多样性阈 值的比较来选择模拟配置文件的子集,并且其中,所述一个或多个处理器 被配置为基于模拟配置文件的子集生成配置对象,用于相对于在测试环境 内操作的网络装置执行多个模拟迭代。
示例18A.根据示例11A-17A的任意组合所述的装置,其中,每个模 拟配置文件包括用于相干地配置测试环境和网络装置的数据,使得网络装 置与测试环境一致地操作,以支持一个或多个服务。
示例19A.根据示例18A所述的装置,其中,所述一个或多个服务包 括第三层虚拟专用网络服务。
示例20A.根据示例11A-19A的任意组合所述的装置,其中,所述机 器学习包括蒙特卡洛模拟型实验。
示例21A.一种非暂时性计算机可读存储介质,在其上存储有指令, 当执行这些指令时,促使一个或多个处理器:基于模拟配置文件生成配置 对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代,每个 模拟迭代被配置为随机分配测试环境内的参数,以反映实际网络环境;基 于配置对象在测试环境内进行所述多个模拟迭代中的每一个,以收集表示 网络装置的操作状态的对应的多个模拟数据集;并且相对于多个模拟数据集中的每一个执行机器学习,以生成表示网络装置的模型,所述模型响应 于所述网络装置的配置参数,在用网络装置的配置参数配置网络装置时, 预测网络装置的操作状态。
示例1B.一种自动创建模型的方法,所述方法包括:由一个或多个处 理器基于模拟配置文件生成配置对象的不同迭代,用于将网络装置配置为 参与网络装置的测试环境内的多个模拟;由所述一个或多个处理器基于所 述配置对象的不同迭代,迭代地与网络装置接口,以将所述网络装置配置 为参与模拟;由一个或多个处理器在测试环境内迭代地进行多个模拟的同 时,与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态的多个模拟数据集;并且由所述一个或多个处理器基于所述模拟数据 集生成表示网络装置的模型,所述模型响应于所述网络装置的配置参数, 在用所述网络装置的配置参数配置网络装置时,预测所述网络装置的操作 状态。
示例2B.根据示例1B所述的方法,其中,所述模拟配置文件包括定 义在生成配置对象的不同迭代时要使用的参数值的参数文件、定义配置对 象的不同迭代的配置文件以及定义在配置对象的不同迭代之间相同的全 局参数的全局文件,并且其中,生成配置对象包括:处理参数文件,以获 得不同的参数值;处理全局文件,以获得全局参数的值;并且根据配置文 件并使用不同的参数值和全局参数值来指定配置对象。
示例3B.根据示例2B所述的方法,其中,所述参数文件使用最大值、 最小值和范围中的一个或多个来定义不同的参数值,并且其中,处理参数 文件,包括随机选择由最大值或最小值限制的或者在该范围内的不同值。
示例4B.根据示例1B-3B的任意组合所述的方法,还包括:基于网 络装置的配置对象的不同迭代,生成配置对象的相应迭代,用于配置测试 环境,以当使用网络装置的配置对象的不同迭代中的每一个进行配置时, 适应网络装置的操作;并且基于配置对象的相应迭代,迭代地与测试环境 接口,以自动配置测试环境来进行模拟。
示例5B.根据示例1B-4B的任意组合所述的方法,其中,所述多个 模拟数据集中的每一个包括指示网络装置相对于测试环境的操作状态的 特征使用数据以及指示网络装置内的资源利用的资源利用数据,其中,所 述方法还包括识别所述多个模拟数据集中的每一个的特征使用数据和多 个模拟数据集中的每一个的相应资源利用数据之间的关联,并且其中,生 成模型包括基于多个模拟数据集中的每一个的特征使用数据和多个模拟 数据集中的每一个的相应资源利用数据之间的关联,生成模型。
示例6B.根据示例5B所述的方法,其中,所述特征使用数据包括对 等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接口 数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资源 利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内存 使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例7B.根据示例1B-6B的任意组合所述的方法,其中,所述配置 对象的不同迭代在网络装置的第二操作状态上偏向网络装置的第一操作 状态。
示例8B.根据示例1B-7B的任意组合所述的方法,其中,生成配置 对象的不同迭代包括:相对于配置对象的一个或多个不同迭代,执行聚类 分析,以在配置对象的一个或多个不同迭代的偏差分布的密集区域中,将 配置对象的一个或多个不同迭代分组;选择每个组中配置对象的子集,来 表示该组;以及选择与对配置对象的不同迭代的每个组的配置对象的选定 子集对应的配置对象的不同迭代中的每一个。
示例9B.根据示例8B所述的方法,其中,执行聚类分析包括相对于 配置对象的一个或多个不同迭代执行k均值聚类分析,以在配置对象的一 个或多个不同迭代的偏差分布的密集区域中,将配置对象的一个或多个不 同迭代分组。
示例10B.一种被配置为自动创建模型的装置,所述装置包括:存储 器,其被配置为存储模拟配置文件;以及一个或多个处理器,其被配置为: 基于模拟配置文件生成配置对象的不同迭代,用于将网络装置配置为参与 网络装置的测试环境内的多个模拟;基于所述配置对象的不同迭代,迭代 地与网络装置接口,以将所述网络装置配置为参与所述模拟;在测试环境 内迭代地进行多个模拟的同时,与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态的多个模拟数据集;并且基于所述模拟数 据集生成表示网络装置的模型,所述模型响应于所述网络装置的配置参 数,在用所述网络装置的配置参数配置网络装置时,预测所述网络装置的 操作状态。
示例11B.根据示例10B所述的装置,其中,所述模拟配置文件包括 定义在生成配置对象的不同迭代时要使用的参数值的参数文件、定义配置 对象的不同迭代的配置文件以及定义在配置对象的不同迭代之间相同的 全局参数的全局文件,并且其中,所述一个或多个处理器被配置为:处理 参数文件,以获得不同的参数值;处理全局文件,以获得全局参数的值; 并且根据配置文件并使用不同的参数值和全局参数值来指定配置对象。
示例12B.根据示例11B所述的装置,其中,所述参数文件使用最大 值、最小值和范围中的一个或多个来定义不同的参数值,并且其中,所述 一个或多个处理器被配置为随机选择由最大值或最小值限制的或者在该 范围内的不同值。
示例13B.根据示例10B-12B的任意组合所述的装置,其中,所述一 个或多个处理器还被配置为:基于网络装置的配置对象的不同迭代,生成 配置对象的相应迭代,用于配置测试环境,以当使用网络装置的配置对象 的不同迭代中的每一个进行配置时,适应网络装置的操作;并且基于配置 对象的相应迭代,迭代地与测试环境接口,以自动配置测试环境来进行模 拟。
示例14B.根据示例10B-13B的任意组合所述的装置,其中,所述多 个模拟数据集中的每一个包括指示网络装置相对于测试环境的操作状态 的特征使用数据以及指示网络装置内的资源利用的资源利用数据,其中, 所述一个或多个处理器还被配置为识别所述多个模拟数据集中的每一个 的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间 的关联,并且其中,所述一个或多个处理器被配置为基于多个模拟数据集 中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利 用数据之间的关联,生成模型。
示例15B.根据示例14B所述的装置,其中,所述特征使用数据包括 对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接 口数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资 源利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内 存使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例16B.根据示例10B-15B的任意组合所述的装置,其中,所述配 置对象的不同迭代在网络装置的第二操作状态上偏向网络装置的第一操 作状态。
示例17B.根据示例10B-16B的任意组合所述的装置,其中,所述一 个或多个处理器被配置为:相对于配置对象的一个或多个不同迭代,执行 聚类分析,以在配置对象的一个或多个不同迭代的偏差分布的密集区域 中,将配置对象的一个或多个不同迭代分组;选择每个组中配置对象的子 集,来表示该组;以及选择与对配置对象的不同迭代的每个组的配置对象 的选定子集对应的配置对象的不同迭代中的每一个。
示例18B.根据示例17B所述的装置,其中,所述一个或多个处理器 被配置为相对于配置对象的一个或多个不同迭代执行k均值聚类分析,以 在配置对象的一个或多个不同迭代的偏差分布的密集区域中,将配置对象 的一个或多个不同迭代分组。
示例19B.一种非暂时性计算机可读存储介质,在其上存储有指令, 当执行这些指令时,促使一个或多个处理器:基于模拟配置文件生成配置 对象的不同迭代,用于将网络装置配置为参与网络装置的测试环境内的多 个模拟;基于所述配置对象的不同迭代,迭代地与网络装置接口,以将所 述网络装置配置为参与模拟;在测试环境内迭代地进行多个模拟的同时, 与网络装置接口,以在多个模拟中的每一个期间收集表示装置的操作状态 的多个模拟数据集;并且基于所述模拟数据集生成表示网络装置的模型, 所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置参数 配置网络装置时,预测所述网络装置的操作状态。
示例20B.根据示例19B的非暂时性计算机可读存储介质,其中,所 述模拟配置文件包括定义在生成配置对象的不同迭代时要使用的参数值 的参数文件、定义配置对象的不同迭代的配置文件以及定义在配置对象的 不同迭代之间相同的全局参数的全局文件,并且其中,当执行这些指令时, 促使所述一个或多个处理器:处理参数文件,以获得不同的参数值;处理 全局文件,以获得全局参数的值;并且根据配置文件并使用不同的参数值 和全局参数值来指定配置对象。
示例1C.一种生成装置模型的方法,包括:由一个或多个处理器获得 多个模拟配置文件,用于在测试环境内对网络装置进行多个模拟;由所述 一个或多个处理器基于所述多个模拟配置文件,相对于测试环境内的网络 装置进行所述多个模拟中的每一个,以收集指示网络装置相对于多个模拟 中的每一个的操作状态的对应的多个模拟数据集;由所述一个或多个处理 器确定所述多个模拟数据集的一个或多个非冗余对之间的相似程度;由所 述一个或多个处理器响应于相似程度与多样性阈值的比较,选择所述多个 模拟数据集的子集;并且由所述一个或多个处理器基于所述多个模拟数据 集的选定子集,生成表示所述网络装置的模型,所述模型响应于网络装置 的配置参数,在用所述网络装置的配置参数配置网络装置时,预测所述网 络装置的操作状态。
示例2C.根据示例1C所述的方法,其中,每个模拟配置文件包括用 于相干地配置测试环境和网络装置的数据,使得所述装置与测试环境一致 地操作,以支持一个或多个服务。
示例3C.根据示例2C所述的方法,其中,所述一个或多个服务包括 第三层虚拟专用网络服务。
示例4C.根据示例1C-3C的任意组合所述的方法,其中,确定多个 模拟数据集的一个或多个非冗余对之间的相似程度包括:生成多个模拟数 据集的第一个的随机样本;生成所述多个模拟数据集中的第二个的随机样 本;生成逻辑回归模型,以基于所述多个模拟数据集中的第二个的随机样 本,预测多个模拟数据集中的第一个的随机样本;并且基于所述多个模拟 数据集中的第一个的预测随机样本和所述多个模拟数据集中的第一个的 随机样本的比较,确定所述多个模拟数据集中的第一个和所述多个模拟数 据集中的第二个之间的相似程度。
示例5C.根据示例1C-4C的任意组合所述的方法,其中,所述多个 模拟数据集中的每一个包括指示网络装置相对于测试环境的操作状态的 特征使用数据以及指示网络装置内的资源利用的资源利用数据,其中,所 述方法还包括识别所述多个模拟数据集中的每一个的特征使用数据和多 个模拟数据集中的每一个的相应资源利用数据之间的关联,并且其中,生 成模型包括基于多个模拟数据集中的每一个的特征使用数据和多个模拟 数据集中的每一个的相应资源利用数据之间的关联,生成模型。
示例6C.根据示例5C所述的方法,其中,所述特征使用数据包括对 等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接口 数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资源 利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内存 使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例7C.根据示例1C-6C的任意组合所述的方法,还包括处理多个 模拟配置文件,以生成配置对象的不同迭代,用于将网络装置配置为参与 测试环境内的多个模拟,以及相应配置数据,用于将测试环境配置为执行 多个模拟。
示例8C.根据示例1C-7C的任意组合所述的方法,其中,与网络装 置接口,以收集多个模拟数据集,包括与网络装置接口,以自动发出导致 收集多个模拟数据集的命令,并且其中,所述方法还包括:与网络装置接 口,以收集定义使用提交命令提交给网络装置的配置变化的系统日志;并 且使用在系统日志中指定每个提交命令的时间来处理多个模拟数据集,以 序列化多个模拟数据集,使得序列化的多个模拟数据集仅包括在每个提交 命令记录到系统日志之时、之后或者之时和之后发生的多个模拟数据集的 部分。
示例9C.根据示例1C-8C的任意组合所述的方法,还包括:获得根 据语法指定的数据处理规则,并定义用于处理多个模拟数据集的规则;并 且基于所述数据处理规则,处理所述多个模拟数据集,以生成适配的多个 模拟数据集。
示例10C.一种被配置为生成网络装置的模型的装置,包括:存储器, 其被配置为存储多个模拟配置文件,用于在测试环境内对网络装置进行多 个模拟;以及一个或多个处理器,其被配置为基于所述多个模拟配置文件, 相对于测试环境内的网络装置进行所述多个模拟中的每一个,以收集指示 网络装置相对于多个模拟中的每一个的操作状态的对应的多个模拟数据 集;确定所述多个模拟数据集的一个或多个非冗余对之间的相似程度;响应于相似程度与多样性阈值的比较,选择所述多个模拟数据集的子集;并 且基于所述多个模拟数据集的选定子集,生成表示所述网络装置的模型, 所述模型响应于网络装置的配置参数,在用所述网络装置的配置参数配置 网络装置时,预测所述网络装置的操作状态。
示例11C.根据示例10C所述的装置,其中,每个模拟配置文件包括 用于相干地配置测试环境和网络装置的数据,使得所述装置与测试环境一 致地操作,以支持一个或多个服务。
示例12C.根据示例11C所述的装置,其中,一个或多个服务包括第 三层虚拟专用网络服务。
示例13C.根据示例10C-12C所述的装置,其中,所述一个或多个处 理器被配置为:生成多个模拟数据集的第一个的随机样本;生成所述多个 模拟数据集中的第二个的随机样本;生成逻辑回归模型,以基于所述多个 模拟数据集中的第二个的随机样本,预测多个模拟数据集中的第一个的随 机样本;并且基于所述多个模拟数据集中的第一个的预测随机样本和所述 多个模拟数据集中的第一个的随机样本的比较,确定所述多个模拟数据集中的第一个和所述多个模拟数据集中的第二个之间的相似程度。
示例14C.根据示例10C-13C的任意组合所述的装置,其中,所述多 个模拟数据集中的每一个包括指示网络装置相对于测试环境的操作状态 的特征使用数据以及指示网络装置内的资源利用的资源利用数据,其中, 所述一个或多个处理器还被配置为识别所述多个模拟数据集中的每一个 的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间 的关联,并且其中,所述一个或多个处理器被配置为基于多个模拟数据集 中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利 用数据之间的关联,生成模型。
示例15C.根据示例14C所述的装置,其中,所述特征使用数据包括 对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接 口数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资 源利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内 存使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例16C.根据示例10C-15C的任意组合所述的装置,其中,所述一 个或多个处理器还被配置为处理多个模拟配置文件,以生成配置对象的不 同迭代,用于将网络装置配置为参与测试环境内的多个模拟,以及相应配 置数据,用于将测试环境配置为执行多个模拟。
示例17C.根据示例10C-16C的任意组合所述的方法,其中,所述一 个或多个处理器被配置为与网络装置接合,以自动发出导致收集多个模拟 数据集的命令,并且其中,所述一个或多个处理器还被配置为:与网络装 置接口,以收集定义使用提交命令提交给网络装置的配置变化的系统日 志;并且使用在系统日志中指定每个提交命令的时间来处理多个模拟数据 集,以序列化多个模拟数据集,使得序列化的多个模拟数据集仅包括在每 个提交命令记录到系统日志之时、之后或之时和之后发生的多个模拟数据 集的部分。
示例18C.根据示例10C-17C的任意组合所述的装置,还包括:获得 根据语法指定的数据处理规则,并定义用于处理多个模拟数据集的规则; 并且基于所述数据处理规则,处理所述多个模拟数据集,以生成适配的多 个模拟数据集。
示例19C.一种非暂时性计算机可读存储介质,在其上存储有指令, 当执行这些指令时,促使一个或多个处理器:获得多个模拟配置文件,用 于在测试环境内对网络装置进行多个模拟;基于所述多个模拟配置文件, 相对于测试环境内的网络装置进行所述多个模拟中的每一个,以收集指示 网络装置相对于多个模拟中的每一个的操作状态的对应的多个模拟数据 集;确定所述多个模拟数据集的一个或多个非冗余对之间的相似程度;响 应于相似程度与多样性阈值的比较,选择所述多个模拟数据集的子集;并 且基于所述多个模拟数据集的选定子集,生成表示所述网络装置的模型, 所述模型响应于网络装置的配置参数,在用所述网络装置的配置参数配置 网络装置时,预测所述网络装置的操作状态。
示例20C.根据示例19C的非暂时性计算机可读存储介质,其中,当 执行这些指令时,促使一个或多个处理器:生成多个模拟数据集的第一个 的随机样本;生成所述多个模拟数据集中的第二个的随机样本;生成逻辑 回归模型,以基于所述多个模拟数据集中的第二个的随机样本,预测多个 模拟数据集中的第一个的随机样本;并且基于所述多个模拟数据集中的第 一个的预测随机样本和所述多个模拟数据集中的第一个的随机样本的比 较,确定所述多个模拟数据集中的第一个和所述多个模拟数据集中的第二 个之间的相似程度。
示例1D.一种在预配置网络环境内自动创建模型的方法,该方法包 括:由一个或多个处理器与预配置网络环境内的网络装置接口,以迭代地 适配预配置网络环境内的网络装置的一个或多个预定义配置对象;由所述 一个或多个处理器对所述网络装置的一个或多个预定义配置对象的适配 的每次迭代进行模拟,以收集表示所述网络装置在所述预配置网络环境内 的操作状态的模拟数据集;并且由所述一个或多个处理器基于所述操作数 据生成表示所述网络装置的模型,所述模型响应于所述网络装置的配置参 数,在用所述网络装置的配置参数配置网络装置时,预测网络装置的操作 状态。
示例2D.根据示例1D所述的方法,还包括:与预配置网络环境接口, 以获得预配置网络环境的配置数据;并且基于预配置网络环境的配置数 据,识别能够适配的网络装置的一个或多个预定义配置对象,其中,与网 络装置接口,包括与预配置网络环境内的网络接口,以迭代地适配预配置 网络环境内的网络装置的所识别的一个或多个预定义配置对象。
示例3D.根据示例1D和2D的任意组合所述的方法,其中,与网络 装置接口,包括与网络装置接口,以迭代地激活或停用网络装置的一个或 多个预定义配置对象。
示例4D.根据示例1D-3D的任意组合所述的方法,还包括:与网络 装置接口,以获得配置对象;向配置对象分配随机值,以获得更新的配置 对象;相对于更新的配置对象执行聚类分析,以获得更新的配置对象的组; 并且确定适配的配置对象,作为每组更新的配置对象的平均值,其中,进 行模拟,包括与网络装置接口,以加载适配的配置对象,并启动模拟。
示例5D.根据示例4D所述的方法,还包括在每次迭代之前,将掩模 应用于适配的配置对象,以激活或停用每个适配的配置对象。
示例6D.根据示例1D-5D的任意组合所述的方法,其中,生成模型 包括对每个模拟数据集执行机器学习,以生成模型。
示例7D.根据示例1D-6D的任意组合所述的方法,其中,每个模拟 数据集包括指示网络装置相对于测试环境的操作状态的特征使用数据以 及指示网络装置内的资源利用的资源利用数据,其中,所述方法还包括识 别每个模拟数据集的特征使用数据和每个模拟数据集的相应资源利用数 据之间的关联,并且其中,执行机器学习包括相对于每个模拟数据集的特 征使用数据和每个模拟数据集的相应资源利用数据之间的关联执行机器 学习。
示例8D.根据示例7D所述的方法,其中,所述特征使用数据包括对 等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接口 数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资源 利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内存 使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例9D.一种被配置为在预配置网络环境内自动创建模型的装置,所 述装置包括:一个或多个处理器,其被配置为:与预配置网络环境内的网 络装置接口,以迭代地适配预配置网络环境内的网络装置的一个或多个预 定义配置对象;对所述网络装置的一个或多个预定义配置对象的适配的每 次迭代进行模拟,以收集表示所述网络装置在所述预配置网络环境内的操 作状态的模拟数据集;并且基于所述操作数据生成表示所述网络装置的模 型,所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置 参数配置网络装置时,预测网络装置的操作状态;以及存储器,其被配置 为存储模型。
示例10D.根据示例9D所述的装置,其中,所述一个或多个处理器 还被配置为:与预配置网络环境接口,以获得预配置网络环境的配置数据; 并且基于预配置网络环境的配置数据,识别能够适配的网络装置的一个或 多个预定义配置对象,其中,所述一个或多个处理器被配置为与预配置网 络环境内的网络接口,以迭代地适配预配置网络环境内的网络装置的所识 别的一个或多个预定义配置对象。
示例11D.根据示例9D和10D的任意组合所述的装置,其中,所述 一个或多个处理器被配置为与网络装置接口,以迭代地激活或停用网络装 置的一个或多个预定义配置对象。
示例12D.根据示例9D-11D的任意组合所述的装置,其中,所述一 个或多个处理器还被配置为:与网络装置接口,以获得配置对象;向配置 对象分配随机值,以获得更新的配置对象;相对于更新的配置对象执行聚 类分析,以获得更新的配置对象的组;并且确定适配的配置对象,作为每 组更新的配置对象的平均值,其中,所述一个或多个处理器被配置为与网 络装置接口,以加载适配的配置对象,并启动模拟。
示例13D.根据示例12D所述的装置,其中,所述一个或多个处理器 还被配置为在每次迭代之前,将掩模应用于适配的配置对象,以激活或停 用每个适配的配置对象。
示例14D.根据示例9D-13D的任意组合所述的装置,其中,所述一 个或多个处理器被配置为对每个模拟数据集执行机器学习,以生成模型。
示例15D.根据示例9D-14D的任意组合所述的装置,其中,每个模 拟数据集包括指示网络装置相对于测试环境的操作状态的特征使用数据 以及指示网络装置内的资源利用的资源利用数据,其中,所述一个或多个 处理器还被配置为识别每个模拟数据集的特征使用数据和每个模拟数据 集的相应资源利用数据之间的关联,并且其中,一个或多个处理器被配置 为相对于每个模拟数据集的特征使用数据和每个模拟数据集的相应资源 利用数据之间的关联执行机器学习。
示例16D.根据示例15D所述的装置,其中,所述特征使用数据包括 对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、CE接 口数量、路由数量和每个路由的类型中的一个或多个,并且其中,所述资 源利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内 存使用和网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
示例17D.一种非暂时性计算机可读存储介质,在其上存储有指令, 当执行这些指令时,促使一个或多个处理器:与预配置网络环境内的网络 装置接口,以迭代地适配预配置网络环境内的网络装置的一个或多个预定 义配置对象;对所述网络装置的一个或多个预定义配置对象的适配的每次 迭代进行模拟,以收集表示所述网络装置在所述预配置网络环境内的操作 状态的模拟数据集;并且基于所述操作数据生成表示所述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置 参数配置网络装置时,预测网络装置的操作状态。
示例18D.根据示例17D所述的非暂时性计算机可读存储介质,进一 步存储指令,当执行这些指令时,促使一个或多个处理器:与预配置网络 环境接口,以获得预配置网络环境的配置数据;并且基于预配置网络环境 的配置数据,识别能够适配的网络装置的一个或多个预定义配置对象,其 中,当执行这些指令时,促使一个或多个处理器与预配置网络环境内的网 络接口,以迭代地适配预配置网络环境内的网络装置的所识别的一个或多 个预定义配置对象。
示例19D.根据示例18D所述的非暂时性计算机可读存储介质还存储 指令,当执行这些指令时,促使一个或多个处理器在每次迭代之前,将掩 模应用于适配的配置对象,以激活或停用每个适配的配置对象。
示例20D.根据示例17D-19D所述的任意组合的非暂时性计算机可读 存储介质,其中,每个模拟数据集包括指示网络装置相对于测试环境的操 作状态的特征使用数据以及指示网络装置内的资源利用的资源利用数据, 其中,所述非暂时性计算机可读介质还存储指令,当执行这些指令时,促 使一个或多个处理器识别每个模拟数据集的特征使用数据和每个模拟数 据集的相应资源利用数据之间的关联,并且其中,当执行这些指令时,促 使一个或多个处理器相对于每个模拟数据集的特征使用数据和每个模拟 数据集的相应资源利用数据之间的关联执行机器学习。
示例1E.一种用指令编码的计算机可读存储介质,用于促使一个或多 个可编程处理器执行根据示例1A-10A、1B-9B、1C-9C或1D-8D的任意 组合所述的方法。
此外,在上述任何示例中阐述的任何特定特征可以组合成所述技术的 有益示例。即,任何特定特征通常适用于本发明的所有示例。已经描述了 本发明的各种示例。
在这方面,本公开中描述的技术可以至少部分地以硬件、软件、固件 或其任意组合来实现。例如,所述技术的各个方面可以在一个或多个处理 器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集 成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等效集成或离 散逻辑电路以及这些部件的任意组合。术语“处理器”或“处理电路”通 常可以指任何前述逻辑电路,单独或与其他逻辑电路或任何其他等效电路 组合。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以在同一装置内或者在单独的装置内实现, 以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或组 件中的任何一个可以一起或单独实现为离散但可互操作的逻辑装置。将不 同的特征描述为模块或单元是为了突出不同的功能方面,并不一定意味着 这些模块或单元必须由单独的硬件或软件部件来实现。相反,与一个或多 个模块或单元相关联的功能可以由单独的硬件或软件部件来执行,或者集成在公共或单独的硬件或软件部件内。
本公开中描述的技术也可以在包含指令的计算机可读介质中体现或 编码,例如,非暂时性计算机可读介质或计算机可读存储介质。在计算机 可读介质中嵌入或编码的指令可以促使可编程处理器或其他处理器执行 该方法,例如,当执行指令时。计算机可读存储介质可以包括随机存取存 储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦 除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器 (EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学 介质或其他计算机可读存储介质。术语“计算机可读存储介质”指的是物 理存储介质,而不是信号或载波,尽管术语“计算机可读介质”除了物理 存储介质之外,还可以包括诸如信号等瞬态介质。

Claims (21)

1.一种自动创建模型的方法,所述方法包括:
由一个或多个处理器基于模拟配置文件生成配置对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代,每个模拟迭代被配置为随机分配测试环境内的参数,以反映实际网络环境;并且
由所述一个或多个处理器基于所述配置对象在所述测试环境内进行所述多个模拟迭代中的每一个,以收集表示所述网络装置的操作状态的对应的多个模拟数据集;
由所述一个或多个处理器相对于所述多个模拟数据集中的每一个执行机器学习,以生成表示所述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置参数配置所述网络装置时,预测所述网络装置的操作状态。
2.根据权利要求1所述的方法,
其中,所述多个模拟数据集中的每一个包括指示所述网络装置相对于所述测试环境的操作状态的特征使用数据以及指示所述网络装置内的资源利用的资源利用数据,
其中,所述方法还包括识别所述多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间的关联,并且
其中,执行机器学习包括相对于多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间的关联,执行机器学习。
3.根据权利要求2所述的方法,
其中,所述特征使用数据包括对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、客户边缘接口数量、路由数量和每个路由的类型中的一个或多个,并且
其中,所述资源利用数据包括网络装置在每次模拟期间执行的每个路由守护程序的内存使用和在每次模拟期间网络装置的分组转发引擎中的内存使用中的一个或多个。
4.根据权利要求2和3的任意组合所述的方法,其中,执行机器学习包括相对于每个关联执行机器学习,以生成表示网络装置的存储器预测子模型,该子模型响应于所述网络装置的配置参数,预测所述网络装置执行的每个路由守护程序的内存使用以及所述网络装置的PFE中的内存使用。
5.根据权利要求2和3的任意组合所述的方法,
其中,所述特征使用数据包括用于多个路由协议中的每一个的多个路由中的一个或多个,
其中,所述资源利用数据包括所述多个路由协议中的每一个的路由学习持续时间,
其中,识别关联包括识别所述多个路由协议中的每一个的路由数量和所述多个路由协议中的相应一个的路由学习持续时间之间的关联,并且
其中,执行机器学习包括相对于每个关联执行所述机器学习,以生成表示所述装置的路由学习子模型,该路由学习子模型响应于所述网络装置的配置参数,预测收敛于当前配置状态所需的持续时间。
6.根据权利要求2和3的任意组合所述的方法,
其中,所述特征使用数据包括多个对等体、多个组、多个路由实例、多个客户边缘(CE)装置、多个客户边缘接口、多个路由以及每个路由的类型中的一个或多个,
其中,所述资源利用数据包括由所述网络装置执行的每个路由守护程序的处理器利用以及所述网络装置的分组转发引擎(PFE)中的处理器利用中的一个或多个,并且
其中,执行机器学习包括相对于每个关联执行所述机器学习,以生成表示所述网络装置的处理器预测子模型,该处理器预测子模型响应于所述网络装置的配置参数,预测所述网络装置执行的每个路由守护程序的处理器使用以及所述网络装置的PFE中的处理器使用。
7.根据权利要求1-3的任意组合所述的方法,还包括:
确定所述模拟配置文件的一个或多个非冗余对之间的相似程度;以及
由所述一个或多个处理器响应于相似程度与多样性阈值的比较来选择所述模拟配置文件的子集,
其中,基于所述模拟配置文件生成配置对象,包括:基于所述模拟配置文件的子集生成配置对象,用于相对于在所述测试环境内操作的所述网络装置执行所述多个模拟迭代。
8.根据权利要求1-3的任意组合所述的方法,其中,每个模拟配置文件包括用于相干地配置所述测试环境和所述网络装置的数据,使得所述网络装置与所述测试环境一致地操作,以支持一个或多个服务。
9.根据权利要求8所述的方法,其中,所述一个或多个服务包括第三层虚拟专用网络服务。
10.根据权利要求1-3的任意组合所述的方法,其中,所述机器学习包括蒙特卡洛模拟型实验。
11.一种被配置为自动创建模型的装置,所述装置包括:
一个或多个处理器,其被配置为:
基于模拟配置文件生成配置对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代,每个模拟迭代被配置为随机分配所述测试环境内的参数,以反映实际网络环境;
基于所述配置对象在所述测试环境内进行所述多个模拟迭代中的每一个,以收集表示所述网络装置的操作状态的对应的多个模拟数据集;并且
相对于多个模拟数据集中的每一个执行机器学习,以生成表示所述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用网络装置的配置参数配置所述网络装置时,预测网络装置的操作状态;以及
存储器,其被配置为存储所述模型。
12.根据权利要求11所述的装置,
其中,所述多个模拟数据集中的每一个包括指示所述网络装置相对于所述测试环境的操作状态的特征使用数据以及指示所述网络装置内的资源利用的资源利用数据,
其中,所述一个或多个处理器还被配置为识别所述多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间的关联,并且
其中,所述一个或多个处理器被配置为相对于所述多个模拟数据集中的每一个的特征使用数据和多个模拟数据集中的每一个的相应资源利用数据之间的关联,执行机器学习。
13.根据权利要求12所述的装置,
其中,所述特征使用数据包括对等体数量、组数量、路由实例数量、客户边缘(CE)装置数量、客户边缘接口数量、路由数量和每个路由的类型中的一个或多个,并且
其中,所述资源利用数据包括所述网络装置在每次模拟期间执行的每个路由守护程序的内存使用和所述网络装置在每次模拟期间的PFE中的内存使用中的一个或多个。
14.根据权利要求12和13的任意组合所述的装置,其中,所述一个或多个处理器被配置为相对于每个关联执行机器学习,以生成表示所述网络装置的存储器预测子模型,该子模型响应于所述网络装置的配置参数,预测所述网络装置执行的每个路由守护程序的内存使用以及所述网络装置的PFE中的内存使用。
15.根据权利要求12和13的任意组合所述的装置,
其中,所述特征使用数据包括用于多个路由协议中的每一个的多个路由中的一个或多个,
其中,所述资源利用数据包括所述多个路由协议中的每一个的路由学习持续时间,
其中,所述一个或多个处理器被配置为识别所述多个路由协议中的每一个的路由数量和所述多个路由协议中的相应一个的路由学习持续时间之间的关联,并且
其中,所述一个或多个处理器被配置为相对于每个关联执行所述机器学习,以生成表示所述装置的路由学习子模型,该路由学习子模型响应于所述网络装置的配置参数,预测收敛于当前配置状态所需的持续时间。
16.根据权利要求12和13的任意组合所述的装置,
其中,所述特征使用数据包括多个对等体、多个组、多个路由实例、多个客户边缘(CE)装置、多个客户边缘接口、多个路由以及每个路由的类型中的一个或多个,
其中,所述资源利用数据包括由所述网络装置执行的每个路由守护程序的处理器利用以及所述网络装置的分组转发引擎(PFE)中的处理器利用中的一个或多个,并且
其中,所述一个或多个处理器被配置为相对于每个关联执行所述机器学习,以生成表示所述网络装置的处理器预测子模型,该处理器预测子模型响应于所述网络装置的配置参数,预测所述网络装置执行的每个路由守护程序的处理器使用以及所述网络装置的PFE中的处理器使用。
17.根据权利要求11-13的任意组合所述的装置,
其中,所述一个或多个处理器还被配置为:
确定模拟配置文件的一个或多个非冗余对之间的相似程度;并且
由所述一个或多个处理器响应于相似程度与多样性阈值的比较来选择所述模拟配置文件的子集,并且
其中,所述一个或多个处理器被配置为基于所述模拟配置文件的子集生成所述配置对象,用于相对于在所述测试环境内操作的所述网络装置执行所述多个模拟迭代。
18.根据权利要求11-13的任意组合所述的装置,其中,每个模拟配置文件包括用于相干地配置所述测试环境和所述网络装置的数据,使得所述网络装置与所述测试环境一致地操作,以支持一个或多个服务。
19.根据权利要求18所述的装置,其中,所述一个或多个服务包括第三层虚拟专用网络服务。
20.根据权利要求11-13中任一项所述的装置,其中,所述机器学习包括蒙特卡洛模拟型实验。
21.一种非暂时性计算机可读存储介质,其上存储有指令,当执行这些指令时,促使一个或多个处理器:
基于模拟配置文件生成配置对象,用于相对于在测试环境内运行的网络装置执行多个模拟迭代,每个模拟迭代被配置为随机分配所述测试环境内的参数,以反映实际网络环境;
基于所述配置对象在所述测试环境内进行所述多个模拟迭代中的每一个,以收集表示所述网络装置的操作状态的对应的多个模拟数据集;并且
相对于多个模拟数据集中的每一个执行机器学习,以生成表示所述网络装置的模型,所述模型响应于所述网络装置的配置参数,在用所述网络装置的配置参数配置所述网络装置时,预测所述网络装置的操作状态。
CN201811389014.1A 2018-02-16 2018-11-20 使用随机测试床自动创建网络装置模型 Active CN110166312B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP18382090.1A EP3528435B1 (en) 2018-02-16 2018-02-16 Automated configuration and data collection during modeling of network devices
EP18382090.1 2018-02-16
US15/928,932 2018-03-22
US15/928,932 US11093666B2 (en) 2018-02-16 2018-03-22 Automated network device model creation using randomized test beds

Publications (2)

Publication Number Publication Date
CN110166312A true CN110166312A (zh) 2019-08-23
CN110166312B CN110166312B (zh) 2022-12-20

Family

ID=61258170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811389014.1A Active CN110166312B (zh) 2018-02-16 2018-11-20 使用随机测试床自动创建网络装置模型

Country Status (3)

Country Link
US (4) US11093666B2 (zh)
EP (1) EP3528435B1 (zh)
CN (1) CN110166312B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111092947A (zh) * 2019-12-19 2020-05-01 北京金山云网络技术有限公司 数据传输的方法、客户端、中间服务器、节点及电子设备
CN111340240A (zh) * 2020-03-25 2020-06-26 第四范式(北京)技术有限公司 实现自动机器学习的方法及装置
CN111625521A (zh) * 2020-07-31 2020-09-04 上海森亿医疗科技有限公司 基于可视化数据集构建的管理方法、系统、介质及设备
CN111786810A (zh) * 2020-05-19 2020-10-16 中国科学院信息工程研究所 一种大规模测试床节点的自动化部署方法及系统
WO2022166694A1 (zh) * 2021-02-03 2022-08-11 上海交通大学 一种针对时间敏感网络设备的测试系统及测试方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534695B2 (en) * 2018-03-30 2020-01-14 Atlassian Pty Ltd Systems and methods for initializing test environments
US20190361697A1 (en) * 2018-05-22 2019-11-28 Pure Storage, Inc. Automatically creating a data analytics pipeline
US11226885B1 (en) * 2018-06-19 2022-01-18 Amazon Technologies, Inc. Monte Carlo simulation monitoring and optimization
US11055454B1 (en) 2018-06-19 2021-07-06 Amazon Technologies, Inc. Configuring and deploying Monte Carlo simulation pipelines
US10846201B1 (en) * 2018-09-21 2020-11-24 Amazon Technologies, Inc. Performance debug for networks
US11463361B2 (en) * 2018-09-27 2022-10-04 Hewlett Packard Enterprise Development Lp Rate adaptive transactions
US11134016B2 (en) * 2018-10-26 2021-09-28 Hughes Network Systems, Llc Monitoring a communication network
US11579940B2 (en) * 2019-04-11 2023-02-14 Salesforce.Com, Inc. Techniques and architectures for managing global installations and configurations
CN110086720B (zh) * 2019-04-22 2020-06-12 清华大学 基于二维路由协议实现l3vpn的方法及系统
US11119895B2 (en) * 2019-08-19 2021-09-14 International Business Machines Corporation Risk-focused testing
US11507786B2 (en) * 2019-11-04 2022-11-22 FinancialForce.com, Inc. Dynamic generation of client-specific feature maps
CN111444618B (zh) * 2020-03-30 2023-06-30 北京润科通用技术有限公司 一种基于变量字典的仿真方法及装置
US11501212B2 (en) 2020-04-21 2022-11-15 Nxp B.V. Method for protecting a machine learning model against extraction
US11790030B2 (en) * 2020-06-04 2023-10-17 Promoted.ai, Inc. Creating an effective product using an attribute solver
WO2022016363A1 (en) * 2020-07-21 2022-01-27 Telefonaktiebolaget Lm Ericsson (Publ) Similar data set identification
CN114138355A (zh) * 2020-08-12 2022-03-04 艾锐势企业有限责任公司 生成并检测配置文件中的错误的电子设备、方法及介质
CN111914013B (zh) * 2020-08-13 2023-02-28 傲普(上海)新能源有限公司 基于pandas库与InfluxDB数据库的数据管理方法、系统、终端及介质
US11570260B1 (en) * 2020-09-30 2023-01-31 Juniper Networks, Inc. Data collection configuration file generation
US11424991B2 (en) 2020-11-06 2022-08-23 Google Llc Change impact simulation analysis
US11811610B2 (en) * 2020-12-30 2023-11-07 Oracle International Corporation Method and apparatus for holistic rendering of cloud network configuration
CN114764384A (zh) * 2021-01-14 2022-07-19 华为技术有限公司 一种数据分析装置的管控方法与通信装置
US11929896B1 (en) * 2021-01-28 2024-03-12 Wiz, Inc. System and method for generation of unified graph models for network entities
CN113163420B (zh) * 2021-02-24 2022-10-04 深圳市吉祥腾达科技有限公司 一种用于模拟多ap上线的测试方法
CN112905534B (zh) * 2021-02-25 2023-09-05 北京安天网络安全技术有限公司 一种基于沙箱环境的样本分析方法和装置
EP4072102A1 (en) * 2021-04-07 2022-10-12 Tata Consultancy Services Limited System and method for providing emulation as a service framework for communication networks
US11770306B2 (en) * 2021-04-28 2023-09-26 International Business Machines Corporation Deployment of computer system services
US11797408B2 (en) * 2021-12-30 2023-10-24 Juniper Networks, Inc. Dynamic prediction of system resource requirement of network software in a live network using data driven models
US20230343406A1 (en) * 2022-04-15 2023-10-26 Western Digital Technologies, Inc. Non-volatile memory with atonomous cycling
CN114945045B (zh) * 2022-05-18 2023-09-26 深圳渊联技术有限公司 网络服务响应方法、装置、网络设备和存储介质
CN116841650B (zh) * 2023-08-31 2023-11-21 腾讯科技(深圳)有限公司 样本构建方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774440B1 (en) * 2001-07-25 2010-08-10 Scalable Network Technologies, Inc. Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model
US20120307662A1 (en) * 2009-12-23 2012-12-06 7Signal Oy Method for monitoring and intelligent control of the parameters in radio networks
US20150288465A1 (en) * 2014-04-08 2015-10-08 Cellco Partnership D/B/A Verizon Wireless Evaluating device quality
CN105721208A (zh) * 2016-02-04 2016-06-29 国网浙江省电力公司绍兴供电公司 一种基于opnet的智能变电站过程层网络建模方法
CN107231436A (zh) * 2017-07-14 2017-10-03 网宿科技股份有限公司 一种进行业务调度的方法和装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346915A (ja) 1992-01-30 1993-12-27 Ricoh Co Ltd 学習機械並びにニューラルネットワークおよびデータ分析装置並びにデータ分析方法
US5907696A (en) * 1996-07-03 1999-05-25 Cabletron Systems, Inc. Network device simulator
US20020152305A1 (en) * 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US7295960B2 (en) 2003-01-22 2007-11-13 Wireless Valley Communications, Inc. System and method for automated placement or configuration of equipment for obtaining desired network performance objectives
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
US20090089005A1 (en) * 2007-09-28 2009-04-02 Geoff Hopcraft Generation of test specifications based on measured data points
WO2009082384A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Modelling computer based business process and simulating operation
US8689071B2 (en) 2010-08-30 2014-04-01 Contec Holdings, Ltd. Multimedia device test system
US10866952B2 (en) * 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US8971874B2 (en) 2013-04-08 2015-03-03 Apple Inc. Methods and apparatus for testing electronic devices under specified radio-frequency voltage and current stress
US10326674B2 (en) 2013-08-27 2019-06-18 Purdue Research Foundation Compressing trace data
US10198348B2 (en) * 2015-08-13 2019-02-05 Spirent Communications, Inc. Method to configure monitoring thresholds using output of load or resource loadings
US10116521B2 (en) 2015-10-15 2018-10-30 Citrix Systems, Inc. Systems and methods for determining network configurations using historical real-time network metrics data
US20170308535A1 (en) * 2016-04-22 2017-10-26 Microsoft Technology Licensing, Llc Computational query modeling and action selection
WO2017210550A1 (en) 2016-06-02 2017-12-07 Massachusetts Institute Of Technology Apparatus and methods for optical neural network
TW201812646A (zh) * 2016-07-18 2018-04-01 美商南坦奧美克公司 分散式機器學習系統、分散式機器學習方法、以及產生代用資料之方法
US10445062B2 (en) * 2016-09-15 2019-10-15 Oracle International Corporation Techniques for dataset similarity discovery
US10284456B2 (en) 2016-11-10 2019-05-07 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
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
US10380184B1 (en) * 2017-08-17 2019-08-13 Juniper Networks, Inc. Efficiently generating configuration operations for network devices
US10360214B2 (en) * 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US10671435B1 (en) * 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
US10581798B2 (en) 2017-10-27 2020-03-03 At&T Intellectual Property I, L.P. Network based distribution for compute resource and application accessibility
US10678888B2 (en) 2017-11-24 2020-06-09 Vmware, Inc. Methods and systems to predict parameters in a database of information technology equipment
US10917325B2 (en) 2018-02-17 2021-02-09 Fortinet, Inc. Deriving test profiles based on security and network telemetry information extracted from the target network environment
US10460235B1 (en) * 2018-07-06 2019-10-29 Capital One Services, Llc Data model generation using generative adversarial networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774440B1 (en) * 2001-07-25 2010-08-10 Scalable Network Technologies, Inc. Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model
US20120307662A1 (en) * 2009-12-23 2012-12-06 7Signal Oy Method for monitoring and intelligent control of the parameters in radio networks
US20150288465A1 (en) * 2014-04-08 2015-10-08 Cellco Partnership D/B/A Verizon Wireless Evaluating device quality
CN105721208A (zh) * 2016-02-04 2016-06-29 国网浙江省电力公司绍兴供电公司 一种基于opnet的智能变电站过程层网络建模方法
CN107231436A (zh) * 2017-07-14 2017-10-03 网宿科技股份有限公司 一种进行业务调度的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NATHAN C. STUCKEY, JUAN R. VASQUEZ, AND SCOTT R. GRAHAM: "Estimating Queue Size in a Computer Network Using an Extended Kalman Filter", 《IEEE》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111092947A (zh) * 2019-12-19 2020-05-01 北京金山云网络技术有限公司 数据传输的方法、客户端、中间服务器、节点及电子设备
CN111092947B (zh) * 2019-12-19 2022-05-10 北京金山云网络技术有限公司 数据传输的方法、客户端、中间服务器、节点及电子设备
CN111340240A (zh) * 2020-03-25 2020-06-26 第四范式(北京)技术有限公司 实现自动机器学习的方法及装置
CN111786810A (zh) * 2020-05-19 2020-10-16 中国科学院信息工程研究所 一种大规模测试床节点的自动化部署方法及系统
CN111625521A (zh) * 2020-07-31 2020-09-04 上海森亿医疗科技有限公司 基于可视化数据集构建的管理方法、系统、介质及设备
WO2022166694A1 (zh) * 2021-02-03 2022-08-11 上海交通大学 一种针对时间敏感网络设备的测试系统及测试方法

Also Published As

Publication number Publication date
US11093666B2 (en) 2021-08-17
US11055453B2 (en) 2021-07-06
US20190258755A1 (en) 2019-08-22
US11106839B2 (en) 2021-08-31
US20190258756A1 (en) 2019-08-22
EP3528435A1 (en) 2019-08-21
CN110166312B (zh) 2022-12-20
US20190258754A1 (en) 2019-08-22
US20190258753A1 (en) 2019-08-22
US11087046B2 (en) 2021-08-10
EP3528435B1 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
CN110166312A (zh) 使用随机测试床自动创建网络装置模型
US10462010B2 (en) Detecting and managing recurring patterns in device and service configuration data
US11115278B2 (en) Learning by inference from brownfield deployments
US11593074B2 (en) System, method, and apparatus for data-centric networked application development services
CN110516815A (zh) 人工智能推荐模型的特征处理方法、装置及电子设备
CN110389832A (zh) ZooKeeper容器集群部署方法、系统、设备及存储介质
CN107391468A (zh) 一种添加图表的方法、装置和设备
CN108900320B (zh) 一种互联网测试床拓扑结构大比例规模缩减方法及装置
WO2020081587A1 (en) System and method for auto-completion of ics flow using artificial intelligence/machine learning
US11948077B2 (en) Network fabric analysis
WO2014042753A1 (en) Generating and evaluating expert networks
CN109891401A (zh) 分布式计算系统配置
CN108108986A (zh) 一种客户关系管理系统的设计方法、装置及电子设备
CN106445645A (zh) 用于执行分布式计算任务的方法和装置
WO2020069647A1 (en) System for deploying incremental network updates
CN109542398A (zh) 一种业务系统生成方法、装置及计算机可读存储介质
CN109495293A (zh) 一种交换机控制面的测试方法、系统、设备及存储介质
CN109376344A (zh) 表单的生成方法及终端设备
CN107679107A (zh) 一种基于图数据库的电网设备可达性查询方法及系统
CN104391782B (zh) 基于xml脚本的网络设备管理软件客户端模拟方法
CN113506099A (zh) 申报业务的配置系统、方法、计算机设备和存储介质
CN111599242A (zh) 一种计算机网络教学虚拟仿真系统
CN110333844A (zh) 计算公式处理方法及装置
US20090106738A1 (en) Methods, systems, and computer program products for real time configuration and analysis of network based algorithmic service objectives
Tkachova et al. Method for OpenFlow protocol verification

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
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant