NS2仿真:使用NS仿真软件模拟简单网络模型AsuraDoyle

运行平台:虚拟机VMwareWorkstation11.0

操作系统:Linux/CentOS6.5仿真分析工具:NS2.35中的仿真软件ns,图形界面nam,编译工具awk,图表编辑器xgraph

网络拓扑图:

掌握NS2仿真工具的使用方法,能够模拟真实场景中的网络传输模型,熟悉几种常用的网络协议,了解NS仿真软件的内部结构。通过仿真实验,模拟网络数据包收发、传输和丢失,并将实验数据记录到文件中,使用仿真软件对实验数据生成实验图表,分析实验结果。

CentOS中yum的使用方法:找到安装包yumsearch*lib*,例如:yumsearchlib,就可已找到以下的一些安装包;然后输入以下命令:

yuminstalllibX11-devel

yuminstalllibXt-devel

yuminstallgcc-c++

下载ns2.35安装包,下载后的文件格式是ns2.35.tar.gz,可以在装有vmware-tools的系统中,直接打开压缩文件,并且能够将其拖入到指定安装的目录下/home/byf。找到INSTALL文件所在的位置,输入

./install

在目录/etc下,找到profile文件,对该文件进行编译

sudogeditprogile

输入相应的路径:

exportPATH=$PATH:/home/byf/ns-allinone-2.35/bin:/home/byf/ns-allinone/2.35/tcl8.5.10/unix:/home/byf/ns-allinone/2.35/tk8.5.10/unix:/usr/sbin:/usr/bin:/usr/local/bin:usr/local/sbin:/bin:/sbin

exportLD_LIBRARY_PATH=/home/byf/ns-allinone-2.35/otcl-1.14:/home/byf/ns-allinone-2.35/lib

exportTCL_LIBRARY=/home/byf/ns-allinone-2.35/tcl8.5.10/library

加粗的字体用作程序运行后,可能出现的一些常规错误。

接下来是环境变量的配置:在目录/home/username下(也就是/home/byf)操作:

#sudogedit.bashrc

根据用户的习惯,来设置一些工作环境。

1)创建模拟器对象,用来定义和控制模拟过程。在这个过程中,首先创建一个simulator对象。

#产生一个仿真的对象

setns[newSimulator]

2)配置节点属性。

#针对不同的资料流定义不同的颜色,这是要给NAM用的

$nscolor0blue

$nscolor1red

$nscolor2white

#产生四个网络节点

setn0[$nsnode]

setn1[$nsnode]

setn2[$nsnode]

setn3[$nsnode]

2)设置跟踪文件

#开启一个tracefile,用来记录封包传送的过程

setf[openout.trw]

$nstrace-all$f

#开启一个NAMtracefile

setnf[openout.namw]

$nsnamtrace-all$nf

3)创建节点拓扑结构。

#把节点连接起来

$nsduplex-link$n0$n25Mb2msDropTail

$nsduplex-link$n1$n25Mb2msDropTail

$nsduplex-link$n2$n31.5Mb10msDropTail

#设定节点的位置,这是要给NAM用的

$nsduplex-link-op$n0$n2orientright-up

$nsduplex-link-op$n1$n2orientright-down

$nsduplex-link-op$n2$n3orientright

4)设置代理和应用层协议,并进行绑定。

#建立一条UDP的联机

setudp0[newAgent/UDP]

$nsattach-agent$n0$udp0

setcbr0[newApplication/Traffic/CBR]

$cbr0attach-agent$udp0

setudp1[newAgent/UDP]

$nsattach-agent$n3$udp1

#在NAM中,UDP的联机以红色表示

$udp1setclass_1

#在UDP联机之上建立CBR应用程序

setcbr1[newApplication/Traffic/CBR]

$cbr1attach-agent$udp1

setnull0[newAgent/Null]

$nsattach-agent$n3$null0

setnull1[newAgent/Null]

$nsattach-agent$n1$null1

$nsconnect$udp0$null0

$nsconnect$udp1$null1

$nsat1.0"$cbr0start"

$nsat1.1"$cbr1start"

#建立一条TCP的联机

settcp[newAgent/TCP]

$tcpsetclass_2

setsink[newAgent/TCPSink]

$nsattach-agent$n0$tcp

$nsattach-agent$n3$sink

$nsconnect$tcp$sink

#在TCP联机之上建立FTP应用程序

setftp[newApplication/FTP]

$nsat1.2"$ftpstart"

#结束TCP的联机(不一定需要写下面的程序代码来实际结束联机)

$nsat1.35"$nsdetach-agent$n0$tcp;$nsdetach-agent$n3$sink"

puts$f"$now[expr(($bw0+$holdrate1)*8)/(2*$time*1000000)]"

puts[$cbr0setpacketSize_]

puts[$cbr0setinterval_]

6)使用#定义一个结束的程序

procfinish{}{

globalnsfnf

$nsflush-trace

close$f

close$nf

execxgraphout.tr-geometry800x400&

puts"runningnam..."

execnamout.nam&

exit0

}

#执行仿真

$nsrun模拟器对象的run过程开始模拟。

7)结果分析。模拟结束后,将得到保存模拟过程的trace文件,接下来的主要工作就是对于这个结果文件根据需求进行数据分析,同时可以用gnuplot等画图工具直观的显示数据分析结果。

在1.0s时节点0开始通过节点2,向节点3传输用户数据包,代码为:

$nsat1.0"$cbr0start",执行结果如下图所示:

节点3在1.1s时通过节点2向节点1传输用户数据包,代码为:

$nsat1.1"$cbr1start",执行结果如下图所示:

在1.2s时,开始出现数据传输中断,数据包在节点2发生丢失现象,代码为:$nsat1.2"$ftpstart",代码的执行结果如下图所示:

在1.35s左右数据回复传输,代码为:$nsat1.35"$nsdetach-agent$n0$tcp;$nsdetach-agent$n3$sink"执行的结果如下图所示:

nam:Can'tfindausabletk.tclinthefollowingdirectories:

/home/byf/ns-allinone-2.35/tcl8.5.10/library/tk8.5/home/byf/ns-allinone-2.35/tcl8.5.10/tk8.5./lib/tk8.5/home/byf/ns-allinone-2.35/lib/tk8.5./library

……

Thisprobablymeansthattkwasn'tinstalledproperly.

是由于环境变量的问题,例如环境变量的目录在/home/username/ns2.35,而用户执行的目录在/home/username下,这样就会出现上述的问题。

通过本次实验,初步的了解到NS仿真工具的基本功能,并能够给一些简单的模型进行仿真实验分析,以及进一步对网络协议的了解,编写简单的网络协议算法,通过比较仿真的数据,反映网络协议的优劣。对已经存在的协议进一步提出改进的算法,来提升网络的传输性能。学习NS仿真软件的主要途径,是需要不断的阅读优质的源代码,对未知的代码行进行注释,反复的使用和修改成型的源代码,充分了解代码内部,各部分的函数、命令以及协议定义的方法,对以后学习代码库中的协议代码有非常重要的帮助。

实验途中可能会遇到各种问题,但是一定要坚持不断的阅读查找,并记录下来错误的地方,找到解决问题的方法。一旦学会使用,就会觉得学习起来非常的简单,对以后独立编写代码起着支撑的作用。

THE END
1.CPU指令仿真模拟器设计cpu模拟器CPU指令仿真模拟器设计 模拟器软件可被细分为多个关键模块,包括但不限于:程序指令序列执行器模块,内存模拟模块,寄存器模拟模块,反汇编模块,以及一套详尽的调试模块(包含单步执行、连续运行、暂停以及断点设置)。此外,它还配备了覆盖率记录模块、执行时间记录模块、看门狗模块、通用接口模块、实时时钟模块和控制陷阱逻辑等https://blog.csdn.net/qq_39372255/article/details/140489799
2.西门子1200plc1211C模拟器产品关键词:西门子1200仿真很卡;plc这样就能诊断和优化用户程序和运动应用。 在TIA Portal中进行组态通过TIA Portal (TIA Portal),可以访问整个数字化的自动化系统:从数字化规划到集成工程组态直至透明运行。 新版本 TIA Portal 通过各种措施来缩短产品上市时间(包括使用模拟工具),通过附加诊断及能源管理功能提高工厂的生产力,并通过连接到管理层来提高https://b2b.baidu.com/land?id=94b3f1a980f7d37f02a5b0244465992010
3.谈谈初学者学习和使用商业仿真软件仿真秀 技术邻 网站里面一搜就有了。也有APP和公众号,时不时的还会有讲座、技术帖子等等。 以下是笔者用过的一些书,都是直接和商业软件使用和开发相关的,大家可以参考: 推荐理由:庄茁老师团队出的书。主要是讲解各个子程序(Fortran90语言)。包含了很多的使用经验,也有C++https://mp.weixin.qq.com/s?__biz=MzA4NzI1NjE0Nw==&mid=2649804578&idx=1&sn=adbe2bd8aca0d4dd19f841b5eefdd920&chksm=89a00e9ca055b0dd384d5c9962753644aa0fdec9221797cc0e19010472432e4922ff70072969&scene=27
4.常用的模拟仿真方式有几种?模拟仿真计算流体力学仿真: 基于数学模型和计算方法的仿真技术。 适用于模拟和评估流体力学系统的行为,如空气动力学、水动力学等。 通常使用软件工具如ANSYS Fluent、OpenFOAM等实现。 编程软件IDE仿真(如CODESYS): 对于小型项目或基于逻辑和数学运算的程序,可以直接使用CODESYS等编程软件IDE进行模拟仿真。 https://m.eccn.com/consultation/design/2024070909482183.html
5.虚拟仿真软件架构图mob64ca12e2ba6f的技术博客虚拟仿真软件架构图:代码示例与解析 虚拟仿真软件是一种模拟现实世界中各种现象和过程的计算机程序。它们广泛应用于教育、科研、工程设计等领域。本文将通过一个简单的虚拟仿真软件架构图,介绍其主要组成部分,并提供代码示例,帮助读者更好地理解虚拟仿真软件的工作原理。 https://blog.51cto.com/u_16213374/11552016
6.CIMCOEDITV6数控编辑仿真模拟数控程序传输软件数控【商品名称】CIMCO EDIT V6 数控编辑仿真模拟数控程序传 【商品编号】1328 【商品单位】3058 【商品价格】30.00 市场价30.00 团购价量大更优惠 会员价 名慧模具网http://www.ug888.com QQ 89106757 手机13915067177 邮件89106757@qq.com CIMCO EDIT V6 程序编辑与仿真系统中文版 http://www.ug888.com/list.asp?ProdId=1328
7.模拟仿真软件范文12篇(全文)首先,数控加工仿真系统只是加工过程的模拟并非真实加工过程,它无法代替学生在真实切削加工的实际感受,尤其是切削用量的选择,它无法进行控制,只能对切削深度过大时加以限制。因此,学生在应用数控加工仿真系统进行编程与操作训练时,往往容易忽视切削用量的选择、数控刀具的选用、零件的装夹方法,而这些程序一旦应用在实际中便https://www.99xueshu.com/w/ikey12dr9ofn.html
8.PlantSimulation2302破解版离散事件模拟工具Sieme作为模拟专家,您绝不能忽视这些问题: ?您希望通过模拟研究完成什么? ?你在检查什么? ?您从模拟研究的结果中得出了哪些结论? ?您如何将模拟研究的结果传递给真实世界的工厂? 二、面向时间的仿真和事件控制仿真 工厂模拟是一个离散的,事件控制的模拟程序,即它只检查那些事件发生在模拟模型中的时间点http://www.sd173.com/soft/8189.html
9.基于全数字仿真平台的自动化测试工具CRESTS/CodeCASTAETCodeCAST提供模拟外部设备产生外部激励信号的机制(全数字仿真),即用脚本语言编写端口事件、中断事件以及其它外部事件的逻辑流程。 总之,全数字仿真运行平台CRESTS/CodeCAST能够满足软件仿真运行与测试的要求,方便灵活地仿真外部硬件行为,监控程序运行的内部状态,支持软件的覆盖测试和功能测试的需求。 http://m.chinaaet.com/article/18675
10.LMD18200直流电机专用驱动器设计(DXP工程文件+模拟仿真+程序)直流电机控制器模拟仿真程序.zip 下载 描述:模拟仿真+程序 LMD18200 .pdf 下载 描述:LMD18200 中文数据手册 [相关器件] SLG47115 GreenPAK Programmable Mixed-Signal Matrix with High Voltage Features 立即购买 器件型号数量器件厂商器件描述数据手册ECAD模型风险等级参考价格更多信息 https://www.cirmall.com/circuit/6031
11.WinMODPLC虚拟调试软件让你提前发现程序中的问题下图是导入WinMoD的逻辑工艺图,在二维图中可以观察一些信号仿真结果 下图是信号发生的前后逻辑关系记录,电气自动化工程师应该更注重于信号结果,用此功能可以有助于观察PLC程序前前后后到底发生了什么,PLC程序在CPU里运行情况,通过信号记录器可以记录程序一切的前前后后的逻辑关系。 https://www.meipian.cn/28pj3ac9
12.2024年7款最佳iOS模拟器/虚拟机推荐(免费/付费)虽然Simulators也模拟操作系统环境,但它们不会像Emulators那样尝试创建硬件副本。由于这个限制,Simulators可能无法运行某些应用程序。 大多数用户更喜欢 iOS Emulators而不是Simulators。其实,大多数开发人员使用Emulators来开发和测试应用程序。 注意: 市面中的 iOS 仿真软件主要面向希望在向公众发布应用程序之前对其进行测试的https://www.extrabux.cn/chs/guide/7272439
13.MATLABSIMULINK建模与仿真实例精讲含模拟程序中文PDF完整版电子书☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持! ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。 ☉ 本站提供的MATLAB SIMULINK建模与仿真实例精讲 含模拟程序 中文PDF完整版资源来源互联网,版权归该下载资源的合法拥有者所有。https://www.jb51.net/books/903857.html
14.基于工业4.0智能制造系统FactoryIO与CODESYSModbusTCP通信FactoryIO基于Windows平台,支持多方厂家的PLC,如在全球拥有领先工业技术的德国西门子,世界500强企业的法国施耐德等;支持多种通信协议和方式,如FactoryIO使用驱动程序可进行OPC DA通信,Modbus TCP/IP通信,还可以与PLC仿真模拟器进行交互等。 2.3 CODESYS简介 CODESYS 是德国3S-Smart Software Solutions GmbH公司开发的一款https://jxx.gdsdxy.edu.cn/2021_05/20_11/content-27805.html
15.Siemens数控仿真系统模拟版斯沃数控仿真软件7.2版数控加工中心车床铣床编程仿真模拟教程斯沃系统手册西门子802SC数控铣床操作编程手册提取方式是百度网盘分享地址 上传者:codedadi时间:2024-09-01 宇龙数控加工仿真系统宇龙V3.8破解版入门者首选 数控仿真软件,内有发那科、西门子以及华中数控。可通过相应学习、了解数控加工程序的工作过程及。 https://www.iteye.com/resource/oucegen-1460242
16.虚拟仿真多媒体互动互动娱乐情景模拟武汉百变互动科技合伙企业(有限合伙)(https://baibianhudong.gys.cn)主营产品包括虚拟仿真、多媒体互动、互动娱乐、情景模拟等,武汉百变互动科技合伙企业(有限合伙)负责人张女士,武汉百变互动科技合伙企业(有限合伙)希望能与您成为合作伙伴http://baibianhudong.cn.china.cn/