Chinaunix首页 | 论坛 | 博客
  • 博客访问: 831912
  • 博文数量: 180
  • 博客积分: 10029
  • 博客等级: 上将
  • 技术积分: 2185
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-06 09:15
文章存档

2010年(133)

2009年(47)

我的朋友

分类: 系统运维

2009-11-06 10:19:56

E-mail:
 
    学习NS2有一段时间了,积累了一些代码,存在机子上有点乱,发现写博客有助于整理!   整理过程中,我尽可能详尽地做了注释,希望对初学者有帮助! 如有疑问欢迎提出, 互相学习!
 
E-mail:
MSN:   
 
   NS入门实例, 是我安装完NS2后跑得一些测试程序,用于熟悉NS2的模拟仿真过程,适合初学者!   实例的代码我在发布前都运行测试了,并给出效果图,欢迎拷贝测试!
   关于NS2的网络仿真原理, 请看 NS2中文教材(1):NS2网络模拟的原理
 
实例1:
# 场景描述:
# 两个节点n0 和 n1 ,之间有一条UDP连接,
# 设置CBR应用,用作数据流发生器
# 模拟时间 5s
 
#建立一个Simulator对象, 并赋值给 ns, 用作模拟过程的时间调度
set ns [new Simulator]
#设置trace文件和Nam文件, trace记录整个模拟过程的记录,
#Nam用于Nam的动画显示
set tracefd [open example1.tr w]
$ns trace-all $tracefd
set namtracefd [open example1.nam w]
$ns namtrace-all $namtracefd
 
#定义结束过程, 将事件写入trace, 并关闭相关文件, 最后启动Nam进行动画显示
proc finish {} {
 global ns tracefd namtracefd
 $ns flush-trace
 close $tracefd
 close $namtracefd
 
 exec nam example1.nam &
 exit 0
}
 
#创建两个节点 n0 和 n1
set n0 [$ns node]
set n1 [$ns node]

#添加一条双向的连接, 传输速率: 1Mb, 时延: 10ms,
#队列管理方式: DropTail(丢弃尾部!)
$ns duplex-link $n0 $n1 1Mb 10ms DropTail

#创建UDP Agent发送端, 并与n0节点关联
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

#创建Null, 作为UDP的接收端,与n1关联
#Null:只接受, 不回复ACK  (与TCP和TCPSink的区别)
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
#连接 UDP和NULL,形成一条有开始和结束的数据通路
$ns connect $udp0 $null0 

#添加CBR应用,绑定到UDP Agent上, 并设置发包属性
#CBR: 是一个流量发生器
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
 
#设置CBR的起停, 使整个模拟过程开始
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
$ns at 5.0 "finish"
$ns run
 
运行结果:(节点0和1之间有UDP连接,运行CBR应用。)
              v
 
     请读者调整NAM上的按钮,熟悉其对应的作用!
     关于NS2的网络仿真原理, 请看 NS2中文教材(1):NS2网络模拟的原理
 
 
阅读(5291) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-05-24 08:45:15

en,找到你明评论了。继续关注

chinaunix网友2010-05-11 10:07:51

你好,看了你的文章我受益匪浅! 请问有没有关于MPLS快速切换的NS2仿真代码? 谢谢!