博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NS2 仿真参数自动更改和执行,并保存执行结果
阅读量:4099 次
发布时间:2019-05-25

本文共 924 字,大约阅读时间需要 3 分钟。

内容说明

通常在NS2仿中,是在TCL脚本中设置网络参数进行网络仿真。如果网络参数变化,需要手动修改TCL脚本中设置的参数,然后在重新运行TCL文件获得仿真结果。如此比较麻烦,如何自动修改网络参数并运行仿真,且自动保存运行结果?此处做法是利用Linux的bash脚本,自动修改TCL脚本并执行它,也就实现了上述功能。

举个例子

假设要实现如下功能:每一次仿真网络中的节点是变化的,针对不同的节点数,按比例随机在它们之间产生连接,以发送数据包,并且每次仿真网络中节点都是随机分布和移动的。

实现思路

1. 利用NS2中自带的setdest工具生成一个场景文件,设置每次仿真中的节点的位置、随机移动、移动速度和范围。
Eg:

~/ns/ns-2.35/indep-utils/cmu-scen-gen/setdest/setdest -n 20 -p 0 -M 0.5 -t 200 -x 1800 y 1800 > scene

以上代码表示调用NS2中的setdest工具生成一堆指令,这些指令实现:自动设置网络中节点书为20,移动速度0.5m/s,历时200s,移动范围为1800×1800m. 并将结果保存到 scene 文件中。

2. 利用NS2中自带的 cbrgen.tcl 文件随机在节点中生成连接发送数据流。
Eg:

ns cbrgen.tcl -type cbr -nn $20 -seed 1 -mc 8 -rate 10.0 > cbr

以上代码表示调用NS2中的 cbrgen.tcl 文件生成一堆指令,这些指令实现:自动在含有20个节点的网络中产生8对连接,每对连接买秒发送10个分组。并将这些指令保存到cbr文件中。

3. 编写TCL脚本,在其中调用上面生成的文件:scene、cbr,并运行该TCL脚本。
4. 为了达到自动化修改网络参数的目的,还需编写一个Linux的bash脚本进行全局控制,网络中节点每变化一次,都执行上述3个操作,可以在每一次循环中,将第1、2步中的某些参数用变量代替即可。

以上具体实现代码请见。其中包含:TCL脚本和bash脚本,可以实现上述功能,并用GAWK分析了吞吐量。可以进行蒙特卡罗仿真。

转载地址:http://sqrii.baihongyu.com/

你可能感兴趣的文章
JS遍历的多种方式
查看>>
ng-class的几种用法
查看>>
node入门demo-Ajax让前端angularjs/jquery与后台node.js交互,技术支持:mysql+html+angularjs/jquery
查看>>
神经网络--单层感知器
查看>>
注册表修改DOS的编码页为utf-8
查看>>
matplotlib.pyplot.plot()参数详解
查看>>
拉格朗日对偶问题详解
查看>>
MFC矩阵运算
查看>>
最小二乘法拟合:原理,python源码,C++源码
查看>>
ubuntu 安装mysql
查看>>
c# 计算器
查看>>
C# 简单的矩阵运算
查看>>
gcc 常用选项详解
查看>>
c++输入文件流ifstream用法详解
查看>>
c++输出文件流ofstream用法详解
查看>>
字符编码:ASCII,Unicode 和 UTF-8
查看>>
QT跨MinGW和MSVC两种编译器的解决办法
查看>>
firewalld的基本使用
查看>>
Linux下SVN客户端使用教程
查看>>
i2c-tools
查看>>