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
Configuration: Linux Mandriva
Firefox 2.0.0.6

1 réponse

  1. 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