You are on page 1of 11

U NIVERZITET U S ARAJEVU

E LEKTROTEHNI ČKI FAKULTET


O DSJEK ZA TELEKOMUNIKACIJE

Zadaća 2

S IMULACIJA PROCESA U TELEKOMUNIKACIJSKIM MREŽAMA

Student:
Armin Memić

Sarajevo, Januar 2023. godina


Sadržaj

Popis slika ii

1 Zadatak 1 1

2 Zadatak 2 7
Popis slika

1.1 Prikaz mrežne topologije na početku simulacije uz korištenje


RandomWalk2dMobilityModel-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Prikaz mrežne topologije nakon 8 sekundi trajanja simulacije uz
korištenje RandomWalk2dMobilityModel-a . . . . . . . . . . . . . . . . . . . . . 2
1.3 Prikaz omogućenog ispisa koordinata prilikom svake promjene pozicije čvorova 3
1.4 Prikaz izgleda mrežne topologije prilikom korištenja
ConstantPosition-MobilityModel-a i proizvoljnog definisanja rasporeda čvorova 4
1.5 Prikaz kašnjenja unutar mreže za vrijednost parametra latency od 1ms . . . . . 5
1.6 Prikaz kašnjenja unutar mreže za vrijednost parametra latency od 10ms . . . . 5
1.7 Prikaz direktne ruta izmed̄u čvorova n1 - n3 . . . . . . . . . . . . . . . . . . . . . 6

2.1 Prikaz kreirane topologije pokretanjem brite-generic-example.cc skripte . . . . 8


Zadatak 1

Za izradu zadatka 1 koristit će se topologija kreirana u okviru Zadaće 1.


a) Definisati mobilnost na čvorovima. Model mobilnosti i parametre odabrati proizvoljno.
Omogućiti prikaz animacije koristeći NetAnim alat, te ispis koordinata čvorova pri svakoj
promjeni položaja (uputa: koristiti funkciju definisanu na laboratorijskim vježbama). Opisati
odabrani model mobilnosti i njegove parametre, pa na osnovu toga komentarisati da li su
rezultati dobijeni pokretanjem animacije u skladu sa očekivanjem.

b) Modifikovati kod tako da se umjesto izabranog modela mobilnosti koristi


ConstantPosition- MobilityModel, a zatim iskoristiti funkciju SetPosition definisanu na
laboratorijskim vježbama za pomjeranje proizvoljnog čvorišta na željenu poziciju. Navedenu
funkciju iskoristiti na način da se u istom (proizvoljno odabranom) trenutku pomjere samo
čvorovi definisani kao klijenti, na proizvoljno odabrane koordinate, dok ostali čvorovi ne
trebaju mijenjati svoje pozicije.

c) Napisati bash skriptu u kojoj će se testirati proizvoljno odabrani parametar simulacije
najmanje 10 puta. U terminalu omogućiti ispis poslanih i primljenih paketa, te poslanih i
primljenih bajta. Objasniti ispis dobijen pokretanjem bash skripte. Koristeći Gnuplot nacrtati
dijagrame razmatranih simulacijskih metrika razmatrajući sve prikupljene podatke. Dostaviti
.plt i .dat datoteke.

d) Dodati direktnu rutu izmed̄u jednog od parova klijent-server. Pokrenuti animaciju. Da


li se paketi razmjenjuju istom putanjom za ovaj par? Zašto? Definisati statičku rutu za ovaj
par klijent-server, kako bi se saobraćaj prenosio istom putanjom kao u prethodnom slučaju
(preko centralnog čvora) i objasniti moguće prednosti korištenja statičkih ruta.
(uputa: koristiti funkciju SetStaticRoute definisanu na laboratorijskim vježbama).

Zadatak 1-a
Kao što je i zahtjevano u postavci zadaće, mrežna toplogija i skripta za pokretanje predstavljaju
one kreirane za potrebe zadaće 1.
Kao model mobilnosti koristi se RandomWalk2dMobilityModel, a kao alokator pozicije se
koristi GridPositionAllocator.

1
2

Parametri karakteristični za RandomWalk2dMobilityModel su:

• mode predstavlja parametar koji će biti iskorišten kao uslov, ili indikator promjene
trenutnog stanja i u ovom slučaju to će biti parametar vrijeme što indicira da će se
pozicija i brzina čvorova mijenjati nakon odred̄enog vremena.

• time predstavlja odgovarajući tip podataka za prethodno definisani parametarmode.

• speed definiše brzinu kretanja čvorova.

• bounds definiše oblik i dimenzije granica unutar kojih će čvorovi vršiti kretanje.

Slika 1.1: Prikaz mrežne topologije na početku simulacije uz korištenje


RandomWalk2dMobilityModel-a

Slika 1.2: Prikaz mrežne topologije nakon 8 sekundi trajanja simulacije uz


korištenje RandomWalk2dMobilityModel-a
3

Na slikama 1.1 i 1.2 moguće je vidjeti raspored čvorova kreirane mreže na početku i nakon
odred̄enog vremena trajanja simulacije. S obzirom na to da se jasno vidi razlika izmed̄u
rasporeda čvorova na dvije date slike što sugeriše da implementirani model mobilnosti
funkcioniše. Uzevši u obzir da se kao alokator pozicije koristi GridPositionAllocator nakon
dužeg trajanja simulacije mrežna topologija je poprimila očekivani izgled tako da se može
zaključiti da navedeni model mobilnosti radi u skladu sa očekivanjima.

Slika 1.3: Prikaz omogućenog ispisa koordinata prilikom svake promjene pozicije čvorova

Na slici 1.3 je izvršen prikaz ispisa koordinata čvorova pri svakoj promjeni pozicije. Navedena
funkcionalnost je omogućena korištenjem funkcije CourseChange koja je korištena na jednoj
od laboratorijskih vježbi.

Zadatak 1-b
Izvršena je modifikacija koda tako da se sada kao model mobilnosti koristi ConstantPosition-
MobilityModel. U ovom dijelu zadatka je korištena funkcija SetPosition koja će omogućiti
postavljanje čvorova na proizvoljnu poziciju i u proizvoljnom trenutku. Nakon pokretanja
simulacije, dobijen je sljedeći izgled topologije prikazan korištenjem NetAnim alata.
4

Slika 1.4: Prikaz izgleda mrežne topologije prilikom korištenja


ConstantPosition-MobilityModel-a i proizvoljnog definisanja rasporeda čvorova

Na slici 1.4 moguće je vidjeti raspored čvorova prilikom korištenja ConstantPosition-MobilityModel


modela mobilnosti i prozivoljnog pomjera čvorova koji su klijenti u 2 konekcije koje postoje.

Zadatak 1-c
Napisana je bash skripta koja će testirati proizvoljno odabrani parametar simulacije.
S obzirom na to da je fokus na kreiranju bash skripte, a ne na testiranju kreirane toplogije čija
je detaljna simulacija izvršena za potrebe zadaće 1, za parametar koji je odabran za varijaciju
unutar bash skripte odabrana je latencija datih linkova, odnosno mreže. U nastavku slijedi
prikaz koda kojim je realizirana zahtjevana bash skripta.

#!/bin/sh

for latency in "1ms" "2ms" "3ms" "4ms" "5ms" "6ms" "7ms"


"8ms" "9ms" "10ms"

do
./ns3 run "scratch/zadaca2_pod_c.cc --latency=${latency}" >
results${latency}.txt 2>&1

printf "latency: ${latency}, $(grep "Sent (bytes)"


results${latency}.txt ), $(grep "Sent (Packets)"
results${latency}.txt)"
done

Nakon izvršena bash skripte dobijeno je 10 datoteka sa ekstenzijom txt unutar kojih su smješteni
rezultati simulacije, odnosno performanse datih linkova nakon unošenja latencija za vrijednosti
5

od 1ms do 10ms. Navedene datoteke su nakon toga prevedene u format pogodan za pokretanje
korištenjem gnuplot alata.

Slika 1.5: Prikaz kašnjenja unutar mreže za vrijednost parametra latency od 1ms

Slika 1.6: Prikaz kašnjenja unutar mreže za vrijednost parametra latency od 10ms

Na slikama 1.5i 1.6 prikazani su rezultati koji opisuju kašnjenje na nivou linka prilikom
korištenja različitih vrijednosti latencije unutar mreže. S obzirom na to da su rezultati dosta
slični, nije prikazano svih 10 grafova, već samo 2. Prikazani su oni sa minimalnom i
maksimalnom vrijednošću parametra korištenog unutar bash skripte. Rezultati su očekivani
i poklapaju se sa rezultatima zadaće 1. Na slici 1.6 moguće je vidjeti da veća vrijednost
latencije, u konačnici rezultira i većim kašnjenjem za iste veličine i broj paketa.
6

Zadatak 1-d
Na samom početku izrade ovog dijela zadatka, dodana je direktna ruta izmed̄u klijenta i
servera, odnosno čvorova n11 i n3 i istu je moguće vidjeti na slici 1.7. Nakon što je pokrenuta
simulacija moguće je primjetiti da se razmjena paketa izmed̄u čvorova n1 i n3 više ne odvija
preko centralnog čvora n0, već se paketi razmjenjuju direktno. U skladu sa istraživanjem
dokumentacije vezane za ovakve postavke linka, zaključeno je da algoritam rutiranja direktnu
rutu izmed̄u čvorova smatra optimalnijom, odnosno smanjuje se broj potrebnih hopova do
odredišta paketa te algoritam definiše prenos preko iste.

Slika 1.7: Prikaz direktne ruta izmed̄u čvorova n1 - n3

Korištenjem funkcije SetStaticRoute definisan je prenos od čvora n1, preko čvora n0 pa do


čvora n3. Ponovnim pokretanjem simulacije moguće je vidjeti da se prenos paketa od čvora
n1 do čvora n3 ponovo odvija preko centralnog čvora n0, što je rezultat postavljanja statičke
rute.
Eventualne prednosti statičkog rutiranja su potencijalne situacije u kojima administrator
mreže želi izbjeći prenos preko odgovarajućih čvorova, a postoji nezanemariva vjerovatnoća
da će algoritam rutiranja izabrati upravo tu putanju. U tom slučaju je moguće primjenom
statičkog rutiranja izbjeći neželjene čvorove i odabrati potrebnu putanju.
Zadatak 2

a) Pokrenuti skriptu brite-generic-example.cc (dostupnu u folderu /src/brite/examples sa


zadanim parametrima i analizirati animaciju u NetAnim alatu. Simulaciju pokrenuti
minimalno pet puta. Koje razlike uočavate u animaciji? Zašto? Da li su IP adrese dodijeljene
na isti način svaki put (prikazati IP adrese u NetAnim-u)? Objasniti izbor mrežnih maski. Da
li je moguće koristiti drugačije maske?

b) Napisati bash skriptu koja će pokretati brite-generic-example.cc za minimalno pet


proizvoljno odabranih različitih vrijednosti broja toka koji se dodjeljuje slučajnoj varijabli za
generisanje brite seed datoteke, te ponovo analizirati animaciju u NetAnim alatu. Prikazati
razlike u terminalu za slučajeve a) i b) koje ukazuju na promjenu ove datoteke. Koje razlike
uočavate u animaciji?

c) Modifikovati parametre konfiguracijske datoteke TD_ASBarabasi_RTWaxman.conf na


način da promijenite broj čvorova unutar kreirane topologije. Da li se IP adrese dodjeljuju
na isti način kao pod a)? Kratko obrazložiti odgovor.

d) Analizirati i prikazati prikupljene podatke. Estimirati distribuciju i parametre distribucije


koji opisuju prikupljene podatke koristeći MLE pristup.

Zadatak 2-a
Izvršeno je višestruko pokretanje skripte brite-generic-example.cc. Nakon pokretanja dostupne
xml datotekte i vizuelnog prikaza u NetAnim alatu moguće je izdvojiti nekoliko zaključaka.

• čvorovi pripadaju narednim mrežama:

– 10.0.0.0 255.255.255.0
– 10.1.0.0 255.255.0.0
– 10.2.0.0 255.255.0.0

• Višestrukim pokretanjem skripte, moguće je vidjeti da neki čvorovi ne mijenjaju IP


adresu i navedeno se može pripisati konstantnoj vrijednosti varijable streamNumber

• Za iste mrežne maske, čvorovima će uvijek biti dodijeljen isti skup IP adresa, ukoliko
se promijene mrežne maske, čvorovima će biti dodijeljen novi set IP adresa.

• Posmatranjem animacije u NetAnim alatu, moguće je vidjeti jasan tok paketa koji će
biti isti svakim pokretanjem simulacije.

7
8

Slika 2.1: Prikaz kreirane topologije pokretanjem brite-generic-example.cc skripte

You might also like