# # ftp # # tcp # # n0 sink # / # / # n1---5M 2ms---n3 # / # / # n2 null # / # udp # / # cbr set ns [new Simulator] set f [open out.tr w] $ns trace-all $f set nf [open out.nam w] $ns namtrace-all $nf proc finish {} { global ns nf f $ns flush-trace close $f close $nf exec nam out.nam & exit 0 } #设置并连接4个节点 set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n0 $n1 5M 2ms DropTail $ns duplex-link $n2 $n1 5M 2ms DropTail $ns duplex-link $n3 $n1 5M 2ms DropTail $ns duplex-link-op $n0 $n1 orient right-down $ns duplex-link-op $n2 $n1 orient right-up $ns duplex-link-op $n1 $n3 orient right #设置传输层并连接 set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp set udp [new Agent/UDP] $ns attach-agent $n2 $udp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink set null [new Agent/Null] $ns attach-agent $n3 $null $ns connect $tcp $sink $ns connect $udp $null #设置应用层 set ftp [new Application/FTP] $ftp attach-agent $tcp set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp #设置执行与停止顺序 $ns at 0.05 "$ftp start" $ns at 0.30 "$cbr start" $ns at 0.50 "finish" $ns run