Anteprima
Vedrai una selezione di 7 pagine su 29
Reti di Calcolatori - Esercitazione NS Pag. 1 Reti di Calcolatori - Esercitazione NS Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Esercitazione NS Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Esercitazione NS Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Esercitazione NS Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Esercitazione NS Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Reti di Calcolatori - Esercitazione NS Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

T

he Netwok Simulator ns-2 Home Page:

• www.isi.edu/nsnam/ns

The Network Simulator ns-2 Manual:

• www.isi.edu/nsnam/ns/ns-documentation.html

The Network Simulator ns-2 Mailing List:

• www.isi.edu/nsnam/ns/ns-lists.html

The Network Simulator ns-2 Tutorial:

• www.isi.edu/nsnam/ns/tutorial/index.html

http://nile.wpi.edu/NS

TCL/TK Resource:

• www.isi.edu/nsnam/otcl/README.html 3

Parte 1: Introduzione

Il Simulatore di Reti ns-2 (1/3)

“Ns is a discrete event simulator targeted at networking research.

• Ns provides substantial support for simulation of TCP, routing, and

multicast protocols over wired and wireless (local and satellite)

1

networks”

Il Simulatore ns-2 è sviluppato quale parte dei progetti:

• DARPA - SAMAN (Simulation Augmented by Analysis for Network)

• NSF – CONSER (Collaborative Simulation for Education and

• Research)

Altri contributi SUN, UCB, ACRI, ......

Sono disponibili due formati del codice sorgente di ns-2:

• “ all at once “

• “from all the pieces”

Il copyright ne consente l'uso, la modifica e la redistribuzione

1 ns-2 home page: www.isi.edu/nsnam/ns 5

Il Simulatore di Reti ns-2 (2/3)

ns-2 è un simulatore di tipo “event driven”

• scritto in C++ e OTCL

In ns-2 sono implementati:

• Protocolli di “rete”: TCP, UDP, FTP .....

• Protocolli/Algoritmi di Routing

• Meccanismi di Gestione delle Code dei Router

• (DropTail, CBQ, RED, ....)

Modelli per Sorgenti di Traffico (HTTP, FTP, ....)

• Meccanismi per Simulazione di “Eventi”

• ................................

• 6

Il Simulatore di Reti ns-2 (3/3)

ns-2 può essere visto

• come un interprete OTCL

dotato di un motore di

simulazione

I componenti principali del

• motore di simulazione

sono:

Event Scheduler

• Network Component Objects

I risultati della simulazione

• possono essere generati in

un formato compatibile

con il Network Animator

NAM 7

Il Network Animator NAM (1/3)

“Nam is a Tcl/TK based animation tool for viewing network

• simulation traces and real world packet traces. It supports

topology layout, packet level animation, and various data

1

inspection tools”

Consente di:

• Creare script per ns senza alcuna conoscenza del

• linguaggio di scripting OTCL (NAM Editor)

Visualizzare i risultati di un esperimento di

• simulazione

Una versione estesa del NAM Editor è stata sviluppata

• presso il DIS ed è reperibile all'indirizzo:

www.grid.unina.it/grid/ExtendedNamEditor

1 NAM home page: www.grid.unina.it/grid/ExtendedNamEditor 8

Il Network Animator NAM (2/3) 9

Il Network Animator NAM (3/3) 10

Il linguaggio OTCL (1/7)

“OTcl, short for MIT Object Tcl, is an extension to Tcl/Tk for

• 1

object-oriented programming.......”

Tcl (Tool Command Language) è un linguaggio di

• scripting di tipo general-purpose

Il Tcl è spesso utilizzato congiuntamente alla libreria Tk

• (Tool Kit), un insieme di librerie e comandi che

consentono di creare con facilità interfaccie grafiche

OTCL è un insieme di estensioni del linguaggio TCL che

• consentono di implementare un ambiente di

programmazione di tipo OO

Il legame esistente tra il Tcl e l'OTCL può essere

• assimilato a quello esistente tra C e C++

1 ns-2 OTCL tutorial: www.isi.edu/nsnam/otcl/doc/tutorial.html 11

Il linguaggio OTCL (2/7)

Variabili:

• In Tcl le variabili non devono essere dichiarate prima di essere

• utilizzate

Le variabili Tcl vengono create automaticamente all'atto della

• prima assegnazione:

set month 2

set day 3

set year 97

Per referenziare le variabili Tcl è necessario utilizzare il simbolo

• $:

set date "$month:$day:$year"

Espressioni:

• In Tcl è possibile valutare espressioni di tipo differente (matematiche,

• logiche, ...) utilizzando la parola chiave expr:

expr 0 == 1

expr 4 + 5 12

Il linguaggio OTCL (3/7)

Controllo di Flusso:

• Il Tcl supporta i classici costrutti per il controllo di flusso:

• If else:

• if {$temp < 80} {

puts "It's a little chilly."

} else {

puts "Warm enough for me."

}

If elseif:

• if {$my_planet == "earth"} {

puts "I feel right at home."

} elseif {$my_planet == "venus"} {

puts "This is not my home."

} else {

puts "I am neither from Earth, nor from Venus."

} 13

Il linguaggio OTCL (4/7)

switch:

• switch $num_legs {

2 {puts "It could be a human."}

4 {puts "It could be a cow."}

6 {puts "It could be an ant."}

8 {puts "It could be a spider."}

default {puts "It could be anything."}

}

for:

• for {set i 0} {$i < 10} {incr i 1} {

puts "In the for loop, and i == $i"

}

while:

• while {$i < 10} {

puts "In the while loop, and i == $i"

incr i 1

} 14

Il linguaggio OTCL (4/7)

Procedure:

• In Tcl le la semantica delle procedure è simile a quella del c

• proc magnitude {num} {

if {$num > 0} {

return $num

}

set num [expr $num * (-1)]

return $num

}

Per eseguire una funzione è sufficiente scriverne il nome seguito

• dalla lista dei parametri:

set abs [magnitude -3] 15

Il linguaggio OTCL (6/7)

Classi:

• L'estensione OTcl di Tcl definisce un ambiente di programmazione

• OO

Definizione di una Classe:

• class MyNode -superclass Node

Creazione di un Oggetto:

• set mynodevar [new MyNode]

Definizione di una Funzione Membro:

• MyNode instproc memberfn1 {} {

puts "in member function 1"

}

Invocazione di una Funzione Membro:

• $myobj memberfn1 16

Il linguaggio OTCL (7/7)

Dati Membro:

• I dati membro sono definiti all'interno delle funzioni membro

• utilizzando la direttiva instvar:

MyNode instproc memberfn2 {} {

$self instvar datamember1

set datamember1 "data member - memberfn2"

}

Costruttore:

• Il costruttore in OTCL ha il nome init

• Per invocare il costruttore della superclass è necessario

• utilizzare la parola chiave next

MyNode instproc init {} {

$self next

$self instvar datamember1

set datamember1 0

} 17

Parte 2:

Simulazione di uno Scenario

Lo Scenario di Rete 19

Costruzione dell Script (1/7)

Creazione del “ns object”

• set ns [new Simulator]

Definizione dei colori da associare ai flussi nella visualizzazione in

• NAM:

$ns color 1 Blue

$ns color 2 Red

Definizione del trace:

• set tf [open out.tr w]

$ns trace-all $tf

Definizione del trace per NAM:

• set nf [open out.nam w]

$ns namtrace-all $nf 20

Costruzione dell Script (2/7)

Procedura di “chiusura”:

• proc finish {} {

global ns tf nf

$ns flush-trace

#Close the NAM trace file

close $nf

#Close the trace file

close $tf

#Execute NAM on the trace file

exec nam out.nam &

exit 0

} 21

Dettagli
Publisher
A.A. 2012-2013
29 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/02 Campi elettromagnetici

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Sara F di informazioni apprese con la frequenza delle lezioni di Reti di calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Simon Pietro.