Mikä on NS2

NS2 on tapahtumapohjainen simulaatio-ohjelmisto, joka on tarkoitettu IP-pohjaisen tietoliikenteen tarkasteluun. NS2:n on rakennettu varsin kattavasti kaikki keskeiset IP-maailman protokollat. NS on vapaasti levitettävä ohjelmisto, johon saa sekä valmiita binäärejä, että lähdekoodeja. Et siis ole rajoitettu käyttämään valmiita ohjelmalohkoja, vaan voit luoda uusia 'helposti'.

NS2 perustuu C++ kirjoitettuun ytimeen. Ytimestä löytyy luokkakirjastoja erilaisille tietoliikenneverkkojen komponenteille. Komponentit on kuvattu algoritmeina ja protokollina, joita yhdistelemällä varsinaiset järjestelmät rakentuvat. Varsinainen simulaatio suoritetaan TCL-kielellä tehdyn 'reseptin' pohjalta. Resepti sisältää ohjeet kuinka C++ luokista rakennetaan todellisia järjestelmiä sekä näiden järjestelmien parametrisoinnin. TCL:n käyttö mahdollistaa helpon muunneltavuuden, koska varsinaista koodia ei tarvitse kääntää uudestaan.

NS2:n lähdekoodi, asennusohjeet ja muu materiaali löytyy www.isi.edu/nsnam/ns/index.html

Missä TKK:lla

NS2 on asennettu Sähkö- ja tietoliikennetekniikan osaston työasemaluokassa B215 oleviin SUN-työasemiin. Niihin pääsee verkon kautta käsiksi nimillä:

Työasemien käyttö edellyttää voimassaolevaa ATK-lupaa TKK:n opiskelijakoneisiin sekä sitä, että olet ST-osaston opiskelija. Mikäli et ole ST-osaston opiskelija, ota yhteyttä ATK-lupiin ja osoita heille olevasi kurssin opiskelija, näin saat lisäyksen lupaasi, joka mahdollistaa työasemien käytön.

Kuinka saa käyttöön

NS2:n saa käyttöön /proj/bones/ns2/ns-allinone-2.1b8/ hakemistosta löytyvällä use komennolla.

/proj/bones/ns2/ns-allinone-2.1b8/use

Komento palauttaa shell-riippuvan variantin varsinaisesta alustuskomennosta

/proj/bones/ns2/ns-allinone-2.1b8/use.csh
tai
/proj/bones/ns2/ns-allinone-2.1b8/use.sh

use komento asettaa ympäristömuuttujat, joita tarvitaan NS2:n käyttämiseen. Voit verifioida toiminnan kirjoittamalla komentoriville ns, jonka seurauksena ns käynnistyy tulostaen ruudulle komentokehotteen

  • %

    Voit poistua NS2:n komentorivitulkista kirjoittamalla exit. Varsinainen simulaatio suoritetaan antamalla komento ns ohjelmapohjanimi - esimerkiksi ns Harjoitus2.tcl

    HUOM!!! Varsinaisten simulaatioden suorittaminen usein vaatii runsaasti levytilaa. Levytilaa kuluu erilaisten tulostiedostojen muodossa. Koska käyttäjien levytilaa on rajoitettu, joudut suorittamaan simulaatiot jaetulla väliaikaislevyllä /tmp. Tee oma hakemisto /tmp/NiiloNimeton/, johon kopioit ohjelmapohjan suoritusta varten. Suorita simulaatio ja esikäsittele tulostiedostot. Kun olet esikäsitellyt tulokset, kopioi ne omaan kotihakemistoosi ja tuhoa väliaikaishakemisto.

    Mistä lähteä liikkeelle

    Voit tutustua NS2:n käyttöön tutorialin pohjalta, joka löytyy verkosta osoitteesta: http://www.isi.edu/nsnam/ns/tutorial/index.html. Kehoitan käymään läpi kappaleet I (Introduction) - V (Making it more interesting). Niistä löydät tarvitsemasi lähtötiedot NS2:n käytöstä yksinkertaisten simulaatioiden suorittamiseen. Mikäli tunnet tarvetta syvällisempään katsaukseen kehoitan käymään tutorialin läpi ja tutustumaan NS2:n käyttöoppaaseen osoitteessa: http://www.isi.edu/nsnam/ns/ns-documentation.html. NS2:n käyttöopas kuvaa C++:lla kirjoitetun sovellusrajapinnan siltäosin kuin se on dokumentoitu. Dokumentaation taso on heikohko. Syy tähän on ohjelmiston luonne - kehitystyö tapahtuu meidän kaikkien käyttäjien toimesta.

    Harjoitus

    Tehtävänäsi on miettiä ja simuloida vaihtoehtoisia tapoja tarjota eriytettyä palvelun laatua seuraaville sovelluksille mallitopologiassa Lähtökohtaisesti sinun tulee pohtia, mitä ominaisuuksia sovellukset vaativat (pientä viivettä, pientä pakettihukka tms) ja pyrkiä sitten toteuttamaan nämä vaatimukset simulaattorissa. Suorituksessa saat käyttää kahta jonoa ja kummassakin jonossa korkeintaa kolmea pudotustodennäköisyys tasoa. Sinun tulee pyrkiä mahdollisimman suureen verkon käyttöasteeseen sekä mahdollisimman ideaaliseen palveluun eri sovelluksille.

    Kohtia joita voit modifioida ovat siis:

    Tehtävä raportoidaan palauttamalla kirjallinen raportti viimeistään 1.4 klo 16 kurssin lokerikkoon G-siiven toisessa kerroksessa. Raportista tulee ilmetä ratkaisusi, miksi se on parempi kuin jokin muu. Simulaatiotulokset viiveiden, kapasiteettien ja pakettihukkien osalta per sovellus, jolle niillä on merkitystä. Vertailukohtana tee simulaatio, jossa kaikki sovellukset ovat yhdessä jonossa ja niiden nopeuksia ei rajoiteta mitenkään (BestEffort). Näiden lisäksi sinun tulee palauttaa samaan päivään mennessä tekemäsi simulaatio scriptit ja mahdolliset apuohjelmat sähköpostilla. Palautuksen tulee olla sellaisenaan ajokelpoinen, jotta tulokset voidaan verifioida helposti.