Tallinna Tehnikaülikool
Arvutivõrgud I (ISP0040)
Kodutöö nr.1 aruanne
IP paketi liikumine läbi võrgusõlmede “flood” algoritmi järgi
Risto Erik
020452
IAPB-21
24/03/2003
Tallinn 2003
1. Applet
Tegin animatsiooni java appletina. Applet koosneb väljast kus asuvad saatja ("SRC", sinine), vastuvõtja ("DST", punane) ja lüüsid ("GW", rohelised); nuppude reast (üleval), millega käivitatakse ning liigutakse animatsioonis; ning 3 realisest tekstiribast, kus on selegmini näha mis parasjagu animatsioonis toimub. Lüüsid tuleb ise paigutada ja lüüside vahelised ühendused samuti ise tõmmata. Võibolla teeb see appleti mõtetult keeruliseks (koodi poole pealt), kuid testida oli seda igaljuhul parem, kui hard-coded lüüside puhul. Samuti suvaliselt lüüse genereerida ja neid ühendada nii, et ka võrk oleks terviklik, oli tülikam. Saatja ja vastuvõtja on automaatselt programmi poolt paigutatud vastavalt siis vasakule ja paremale appleti serva. Neid kuhugi liigutada ei saa. Alguses, kohe pärast appleti laadimist, ongi pilt selline, et vasakul ja paremal on SRC ja DST objektid. Tumehallide joonte ristumis kohtadesse saab tekitada parema või vasaku hiirenupu klõpsuga lüüse juurde. Lüüside vahele saab ühendusi tõmmata kui minna hiirega mingi lüüsi peale ja siis sealt hakata vasaku või parema nupuga lohistama (tekib tumehall joon vastavalt hiire liikumisele) mõne teise lüüsi juurde ning siis seal hiirenupp lahti lasta. See tekitab sirgjoone kahe lüüsi vahel. Kui suvalises kohas hiirenupp lahti lasta, kus lüüsi või muud objekti pole, katkestatakse ühenduse tõmbamine. Samuti ei saa tõmmata kahte ühendust samade lüüside vahel ega ühendada lüüsi iseendaga.
Kui võrk on valmis (saatja ja vastuvõtja peavad ka olema võrgu ühendatud), tuleb vajutada nuppu "Init Network". Siis tehakse kindlaks, mis järjekorras pakett läbib lüüse. Pakett läbib igat ühendust konstantse ajaga. Ehk teisisõnu, lüüsid saadavad paketi edasi vastavalt sellele kui kaugel on nad saatjast (ehk mitu hüpet/lüüsi on antud lüüsi ja saatja vahel). Vastasel juhul oleks animatsioon väga segane ja nii ongi vast realistlikum. Animatsioon ise ei liigu, vaid tuleb "Next" nuppu vajutada. Sellepeale hakkab vastavalt järjekorrale (mis on varem kindlaks tehtud) mingi lüüs paketti laiali saatma. Esimesena on järjekorras alati saatja (SRC). Kui saatmise järjekord jõuab vastuvõtjani, lõpetatakse animatsioon ja näidatakse lühimat teekonda, mille kaudu saab saatjast vastuvõtjasse läbides minimaalse hulga lüüse.
Kogu võrku ja animatsiooni saab uuesti koostada/näha, kui vajutada "Restart" nuppu.
Applet asub aadressil: http://www.bsd.ee/~dh/files/av/applet.php
Appleti lähtekood: http://www.bsd.ee/~dh/files/av/Av.java
2. IP paketi liigutamine "flood" algoritmi järgi
Selline IP ruutimise algoritm leiutati 60ndatel USA kaitseministeeriumi poolt, et tagada info jõudmine saatjast vastuvõtjasse, kui näiteks suurem osa ühendusi on katkenud. Tööpõhimõte on selline, et iga lüüs saadab paketi edasi kõikidele teistele lüüsidele, kes on temaga ühendatud, välja arvatud sellele, kellelt sa selle paketi sai. Teist korda ükski lüüs sama paketti edasi ei saada, kui ta peaks kuskilt ringiga talle tagasi tulema. Vastasel juhul tekiks suhteliselt suur võrgu ülekoormus. Selligipoolest koormab see võrku mõtetult palju.Samas on ta väga lihtne, kuna ta ei vaja paketi edasi saatmiseks mingit lisainformatsiooni ja pole ka arvutusmahukas. Samuti elline viis on suhteliselt hea meetod info edastamiseks kõikidele võrgu sõlmedele. Lisaboonusena leitakse lühim tee saatjast vasutvõtjasse (põhimõtteliselt toimub laiuti otsing puust).