270 likes | 493 Views
Analyzing NS2 result. ECM 5078 Course Experiments Kang-Lun Fan NCTU Bun Lab. Oct 11 th 2007. Overview. ns2 Run ns case.tcl Results are recorded in .tr & .nam How to analyze the results? 1. prepare the trace file 2. use tools to obtain metrics from trace file Tools : awk , perl
E N D
Analyzing NS2 result ECM 5078 Course Experiments Kang-Lun Fan NCTU Bun Lab. Oct 11th 2007
Overview ns2 • Run ns case.tcl • Results are recorded in .tr & .nam • How to analyze the results? • 1. prepare the trace file • 2. use tools to obtain metrics from trace file • Tools : awk,perl • Metrics : End-to-end delay,throughput, packet delivery rate
Trace file (old) • .tr file • We only consider wireless case here • 2 format types • Record every action of transmission • MAC (RTS,CTS) • RTR (Routing) • Packet (send,receive,drop, etc.)
Trace file (old) • Old Wireless Trace Formats • Different protocols (TORA,DSR) • Different levels (RTR, AGT, MAC) • Mobile or not • ns-2.29\trace\cmu-trace.cc • Manual Ch.16.1.6 & 16.1.7 • According to the order of layers • Mac -> IP -> upper layer
Trace file (old) • Basic part ( format_mac() ) • %.9f %d (%6.2f %6.2f) %3s %4s %d %s %d [%x %x %x %x] • %.9f _%d_ %3s %4s %d %s %d [%x %x %x %x] • Tag (%c) • s : send • r : receive • d : drop • f : forward • Time (%.9f) • Time stamp
Trace file (old) • Node ID (_%d_ or %d) • Without log_position => _%d_ • With log_position (for mobile case) => %d • Coordinate (%6.2f %6.2f) • X & Y • Level ( %3s) • MAC • RTR • AGT
Trace file (old) • Why (%4s) • Reason for dropped packet • Event ID (%d) • Event identifier • Packet type (%s) • cbr or tcp • Packet size (%d) • [duration destination sender type] (%x) • Duration : expected time to send data • Destination & Sender : Mac address • Type : IP (0x0800) or ARP (0x0806)
Trace file (old) • IP part • ------- [%d:%d %d:%d %d %d] • Source IP Address • Source Port Number • Destination IP Address • Destination Port Number • TTL Value • Next Hop Address, If Any
Trace file (old) • Remaining parts are according to • level • protocol • For example : CBR trace [%d] %d %d s 0.001000000 _0_ AGT --- 0 cbr 210 [0 0 0 0] ------- [0:0 1:0 32 0] [0] 0 0 • Please read manual 16.1.6 or http://nsnam.isi.edu/nsnam/index.php/NS-2_Trace_Formats#Old_Wireless_Trace_Formats
Trace file(new) • $ns use-newtrace • Event type • s send • r receive • d drop • f forward • General tag • -t : time or *(global setting)
Trace file(new) • Node property tags • -Ni: node id • -Nx: node’s x-coordinate • -Ny: node’s y-coordinate • -Nz: node’s z-coordinate • -Ne: node energy level • -Nl: trace level, such as AGT, RTR, MAC • -Nw: reason for the event • “End”、”COL”、”IFQ”
Trace file(new) • Packet information at IP level • -Is: source address.source port number • -Id: dest address.dest port number • -It: packet type • -Il: packet size • -If: flow id • -Ii: unique id • -Iv: ttl value
Trace file(new) • Next hop info • -Hs: id for this node • -Hd: id for next hop towards the destination • Packet info at MAC level • -Ma: duration • -Md: dst’s ethernet address • -Ms: src’s ethernet address • -Mt: ethernet type
Trace file(new) • Packet info at "Application level“ • Example : -P cbr Constant bit rate • -Pi: sequence number • -Pf: how many times this pkt was forwarded • -Po: optimal number of forwards • Remaining parts, please read manual 16.1.7
AWK • Once we can interpret the trace file, how do we obtain meaningful statistics ? • Some useful languages • awk、perl • Here we’ll introduce the awk language and you all need to write awk programs for experiment 1
AWK • Like TCL, uses an Interpreter, rather than a compiler, to run the program • Typeless • Associative Array • Process Record、Field data very well • Pipe • Similar to C language
AWK • Procedure • 1. read one row from data file • 2. store to each field (depart by “tab” or “space”) • 3. update variables • 4. run every Pattern { Action } • 5. if any data haven’t been read yet, repeat step 1~4 • Run • $ awk –f awkfilename.awkinputfile
AWK • Pattern • expressions, operators • >、==、!=、 • ~(match)、!~(not match) • Action • I/O instructions : print、printf()、getline • Flow control:if 、for loop、while loop • Like what we learned in C language
AWK • For example : (data.txt) A125 Jenny 100 210 A341 Dan 110 215 P158 Max 130 209 P148 John 125 220 A123 Linda 95 210 • countsalary.awk count = $3*$4 printf (“%d\n” ,count);
AWK • first line • $0 = ‘A125 Jenny 100 210’ • $1 = A125 • $2 = Jenny • $3 = 100 • $4 = 210 • $ awk –f countsalary.awk data.txt 21000 23650 27170 27500 19950
AWK • Control flows are the same as C language • For extra information, please browse http://phi.sinica.edu.tw/aspac/reports/94/94011/ http://www.study-area.org/cyril/scripts/scripts/node61.html
Experiment-1 • Download Exp-1.ppt & Experiment-1.doc from our course website • Modify sample.tcl to meet the scenario we specified in the next slide • Run simulation and write an awk program to compute • average end-to-end delay • packet delivery ratio • throughput
Experiment-1 • Network scenario • 2 nodes placed apart by 100 (meters) • Enable RTS/CTS four-way handshaking • Simulation time = 3 • Name the trace file & nam file as your student ID • Use new trace format • Turn mac & router trace OFF • Generate a CBR traffic without using a procedure • CBR packet size = 500 (bytes) • CBR rate = 500kb(ps) • CBR traffic start at 0.05 stop at 1.0
Experiment-1 • #total packets received packet delivery ratio = ---------------------------- #total packets sent • end-to-end delay per packet : (received time – sent time) • total e2e delay average e2e delay = ------------------------------- #total packets ps. You don’t have to consider Dropped packets (w/ infinite delay)
Experiment-1 • total received data size (bytes) x 8 (bits) throughput = --------------------------------------------------- simulation time (3.0 sec) • 1mbits = 1024 kbits , 1kbits = 1024 bits
References • AWK • http://phi.sinica.edu.tw/aspac/reports/94/94011/ • http://www.study-area.org/cyril/scripts/scripts/node61.html • Ns2 official website • http://www.isi.edu/nsnam/ns/index.html • Ns2 wiki • http://nsnam.isi.edu/nsnam/index.php/NS-2_Trace_Formats#Old_Wireless_Trace_Formats