Xgraph et tcp

tifaniyes -  
 isa -
Bonjour,
je cherche a calculer les pertes de paquet d'un traffic tcp sous NS en utilisant xgraph mais je n y arrive pas, y aurait -il une personne qui a déja fait ça,pas forcement le calcule de pertes meme de débit;l'éssentiel est comment generer des graphs concernant un flux tcp en utilisant xgraph ou meme autre chose................merci
A voir également:

1 réponse

isa
 
salut,
j'ai trouvé une fonction qui permet d'afficher l'état de la file d'attente du router. Je te copie mon programme, je ne sais pas trop si c'est cela que tu veux.

set ns [new Simulator]

set sf [open out.tr w]
set filetrace [open q.tr w]
set namtrace [open out.nam w]
$ns namtrace-all $namtrace

#Definition de variables
set interval 5.0
set myPacketSize 1500 ;# in Bytes
set queuelimit 400 ;# in kBytes
set queuesize [expr $queuelimit * 1000 / $myPacketSize]
set rate 20

#Define color index
$ns color 1 red
$ns color 2 blue

proc finish {} {
global ns sf filetrace namtrace
close $sf
close $filetrace
close $namtrace
exec nam out.nam &
exec xgraph q.tr -geometry 800x400 &
exit 0
}

#fonction qui permet d'avoir des resultats sur les files d'attente
proc write-stats-info {node myqmon mysamples} {
global sf interval

puts $sf "Node: $node"
puts $sf "---------------packet------------------"
puts $sf "# of packet arrivals = [
expr [$myqmon set parrivals_]/$interval]/seconds"
puts $sf "# of packet departures =
[expr [$myqmon set pdepartures_]/$interval]/seconds"
puts $sf "# of packet drops = [$myqmon set pdrops_]"
puts $sf "# of packets in queue when ended = [$myqmon set pkts_]"
set pktint [$myqmon get-pkts-integrator]
puts $sf "Integral queue size = [$pktint set sum_]"

puts $sf "---------------bytes-------------------"
puts $sf "# of bytes arrival =
[expr [$myqmon set barrivals_]/$interval]/seconds"
puts $sf "# of bytes departure =
[expr [$myqmon set bdepartures_]/$interval]/seconds"
puts $sf "# of bytes drop = [$myqmon set bdrops_]"
puts $sf "# of bytes in queue when ended = [$myqmon set size_]"
set byteint [$myqmon get-bytes-integrator]
puts $sf "Integral queue size = [$byteint set sum_]"
puts $sf ""
puts $sf "Average queue delay = [$mysamples mean]"
puts $sf ""
puts $sf ""
}

#Fonction qui enregistre l'evolution de la taille de la file d'attente
proc record {} {
global ns filetrace qmon queuesize
#Set the time after which the procedure should be called again
set time 0.5
#Get the current time
set now [$ns now]
puts $filetrace "$now [$qmon set pkts_]"
#Re-schedule the procedure
$ns at [expr $now+$time] "record"
}
#Definition de la topologie
##Création des noeuds
set n0 [$ns node]
set n1 [$ns node]
set r1 [$ns node]
set r2 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

##Init du lien duplex
$ns duplex-link $n0 $r1 1Mb 10ms DropTail
$ns duplex-link $n1 $r1 1Mb 8ms DropTail
$ns duplex-link $r1 $r2 1Mb 10ms SFQ
$ns duplex-link $n2 $r2 1Mb 15ms DropTail
$ns duplex-link $n3 $r2 1Mb 20ms DropTail

$ns duplex-link-op $n0 $r1 orient right-down
$ns duplex-link-op $n1 $r1 orient right-up
$ns duplex-link-op $r1 $r2 orient right
$ns duplex-link-op $n2 $r2 orient left-down
$ns duplex-link-op $n3 $r2 orient left-up

#Monitor the queue for the link between node 2 and node 3
$ns duplex-link-op $r1 $r2 queuePos 0.5

#Definition du trafic
##Init de la connexion TCP
set tcp [new Agent/TCP]
set tcpsink [new Agent/TCPSink]
$ns attach-agent $n0 $tcp
$ns attach-agent $n3 $tcpsink
$ns connect $tcp $tcpsink
$tcp set class_ 1

# Create a FTP traffic source and attach it to TCP
set ftp [new Application/FTP]
$ftp attach-agent $tcp

#Create a TCP agent and attach it to node n1
set tcp1 [new Agent/TCP]
set tcpsink1 [new Agent/TCPSink]
$ns attach-agent $n1 $tcp1
$ns attach-agent $n2 $tcpsink1
$ns connect $tcp1 $tcpsink1
$tcp1 set class_ 2

# Create a FTP1 traffic source and attach it to TCP1
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1

#definition du monitor-queue
set qmon [$ns monitor-queue $r1 $r2 $filetrace]
set samples [new Samples]
$qmon set-delay-samples $samples

#Scheduler
puts "On envoie le fichier de 3000Ko"
$ns at 1.0 "$ftp start"
$ns at 1.5 "$ftp1 start"
$ns at 1.0 "record"
$ns at [expr $interval +1.0] "write-stats-info r2 $qmon $samples"
$ns at [expr $interval +2.0] "finish"

$ns run

j'espere que cela va t'aider
a+
isa
0