CN114844787B - 一种支持灵活高效动态实验的网络模拟系统 - Google Patents
一种支持灵活高效动态实验的网络模拟系统 Download PDFInfo
- Publication number
- CN114844787B CN114844787B CN202210375290.2A CN202210375290A CN114844787B CN 114844787 B CN114844787 B CN 114844787B CN 202210375290 A CN202210375290 A CN 202210375290A CN 114844787 B CN114844787 B CN 114844787B
- Authority
- CN
- China
- Prior art keywords
- network
- dynamic
- link
- node
- information
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 83
- 238000002474 experimental method Methods 0.000 title claims abstract description 36
- 238000005516 engineering process Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 4
- 239000008186 active pharmaceutical agent Substances 0.000 claims 8
- 238000004891 communication Methods 0.000 abstract description 4
- 238000013515 script Methods 0.000 description 11
- 206010009192 Circulatory collapse Diseases 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000011160 research Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
- H04L43/55—Testing of service level quality, e.g. simulating service usage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种支持灵活高效动态实验的网络模拟系统,属于网络通信技术领域。本发明基于容器、veth‑pair、tc等技术对网络进行模拟,以及设置的基于键值对的网络状态管理模型,从而构建了一种支持灵活高效动态实验的网络模拟系统。该系统灵活地实现了多种维度的动态性,即节点动态启停、节点属性动态配置、链路动态启停、链路属性动态配置。本发明基于网络状态管理模型,向上提供了简洁统一的动态性API接口,研究人员可在模拟网络部署后的任意时刻在自己的网络创新程序中调用API接口,从而实现高效批量、可编程的动态性管理。本发明极大地方便了研究人员在网络动态性场景下的实验工作,为网络创新注入了新的动力。
Description
技术领域
本发明属于网络通信技术领域,具体涉及一种支持灵活高效动态实验的网络模拟系统。
背景技术
当下,以5G通信、物联网、边缘计算等为代表的信息技术的发展,对于网络的承载能力、传输速度、总体架构等提出了新的挑战。为适应网络需求的迅速发展,广大高校、企业与研究机构纷纷投入人员进行网络技术的创新开发与研究。在网络技术的研究过程中,研究人员往往需要使用网络实验平台对其算法或架构提前进行测试,以进行性能上的验证与调优,并避免直接部署在生产环境下带来的可能经济损失。
如今网络实验平台主要分为三类,分别为试验床、仿真平台与模拟平台。试验床部署于真实环境之中,采用了真实的设备,能在部分场景下达到不错的实验效果,且具有一定的保真性;然而,试验床有着价格昂贵、网络环境不易调整等固有缺点。仿真平台通常采用离散事件或数学模型的方式来对网络环境进行建模,这种方式调整灵活、开销小,但由于其没有真实的网络环境,因此获得的实验结果不具有保真性,且进行实验的程序没有很好的移植特性,无法直接在真实环境进行部署。模拟平台介于二者之间,使用软件对真实的网络环境进行模拟,在具有轻量级、开销小特性的同时,有着真实的网络协议栈与不错的实验保真度,并且其实验所用的代码实现可较容易地迁移至生产环境中,因此近年来越来越受广大研究人员的推崇。
研究人员在使用网络模拟平台进行网络实验时,往往有着动态进行模拟的需求。例如,在无线网络研究中,毫米波信道的带宽、时延、丢包率等具有波动大的特点,这对链路属性的动态变化提出了新的挑战;在一些流量调度算法中,需要考虑部分节点的启动或故障对其调度策略的影响;在数据中心网络的负载均衡算法研究中,部分链路的加入或故障对负载均衡算法鲁棒性的影响十分受到研究人员的重视;另外,一些基于大规模网络拓扑的实验往往具有拓扑部署耗时长的特点,若每次进行实验都重新部署网络拓扑,将带来巨大的时间开销,为网络创新带来阻碍,这要求网络模拟平台能动态地在已部署的拓扑上批量地做配置的修改,便于快速地更改参数进行创新验证。此外,为便于实验的自动化进行及相关想法的快速落地,这些动态变化需要是批量、可编程的。
mininet是现在主流的网络模拟平台,它通过Linux的namespace技术提供了对主机的模拟,使用Open vSwitch作为软件交换机,并使用veth-pair作为虚拟链路。mininet支持以python脚本的形式定义并创建拓扑,在运行拓扑创建脚本后,mininet会在主机上建立起模拟网络,并将模拟网络的状态信息以python编程语言的变量的形式存在于mininet进程的内存中。模拟网络建立完成后,mininet不会立即终止拓扑创建脚本,而是会在拓扑创建脚本进程上开启命令行接口(mininet-cli),供研究人员对模拟网络进行控制。在mininet中实现动态性有两种方式,一是在拓扑创建脚本中预定义动态事件;二是在拓扑创建成功后,在mininet自身进程上的命令行交互程序中使用命令来实现动态性。
但是,mininet这种动态性是具有局限性的,在方式一中,研究人员虽然可以编程、批量实现动态性,但是这仅仅是一种预定义的伪动态性,无法真正做到实时对节点、链路及其属性做出改变,无法灵活地支撑动态实验;在方式二中,研究人员虽然可以实时通过mininet-cli实现动态性,但是由于进程的隔离性,研究人员的其它实验程序无法对位于mininet内存中的模拟网络状态信息进行访问,导致研究人员无法可编程、批量地实现对模拟网络的控制,这样的低效性为网络实验带来了不便。此外,mininet没有原生地提供路由器、防火墙等节点类型,这导致mininet无法模拟路由器、防火墙等节点的动态启停和动态属性配置。
Kollaps是于2020年在计算机体系结构领域会议EuroSys上提出的网络模拟平台。Kollaps使用容器来实现对端节点的模拟,并利用拓扑折叠技术,将端到端的多条链路及属性聚合为一条链路。由于Kollaps链路聚合所需开销较大,因此当单链路属性发生变化时,它需要耗费较长时间来实现链路的重新聚合,这在实验中是不可接受的,导致Kollaps最终采取预定义动态脚本的方案。研究人员在预定义脚本中预定义若干动态事件及其发生的时间点,如节点的启停、链路的启停、链路属性变化等;Kollaps根据研究人员提前定义好的动态事件对要聚合的链路提前进行计算,以此实现了动态性。在拓扑部署成功后,Kollaps将根据各个事件已定义好的发生时间点,依次执行这些动态事件。
虽然Kollaps可以实现较为全面的动态性,但这种动态性同样是一种预定义的伪动态性。当研究人员使用Kollaps完成一次需要动态性的实验后,若想微调某些参数后重新进行实验,就只能重新进行链路聚合、拓扑部署等过程,将耗费大量的时间,这降低了网络实验的效率,极大地阻碍了网络创新的过程;甚至在拓扑较大的情况下,这样的时间开销将会是不可接受的。此外,Kollaps只对端到端链路属性进行了模拟,无法对路由器、交换机等交换节点以及单链路的动态变化做出模拟,缺乏一定的灵活性。
发明内容
本发明提供了一种支持灵活高效动态实验的网络模拟系统,可用于提升节点和链路动态性模拟的灵活性、动态性。
本发明采用的技术方案为:
一种支持灵活高效动态实验的网络模拟系统,该系统包括底层模拟网络和网络状态管理模型;
所述底层模拟网络用于节点及节点间的链路模拟,采用容器技术模拟不同类型的节点,并采用veth-pair技术在两个模拟节点之间建立模拟链路:在两个模拟节点中分别创建可随时启停的模拟网卡,并在两张模拟网卡间建立模拟链路;以及采用Linux操作系统的traffic control对链路属性进行模拟,并支持对模拟链路属性的动态配置;
所述网络状态管理模型,用于对底层模拟网络模拟的节点、链路及其连接关系进行描述,以及周期性地与底层模拟网络模拟进行状态同步,并向用户提供动态性API接口;
所述网络状态管理模型采用键值对形式,对节点状态信息和链路状态管理信息进行描述;
所述节点状态信息中,通过项目名和节点名的组合唯一定位一个节点,所记录的节点状态信息包括但不限于:
节点的容器ID,用于动态性API接口执行时的节点定位;
节点所用的镜像、节点类型及节点子类型信息,用于用户采用分类方式对节点的批量动态操作;
节点属性信息,用于用户对节点属性的动态配置;
节点网卡信息,用于向用户提供基本网络地址信息;
所述链路状态管理信息通过项目名和链路名的组合唯一定位一条链路,用于描述链路相关信息及连接关系,描述的信息包括但不限于:
链路的源和目的节点,
链路的源和目的节点的节点网卡信息,用于向用户提供节点连接关系信息;
链路的链路属性信息,用于用户基于链路属性信息通过API接口对链路属性进行动态配置。
进一步的,所述底层模拟网络与所述网络状态管理模型之间的同步机制为:
通过配置的用于状态监控的应用程序,对底层模拟网络的状态进行实时采集,采集目标包含节点运行情况、节点实时属性、链路运行情况和链路实时属性;当检测到底层模拟网络与网络状态管理模型的状态信息不一致时,对网络状态管理模型的状态信息进行实时更新,即更新网络状态管理模型的节点状态信息、链路状态管理信息。
进一步的,所述的网络模拟系统还包括若干预配置的动态性API,用于向用户提供若干动态性API,包括对节点、链路的动态启停和动态配置,以供用户选择和调用,所述动态性API以动态性API列表的形式进行描述,包括API名称和功能描述。
进一步的,所述节点属性信息包括但不限于节点的配置信息和网关。
进一步的,所述节点网卡信息包括但不限于节点名、类型、网卡名和IP地址。
进一步的,所述链路属性信息包括但不限于源和目的节点的网卡上的带宽、时延和丢包率。
进一步的,所述网络状态管理模型的优选实现方式为:基于redis数据库进行实现。
本发明提供的技术方案至少带来如下有益效果:
(1)提供了一种灵活的节点和链路动态性模拟方案:采用容器、veth-pair、tc等技术方案对网络节点和链路进行模拟,使模拟节点和链路具有了灵活进行动态变化的能力;
(2)提供了一种可支撑动态性的高效批量可编程管理的状态管理模型:对底层模拟网络的节点、链路和连接关系进行了精细化建模,设置了模型与模拟网络间的同步机制,并基于状态管理模型提供了简洁易用的动态性API。这方便了研究人员能高效批量、可编程地管理底层模拟网络的动态性,促进了网络创新的进程。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种支持灵活高效动态实验的网络模拟系统的整体架构图;
图2是本发明实施例提供的一种支持灵活高效动态实验的网络模拟系统的网络状态管理模型同步方法示意图;
图3是本发明实施例提供的一种支持灵活高效动态实验的网络模拟系统的部署示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
现今的网络模拟平台无法满足或只能部分满足研究人员进行动态网络实验的需求,要能灵活、高效地进行动态模拟实验,面临着以下两个挑战:
(1)如何对节点及链路进行模拟,使其具有灵活的动态性。节点及链路灵活的动态性指的是节点动态启停、节点属性动态配置、链路动态启停、链路属性动态配置等节点及链路能够灵活动态变化的能力。要使节点及链路具有灵活的动态性,其模拟方案需考虑以下两点因素:一是模拟节点及模拟链路需具有接近真实设备的可交互性和属性,才能进行动态启停和动态属性配置;二是不能通过对网络端到端属性的模拟代替对整个网络的模拟,需对整个网络中的所有元素(主机节点、交换节点、中间链路等)及其属性都进行如实模拟,才能使得网络创新实验能够实现任意节点及链路的动态变化。
(2)如何对具有动态性的节点及链路的状态建立管理模型,使其可以支撑动态性的高效批量可编程管理。动态性的高效批量可编程管理是指通过编写程序的方式,批量地控制节点及链路的动态性,最终达到以自动化的方式高效进行动态实验的效果。要支撑动态性的高效批量可编程管理,需对节点及链路的状态建立管理模型,该模型需考虑以下几点因素:首先,该模型需详细记录节点、链路及其连接关系,以便研究人员全面获取拓扑相关信息;其次,该模型的访问权限不应局限于模拟平台内部,而应开放给平台外部的任意实验程序,这样研究人员才能通过编写的实验程序对管理模型进行控制,进而批量地控制模型所描述的模拟网络的动态性。
本发明实施例基于容器、veth-pair、tc等技术对网络进行模拟,以及设置的基于键值对的网络状态管理模型,从而构建了一种支持灵活高效动态实验的网络模拟系统。该系统灵活地实现了多种维度的动态性,即节点动态启停、节点属性动态配置、链路动态启停、链路属性动态配置。本发明基于网络状态管理模型,向上提供了简洁统一的动态性API接口,研究人员可在模拟网络部署后的任意时刻在自己的网络创新程序中调用API接口,从而实现高效批量、可编程的动态性管理。本发明极大地方便了研究人员在网络动态性场景下的实验工作,为网络创新注入了新的动力。
参见图1,本发明实施例提供的支持灵活高效动态实验的网络模拟系统主要分为两部分,即底层模拟网络和网络状态管理模型。其中,底层模拟网络是用户实验网络的实际承载者,在底层模拟网络中,有着多样的节点类型(如端主机、交换机、路由器、防火墙、数据库等),提供了对主机节点及交换节点的全方位灵活模拟;底层模拟网络的链路也可根据实际需求提供各种类型的链路属性(如固定属性链路、毫米波链路、卫星链路等)。网络状态管理模型中,对节点、链路及其连接关系做了详细描述。网络状态管理模型会周期性地与底层模拟网络进行状态同步,并向上提供动态性API接口,便于用户在网络创新程序(待验证算法程序,即用户自己设置的网络相关算法的程序)中自由高效地控制网络的动态性。
为了使模拟节点及链路具有动态变化的能力,需仔细考量节点及链路所使用的模拟方案。例如,为实现任意类型节点的动态性启停,模拟节点需要有丰富的类型;为实现节点属性的动态配置,模拟节点需要有接近真实设备的属性;为实现任意链路的动态启停,模拟链路需对应于实际拓扑的所有链路;为实现链路属性的动态配置,模拟链路需具有接近真实链路的属性。
本发明实施例中,采用容器技术对节点进行模拟。容器是一种Linux内核的轻量级虚拟化技术,它共享操作系统内核,基于操作系统的Namespace和Cgroup两大技术进行实现,提供了网络、文件系统等的隔离。此外,相较于虚拟机技术,容器具有启停快、开销小的特点,因此可进行灵活部署。容器可由镜像生成,互联网上有着以docker hub为代表的镜像仓库,提供了大量的镜像,也可以通过手动制作的方式制作自定义镜像,这大大丰富了容器的类型。使用容器作为模拟网络的网络节点,可使每个网络节点具有独立的网络和文件空间,并可进行独立配置及独立的软件安装,这使得模拟网络的网络节点拥有了接近真实物理设备的隔离性和可配置性。容器轻量级的特点,使得网络节点可快速进行动态启停,并能较容易地进行网络规模的扩展。丰富的镜像库让网络节点具有了丰富的类型,从而实现了对包含主机节点和交换节点在内的多种网络节点的模拟。
本发明实施例,采用veth-pair技术在两个模拟网络节点之间建立模拟链路。veth-pair是Linux操作系统提供的一种虚拟线缆,由双向的管道实现,常用于连接两个不同的网络命名空间。在本发明实施例中,veth-pair在两个模拟网络节点中分别创建可随时启停的模拟网卡,并在两张模拟网卡间建立模拟链路。当模拟链路的任意一端网卡停止后,模拟链路会随之断开,因此,本发明实施例可实现对链路动态启停的模拟。
模拟链路建立成功后,需要为模拟链路添加链路属性。本发明使用Linux操作系统的traffic control(tc)对链路属性进行模拟。tc可以通过配置队列规则的方式,对Linux操作系统发送数据包时的数据包调度策略进行修改。tc中包含着若干队列规则,包括令牌桶队列、公平队列、先入先出队列、多优先级队列等,可用于模拟链路的带宽、时延、丢包率等链路属性以及多样的队列类型。tc同样支持对队列规则的实时改变。tc的这些特性使得本发明实施例可提供丰富的模拟链路属性,并支持对模拟链路属性的动态配置。
本发明实施例中,网络状态管理模型基于键值对设计,详细描述了节点、链路及其连接关系,并在redis数据库上做了实现;本发明实施例使用同步机制来保证模型与底层模拟网络状态的一致性;最后,本发明实施例基于网络状态管理模型向上提供若干动态性API(应用程序编程接口),便于研究人员进行可编程、批量地进行动态性相关操作。
表1节点状态管理模型
表1所示为本发明实施例提供的节点状态管理模型,记录了节点的各项信息(根据实际情况,可记录的信息不局限于这些信息)。该模型使用项目名和节点名的组合来唯一定位研究人员(网络模拟系统的用户)项目中的一个节点,并记录了节点实际的容器ID,便于动态性API执行时对节点实例进行快速定位;模型记录了每个节点所用的镜像、节点类型及节点子类型信息,使得研究人员可以通过分类的方式对节点进行批量动态操作;模型描述了节点的特有配置、网关等节点属性信息,便于研究人员对节点属性进行动态配置;此外,模型还描述了节点所有网卡的信息,使得研究人员可获取虚拟节点的IP地址、子网掩码、MAC地址等基本网络地址信息。
表2链路状态管理模型
表2为本发明实施例提供的链路状态管理模型,它包含了对链路相关信息及节点连接关系的描述(根据实际情况,可记录的信息不局限于这些信息)。该模型提出了“源”和“目的”两个概念,以区分同一条链路两端的不同节点。有了两端节点的区分后,该模型描述了链路两端源和目的网元的节点名、类型、网卡名、IP地址等信息,为研究人员提供了节点连接关系信息,便于模拟拓扑中链路的动态启停。该模型同样对源和目的网卡上的带宽、时延、丢包率等链路属性信息进行了记录,研究人员可基于此信息通过API对链路属性进行动态变化。
如图2所示,在网络状态管理模型同步方面,为保证网络状态管理模型与实际底层模拟网络状态的一致性,本发明实施例结合Prometheus(状态监控的应用程序)开源监控系统对底层模拟网络的状态进行实时的采集,采集目标包含节点运行情况、节点实时属性、链路运行情况、链路实时属性等。若发现底层模拟网络与网络状态管理模型不一致,则会对网络状态管理模型做实时更新。
由于在动态变化及网络状态模型同步的过程中,需要频繁地对网络状态管理模型进行读写,因此,本发明实施例基于redis对网络状态管理模型进行了实现。redis是一种内存型的数据库,具有读写快的特点,且能较好地支持键值对型的数据结构。需要说明的是,本发明的网络状态管理模型的实现可以不局限于redis,也可基于其它数据库进行实现。
表3动态性API列表
表3展示了本发明实施例中基于网络状态管理模型向用户提供的若干动态性API(根据使用需要,可开发并提供其它动态性API)。这些API符合RESTful规范(一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义),通过HTTP协议对动态网络模拟系统进行请求,因此,其可适用于研究人员所用的各种开发语言。研究人员可通过动态性API随时、批量、可编程地控制底层模拟网络的动态性,包括对节点、链路的动态启停和动态配置。
本发明实施例中,部署环境如图3所示。包括客户端与服务端,其中,客户端为计算机(任意操作系统,可与服务端为同一台计算机),服务端为基于Linux操作系统的计算机。本发明实施例提供的网络模拟系统部署方便,为客户端-服务端模式,开发人员将本发明实施例提供的支持灵活高效动态实验的网络模拟系统安装至任意搭载Linux操作系统的计算机后,可使用搭载任意操作系统的任意计算机使用本系统快速地进行网络创新研究与验证(客户端与服务端间需要具备通信能力)。
基于本发明实施例提供的一种支持灵活高效动态实验的网络模拟系统进行网络动态实验的实验流程包括:
1、准备工作。
(1-1)在服务端计算机上安装相关软件环境,操作系统为ubuntu 18.04,python版本为3.8.0,docker版本为20.10.7,redis版本为4.0.9;
(1-2)在服务端计算机上启动动态网络模拟系统服务端程序,监听指定端口(用于用户接入)。
2.实验流程。
(2-1)研究人员需结合本发明实施例提供的API编写拓扑创建脚本,拓扑创建脚本成功并在服务端运行后,将在服务端创建完成初始的底层模拟网络,并完成网络状态管理模型的初始化,即在运行的时候同时完成对网络状态管理模型的初始化;
(2-2)在第(2-1)步中,研究人员可以在拓扑创建脚本中定义节点类型、节点属性、链路属性等信息,并可结合编程语言的睡眠函数预定义一系列动态事件;
(2-3)对需被验证的算法(网络算法,用于实现目标功能或者性能的网络算法)进行开发(编程实现),得到待验证算法程序,并将待验证算法程序上传至指定的节点中,算法程序中可以包含动态事件;
(2-4)基于动态性API编写动态脚本,以实现对底层模拟网络的动态性控制;
(2-5)运行动态脚本与待验证算法程序,对待验证算法程序在节点动态启停、节点属性动态配置、链路动态启停、链路属性动态配置等动态性环境下的性能表现进行验证与评估;
(2-6)根据实验结果,进一步调优待验证算法程序,并重复步骤(2-3)到步骤(2-5),最终完成整个网络创新的闭环工作。
本发明实施例提出了一种支持灵活高效动态实验的网络模拟系统,利用容器技术对多种网络节点(如主机、交换机、路由器等)进行容器化建模,采用Linux的veth-pair技术和traffic control(tc)技术对链路及其属性进行模拟,以提供动态性的底层保障。容器化后的网络节点具有接近真实网络节点的属性和可交互性,因此可支撑多种类型节点的动态启停及动态配置;同时,veth-pair中所使用的虚拟网卡可随时启停,保证了链路的动态启停能力;作用于虚拟网卡的tc可随时更改位于数据面的队列规则,提供了链路属性的动态变化能力。同时,设置了基于键值对的网络状态管理模型,并使用redis数据库对其进行了实现,克服了进程隔离性导致的数据难以访问的问题。该网络状态管理模型包含了对节点、链路的具体信息及其连接关系的描述,并通过实时监测当前拓扑状态的方式,维护了管理模型与实际网络的一致性;此外,向上提供了简洁统一的动态性API接口,便于研究人员批量可编程地实现动态性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (3)
1.一种支持灵活高效动态实验的网络模拟系统,其特征在于,该系统包括底层模拟网络和网络状态管理模型;
所述底层模拟网络用于节点及节点间的链路模拟,采用容器技术模拟不同类型的节点,并采用veth-pair技术在两个模拟节点之间建立模拟链路:在两个模拟节点中分别创建可随时启停的模拟网卡,并在两张模拟网卡间建立模拟链路,当模拟链路的任意一端网卡停止后,模拟链路会随之断开,以实现对链路动态启停的模拟;模拟链路建立成功后,为模拟链路添加链路属性,采用Linux操作系统的traffic control对链路属性进行模拟,通过配置队列规则的方式,对Linux操作系统发送数据包时的数据包调度策略进行修改,其中队列规则用于模拟链路属性以及队列类型,且支持对队列规则的实时改变,以提供丰富的模拟链路属性,并支持对模拟链路属性的动态配置;
所述网络状态管理模型,用于对底层模拟网络模拟的节点、链路及其连接关系进行描述,以及周期性地与底层模拟网络模拟进行状态同步,并向用户提供动态性API接口;所述网络状态管理模型的访问权限不局限于模拟平台内部,还开放给平台外部的任意实验程序;
所述网络状态管理模型采用键值对形式,对节点状态信息和链路状态管理信息进行描述;
所述节点状态信息中,通过项目名和节点名的组合唯一定位一个节点,所记录的节点状态信息包括:
节点的容器ID,用于动态性API接口执行时的节点定位;
节点所用的镜像、节点类型及节点子类型信息,用于用户采用分类方式对节点的批量动态操作;
节点属性信息,用于用户对节点属性的动态配置,包括节点的配置信息和网关;
节点网卡信息,用于向用户提供基本网络地址信息;
所述链路状态管理信息通过项目名和链路名的组合唯一定位一条链路,用于描述链路相关信息及连接关系,描述的信息包括:
链路的源和目的节点;
链路的源和目的节点的节点网卡信息,用于向用户提供节点连接关系信息;
链路的链路属性信息,用于用户基于链路属性信息通过API接口对链路属性进行动态配置;
所述底层模拟网络与所述网络状态管理模型之间的同步机制为:
通过配置的用于状态监控的应用程序,对底层模拟网络的状态进行实时采集,采集目标包含节点运行情况、节点实时属性、链路运行情况和链路实时属性;当检测到底层模拟网络与网络状态管理模型的状态信息不一致时,对网络状态管理模型的状态信息进行实时更新;
还包括若干预配置的动态性API,用于向用户提供若干动态性API,包括对节点、链路的动态启停和动态配置,所述动态性API以动态性API列表的形式进行描述,包括API名称和功能描述。
2.如权利要求1所述的网络模拟系统,其特征在于所述节点网卡信息包括节点名、类型、网卡名和IP地址。
3.如权利要求1所述的网络模拟系统,其特征在于所述链路属性信息包括源和目的节点的网卡上的带宽、时延和丢包率。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375290.2A CN114844787B (zh) | 2022-04-11 | 2022-04-11 | 一种支持灵活高效动态实验的网络模拟系统 |
US17/988,777 US20230327973A1 (en) | 2022-04-11 | 2022-11-17 | Network emulation system supporting flexible and efficient dynamic experiment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375290.2A CN114844787B (zh) | 2022-04-11 | 2022-04-11 | 一种支持灵活高效动态实验的网络模拟系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114844787A CN114844787A (zh) | 2022-08-02 |
CN114844787B true CN114844787B (zh) | 2024-01-26 |
Family
ID=82563373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210375290.2A Active CN114844787B (zh) | 2022-04-11 | 2022-04-11 | 一种支持灵活高效动态实验的网络模拟系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230327973A1 (zh) |
CN (1) | CN114844787B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442615B1 (en) * | 1997-10-23 | 2002-08-27 | Telefonaktiebolaget Lm Ericsson (Publ) | System for traffic data evaluation of real network with dynamic routing utilizing virtual network modelling |
WO2015043168A1 (zh) * | 2013-09-27 | 2015-04-02 | 华为技术有限公司 | 实现虚拟网络通信的方法、装置和系统 |
CN108234187A (zh) * | 2016-12-22 | 2018-06-29 | 江南大学 | 一种面向数据报文转发的高逼真链路仿真方法 |
WO2021026509A1 (en) * | 2019-08-08 | 2021-02-11 | Intel Corporation | Link performance prediction and media streaming technologies |
CN112804081A (zh) * | 2020-12-25 | 2021-05-14 | 中国科学院信息工程研究所 | 一种虚拟网络拓扑构建及动态变更的方法 |
CN113067728A (zh) * | 2021-03-17 | 2021-07-02 | 中国人民解放军海军工程大学 | 一种网络安全攻防试验平台 |
CN113434252A (zh) * | 2021-06-28 | 2021-09-24 | 电子科技大学 | 面向5g网络功能虚拟化的自定义vnf部署系统及方法 |
-
2022
- 2022-04-11 CN CN202210375290.2A patent/CN114844787B/zh active Active
- 2022-11-17 US US17/988,777 patent/US20230327973A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442615B1 (en) * | 1997-10-23 | 2002-08-27 | Telefonaktiebolaget Lm Ericsson (Publ) | System for traffic data evaluation of real network with dynamic routing utilizing virtual network modelling |
WO2015043168A1 (zh) * | 2013-09-27 | 2015-04-02 | 华为技术有限公司 | 实现虚拟网络通信的方法、装置和系统 |
CN108234187A (zh) * | 2016-12-22 | 2018-06-29 | 江南大学 | 一种面向数据报文转发的高逼真链路仿真方法 |
WO2021026509A1 (en) * | 2019-08-08 | 2021-02-11 | Intel Corporation | Link performance prediction and media streaming technologies |
CN112804081A (zh) * | 2020-12-25 | 2021-05-14 | 中国科学院信息工程研究所 | 一种虚拟网络拓扑构建及动态变更的方法 |
CN113067728A (zh) * | 2021-03-17 | 2021-07-02 | 中国人民解放军海军工程大学 | 一种网络安全攻防试验平台 |
CN113434252A (zh) * | 2021-06-28 | 2021-09-24 | 电子科技大学 | 面向5g网络功能虚拟化的自定义vnf部署系统及方法 |
Non-Patent Citations (4)
Title |
---|
"轻量级容器化技术驱动的虚拟网络部署研究";曹含笑;陈海浩;梁梅群;谢恩慧;韦晓慧;;《电子测试》(06);全文 * |
"Network virtualization by using software-defined networking controller based Docker";LiuXingtao等;《IEEE》;全文 * |
"云环境下虚拟网络动态演化管理技术研究";许力;《万方数据库》;全文 * |
谢景昭等."Klonet:面向技术创新的网络模拟实验平台".《电信科学》.2021,(第10期),正文第4-5节,图1-3. * |
Also Published As
Publication number | Publication date |
---|---|
CN114844787A (zh) | 2022-08-02 |
US20230327973A1 (en) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9628339B1 (en) | Network testbed creation and validation | |
CN104580519A (zh) | 一种快速部署openstack云计算平台的方法 | |
Navarro et al. | The information system of INTEGRIS: Intelligent electrical grid sensor communications | |
WO2018231901A1 (en) | Detecting and managing recurring patterns in device and service configuration data | |
Kumar et al. | Energy efficient resource migration based load balance mechanism for high traffic applications IoT | |
CN114422010B (zh) | 一种基于网络虚拟化的卫星通信仿真平台的协议测试方法 | |
KR20180028499A (ko) | Ict 서비스 제공 방법 및 시스템 | |
Avramov et al. | The Policy Driven Data Center with ACI: Architecture, Concepts, and Methodology | |
CN112291728A (zh) | 基于5g网络的私有行业应用平台实现架构 | |
CN111343011B (zh) | 一种云管理平台融合Openstack网络控制方法及系统 | |
Long et al. | A novel fault-tolerant approach to web service composition upon the edge computing environment | |
Hagos | Software-defined networking for scalable cloud-based services to improve system performance of hadoop-based big data applications | |
Cheng et al. | Toward a scalable SDN control mechanism via switch migration | |
CN114844787B (zh) | 一种支持灵活高效动态实验的网络模拟系统 | |
Syamala et al. | Big data analytics for dynamic network slicing in 5G and beyond with dynamic user preferences | |
López et al. | Towards a network operating system | |
Bai | Modeling analysis of Intelligent Manufacturing System based on SDN | |
Poularakis et al. | Modeling and optimization in software-defined networks | |
Haja et al. | Towards making big data applications network-aware in edge-cloud systems | |
CN112583740B (zh) | 网络通信方法及装置 | |
CN113704218A (zh) | 一种容器环境中运行时数据迁移方法及系统 | |
CN112351106A (zh) | 一种含事件网格的服务网格平台及其通信方法 | |
Shalimov et al. | On bringing software engineering to computer networks with software defined networking | |
Govindarajan et al. | Network aware container orchestration for telco workloads | |
Tärneberg | The confluence of Cloud computing, 5G, and IoT in the Fog |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |