网络模拟与网络仿真

目录

 

一、概念界定

二、模拟(simulation)与仿真(emulation)

2.1 模拟(simulation)

2.2 仿真(emulation)

2.3 区分

三、网络模拟与网络仿真

3.1 网络模拟

3.2 网络仿真   

3.2.1 软件实现

3.2.2 硬件实现


 

一、概念界定

        一般来说,大家在使用的时候不会刻意地区分模拟和仿真的概念,在很多的时候都是对这两个概念进行混用,在本文中,我们讨论的模拟对应的英文为simulation(其实在很多地方都会把simulation翻译成仿真,但是在这个话题下,我们希望翻译成模拟),仿真对应的英文为emulation。

二、模拟(simulation)与仿真(emulation)

2.1 模拟(simulation)

        模拟指的是选取一个(物理的或抽象的)系统的某些行为特征,用另一台系统来表示它们的过程。模拟技术的高级阶段称为仿真模拟、系统模拟,即用一个数据处理系统来(全部/部分地)模仿另一个数据处理系统,以至于模仿的系统能像被模仿的系统一样接收同样的数据,执行同样的程序,获得同样的结果。       

2.2 仿真(emulation)

        仿真指的是一个系统的执行方式和另一个完全一样,但可能速度不同。一个典型的例子就是虚拟机,我们可以通过一台计算机仿真另一台计算机。

2.3 区分

模拟是试图模仿一个设备的内部设计,仿真是试图模仿一个设备的功能。我们可以通过仿真来替换一个系统,但是对于模拟,我们只是希望分析其行为并进行一些预测。

三、网络模拟(simulation)与网络仿真(emulation)

3.1 网络模拟(simulation)

        网络模拟(simulation)注重的是在概念上对网络层次特征进行抽象,建立尽可能近似的模型,通过软件模拟构造一个完全虚拟可控的抽象网络环境,在此环境中对网络拓扑,协议算法等软部件进行设计验证和测试。所以网络模拟的优势在于可控性和可再生性,但它仅是一种近似真实的结果。网络模拟器是由软件实现的。目前流行的网络模拟器有NS2/NS3,OPNET,OMNET++等。

        对于网络模拟来说,一般采用的是基于离散事件的网络模拟器,模拟的效果依赖于CPU性能。以OPNET为例,OPNET (Optimized Network Engineering Tool)是 1986 年由麻省理工学院的研究团队开发、基于离散事件驱动的网络性能仿真软件,是目前世界上最先进的同类软件之一,拥有全面的用户手册、丰富的学习资料和简单易用的 GUI,方便用 户构建网络模型、修改网络拓扑参数、自定义仿真过程及分析仿真结果等。Qual Net 采用 TCP/IP 层次化、模块化建模,支持无线、有线和混合网络及设备的仿真分析。 商用模拟器相比于开源的模拟器,它们的仿真速度更快、效率更高、规模更大且更准确,因此很受欢迎。

b7178bcc517a46cfbebc9822a4189377.jpeg

3.2 网络仿真(emulation)   

        网络仿真(emulation)注重的是仿真真实的网络环境,层次上比模拟高了一层,是模拟的在真实环境中的外在表现,使得仿真网络好像一个黑盒网络,内部可控仿真真实网络环境中的各种情形,而对于外界真实的网络环境具有透明性,外界真实网络环境不会觉察到仿真网络的存在,真实网络中的设备协议都可以与仿真网络直接联结运行工作。所以网络仿真的优势在于与真实环境联结直接展现真实环境下运行结果,具有真实性和可靠性,但是它忽略了对仿真网络内部网络拓扑结构的模拟,无法仿真规模网络环境。网络仿真器有软件实现和硬件实现,其原理是相同的。目前已有的网络仿真器有Mininet,CrystalNet等。

3.2.1 软件实现

        基于虚拟化的网络仿真(Emulation)是另一种流行的网络仿真方法,通过在主机上创建虚拟的网络节点构建仿真网络。以Mininet为例,Mininet是由斯坦福大学基于​ Linux Container​ 架构开发的一个进程虚拟化网络仿真工具,可以创建一个包含主机,交换机,控制器和链路的虚拟网络,其交换机支持OpenFlow,具备高度灵活的自定义软件定义网络。仿真器中的每个节点都具备真实的网络协议仿真,因此可以视为真实的网络设备,保真度较高。但是要扩大规模就需要占用更多的资源,同时拉低仿真速度。

379fdae75db944bf8fe44874b3bc8092.jpeg

3.2.2 硬件实现

        对于网络仿真来说,还可以通过硬件的方式实现,使用最多的就是网络测试床的方式。

        基于真实设备的网络测试床最大的限制就是资源和成本,因为无论是一开始搭建测试床,还是后续随着网络的发展进行相应的升级,都需要大量资金的投入(针对需要大规模仿真的大型网络),这对正在研发过程中的项目来说并不是一个好的选择。如果使用有限的成本和资源,搭建一个支持小规模实验的测试床,其结果也不适用于大型网络。还有一些公共测试床,例如 PlanetLab、Emulab、CloudLab和 GENI等。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法】算法题-20231206

这里写目录标题 一、非自身以外数字的乘积二、最大数三、奇数排序 一、非自身以外数字的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀…

VA05销售报表屏幕增强

业务需求:在VA05报表界面增强两个字段(BELNR1/BELNR2). 第一步:扩展VA05相关表结构 由于新增的字段是按照销售订单行维度展示的,所以本篇加在VBAP表里(不扩展表字段,直接写增强,会…

融云 Global IM UIKit,灵活易用的即时通讯组件设计思路和最佳实践

(全网都在找的《社交泛娱乐出海作战地图》,点击获取👆) 融云近期推出的 Global IM UIKit,支持开发者高效满足海外用户交互体验需求,且保留了相当的产品张力赋予开发者更多自由和灵活性,是实现全…

现货黄金会面临哪些风险?

进行现货黄金投资,我们除了要了解怎么找到交易机会以外,也要知道我们交易会面临哪些风险,了解风险就是做到知己知彼,了解风险才能控制风险。控制住风险,才能为我们稳定盈利打好基础,那么下面我们就来看看在…

ESP32-Web-Server编程-在网页中插入图片

ESP32-Web-Server编程-在网页中插入图片 概述 图胜与言,在网页端显示含义清晰的图片,可以使得内容更容易理解。 需求及功能解析 本节演示在 ESP32 Web 服务器上插入若干图片。在插入图片时还可以对图片设置一个超链接,用户点击该图片时&a…

Oracle merge into语句(merge into Statement)

在Oracle中,常规的DML语句只能完成单一功能,,例如insert/delete/update只能三选一,而merge into语句可以同时对一张表进行更新/插入/删除。 目录 一、基本语法 二、用法示例 2.1 同时更新和插入 2.2 where子句 2.3 delete子句 2.4…

Gitee项目推荐-HasChat

最近由于使用的局域网通信工具总是出问题,就在考虑有没有好的替代品。搜索了一番,发现这个还不错: HasChat: 一款极简聊天应用,比较完整,略好看 页面简洁,功能也比较齐全, 感兴趣的小伙伴可以…

【Redis】redis 高性能--线程模型以及epoll网络框架

目录 一.前言 二.多线程的弊端 2.1 锁的开销问题 2.2 多线程上下文切换带来的额外开销 2.3 多线程占用内存成本增高 三.基本IO模型与epoll 模式 3.1 基本IO模型 3.2 单线程处理机制 四.总结 一.前言 我们经常讨论到,redis 是单线程,那为什么单线…

sizeof()、strlen()、length()、size()的区别(笔记)

​ 上面的笔记有点简陋,可以看一下下面这个博主的: c/c中sizeof()、strlen()、length()、size()详解和区别_csize,sizeof,length_xuechanba的博客-CSDN博客

the name of a constructor must match the name of the enclosing class

构造器名匹配封闭类名 命令码的位置关系不对 解决:调整 命令码所在层级

xxljob学习笔记02(小滴课堂)

分布式调度参数传递和调度日志配置讲解 可以设置任务参数。 代码层面: 可以这样传递参数。 我们在xxljob页面去设置参数: 我们执行一次任务: 我们这里就拿到了参数。 这样我们就能拿到参数了。 日志打印: 在代码中也可以实现&…

GPT-Crawler一键爬虫构建GPTs知识库

GPT-Crawler一键爬虫构建GPTs知识库 写在最前面安装node.js安装GPT-Crawler启动爬虫结合 OpenAI自定义 assistant自定义 GPTs(笔者用的这个) 总结 写在最前面 GPT-Crawler一键爬虫构建GPTs知识库 能够爬取网站数据,构建GPTs的知识库&#xf…

npm : 无法加载文件 D:\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。

今天在使用vscode下载项目的依赖时,输入 pnmp install,结果报错: npm : 无法加载文件 D:\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。原因: 因为在此系统上禁止运行脚本,也就是说没有权限,查一下&#…

CoreDNS实战(十一)-分流与重定向

本文主要介绍了目前CoreDNS服务在外部域名递归结果过程中出现的一些问题以及使用dnsredir插件进行分流和alternate插件进行重试优化的操作。 1 自建DNS服务现状 一般来说,无论是bind9、coredns、dnsmasq、pdns哪类dns服务器,我们自建的监听在UDP53端口…

AI 绘画 | Stable Diffusion LCM和FP8 显存不足的福音

前言 在我们使用Stable Diffusion 作画的时候,普通用户因为电脑显存配置过低,经常会出现爆显存和出图慢的困扰。而SD-WebUI在显存优化方便不如ComfyUI和Fooocus,但是也有一些弥补SD-WebUI显存问题的方案,那就是LCM和FP8。 LCM 教程 简介 LCM 是一个用于 Stable Diffusio…

[组合数学]LeetCode:2954:统计感冒序列的数目

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 题目 给你一个整数 n 和一个下标从 0 开始的整数数组 sick ,数组按 升序 排序。 有 n 位小朋友站成一排,按顺序编号为 0 到 n - 1 。数组 sick 包含一开始得了感冒的小朋友的位置。如果位…

Python下TCP编程

​ 在Python中使用socket模块的socket函数可以完成,语法格式如下: ssocket.socket(AddressFamily, Type)函数socket.socket创建一个socket,返回该socket的描述符。该函数带有两个参数。 Address Family:可以选择AF_INET&#xf…

Kafka 消费者 API 指南:深入探讨消费者的实现与最佳实践

Kafka 消费者 API 是连接应用程序与 Kafka 集群之间的关键接口,用于从 Kafka 主题中拉取消息并进行处理。本篇文章将深入探讨 Kafka 消费者 API 的核心概念、用法,以及一些最佳实践,帮助你构建高效、可靠的消息消费系统。 1. Kafka 消费者 A…

根据字符出现频率排序 (哈希表,map,cmp,sort,遍历)

它要我们统计每个字符出现的个数,所以会想到使用map有一个键值对,一个key为char类型,一个value为int类型,这样我们可以得到每个字符的出现次数,又因为它让出现次数多的先输出,所以会想到使用sort从大到小排…

Python查看文件列表

os.listdir 是 Python 的一个内置函数,用于列出指定目录中的所有文件和子目录。它接受一个字符串参数,即要列出内容的目录的路径。 列出当前工作目录中的所有文件和子目录 files_and_dirs os.listdir() print(files_and_dirs) 列出指定目录中的所…