[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: how to get the throughput out for ftp application/tcp agent




You may be running into a bug in int Acker::update(). Make sure your
version has something like:

	int next = next_;
	if (seq >= next && seq <= maxseen_) {
		seen_[seq & MWM] = numBytes;
		while (seen_[next & MWM]) {
			numToDeliver += seen_[next & MWM];
			++next;
		}
		next_ = next;
	}
	return numToDeliver;
}

neal

On Sun, 25 Apr 1999, AL-HUSSEIN ABOU-ZEID wrote:

> Hi,
> 
> I followed Huang's advice and implemented an application class and
> attached it to TcpSink. However, after running the simulation, I don't 
> see any bytes received. Attached is the tcl script for a simple two
> node topology. If anyone has any ideas about that, please let me know.
> 
> Thanks in advance,
> 
> --Hussein
> 
> --------------------------------------------------------------
> 
> Class TraceApp -superclass Application
> 
> TraceApp instproc init {args} {
>         $self set bytes_ 0
>         eval $self next $args
> }
> 
> TraceApp instproc recv {byte} {
>         $self instvar bytes_
>         set bytes_ [expr $bytes_ + $byte]
>         return $bytes_
> }
> 
> 
> 
> #Define a 'finish' procedure
> proc finish {trace} {
> 	puts "[$trace set bytes_]"
>         exit 0
> }
> 
> 
> proc test { } {
> #
> #Create a simulator object
> set ns [new Simulator]
> #puts "myrates= $myrates"
> 
> # Create a simple two node topology:
> #
> #  n0 ------------ n1 
> #
> set n0 [$ns node]
> set n1 [$ns node]
> 
> #Create a duplex link between the nodes
> $ns duplex-link $n0 $n1 0.8Mb 0.01s DropTail
> 
> #Assign a limited buffer size to the bottleneck link
> $ns queue-limit $n0 $n1 4
> 
> 
> #Create a TCP-Reno  agent and attach it to node n0
> set tcp [new Agent/TCP/Reno]
> $tcp set window_ 10000
> $tcp set windowInit_ 1
> $tcp set packetSize_ 1000
> $tcp set tcpTick_ 0.001
> $tcp set maxrto_ 64
> $tcp set dupacks_ 0
> $tcp set ack_ 0
> $tcp set cwnd_ 0
> $tcp set rtt_ 0
> $tcp set rttvar_ 0
> $tcp set backoff_ 0
> $tcp set maxseq_ 0
> 
> $ns attach-agent $n0 $tcp
> 
> #Create a standard TCP Sink and attach it to node n1
> set sink [new Agent/TCPSink]
> $ns attach-agent $n1 $sink
> 
> set traceapp [new TraceApp]
> $traceapp attach-agent $sink
> puts "[$traceapp set bytes_]"
> 
> #create an FTP application and attach it to tcp
> set ftp [new Application/FTP]
> $ftp attach-agent $tcp
> 
> #Connect the application to the sink
> $ns connect $tcp $sink  
> 
> 
> #Schedule events
> $ns at 0.0 "$ftp start"
> $ns at 60.0 "$ftp stop"
> $ns at 70.0 "finish  $traceapp" 
> 
> #Run the simulation
> $ns run
> }
> 
> test 
> 
> 
> -------------------------------------------------------------------------
> 
> 
> > 
> > Hello Zhiwei,
> > 
> > If an application is attached to an TCPSink agent, the agnet will call
> > the application's recv(bytes) method whenever it received and ACKed
> > segments. So you can write an application in TCL to record the
> > throughput.
> > 
> > The following code declear a new TCL class - "TraceApp" and implement
> > an instproc - "recv". Currently, it just record the total bytes the
> > receiver has received and ACKed and store it to variable bytes_.
> > You can add anything as you like.
> > 
> > Class TraceApp -superclass Application
> > 
> > TraceApp instproc init {args} {
> >         $self set bytes_ 0
> >         eval $self next $args
> > }
> > 
> > TraceApp instproc recv {byte} {
> >         $self instvar bytes_
> >         set bytes_ [expr $bytes_ + $byte]
> >         return $bytes_
> > }
> > 
> > The instproc "recv" will be called automatically whenever TCPSink
> > received and ACKed sengments if you attached TraceApp to the TCPSink.
> > The following code will do this.
> > 
> > set sink [new Agent/TCPSink]
> > TraceApp traceapp
> > traceapp attach-agent $sink
> > 
> > Good luck.
> > 
> > ZX>  Hi, there:
> > ZX>     without postprocessing the trace file, how to get the
> > ZX> sender/receiver's throughput for the ftp application over tcp agent? is
> > ZX> there any sample code? thanks in advance!
> > 
> > ZX> xiao
> > 
> > 
> > 
> > 
> > Best regards,
> >  Huang                            mailto:[email protected]
> > 
> > 
> > 
> 
>