第一个NS2程序

其实是书里的例子抄了一遍而已,但起码明白了NS2的工作流程,抛开细节说,所有NS2的模拟应该都是建立在这个流程基础上的。

 

在安装完NS2后碰到了两个问题,这次安装倒是挺一帆风顺的,在先预装了build-essential, tcl8.4, tcl8.4-dev, tk8.4, tk8.4-dev后,直接安装NS2 2.30就可以了,之后把几个路径加入.bashrc就一切搞定了。这些网上都说的很明白了,我要说的则是比较少见的问题:

1. /bin下已经有一个ns了,而且因为这个路径比ns2的优先,所以一运行ns就是这个。于是直接把ns2.30/bin下的ns copy到了/bin下,改名ns2就搞定了。ns貌似是个跟hostname有关的程序,具体可以man一下

 

2.运行ns2 example.tcl的时候,提示找不到nam。结果搜了一下,发现要进入ns2.30/nam1.12目录下,先安装libxmu-dev,然后在这个目录make之后,生成nam可执行文件,然后copy到/bin下面去,圆满了!

 

再说说我总结的建立一个模拟过程的步骤吧

1. New Simulator 先得建立一个模拟器

2. 创建tracef和namtf作为这次模拟的信息记录器

3. 创建拓扑中的节点

4.  建立节点间的链路,并设定好参数,诸如流量,丢弃方式等

5.  建立Agent,这个Agent和snmp里面的概念不同,可以理解为附在节点上

的灵魂。如果说节点是个实体,那么Agent则负责控制收和发报文。它可以

是udp或者tcp的,也可以是null的。前面的无需解释,如果是null的,则表示

这是一个接收端。这个是要绑定在节点上的,决定节点在这个拓扑中扮演的角

6. 建立cbr,cbr是流量发生器。用来产生真正的流量,可以设定这个流量的参数,

如报文大小,发送间隔。cbr对象则和agent绑定

7. 连接Agent,说白了也就是确定谁收谁发的对应关系

8. 启动cbr的时间设定,也就是设定什么时候发包,什么时候停

9. 关闭tracef和namtf,追踪完毕

10. 开始模拟

 

无论有线无线,大同小异。节点多的时候,也需要用到额外的技巧,但整体框架

就是如此了。第一个程序如下:

 

jun@warrior:~/NS2/ns2Learning$ cat example1.tcl
set ns [new Simulator]

set tracef [open example1.tr w]
$ns trace-all $tracef
set namtf [open example1.nam w]
$ns namtrace-all $namtf

proc finish {} {
 global ns tracef namtf
 $ns flush-trace
 close $tracef
 close $namtf
 exec nam example1.nam &
 exit 0
}

set n0 [$ns node]
set n1 [$ns node]

$ns duplex-link $n0 $n1 1Mb 10ms DropTail

set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0

set null0 [new Agent/Null]
$ns attach-agent $n1 $null0

$ns connect $udp0 $null0

$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"

$ns at 5.0 "finish"
$ns run

 

也是就ns0给ns1节点发送大小为500字节的报文,从0.5秒开始,4.5秒结束。模拟器的时间度量是以2ms为

单位的,所以1秒也是个很漫长的时间呢。下一步,就是去掌握一下TCL语言咯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值