NS网络仿真,小白起步版,双节点之间的模拟仿真(基于UDP和CBR流)
set ns [new Simulator]
set tracefd [open example.tr w]
#开启跟踪文件,记录分组传送的过程
$ns trace-all $tracefd
set namtracefd [open example.nam w]
#设置nam动画显示文件
$ns namtrace-all $namtracefd
#定义结束事件,模拟结束后会调用
proc finish {} {
global ns tracefd namtracefd
$ns flush-trace
close $tracefd
#关闭trace文件
close $namtracefd
#关闭nam显示文件
exec nam example.nam &
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
#定义0和1节点之间的带宽(1Mb)和延迟(10ms)以及队列类型(DropTail)
set udp [new Agent/UDP]
#设置一个udp发送代理
$ns attach-agent $n0 $udp
#绑定udp发送代理到n0节点
set cbr [new Application/Traffic/CBR]
#建立一个cbr流应用
$cbr set packetSize_ 500
#设置分组大小
$cbr set interval_ 0.005
#设置时间间隔
$cbr attach-agent $udp
#将CBR流应用绑定到UDP代理
set null [new Agent/Null]
#建立一个UDP接收代理
$ns attach-agent $n1 $null
#绑定UDP接收代理到节点1
$ns connect $udp $null
#连接UDP发送代理和接收代理
$ns at 0.5 "$cbr start"
#设定CBR流在0.5s开始
$ns at 4.5 "$cbr stop"
#设定CBR流在4.5S结束
$ns at 5.0 "finish"
#设定模拟在5.0s时刻结束
$ns run
1.程序截图