全部博文(180)
分类: 系统运维
2009-11-06 10:19:56
# 场景描述:
# 两个节点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 |