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





42 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.

Anonimo ha detto...

fantastic issues altogether, you simply received a new reader.
What would you recommend about your put up that you just made a few days
ago? Any positive?

My web-site :: instance.io Reviews
my webpage - nethosting Reviews

Anonimo ha detto...

fantastic post, very informative. I'm wondering why the other experts of this sector don't notice this.

You must continue your writing. I'm sure, you have a huge readers' base already!


Also visit my web blog ... Panic Attack
Also see my site :: Anxiety Attack

Anonimo ha detto...

This piece of writing will help the internet users for building
up new website or even a weblog from start to end.


My site; Web Hosting Reviews
my webpage - hosting Testimonials

Anonimo ha detto...

Outstanding quest there. What occurred after? Take care!


Also visit my web-site ... Vexxhost Ratings

Anonimo ha detto...

Good day! This is my first visit to your blog! We are a team of volunteers and starting a
new project in a community in the same niche. Your blog provided us useful information to work
on. You have done a outstanding job!

Feel free to surf to my homepage: hostgator Testimonials

Anonimo ha detto...

Hi there, I log on to your blogs on a regular basis.
Your story-telling style is awesome, keep up the good work!


Also visit my weblog :: Webhostingtop3.Com

Anonimo ha detto...

Hi colleagues, its enormous post concerning tutoringand entirely
explained, keep it up all the time.

Also visit my web blog - designskala.com

Anonimo ha detto...

It's an amazing piece of writing for all the online users; they will take benefit from it I am sure.

Also visit my site; atlantic.net Recommendations

Anonimo ha detto...

I every time emailed this website post page to all my associates, as
if like to read it then my contacts will too.

Also visit my page ... cloud servers pricing

Anonimo ha detto...

Pretty nice post. I just stumbled upon your weblog and wanted to say that I have really enjoyed surfing around your blog posts.
In any case I will be subscribing to your rss feed and I
hope you write again very soon!

Feel free to visit my page ... thesystemhasfailed.us

Anonimo ha detto...

hello there and thanks for the information you have : I have absolutely picked up new stuff through your blog. I nevertheless noticed some on site issues by using this site. I have been thinking about if your hosting is alright? Not that I am complaining, however sluggish loading times could likely influence your placement in yahoo and might damage your top quality articles on this blog. Well I’m putting this Rss feed to my personal email and will look out for much more of your fascinating posts..

Anonimo ha detto...

I know this if off topic but I'm looking into starting my own blog and was wondering what all is needed to get set up? I'm assuming having a blog like
yours would cost a pretty penny? I'm not very internet savvy so I'm not 100% certain.
Any suggestions or advice would be greatly appreciated. Thank you

Also visit my page - organic seo services