NS2学习笔记

如何写一个NS脚本(可以参考前一天的sample来看)

 

一般来说,一个NS脚本以创建一个simulator对象开始:

#创建一个类型为simulator的变量ns

set ns [new Simulator]    

simulator对象的成员函数有:node link;设置网络组件参数;创建代理;设置nam参数

 

$ns color 1 Blue

设置NAM显示的一个颜色参数,对模拟过程没有影响

 

set tracetf [open *.tr w]

$ns trace-all &tracef

set namtf [open *.nam w]

$ns trace-all $namtf

前两行设定变量tracef指向*.tr,用来记录模拟过程的trace数据。

后两行设定变量namtf指向*.nam,用来记录namtrace数据。

 

proc finish {}

建立名为finish的过程,在模拟结束后被调用,执行模拟后的过程。

 

set n0 [$ns node]

创建结点。结点是addressport classifier的混合体。

 

$ns duplex-link $n0 $n2 2Mb 10ms DropTail

创建两个节点间的一条双向的链路,设定带宽,时延,队列类型。

 

$ns queue-limit $n2 $n3 10

设置链路中队列的限制。

 

$ns duplex-link-op $n0 $n2 orient right-down

设置NAM显示中结点的位置

 

至此,一个简单的网络已经建起,下一步是建立代理,如TCPUDP

set tcp [new Agent/TCP]

创建一个类型为TCP的变量tcp

 

$ns attach-agent $n0 $tcp

将创建的的tcp对象与结点n0绑定。

 

$ns connect $tcp $sink

将创建好的两个代理连接起来。

 

至此,所有的网络设置已经完成。接下去要写的是模拟发生的情况。

 

$ns at 1.0 "$ftp start"

在给定的时间,simulator类的成员函数使schedule触发。

 

$ns run

最后,用这个命令启动模拟程序。

 

以上是最基础的tcl脚本,还有许多对象的属性设置没有记录,但其实思维模式有了,只需查查手册就可以了。NS推出的官方手册已经被强人翻译成了中文版,查找很方便,在这里顶一下。需要的可以留下邮件地址 :)

 

今天先到这里了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值