网络仿真方法及装置与流程
本技术涉及网络,特别涉及一种网络仿真方法及装置。
背景技术:
1、在通信网络的日常维护、业务下发、看网(也即对通信网络进行观测)、动网(例如修改网络配置、变更网络拓扑)等环节,经常需要对通信网络进行仿真,以提前识别出通信网络可能发生的问题。
2、目前,可以采用网络仿真(network simulation)技术或网络模拟(networkemulation)技术对通信网络进行仿真。网络仿真技术是一种使用软件工具模拟网络行为、网络性能以及协议特性等的技术。在采用网络仿真技术对通信网络进行仿真的过程中:首先,根据待仿真的通信网络(待仿真的通信网络是真实网络,也称为物理网络)进行网络建模得到该通信网络对应的虚拟网络;然后,根据该虚拟网络对该通信网络进行协议行为模拟并输出协议行为模拟结果,以便于基于协议行为模拟结果进行网络分析。网络模拟技术是一种在真实或部分真实的网络环境中模拟特定网络条件的技术,旨在构建1:1还原真实网络的模拟环境,从而根据模拟环境对真实网络的网络行为进行测试与验证。在采用网络模拟技术对通信网络进行仿真的过程中:首先,根据待仿真的通信网络中的网络设备的设备镜像生成该通信网络对应的虚拟网络,该虚拟网络包括与该通信网络中的多个网络设备一一对应的多个虚拟节点,每个虚拟节点是运行对应的网络设备的设备镜像得到的一个镜像实例,每个虚拟节点能够按照对应的网络设备的协议行为处理数据面消息和控制面消息;然后,根据该虚拟网络对该通信网络进行协议行为模拟并输出协议行为模拟结果,以便于基于协议行为模拟结果进行网络分析。
3、但是,采用网络仿真技术对异构网络进行仿真的准确性较低。而网络模拟技术依赖于设备镜像,运行设备镜像的资源开销较大,导致采用网络模拟技术对通信网络进行仿真的资源开销较大。其中,异构网络也称为插花网络,是指由不同类型的设备和/或不同厂商的设备构成的网络。
技术实现思路
1、本技术提供了一种网络仿真方法及装置。本技术技术的方案如下。
2、第一方面,提供了一种网络仿真方法,该方法包括:响应于对通信网络的仿真请求,构建该通信网络对应的虚拟网络,该虚拟网络包括桥接节点、与该通信网络中的第一网络设备对应的仿真节点、与该通信网络中的第二网络设备对应的模拟节点,以及与该通信网络中的通信链路对应的虚拟链路,该仿真节点是基于该第一网络设备的配置信息进行设备建模得到的虚拟节点,该模拟节点是基于该第二网络设备的设备镜像生成的虚拟节点,该虚拟链路是基于该通信链路两端的网络设备的配置信息进行链路建模得到的,该虚拟链路包括与该仿真节点和该模拟节点连接的仿真模拟链路,该仿真模拟链路包括该桥接节点,该桥接节点用于实现该仿真节点和该模拟节点的对接;根据该虚拟网络对该通信网络进行协议行为模拟,获得协议行为模拟结果并输出。
3、本技术提供的技术方案,仿真节点是基于第一网络设备的配置信息进行设备建模得到的虚拟节点,模拟节点是基于第二网络设备的设备镜像生成的虚拟节点,与仿真节点和模拟节点连接的仿真模拟链路包括桥接节点,通过桥接节点实现仿真节点和模拟节点的对接。由此,本技术融合网络仿真(network simulation)技术和网络模拟(networkemulation)技术对通信网络进行仿真,并通过桥接节点实现仿真节点和模拟节点的对接。相比于目前的网络仿真技术,本技术提供的技术方案对第三方设备的支持难度小,可以提高对异构网络进行仿真的准确性,并且可以提高对协议特性的覆盖度。相比于目前的网络模拟技术,本技术提供的技术方案的资源开销较小,可以适用于大规模的通信网络。本技术提供的技术方案在发挥网络仿真技术和网络模拟技术的优势的同时,可以在一定程度上解决网络仿真技术和网络模拟技术存在的问题。
4、可选地,桥接节点用于实现仿真节点和模拟节点的对接包括以下至少一项:桥接节点用于对通过仿真模拟链路传输的消息进行格式转换,其中,与仿真节点匹配的消息格式和与模拟节点匹配的消息格式不同;桥接节点用于基于仿真节点的地址与模拟节点建立邻居关系;桥接节点用于基于仿真节点的地址和模拟节点周期性发送的消息进行时钟模拟。
5、例如,该虚拟网络包括至少一个桥接节点、与该通信网络中的至少一个第一网络设备对应的至少一个仿真节点、与该通信网络中的至少一个第二网络设备对应的至少一个模拟节点,以及与该通信网络中的至少一条通信链路对应的至少一条虚拟链路。该至少一个仿真节点中的每个仿真节点是基于对应的第一网络设备的配置信息进行设备建模得到的虚拟节点。该至少一个模拟节点中的每个模拟节点是基于对应的第二网络设备的设备镜像生成的虚拟节点。该至少一条虚拟链路中的每条虚拟链路是基于对应的通信链路两端的网络设备的配置信息进行链路建模得到的。该至少一条虚拟链路包括至少一条仿真模拟链路。该至少一个桥接节点与该至少一条仿真模拟链路一一对应,每条仿真模拟链路包括对应的桥接节点。每个桥接节点用于实现对应的仿真节点与对应的模拟节点的对接。每个桥接节点对应的仿真节点和对应的模拟节点是该每个桥接节点所在的仿真模拟链路两端的仿真节点和模拟节点。具体地,每个桥接节点用于实现对应的仿真节点与对应的模拟节点的对接包括以下至少一项:每个桥接节点用于对通过对应的仿真模拟链路传输的消息进行格式转换;每个桥接节点用于基于对应的仿真节点的地址与该模拟节点建立邻居关系;每个桥接节点用于基于对应的仿真节点的地址和对应的模拟节点周期性发送的消息进行时钟模拟。
6、可选地,与仿真节点匹配的消息格式为第一格式,与模拟节点匹配的消息格式为第二格式,在根据该虚拟网络对该通信网络进行协议行为模拟的过程中,桥接节点用于:将仿真节点通过仿真模拟链路发送的第一格式的消息转换为第二格式的消息,并向模拟节点发送第二格式的消息;和/或,将模拟节点通过仿真模拟链路发送的第二格式的消息转换为第一格式的消息,并向仿真节点发送第一格式的消息。
7、本技术提供的技术方案,桥接节点对通过仿真模拟链路传输的消息进行格式转换,可以使得仿真节点收发的消息的格式是与仿真节点匹配的消息格式,模拟节点收发的消息的格式是与模拟节点匹配的消息格式,从而使得仿真节点和模拟节点能够进行消息互通。
8、可选地,在根据该虚拟网络对该通信网络进行协议行为模拟的过程中,仿真节点用于根据接收的第一格式的消息生成相关信息表,模拟节点用于根据接收的第二格式的消息生成相关信息表,其中,相关信息表包括路由表、邻居表、标签表、链路状态数据库(linkstate database,lsdb)表或隧道信息表中的至少一种。
9、可选地,第一格式的消息的数据结构为人工可读的数据结构,第二格式的消息的数据结构为机器可读的字节流。例如,第一格式的消息是通过面向对象程序设计对报文进行抽象得到的数据结构,第二格式的消息是报文。第一格式的消息也称为仿真(simulation)消息或抽象报文,第二格式的消息也称为模拟(emulation)消息或具象报文。
10、可选地,在根据该虚拟网络对该通信网络进行协议行为模拟的过程中,桥接节点还用于:根据模拟节点发送的用于建立该模拟节点与仿真节点的邻居关系的消息,基于该仿真节点的地址与该模拟节点建立邻居关系。桥接节点基于仿真节点的地址与模拟节点建立的邻居关系为该模拟节点与该仿真节点的邻居关系。桥接节点基于该仿真节点的地址与该模拟节点建立邻居关系的过程中:该桥接节点向该模拟节点发送的用于建立该邻居关系的消息的源地址是该仿真节点的地址,目的地址是该模拟节点的地址;该模拟节点向该仿真节点发送的用于建立该邻居关系的消息的源地址是该模拟节点的地址,目的地址是该仿真节点的地址。
11、本技术提供的技术方案,桥接节点基于仿真节点的地址与模拟节点建立邻居关系,因此,该桥接节点代替该仿真节点执行建立邻居关系的过程中本该由该仿真节点执行的操作,来建立该模拟节点与该仿真节点的邻居关系,可以实现对建立邻居关系的模拟。
12、可选地,在根据该虚拟网络对该通信网络进行协议行为模拟的过程中,桥接节点还用于:接收模拟节点发送的用于保活该模拟节点与仿真节点的邻居关系的第一消息;根据该模拟节点发送的用于保活该邻居关系的第一消息,向该模拟节点发送用于保活该邻居关系的第二消息,其中,第二消息的源地址为该仿真节点的地址,第二消息的目的地址为该模拟节点的地址。第一消息的源地址为该模拟节点的地址,第二消息的目的地址为该仿真节点的地址。
13、本技术提供的技术方案,桥接节点对模拟节点发送的用于保活该模拟节点与仿真节点的邻居关系的第一消息进行回复,可以实现对该模拟节点与该仿真节点的邻居关系的保活。
14、可选地,模拟节点包括计时单元,在根据该虚拟网络对该通信网络进行协议行为模拟的过程中,模拟节点用于:在计时单元的触发下,周期性向仿真节点发送用于保活该模拟节点与仿真节点的邻居关系的第一消息;桥接节点用于:每次接收到该模拟节点发送的用于保活该邻居关系的第一消息,向该模拟节点发送用于保活该邻居关系的第二消息。由于模拟节点周期性向仿真节点发送第一消息,因此,桥接节点周期性向该模拟节点回复第二消息。由此,桥接节点借助模拟节点的时钟机制实现了时钟模拟。由于模拟节点能够周期性接收到源地址是仿真节点的地址的消息,因此,模拟节点认为仿真节点具有时钟机制。由于仿真节点无法接收到对应的模拟节点周期性发送的消息,因此,仿真节点不感知模拟节点的时钟机制。
15、可选地,桥接节点集成于仿真节点;或者,桥接节点集成于模拟节点;或者,桥接节点独立于仿真节点和模拟节点。在桥接节点集成于仿真节点的情况下,仿真节点通过集成桥接节点成为具有桥接功能的仿真节点,直接与模拟节点连接。在桥接节点集成于模拟节点的情况下,模拟节点通过集成桥接节点成为具有桥接功能的模拟节点,直接与仿真节点连接。在桥接节点独立于仿真节点和模拟节点的情况下,桥接节点设置在仿真节点和模拟节点之间。
16、可选地,该通信网络包括多个网络设备和至少一条通信链路,响应于对通信网络的仿真请求,构建该通信网络对应的虚拟网络,包括:响应于该仿真请求,在该多个网络设备中确定第一网络设备和第二网络设备;根据第一网络设备的配置信息进行设备建模,得到第一网络设备对应的仿真节点;根据第二网络设备的设备镜像,生成第二网络设备对应的模拟节点;根据该通信链路两端的两个网络设备的配置信息进行链路建模,得到该通信链路对应的虚拟链路。进一步的,在仿真模拟链路上构建桥接节点。
17、可选地,第一网络设备的数量为至少一个,第二网络设备的数量为至少一个,在该多个网络设备中确定第一网络设备和第二网络设备,包括:根据该多个网络设备的数量、对该通信网络进行仿真可用的资源量、单个仿真节点所需的资源量以及单个模拟节点所需的资源量,确定第一网络设备的数量和第二网络设备的数量。进而,根据第一网络设备的数量和第二网络设备的数量,确定第一网络设备和第二网络设备。
18、本技术提供的技术方案,根据该多个网络设备的数量、对该通信网络进行仿真可用的资源量、单个仿真节点所需的资源量以及单个模拟节点所需的资源量,确定第一网络设备的数量和第二网络设备的数量,使得第一网络设备的数量和第二网络设备的数量可以满足对该通信网络进行仿真可用的资源量。
19、可选地,第一网络设备的数量为第一数量,第二网络设备的数量为第二数量,根据第一网络设备的数量和第二网络设备的数量,确定第一网络设备和第二网络设备,包括:将该多个网络设备分为两组,第一组中的网络设备的数量为第一数量,第二组中的网络设备的数量为第二数量,且第一组中的网络设备与第二组中的网络设备不存在重叠;将第一组中的网络设备确定为第一网络设备;将第二组中的网络设备确定为第二网络设备。例如,随机将该多个网络设备分为两组。再例如,按照划分策略将该多个网络设备分为两组,该划分策略可以由用户指定,也可以由特定算法指定。
20、第二方面,提供了一种网络仿真装置,包括至少一个功能模块,该至少一个功能模块用于执行如上述第一方面或第一方面的任一可选方式所提供的方法。该至少一个功能模块可以基于软件、硬件或软件和硬件的结合实现,且该至少一个功能模块可以基于具体实现进行任意组合或分割。
21、第三方面,提供了一种网络仿真装置,包括存储器和处理器;该存储器用于存储计算机程序;该处理器用于执行该存储器中存储的计算机程序以使得该网络仿真装置执行如上述第一方面或第一方面的任一可选方式所提供的方法。
22、第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被执行时实现如上述第一方面或第一方面的任一可选方式所提供的方法。
23、第五方面,提供了一种计算机程序产品,该计算机程序产品包括程序或代码,该程序或代码被执行时实现如上述第一方面或第一方面的任一可选方式所提供的方法。
24、第六方面,提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,该芯片运行时用于实现如上述第一方面或第一方面的任一可选方式所提供的方法。
25、应当理解的是,上述第二方面至第六方面所取得的有益效果,可以参考上述第一方面及对应的可能实施方式所取得的有益效果,这里不做赘述。此外,上述第二方面和第三方面提及的网络仿真装置可以是服务器或服务器中的功能组件,上述第六方面提及的芯片可以是该服务器中的芯片。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com