1 / 16

Introduction to Network Simulator NS-2 Part II

King Fahd University of Petroleum and Minerals Computer Engineering Department. Introduction to Network Simulator NS-2 Part II. Wireless Mobile Ad hoc Networks COE 549. Anas Alroubaiey. Outlines. Wireless TCL script How to build wireless scenarios

cherie
Download Presentation

Introduction to Network Simulator NS-2 Part II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. King Fahd University of Petroleum and Minerals Computer Engineering Department Introduction to Network Simulator NS-2Part II Wireless Mobile Ad hoc Networks COE 549 AnasAlroubaiey

  2. Outlines • Wireless TCL script • How to build wireless scenarios • Mobility and traffic (setdest & cbrgen.tcl) • DSR trace file • Using AWK for calculating • Routing overhead • PDR( Packet Delivery Ratio)

  3. Wireless TCL Script (1/3) • Mobile node parameters • Channel type    (Channel/WirelessChannel) • Propagation model    (Propagation/TwoRayGround) • Interface type    (Phy/WirelessPhy) • MAC layer protocol    (Mac/802_11) • Routing protocol    (DSR) • Interface Queue type    (CMUPriQueue - for DSR) • Interface Queue Length    (50) • Antenna type    (Antenna/OmniAntenna) • LL type    (LL) • Read chapter 16 in ns-documentation • Use wireless.tcl example intcl\ex folder

  4. Wireless TCL Script (2/3) # unity gain, omni-directional antennas # set up the antennas to be centered in the node and 1.5 meters above it Antenna/OmniAntenna set X_ 0 Antenna/OmniAntenna set Y_ 0 Antenna/OmniAntenna set Z_ 1.5 Antenna/OmniAntenna set Gt_ 1.0 Antenna/OmniAntenna set Gr_ 1.0

  5. Wireless TCL Script(3/3) • How to reduce the trace output file size set AgentTrace              ON set RouterTrace             ON set MacTrace                  ON • Generating data traffic and mobility scenarios set val(cp) "../mobility/scene/cbr-3-test" set val(sc) "../mobility/scene/scen-3-test"

  6. Wireless Scenario (Mobility) • Provide initial (X,Y, for now Z=0) co-ordinates for mobile nodes $node_(0) set X_ 5.0 $node_(0) set Y_ 2.0 $node_(0) set Z_ 0.0 $node_(1) set X_ 390.0 $node_(1) set Y_ 385.0 $node_(1) set Z_ 0.0 • Now produce some simple node movements # Node_(1) starts to move towards node_(0) $ns_ at 50.0 "$node_(1) setdest 25.0 20.0 0.0" $ns_ at 10.0 "$node_(0) setdest 20.0 18.0 0.0" # Node_(1) then starts to move away from node_(0) $ns_ at 100.0 "$node_(1) setdest 490.0 480.0 0.0"

  7. Wireless scenario ( Traffic) # Setup traffic flow between nodes # TCP connections between node_(0) and node_(1) set tcp [new Agent/TCP] $tcp set class_ 2 set sink [new Agent/TCPSink] $ns_ attach-agent $node_(0) $tcp $ns_ attach-agent $node_(1) $sink $ns_ connect $tcp $sink set ftp [new Application/FTP] $ftp attach-agent $tcp $ns_ at 10.0 "$ftp start"

  8. Setdet • A script has been provided which generates these movements automatically in a separate file • To generate this, use the setdest script present in ns/indep-utils/cmu-scen-gen/ directory. • Examples: • setdest -v 1 -n 20 -p 2.0 -M 10.0 -t 200 -x 500 -y 500 > scen-20_v1.tcl • setdest -v 2 -n 20 -s 1 -m 1 -M 10.0 -t 200 -P 1 -p 2.0 -x 500 -y 500 > scen-20_v2.tcl

  9. Cbrgen.tcl • Generates traffic automatically in a separate file • script present in ns/indep-utils/cmu-scen-gen/ directory ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections][-rate rate] >output.tcl • Example: • ns cbrgen.tcl –type cbr –nn 50 –seed 1 –mc 10 –rate 4 > cbr-50-10-4

  10. A Typical DSR trace format (1/3) • s 606.210364161 _39_ RTR  --- 1306 DSR 44 [13a a 27 800] ------- [39:255 8:255 255 8] 2 [0 0] [0 0 0 0->0] [1 1 8 39->10] • s: means send606.210364161: time stamp_39_:  node idRTR: means router message1306: uid of this packetDSR: DSR agent44: size in the common header hdr_cmn() • [13a a 27 800] MAC detail:  13a: means the expected transmission time ( note that packet size is large, 44 bytes, 314second?)                               a: means the receiving node: 10                              27: means the sending node is 39                              800:  IP header: 0x0800, (ETHERTYPE_ARP is 0x0806)

  11. DSR Trace Format (2/3) • [39:255 8:255 255 8] IP detail: src address: IP 39 means 0.0.0.39                         port 255                         dst address: IP 8 means 0.0.0.8                         port 255                         TTL: 255                          Next-hop: 8 • TTL (time to live ) you can use it to know the number of hops

  12. DSR Trace Format (3/3) • 2 [0 0] [0 0 0 0->0] [1 1 8 39->10] DSR detail: • 2:  num_addrs() • [0 0] route-request option, this is not a route request, the second 0 is labeled for sequence number • [0 0 0 0->0]  route-reply option: [ " route-reply?" "Rreq seqno" "reply length" "dst of src  route", "src of the src route"] • [1 1 8 39->10], 1: shows this is a route error                           1: number of route errors                          8: tp notify node 8.                           39->10: link 39-10 is broken 

  13. Calculating Routing Overhead & PDR • Routing overhead = • sum of routing packets / sum of data packets • PDR = Packet Delivery Ratio • PDR = • sum of packets sent/ sum of successfully received packets • How to extract the number of • Routing packets • $cat out.tr |grep "^s.*MAC.*DSR" | wc –l • Data packets • $cat out.tr |grep "^s.*MAC.*cbr" | wc –l

  14. Routing Overhead (AWK code) • BEGIN {dsrpktno = 0; dsrbyte = 0; cbrpktno = 0; cbrbyte = 0; } { $1~/s/ && /DSR/ && /MAC/  { dsrpktno ++ ; dsrbyte+=$8 ;}$1~/s/ && /cbr/ && /MAC/ { cbrpktno ++ ; cbrbyte+=$8; } } END { print ( dsrpktno/cbrpktno, dsrbyte /cbrbyte) }

  15. PDR (AWK code) • BEGIN {Scbr=0; Rcbr=0; } { $1~/s/ && /cbr/ && /AGT/  { Scbr ++ ;}$1~/r/ && /cbr/ && /AGT/ { Rcbr++ ;} } END { print ( “PDR=“,Scbr/Rcbr) }

  16. References • http://www.winlab.rutgers.edu/%7Ezhibinwu/html/dsr_trace_anlysis.html • http://www.winlab.rutgers.edu/~zhibinwu/html/network_simulator_2.html • http://www.isi.edu/nsnam/ns/ns-documentation.html

More Related