[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns] Problems with CBR traffic generator
Hi,
I'm using 2 CBR Traffics over RTP.
The first CBR agent has got a rate = 448 kbit/s and a packetSize_ = 200.
The second CBR agent has got a rate = 320 kbit/s and a packetSize_ = 200.
I collect the output of theses two traffics in LossMonitor Agent.
The problem is that the two CBR traffic output are equal (same average
bitrate) :o(
I don't know why.
----------------------------------
set ns [new Simulator]
set s0 [$ns node]
set s1 [$ns node]
set s2 [$ns node]
set s3 [$ns node]
set i0 [$ns node]
set d0 [$ns node]
$ns duplex-link $s0 $i0 5Mb 0ms DropTail
$ns duplex-link $s1 $i0 5Mb 0ms DropTail
$ns duplex-link $s2 $i0 5Mb 0ms DropTail
$ns duplex-link $s3 $i0 5Mb 0ms DropTail
$ns duplex-link $i0 $d0 5Mb 0ms DropTail
proc attach-expoo-traffic { node sink size burst idle rate } {
#Get an instance of the simulator
set ns [Simulator instance]
#Create a UDP agent and attach it to the node
set source [new Agent/CBR/UDP]
$ns attach-agent $node $source
#Create an Expoo traffic agent and set its configuration
parameters
set traffic [new Traffic/Expoo]
$traffic set packet-size $size
$traffic set burst-time $burst
$traffic set idle-time $idle
$traffic set rate $rate
#Attach the traffic agent to the traffic source
$source attach-traffic $traffic
#Connect the source and the sink
$ns connect $source $sink
return $source
}
set sink0 [new Agent/LossMonitor]
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
set sink3 [new Agent/LossMonitor]
$ns attach-agent $d0 $sink0
$ns attach-agent $d0 $sink1
$ns attach-agent $d0 $sink2
$ns attach-agent $d0 $sink3
# source 0 au node s0 : cbr
set source0 [new Agent/RTP]
$ns attach-agent $s0 $source0
set source0agent [new Application/Traffic/CBR]
$source0agent set packetSize_ 200
$source0agent set rate 448k
$source0agent attach-agent $source0
$ns connect $source0 $sink0
# source 1 au node s1 : cbr
set source1 [new Agent/RTP]
$ns attach-agent $s1 $source1
set source1agent [new Application/Traffic/CBR]
$source1agent set packetSize_ 200
$source1agent set rate 320k
$source1agent attach-agent $source1
$ns connect $source1 $sink1
# source 2 au node s2 : exp
set source2 [attach-expoo-traffic $s2 $sink2 200 5s 10s 768k]
# source 3 au node s3 : exp
set source3 [attach-expoo-traffic $s3 $sink3 200 10s 10s 1024k]
set f0 [open res0.tr w]
set f1 [open res1.tr w]
set f2 [open res2.tr w]
set f3 [open res3.tr w]
proc finish {} {
global f0 f1 f2 f3
close $f0
close $f1
close $f2
close $f3
exit 0
}
proc record {} {
global sink0 sink1 sink2 sink3 f0 f1 f2 f3
set ns [Simulator instance]
set time 30
set bw0 [$sink0 set bytes_]
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]
set bw3 [$sink3 set bytes_]
set now [$ns now]
puts $f0 "$now [expr $bw0/$time*8]"
puts $f1 "$now [expr $bw1/$time*8]"
puts $f2 "$now [expr $bw2/$time*8]"
puts $f3 "$now [expr $bw3/$time*8]"
$sink0 set bytes_ 0
$sink1 set bytes_ 0
$sink2 set bytes_ 0
$sink3 set bytes_ 0
$ns at [expr $now+$time] "record"
}
$ns at 0.0 "record"
$ns at 0.0 "$source0agent start"
$ns at 0.0 "$source1agent start"
$ns at 0.0 "$source2 start"
$ns at 0.0 "$source3 start"
$ns at 600.1 "finish"
$ns run