venerdì, febbraio 20, 2009

Network Simulator 2 (Ns2) - aggiornamento alla versione 2.33

Prima di descrivere la procedura di installazione della nuova versione di ubuntu, volevo indicarvi un programmino interessante scritto da Fedele Mantuano. In particolare il programmino si chiama Nscript ed è un semplice tool progettato per creare in modo del tutto grafico script OTcl per ns.
Per maggiori informazioni visitate il seguente link: http://fedelemantuano.blogspot.com/search/label/Manuale%20Nscript

Torniamo a noi, ultimamente è uscita la nuova versione del simulatore ns2 (ns2.33). Quindi modifico la guida al fine che permetta l'installazione su Ubuntu. Io personalmente l'ho testata su Ubuntu 8.10.
Questa guida contiene la procedura di installazione della versione stabile più recente dell'applicazione, la 2.33, 31 Marzo 2008.
Rispetto alla vecchie guide di installazione, vi è stata una modifica dei requisiti al fine di utilizzare i pacchetti più aggiornati presenti sui repository. Questa modifica comporta dei cambiamenti alle variabili d'ambiente.

Requisiti

Di seguito sono elencati i pacchetti necessari alla compilazione dei sorgenti:


  • build-essential
  • make
  • tcl8.5-dev
  • tk8.5-dev

  • autoconf

  • automake

  • libxmu-dev


Per installare i pacchetti con apt-get, è sufficiente aprire una finestra di terminale e digitare:

sudo apt-get install build-essential make tcl8.5-dev tk8.5-dev autoconf automake libxmu-dev


Installazione


Download del pacchetto

Posizionari nella propria Home e creare al suo interno una cartella .ns2:


cd ~
mkdir .ns2
cd ~/.ns2

Una volta creata la directory, scaricare al suo interno l'archivio contenente i sorgenti da qui oppure lanciando il comando

wget http://dfn.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.33.tar.gz


Compilazione

Estrarre il file ~ns-allinone-2.33.tar.gz:


cd ~/.ns2
tar xzfv ns-allinone-2.33.tar.gz

Ora si può procedere con la compilazione:

cd ns-allinone-2.33
./install





Il tempo necessario al completamento dell'opeazione dipende dalla propria configurazione hardware.


Una volta terminato il processo di compilazione, è possibile provare il corretto funzionamento dell'applicazione digitando il seguente comando:

cd ns-2.33/
./ns

Come output si dovrebbe ottenere:


%
L'applicazione è stata correttamente installata. 

È possibile lanciare l'eseguibile senza doversi ricordare il percorso completo. Per far ciò è sufficiente modificare il file .bashrc presente nella propria cartella Home con un qualsiasi editor di testo


gedit ~/.bashrc

Aggiungere le seguenti righe alla fine del file, sostituendo la dicitura UTENTE con il proprio nome utente:


# LD_LIBRARY_PATH
OTCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/otcl-1.13
NS2_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.33/bin:/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/unix:/home/UTENTE/.ns2/ns-allinone-2.33/tk8.4.18/unix
NS=/home/UTENTE/.ns2/ns-allinone-2.33/ns-2.33/
NAM=/home/UTENTE/.ns2/ns-allinone-2.33/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM



Per attivare le modifiche fatte al file .bashrc, si deve lanciare il seguente comando

source ~/.bashrc 


Avvio dell'applicazione

Per verificare il corretto funzionamento del simulatore di rete e dei suoi componenti, si possono scaricare alcuni esempi presenti sul sito ufficiale del progetto, per poi eseguirli con il programma appena installato:



cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example2.tcl
ns example2.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con nam :





Allo stesso modo, si può visualizzare un esempio elaborato con xgraph:


cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example4.tcl
ns example4.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con xgraph :





Eliminare i file utilizzati per l'installazione

Eseguire i seguenti comandi per eliminare i file utilizzati per l'installazione e non più utili:


cd ~
rm ~/.ns2/ns-allinone-2.33.tar.gz
rm -Rf ~/ns2-example

Ulteriori risorse





30 commenti:

DavideIori ha detto...

Ciao, prima di tutto complimenti per la guida. Premetto che sono nuovo sia nel mondo do Linux sia per quanto riguarda ns2. Ho da poco installato la 2.33 e tutto sembra funzionare per il meglio. Purtroppo ho il compito di usare la PDNS-Parallel/Distribuited NS per simulare dei Web Servers in parallelo. Il problema è che sembra che sia compatibile solo con la versione 2.27 che quindi vorrei installare. Per evitare conflitti fra le due versioni, come posso disinstallare la 2.33? (ho installato il pkt allinone). Scusa per l'ignoranza ma sono proprio alle prima armi. Grazie per l'attenzione.

Riccardo ha detto...

segnalo un piccolo errore nella guida..
la riga del bashrc dovrebbe essere la seguente:

XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.33/bin:/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/unix:/home/UTENTE/.ns2/ns-allinone-2.33/tk8.4.18/unix

correggetemi se sbaglio..
Inoltre avendo la 7.10, installando questa versione del simulatore, quando provo l'esempio ho questo output:

riccardo@riccardo-laptop:~/ns2-examples$ ns example2.tcl
example2.tcl does not exist, try again

il file invece esiste in quanto:

riccardo@riccardo-laptop:~/ns2-examples$ ls
example2.tcl

Suggerimenti?

Riccardo ha detto...

scusate, riscrivo la riga in modo che sia leggibile..

XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.33/bin:
/home/UTENTE/.ns2/ns-allinone-2.33/tcl8.4.18/unix:
/home/UTENTE/.ns2/ns-allinone-2.33/tk8.4.18/unix


spero così si legga per intero

Fedele Mantuano ha detto...

Salve è complimenti per il blog. Per tutti quelli che usano ns ver 2 consiglio l'uso di un'interfaccia grafica che sto descrivendo in dettaglio in questi post (http://fedelemantuano.blogspot.com/search/label/Manuale%20Nscript).
Se poi volete altre informazioni sul simulatore contattatemi pure.

Ciao a tutti

Davide ha detto...

Ciao Fedele,

mi congratulo per l'applicazione. Attualmente non utilizzo più ns ma sicuramente sarà utile per tutti quelli che lo usano per ricerca e tesi.
Per venirti incontro alla diffusione del link aggiungo in testa al mio post piu aggiornato di ns il tuo link. Ti consiglio cmq di pubblicarlo sui wiki di ubuntu, semmai in cascata alla mia guida così gli utilizzatori possono usare una unica guida per tutto...

Ciao e grazie
Davide

Fedele Mantuano ha detto...

Grazie Davide. Volevo chiederti una cosa e fare una precisazione.
La precisazione è che l'interfaccia non l'ho scritta io, ma dato che era molto semplice io ho ampliato e di molto le librerie in modo da rendere il più possibile grafico l'uso di Nscript e pian piano sto postando un manuale (dalla A alla Z).
La domanda: come faccio a pubblicare il link sui wiki di Ubuntu?

P.S. Ho postato anche un articolo (la mia tesi) su come realizzare simulazioni di reti ottiche con ns e naturalmente ho scritto anche le librerie per fare tutto graficamente. Per chi è interessato il link è http://fedelemantuano.blogspot.com/2008/12/realizzazione-di-un-simulatore-grafico.html

Un saluto a te e a tutti i lettori del blog


Fedele Mantuano

Davide ha detto...

Fedele, io ti consiglio di continuare la mia guida: http://wiki.ubuntu-it.org/NetworkSimulator2. Per farlo, devi iscriverti e poi modificare la mia guida. La scrittura non è difficile...ci sono le linee guida e per ogni cosa chiedi aiuto al forum e al canale irc.
Io te lo consiglio anche per fare pubblicità al tuo sito. Inoltre, ti permette di avere un metodo nello scrivere le guide.

Ciao
Davide

deva ha detto...

Ciao a tutti, io ho questo problema: nam: invalid command name "tcl_findLibrary"

mi potete aiutare?

grazie in anticipo

Davide ha detto...

Deva, è da tanto che non uso ns. Cmq io penso che il tuo errore sia dovuto ad un problema di definizione dei path per far diventare globale il comando. Una domanda: l'installazione va a buon fine o si ferma con quell'errore?
Ciao
Davide

deva ha detto...

installa tutto. ma quando chiamo : ns example.tcl mi da quella riga di errore nam: invalid command name "tcl_findLibrary".

per avviare il programma Nscript come faccio?

Davide ha detto...

Nel passo della guida dove si inserisce il path dei comandi, hai modificato la parola UTENTE con il nome del tuo utente? Puoi verificare la versione di tcl? Stai usando la versione di ns2.33?

In riferimento a NSScript chiedi a Fedele.
Ciao
Davide

deva ha detto...

ok nscript partito. ora vedo se riesco a risolvere i problemi. ti ringrazio

deva ha detto...

si si utente l'ho sostituito con il mio nome utente però il problema è sempre lo stesso.

deva ha detto...

possiamo comunicare in modo più veloce? usi skype? msn? teamspeak? se ti va, io lascio il mio nick

deva ha detto...

ho scoperto che esiste ns3.
ho risolto il problema di prima. ovvero il messaggio di errore appare cmq, ma dopo aver eseguito ns example.tcl , apro nam e in seguito apro out.nam che è l'output del file example. una volta aperto la siimulazione funziona. spero di aiutare qualcuno che ha avuto mio stesso problema. ciao grazie

Davide ha detto...

Deva, ti ringranzio. Chi fa da se fa per tre, dice il detto. Comunque, appena ho un po di tempo libero, scrivo la guida per la versione 3.

Ciao e grazie
Davide

Davide ha detto...

ciao volevo sapere una cosa a livello di implementazione

sto usando ns-2

$ns src_rting 1
set temp [$source set src_agent_]
$temp install_connection fid args

con questi comandi riesco a formare un path manuale voluto da me

il problema sta nel fatto che utilizzando anche DV, usando il tcp, all'andata i opacchetti mi fanno quel percorso ma al ritorno l'ACK ne segue un altro, ossia quello calcolato dal DV

c'è un modo per farlo tornare dallo stesso percorso fatto all'andata???

Davide ha detto...

Ciao,

purtroppo è da tanto che non lo uso e non ricordo per nulla ne i comandi ne altro e mi spiace di ciò. Mi limito esclusivamente a verificare e scrivere delle guide di installazione per semplificare il lavoro a chi inizia ad usare ns2. Tu sei ad un livello molto avanzato.

Davide ha detto...

ciao,
senti,
conosci qualche forum a parte nabble che parla di questo ns-2?

Davide ha detto...

Ciao,

sinceramente io per la tesi contattavo direttamente il professore e i suoi dottorati che lavorano sul modulo ncs, che io usavo. Per il resto l'unico che conosco è solo quello da cui scarichi il programma (una mailinglist)

Anonimo ha detto...

ciao

non so se hai mai visto il perl del throughput di sop inria

il throughput è calcolato come byte/granularità

la definizione è quantità di byte al secondo

ma come devo considerare questo throughput??

nel senso, se ho una granularità di 0.1 sec, e diciamo invio in totale 1000 byte ogni 1 sec

come è possibile che mi viene

10000 ogni 0.1 sec??

non dovrebbe essere 100 ogni 1 sec

non capisco il throughput di eltmann

Anonimo ha detto...

anzi scusa è 100 ogni 0.1 sec

Davide ha detto...

Ciao,
passo purtroppo perchè è da tanto che non tocco quelle cose oltre a non conoscere eltman

Anonimo ha detto...

ciao, ho un problema

il far andare down i link all'interno di procedure funziona ma quando vado a vedere il nam, non visualizza il colore rosso del link anche se cmq il tutto funziona

è solo un problema di visualizzazione

all'esterno delle procedure invece se faccio andare in down un link fa vedere il colore rosso del link

c'è un modo per visualizzare sto benedetto colore rosso dei link in down all'interno di procedure??

Davide Fedele ha detto...

Ciao,

purtroppo è da tanto che non uso ns...indi, posso provare quando ho tempo libero a darci un occhiata...ma penso che difficilmente possa darti una mano...


Ciao,
Davide

Anonimo ha detto...

La ringrazio per Blog intiresny

Anonimo ha detto...

leggere l'intero blog, pretty good

Anonimo ha detto...

Ciao, vorrei prima di tutto complimetarmi per la guida,
Ho un problema.Quando mando in esecuzione uno script .tcl, dopo essermi posizionato nella cartella che contiene lo script, mi appare:

~/ns2-example$ ns example2.tcl
example2.tcl does not exist, try again

Come posso risolvere il problema?? Dato che:

~/ns2-example$ ls
example2.tcl example4.tcl

Grazie a tutti i coloro che mi daranno una mano

Davide ha detto...

Ciao,

è un errore stranissimo. Prova a prendere il contenuto del file o un altro file e metterlo in uno nuovo. Es. Copia il contenuto di "example2.tcl" e incollalo in un nuovo file che puoi chiamare "prova2.tcl". Prova a lanciarlo e dimmi se va.

Ciao,
Davide

Anonimo ha detto...

Sorry for my bad english. Thank you so much for your good post. Your post helped me in my college assignment, If you can provide me more details please email me.