slide1
Download
Skip this Video
Download Presentation
NS-2

Loading in 2 Seconds...

play fullscreen
1 / 16

NS-2 - PowerPoint PPT Presentation


  • 89 Views
  • Uploaded on

NS-2. Shahin Shayandeh December 2004 Session 1. Ns-2, the Network Simulator. A discrete event simulator Simple model Focused on modeling network protocols Wired, wireless, satellite Network protocols TCP, UDP, multicast, unicast Traffic source behavior Web, telnet, ftp, CBR, VBR

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' NS-2' - tanner-mclean


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

NS-2

Shahin Shayandeh

December 2004

Session 1

ns 2 the network simulator
Ns-2, the Network Simulator
  • A discrete event simulator
    • Simple model
  • Focused on modeling network protocols
    • Wired, wireless, satellite
    • Network protocols
      • TCP, UDP, multicast, unicast
    • Traffic source behavior
      • Web, telnet, ftp, CBR, VBR
    • Router queue management mechanism
      • Drop Tail, RED, CBQ
    • Ad hoc routing, sensor networks
    • Infrastructure: stats, tracing, error models, etc
discrete event simulation
Discrete Event Simulation
  • Model world as events
    • Simulator has list of events
    • Process: take next one, run it, until done
    • Each event happens in an instant of virtual (simulated) time, but takes an arbitrary amount of real time
  • Ns uses simple model: single thread of control  no locking or race conditions to worry about (very easy)
  • Packet-handling delay
  • Timers
discrete event example

A

B

Discrete Event Example

t=1, A enqueues pkt on LAN

t=1.01, LAN dequeues pkt

and triggers B

simple

queuing

model:

Consider two nodes

on an Ethernet:

ns architecture
Ns Architecture
  • Object-oriented (C++, OTcl)
  • Modular approach
    • Fine-grained object composition
  • Reusability
  • Maintenance
  • Performance (speed and memory)
  • Careful planning of modularity
c and otcl separation
C++ and OTcl Separation
  • “data” / control separation
    • C++ for “data”:
      • per packet processing, core of ns
      • fast to run, detailed, complete control
    • OTcl for control:
      • Simulation scenario configurations
      • Periodic or triggered action
      • Manipulating existing C++ objects
      • fast to write and change
  • running vs. writing speed
  • Learning and debugging (two languages)
basic tcl
Basic Tcl

variables:

set x 10

puts “x is $x”

functions and expressions:

set y [pow x 2]

set y [expr $x*$x]

control flow:

if {$x > 0} { return $x } else {

return [expr -$x] }

while { $x > 0 } {

puts $x

incr x –1

}

procedures:

proc pow {x n} {

if {$n == 1} { return $x }

set part [pow x [expr $n-1]]

return [expr $x*$part]

}

Also lists, associative arrays, etc.

=> can use a real programming language to build network topologies, traffic models, etc.

basic otcl
Basic otcl

Class Person

# constructor:

Person instproc init {age} {

$selfinstvar age_

set age_ $age

}

# method:

Person instproc greet {} {

$selfinstvar age_

puts “$age_ years old: How are you doing?”

}

# subclass:

Class Kid -superclass Person

Kid instproc greet {} {

$selfinstvar age_

puts “$age_ years old kid: What’s up, dude?”

}

set a [new Person 45]

set b [new Kid 15]

$a greet

$b greet

using ns
Using ns

Problem

Result

analysis

Simulation

model

Modify

ns

Setup/run

simulation

with ns

hello world interactive mode
Hello World - Interactive Mode

Interactive mode:

$ ns

% set ns [new Simulator]

_o3

% $ns at 1 “puts \“Hello World!\””

1

% $ns at 1.5 “exit”

2

% $ns run

Hello World!

Batch mode:

simple.tcl

set ns [new Simulator]

$ns at 1 “puts \“Hello World!\””

$ns at 1.5 “exit”

$ns run

$ ns simple.tcl

Hello World!

how to start
How to start?
  • Create a simulator object

set ns [new Simulator]

  • NAM trace data

set nf [open out.nam w]

$ns namtrace-all$nf

  • \'finish\' procedure

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

  • Execute the \'finish\' procedure after 5.0 seconds

$ns at 5.0 "finish“

  • starts the simulation

$ns run

creating network
Creating Network
  • Nodes

set n0 [$ns node]

set n1 [$ns node]

  • Links and queuing

$ns <link_type> $n0 $n1 <bandwidth> <delay> <queue_type>

      • <link_type>: duplex-link, simplex-link
      • <queue_type>: DropTail, RED, CBQ, FQ, SFQ, DRR queues
two nodes one link
Two nodes, one link

set n0 [$ns node]

set n1 [$ns node]

$ns duplex-link $n0 $n1 1Mb 10ms DropTail

sending data
Sending Data

#Create a UDP agent and attach it to node n0

set udp0 [new Agent/UDP]

$ns attach-agent $n0 $udp0

#Create a CBR traffic source and attach it to udp0

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 500

$cbr0 set interval_ 0.005

$cbr0 attach-agent $udp0

  • Null agent which acts as traffic sink

set null0 [new Agent/Null]

$ns attach-agent $n1 $null0

  • Two agents have to be connected with each other

$ns connect $udp0 $null0

  • CBR agent when to send data and when to stop sending

$ns at 0.5 "$cbr0 start“

$ns at 4.5 "$cbr0 stop"

ad