网络仿真(一)

网络仿真的意义

在网络规划和设计、网络设备研发、网络协议开发中,需要一种手段来反映和预测网络的性能 网络仿真可以提高网络规划设计的可靠性和准确性,明显降低网络投资风险,减少不必要的浪费

Ns-2 is a discrete event simulator

Scheduler

Advance of time depends on the timing of events

Object-oriented simulator

C++ : fast to run, slower to change – protocol implementation

Otcl : slower to run, fast to change – simulation configuration

Components

Ns – simulator itself

Nam – network animator Visualize ns (or other) output

Simulation procedure

Pre-processing

Traffic and topology model

Post-processing Trace analysis, often in awk, perl, or tcl

Platform

Unix (Linux)

Windows (cygwin)

Packages

Tcl/tk

Otcl

tclcl

Ns-2

Nam

Xgraph

C++ compiler

NS2安装

windows:虚拟机 cygwin Liunx 版本2.19或2.31 安装过程 (请百度)

Linux 下NS2使用

“cd 文件夹名” 与 “cd..” 命令进入编写好的tcl脚本所在的文件夹 “ns2 xxx.tcl” 测试:~/ns-allinone-x.x/ns-x.x/ns-tutorial/examples

Tcl与OTcl

Tcl:Tool Command Language,是一种脚本语言

OTcl:Object Tcl,是在Tcl的基础上进行了面向对象的封装 NS中主要使用Tcl/OTcl来模拟环境中网络的环境和参数设置 

Tcl基本语法

Tcl只支持一种数据结构,即字符串

Tcl基本语法

Cmd arg1 arg2

Tcl中对代码进行注释用“#”

 

NS2基本组件

节点(node):网络设备

链路(link):网络物理连接

包(packet):数据包

代理(Agent):创建传输层的端到端连接

调度器( Scheduler):事件调度 

用Tcl/Otcl进行网络仿真

以端到端测量实验为例开始网络仿真

网络中测量端节点的时延、丢包率等参数对于了解网络运行状态、优化网络结构、提高网络服务质量具有十分重要的作用 本项目实验的目的是通过构建网络环境,测量网络中的节点之间时延、丢包率等参数,分析参数与网络流量的变化关系

以端到端测量实验为例开始网络仿真

初始化

创建ns simulator

创建.tr文件(记录仿真结果)

创建.nam文件(记录仿真过程)

设置结束函数

设置仿真中所需的参数

创建仿真拓扑

创建节点

创建并设置链路

设置链路各链路在nam中的排列方式

创建流量

探测流量:向网络中添加的额外流量,通过对这些流量进行统计分析可以获得端到端性能参数,在ns2中可以通过设置CBR、UDP、TCP等形式的流量实现。

背景流量:用于模拟网络中已经存在的流量,可以有TCP、UDP、短时TCP等多种形式。(添加准则:尽量能够反映实际网络中流量的特性)

设置步骤

设置流量的产生、结束

结束仿真

实例说明

 

 

 dest_node_num对应拓扑图的最下面,给每个节点编号

for循环创建节点,然后一条一条创建链路

 队列设置小一点(几十),方便观察丢包

91——131行: 每条链路源点和目的节点的节点编号,放入到两个向量中ls和ld 

设置背景流量,希望和真实流量行为一致 

设置每条udp流的起始和结束时间

在链路的源节点创建一个agent,把agent链接到目的节点。

发送一个随机产生的udp流,发一段时间,挺一段时间,发送和停止的时间各占一半,创建了每条链路上的udp流,每一条链路上都添加了link_udp_num条UDP流 

 

 每一个包是一个CBR流 (修改为源到每个叶节点的所有探测包都在一个CBR流)

对发包过程进行简化,每条CBR流的起始和结束时间 

 

实验目的:

熟悉Tcl/OTcl脚本语言的基本语法,熟悉NS2的基本组件和使用 掌握使用Tcl/OTcl脚本语言实现网络仿真环境,仿真结果分析方法 

实验步骤:

使用NS2构建仿真网络拓扑,给出相应的拓扑结构图,不少于20个节点

利用NS2流量发生器模拟产生流量,使链路平均负载达到需要的比例,给出链路平均负载的计算过程和结果

利用CBR流量发生器在端节点之间发送数据包

通过对NS2仿真结果文件(*.tr文件)的分析,统计CBR流量数据包的传输情况,计算端到端平均排队时延和丢包率

验证链路平均负载对端到端时延和丢包率的影响,给出端到端时延和丢包率随链路平均负载的变化曲线图和结果分析,并对结果进行分析

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

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

相关文章

持安科技亮相张江高科895创业营,总评分第三名荣获「最具创新性企业」!

近日,张江高科895创业营(第十三季)信息安全专场Demo day&结营仪式在上海集成电路设计产业园圆满落幕。本季创业营通过多种渠道在海内外甄选优秀创业项目,一共择优录取了29家入营,最终甄选出9家代表参加Demo day路演…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘报错解决

安装labelme出错了 根据爆栈的提示信息,我在cmd运行以下命令之后一切正常了,解决了问题! pip install urllib31.26.6参考网址:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compile…

董兆祥出席工业废水资源化,开创变废为宝新途径演讲

演讲嘉宾:董兆祥 董事长 河北奥博水处理有限公司 演讲题目:工业废水资源化,开创变废为宝新途径 会议简介 “十四五”规划中提出,提高工业、能源领城智能化与信息化融合,明确“低碳经济”新的战略目标,热…

springcloud:3.2测试超时机制

服务提供者 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 PaymentController【控制层】 /*** 测试超时机制** return*/GetMapping("/timeout")public String TimeOut() {try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {…

应用层DDoS防护:理解、必要性与实现策略

一、应用层简介 应用层,也称作第七层,是OSI(开放系统互联)模型中的最高层。在这一层,数据以特定的应用程序协议格式进行传输,如HTTP、FTP、SMTP等。应用层的主要职责是为用户提供网络服务,如文…

MongoDB聚合运算符:$count

文章目录 语法使用举例在$group阶段中使用在$setWindowFields阶段使用 $count聚合运算符返回分组中文档的数量。从5.0开始支持。 语法 { $count: { } }$count不需要参数 使用 $count可以用于下列聚合阶段: $bucket$bucket$group$setWindowFields 在$group阶段中…

【vuex之五大核心概念】

vuex:五大核心概念 一、state状态1.state的含义2.如何访问以及使用仓库的数据(1)通过store直接访问获取store对象 (2)通过辅助函数MapState 二、mutations1.作用2.严格模式3.操作流程定义 mutations 对象,对象中存放修…

Freesia 项目引用的依赖

UML图 项目总依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.0</version> </parent> <groupId>com.freesia</groupId> <artifa…

计算机网络_2.1 物理层概述

2.1 物理层概述 一、物理层要实现的功能二、物理层接口特性 B站 深入浅出计算机网络 2.1物理层概述 一、物理层要实现的功能 物理层要实现的功能就是在各种传输媒体上传输比特0和1&#xff0c;进而给上面的数据链路层提供透明传输比特流的服务。 数据链路层“看不见”&#xff…

springboot基于web的网上摄影工作室的开发与实现论文

网上摄影工作室 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了网上摄影工作室的开发全过程。通过分析网上摄影工作室管理的不足&#xff0c;创建了一个计算机管理网上摄影工作室的方案。文章介绍了网上摄影工…

微信小程序云开发教程——墨刀原型工具入门(动态组件)

引言 作为一个小白&#xff0c;小北要怎么在短时间内快速学会微信小程序原型设计&#xff1f; “时间紧&#xff0c;任务重”&#xff0c;这意味着学习时必须把握微信小程序原型设计中的重点、难点&#xff0c;而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

0基础跨考计算机|408保姆级全年计划

我也是零基础备考408&#xff01; 虽说是计算机专业&#xff0c;但是本科一学期学十几门,真的期末考试完脑子里什么都不进的...基本都是考前一周发疯学完水过考试...&#x1f605; 想要零基础跨考可以直接从王道开始&#xff01;跟教材一点一点啃完全没必要&#x1f978; 现在…

【STM32】江科大STM32学习笔记汇总(50)

00. 目录 文章目录 00. 目录01. STM32学习笔记汇总02. 相关资料下载03. 附录 01. STM32学习笔记汇总 【STM32】STM32学习笔记-课程简介(01) 【STM32】STM32学习笔记-STM32简介(02) 【STM32】STM32学习笔记-软件安装(03) 【STM32】STM32学习笔记-新建工程(04) 【STM32】STM…

venv、pip、conda、anaconda、miniconda的区别和优缺点,和彻底清除python多余的环境

virtualenv(venv) 这是一个虚拟环境管理器&#xff0c;它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境&#xff0c;这最大的好处是我可以不污染开发环境。​ pip pip 是 Python 最常用的包管理器&#xff0c;它能自动处理依赖 。 conda 如果说venv是虚拟…

一起玩儿平衡车(ESP32)——02 平衡车的组装与接线方法

摘要&#xff1a;本文介绍平衡车的组装与接线方法 前边介绍了所要实现的平衡车的组成&#xff0c;接下来就来把小车组装起来。首先是下层底板的底面要固定两个轮子。这个只要固定孔位没有问题&#xff0c;用螺丝直接将轮子支架固定上去就可以了。固定好后如下图所示&#xff1…

基础小白快速入门c语言--

变量&#xff1a; 表面理解&#xff1a;在程序运行期间&#xff0c;可以改变数值的数据&#xff0c; 深层次含义&#xff1a;变量实质上代表了一块儿内存区域&#xff0c;我们可以将变量理解为一块儿内存区域的标识&#xff0c;当我们操作变量时&#xff0c;相当于操作了变量…

罐头鱼AI传单功能操作说明|二次剪辑创作|AI智剪|批量剪辑视频

罐头鱼AI传单功能操作说明 1. 首页显示 账号登录状态 可绑定账号数量 已绑定账号数量 已绑定账号显示 显示最近上传视频素材 显示新上传素材列表 QQ:290615413 2. 抖音账号绑定功能 显示登录账号 已绑定账号 可绑定账号数量 可授权绑定抖音账号 3. 账号管理列表 显…

Netty5 入门HelloWorld

一、客户端代码及关键类说明 /*** netty5的客户端* author -zhengzx-**/ public class ClientSocket {public static void main(String[] args) {//服务类Bootstrap bootstrap new Bootstrap();//workerEventLoopGroup worker new NioEventLoopGroup();try {//设置线程池boo…

RC正弦波振荡电路

RC正弦波振荡电路 RC正弦波振荡电路又称文氏电桥振荡电路&#xff0c;可以设计频率为f1/2πRC的正弦波发生器。 RC正弦波振荡电路设计&#xff1a;50Hz,振幅为3.47V 电路分析&#xff1a; 1.起振条件取决于R1, R4&#xff0c;R2与1N4148并联电阻&#xff08;下面简称Rf&#…

B端系统:OA界面设计,把用户当傻瓜吧, 少让用户吃瓜

OA系统是稍具规模的企业最常用的系统&#xff0c;有些OA系统体验非常逆天&#xff0c;把用户当成了吃瓜群众&#xff0c;看看热闹还行&#xff0c;一旦上手操作就抓瞎了&#xff0c;大千UI工场结合自身经验对这个问题进行分析&#xff0c;希望可以抛砖引玉。 一、OA概述 OA系…