NS-2
Download
1 / 16

NS-2 - PowerPoint PPT Presentation


  • 87 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

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