Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Fakultet informacijskih tehnologija

ProgramiranjeI_sylabus.doc goran@fit.ba

Komunikacijski

Računarska mreža se može posmatrati kao komunikacijski sistem, gde se informacija generisana na jednoj
strani komunikacijskog linka (izvor) a dostavlja hostu na drugoj strani komunikacijskog linka (destinacija ili
odredište). Osnovni elementi komunikacionog sistema su:

 Izvor (source) – generiše podatake za prenos


 Predajnik (transmitter) – Transformiše generisane podatke u oblik pogodan za prenos (npr. modem
digitalne podatke iz PC računara transformiše u analogni signal koji se može preneti preko PSTN)
 Prenosni sistem (tramission sistem) – može biti jednostavna linija ili kompleksna mreža koja spaja izvor
i odredište.
 Prijemnik (receiver) – Prihvata signal iz prenosnog sistema i transformiše ga u oblik pogodan za prijem
 Odredište (destination) – prihvata prenete podatke

Sistem
Izvor Predajnik Prijemnik Odredište
prenosa

Slika 1: Model komunikacijskog sistema

Da bi komunikacija bila uspješna potrebno je definisati pravila i procedure kako bi se riješili mnogi problemi
bez kojih komunikacija ne bi bila moguća. Skup pravila kojih se pridržavaju strane koje komuniciraju naziva
se PROTOKOL. Protokol dakle treba da omogući uspješnu komunikaciju i definiše kako se pojedini zadatak u
postupku komunikacije treba riješiti.

Ključni zadaci koje treba riješiti u komunikacijskom sistemu su:

 Povezivanje (interfacing) uređaja na komunikacioni sistem – određivanje načina povezivanja uređaja


na mrežu.
 Generisanje signala (signal generation) – propagacija, regeneracija, domet itd.
 Sinhronizacija (synchronization) predajnika i prijemnika.
 Razmena podataka (exchange management) – prema odgovarajućem protokolu
 Otkrivanje i ispravljanje grešaka (error detection and correction) npr. kod slanja datoteka
 Kontrola toka (flow control) usaglašavanje brzine slanja i brzine prijema podataka
 Adresiranje i usmeravanje (addressing and routing) – čim postoje više od dva učesnika
 Oporavak (recovery) – mogućnost da se transfer podataka nastavi od mesta prekida
 Formatiranje podataka (message formatting) dogovor učesnika
 Zaštita (security), na prenosnom putu, autentičnost podataka
 Upravljanje mrežom (network management) – mreža je kompleksan sistem, koji ne radi sam po sebi.
Neophodno je mrežu konfigurisati, nadgledati (monitorisati), intervenisati i inteligentno planirati za
buduću namenu.

Uspješna komunikacija u računarskim mrežama zahtijeva riješevanje svih ovih zadataka.


Pa čak i ako riješimo ove zadatke u računarskim mrežama postoje određeni externi i interni
faktori koji mogu spriječiti uspješnost komunikacije.

Externi faktori koji utiću na uspjeh komunikacije su:

Kvalitet putanje između primaoca i pošiljaoca poruke – ako se komunikacija odvija na


oštećenoj, dotrajaloj ili zastarjeloj opremi može komunikacija biti neuspješna.
1
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Broj transformacija koje podatak doživi prilikom transporta – svaka komunikacija se oslanja
na određeni broj posredničkih uređaja. Posrednički uređaj ima zadaću da komunikaciju
proslijedi do narednog uređaja kako bi sadržaj komunikacije u svakom narednom trenutku
bio što bliži krajnjoj destinaciji. Svaki od posredničkih uređaja tu komunikaciju prihvati,
analizira i prosljeđuje dalje. Što je veći broj posredničkih uređaja svakako je i veća mogučnost
greške prilikom transporta.

Najbolji primjer ovog uticaja ovog faktora imamo kod igre „gluhih telefona“ u kojoj neko
osmisli neku poruku, šapne narednoj osobi u lancu i sve do krajnje osobe. Što je veći broj
osoba koje čine lanac to je veća mogučnost da na kraju ta poruka bude promjenjena.

Broj promjena putanja poruke prilikom isporuke – svaka komunikacija se realizuje


korištenjem većeg broja putanja. Komunikacijski kanali koji se koriste za prenos podataka se
često u toku transmisije mijenjaju, tačnije ako određeni link postane zagušen, ostatak
saobraćaja će biti preusmjeren na novu putanju do destinacije. Sav saobraćaj koji je do tada
poslan može biti pogođen zagušenjem na način da nikad ne dođe do destinacije, što rezultira
neuspješnom komunikacijom.

Broj drugih poruka koje se u isto vrijeme prenose preko mreže - komunikacijski linkovi se
nikada ne koriste samo za jednu transmisiju nego se dijeli sa velikim brojem drugih hostova.
Ako se na linku pojavi velika količina saobraćaja link se može zagušiti i ako neka dva računara
naprave zagušenje na linku, svi drugi koji koriste isti link će biti također pogođeni ovim
problemom.

Vrijeme koje je odvojeno za tu komunikaciju – Da bi komunikacija bila uspješna potrebno je


da se hostovima u komunikaciji osigura dovoljno vremena da generišu saobraćaj, ali u isto
vrijeme drugim hostovima da prihvate sadržaj komunikacije. Ako je ovo vrijeme prekratko
onda je komunikacija nemoguća.

Zamislite situaciju da razgovarate sa osobom koja priča jako brzo, moguće je da ćete bit u
stanju pratiti komunikaciju na samom startu, ali vremenom to necete bit u stanju pratiti.

Pored externih faktora tu su i interni faktori. Interni faktori koji utiću na uspješnost
komuniciranja uključuje

Veličina poruke – prenos velike poruke povečava mogučnost greške prilikom transporta. Ako
želimo da kopiramo veliki fajl npr. dvd film veličine 4,7 GB sa jednog računara na drugi. Ako
bi pokušali da prenesemo ovako veliki fajl u cijelosti i nastupi greška prilikom transporta
posljednjih bita, bit će neophodno da se uradi retransmisija cijekoupnog fajla. Dakle bit će
potrebno prenijeti ponovo svih 4,7 GB. Ukoliko se ovaj veliki fajl podijeli na manje dijelove
onda će se raditi retransmisija posljednjeg dijelića. Iz ovoga vidimo da je komunikacija u
računarskim mrežama efikasnija ako podatak koji želimo da prenesemo podijelimo u manje
dijelove – segmente.

Kompleksnost poruke – Ako želimo da uradimo dijeljenje fajla kako bi što efikasnije prenijeli
podatak onda moramo dodati kontrolne informacije koje će omogučiti rekonstrukciju
podatka u izvornu formu. Time ne prenosimo samo podatke nego i dodatne informacije
koje se dodaju tim podacima. Na ovaj način se povečava kompleksnost poruke. Što je veći 2
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

broj kontrolnih informacija to se povečava kompleksnost poruke i time mogučnost da dođe


do greške kod prenosa podataka veća.

Važnost poruke – Računarske mreže imaju za cilj podršku poslovanju. Kada posmatramo
kategorije saobraćaja koje se kreću kroz našu računarsku mrežu možemo zaključiti da
nemaju sve kategorije jednak značaj za poslovanje. Npr. imamo recimo web saobraćaj koji
generiše neki uposlenik, a s druge strane imamo recimo online konferenciju managementa
kompanije. Upotrebom QoS (Quality of Service) mi možemo da favoriziramo određene
kategorije saobraćaja i tim dati toj komunikaciji prednost u korištenju komunikacijskog
kanala nad drugim kategorijama saobraćaja.
Primjer prioritetiziranja imamo i u običnom drumskom saobraćaju, gdje vozila posebno
označena imaju prednost korištenja druma npr. vozila hitne pomoći, vatrogasci i sl.

Na osnovu ovih faktora možemo zaključiti da je kod prenosa podataka najbolje rješenje da se
podaci prije slanja na računarsku mrežu podijele u manje mnogo dijelove sa kojima je lakše
upravljati. Pored činjenice da je usljed greške prilikom transmisije mnogo lakše uraditi
retransmisiju manje količine podataka, segmentacija omogučava i drugim korisnicima na
mreži da pošalju svoje podatke.

Slika 1: Segmentacija i multipleksiranje u računarskim mrežama

Na slici vidimo dva korisnika koji šalju podatak na server. Ova korisnika koriste isti
komunikacijski link kako bi komunicirali sa serverom. Ako bi slali podatak u cijelosti bez
segmentacije onda bi se desilo da samo jedan korisnik u datom trenutku može slati podatak i
to bi trajalo sve dok taj korisnik ne završi svoju transmisiju. Svi drugi bi morali čekati da on
završi kako bi nakon što se komunikacijski link oslobodi oni mogli slati svoje podatke.
Zahvaljujući segmentaciji ovi korisnici bi naizmjenično slali svoje djeliće, a obzirom da bi to
radili jako brzo oba korisnika dobijaju osječaj da oni ustvari u isto vrijeme koriste mrežu.
Ovdje se koristi nešto što je poznato kao multipleksiranje jer imamo situaciju kada veći broj
ulaza prosljeđujemo na jedan izlaz. Multpipleksiranje je jedan jako bitan proces u
računarskim mrežama, i koristi se ne samo na nivou mreže nego i na nivou samog računara.
Uzmimo na primjer računar na kojem imamo pokrenuto nekoliko aplikacija koje koriste
mrežu. Nama je poznato da u jednom trenutku može biti samo jedan signal a opet kada
3
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

koristimo računar vidimo da nekoliko aplikacija pristupa i koristi mrežu. Kako je to moguće.
Odgovor je opet u činjenici da se svaka komunikacija segmentira na manje dijelove i
multipleksira.

Slika 2: Multipleksiranje na nivou loklnog računara.

U jednoma trenutku samo jedna aplikacija šalje svoj segment na mrežu zajedničkim
komunikacijskim linkom koristeći tehniku multipleksiranja, ali obzirom da se to dešava jako
brzo mi imamo lažni osječaj da sve aplikacije koriste mrežu u isto vrijeme.

Segmentacija omogučava efikasniji prenos podataka kroz mrežu ali u isto vrijeme povečava
kompleksnost podatka koji treba poslati obzirom da sa svakim segmentom moramo osigurati
dovoljno kontrolnih informacija koje bi podatak vratile u izvornu formu kakav je krenuo od
izvorišne aplikacije.

Kako bi shvatili kako komunikacija teče i prepoznali probleme u računarskim mrežama


oslonit ćemo se na slojevite modele OSI i TCP/IP model.

OSI model

Open System Interconncet – OSI referentni model, objavljen 1984 godine, je deskriptivni
mrežni model koji je kreirao ISO1 (International Organization for Standardization) . Nastao kao

1
ISO – International Standard Organization, međunardno tijelo za standarde, više
informacija možete naći nasajtu http://www.iso.org/ 4
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

potreba definisanja standarda u polju računarskih mreže. Prije standardizacije u polju


računarskih mreža je postojala velika raznolikost različitih propriatery rješenja koja
međusobno nisu bila u stanju da ostvare kompatibilnost. On je omogučio proizvođačima sa
setom standarda koji osiguravaju veću kompatibilnost i interoperabilnost između različitih
mrežnih tehnologija kreiranih od kompanija diljem svijeta.

Prednosti koje donosi OSI modela su:

Reducira kompleksnost - Zadatak prenosa podataka je razbijen na nekoliko manjih mnogo


jednostavnijih zadataka. Ovo omogučava fokusiranje na unapređenje metoda riješavanja
pojedinih zadataka a ne cijele komunikacije.

Standardizira interfejse – obzirom da su definisani zadaci na svakom sloju, tačno su


definisani interfejsi preko kojeg komuniciraju slojevi. Tačno se zna šta je ulaz a šta izlaz na
pojedinom sloju OSI modela, odnosno kako i na koji način komuniciraju pojedini slojevi.

Dolazi do pojave modularnog inžinjeringa – proizvođači se sada mogu fokusirati na


rješavanje samo pojedinog zadatka na pojedinom sloju i unapređenju pojedinih
funkcionalnosti a ne mreže u cjelini.

Osigurava interoperabilne tehnologije – obzirom da su unaprijed definisane forme podatka i


zadaci koji se nad njima izvršavaju, nove tehnologije mogu jednostavno da se povežu na
postojeće i time osigura interoperabilnost.

Ubrzava evoluciju – Zahvaljujući slojevitom pristupu dolazi do bržeg razvoja računarskih


mreža.

Pojedostavljuje učenje i shvatanje komunikacije u mrežama, tako što se uče sve faze kroz
koje prolaze hostovi na mreži koji međusobno ostvaruju komunikaciju.

Osi model se sastoji od 7 slojeva, gdje svaki adresira određeni segment komunikacije.

Physical – fizički sloj definiše električne, mehaničke, proceduralne i funkcionalne specifikacije


u cilju aktiviranja, održavanja i prekidanja fizičkog linka između izvora i destinacije. Fizički sloj
definiše voltažne nivoe, tajming – vremenske intervale u mrežama, fizičku propusnost,
maksimalnu udaljenost na koju možemo prenijeti signal, izgled i strukturu konektora te
njihov način spajanja.

Data Link - Direct Link Control i Pristup mediju, osigurava pouzdani prenos podataka preko
mrežnog medija. Različiti protokoli na Data link sloju (ethernet, token ring i sl.) definišu
različita pravila za fizičko adresiranje, mrežnu topologiju, provjeru greške i sl. Fizičko
adresiranje definišu kako uređaji mogu biti adresirani u lokalnom segmentu ( next hop
adresiranje ). Ovaj sloj se sastoji iz dva pod sloja LLC pod sloj se brine za prihvatanje
podataka sa visočijih slojeva, njihovu enkapsulaciju u frejm i identifikaciju protokola koji će
biti enkapsuliran. MAC pod sloj brine za fizičko adresiranje, provjeru grešaka pri transportu
podataka i slanje tog frejma prema mediju.

5
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Network – mrežni sloj, na kojem se vrši logičko adresiranje. Logičko iz razloga što
administrator zadaje adresnu šemu. Primjer logičkog adresiranja je IP adresiranje. Na osnovu
IP adresa moguća je selekcija najbolje putanje do destinacijske mreže.

Transport – transportni sloj, omoguičava ostvarivanje krajnjih konekcija, brine se


transportom podataka između hostova, pouzdan transport podataka, uspostavljanje,
održavanje i prekidanje virtuelnih circuits (virtualnih krugova), detekcija grešaka i sl.

Session – sesijski sloj, uspostavlja, održava i prekida sesije između aplikacija. Komunikacijska
sesija se sastoji od slanja zahtijeva za određenim servisima između aplikacija koje se nalaze
na različitim hostovima.

Presentation – prezentacijski sloj, osigurava da podaci budu čitljivi sistemu kojem su oni
namjenjeni, formatiranje podataka, strukturu podataka, dogovor sa drugom mašinom oko
sintakse transfera podataka za aplikacijski sloj.
Primjeri čestih načina prezentacije podataka su ASCII i EBCDIC ili kada su u pitanju grafički
formati onda GIF, JPEG, PNG i sl.

Application – aplikacijski sloj, osigurava mrežne servis aplikacijskim procesima, kao što je e
mail, fajl transfer i emulacija terminala.

Pored OSI modela, postoji i TCP/IP model koji je više fokusiran na protokole i njihove funkcije
od OSI modela koji adresira sve faze neke komunikacije.

TCP model

Američko ministarstvo odbrane (DoD) je kreiralo TCP/IP referentni model, zato što su htjeli
da dizajniraju mrežu koja bi mogla funkcionisati u svim uslovima uključujući i nuklearni rat.
Ministarstvo odbrane je htjelo pouzdanu transmisiju paketa svaki put i pod bilo kakvim
uslovima. Ovaj težak zahtjev rezultirao je nastankom TCP/IP modela. Za razliku od
proprietary mrežnih tehnologija koje su spomenute ranije, TCP/IP je razvijen kao open
standard. Ovaj model rezultirao je najvećom popularnosću TCP/IP suita (skupini) protokola i
upravo zahvaljujući tome moguća je komunikacija između svih platformi (Linux/Unix,
Windows, MacOS).

TCP/IP model ima 4 sloja (sloja):

1. Aplikacijski sloj
2. Transportni sloj
3. Internet sloj
4. Mrežni pristupni sloj

Iako neki od slojeva u TCP/IP modelu imaju isti naziv kao i u OSI modelu ova dva modela nisu
potpuno identični. Najveća razlika je u aplikacijskom sloju. Dizajneri TCP/IP smatrali su da bi
aplikacijski sloj morao obuhvatiti i OSI sesijski i prezentacijski sloj. Oni su kreirali aplikacijski
sloj koji se brine za reprezentaciju, šifriranje i kontrolu dialoga izmenu aplikacija. Ovo je u
realnosti zaista implementirano u Aplikacijama, na primjer kada surfamo Internetom,
koristimo neki od Internet preglednika (browser - a). Kada ukucamo neko ime domene
npr. www.fit.ba preglednik (aplikacija) inicira pokretanje sesije, brine se za prezentaciju 6
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

podataka i na kraju za prikaz krajnjeg rezultata na display – u korisničkog monitora. Dakle,


aplikacije zaista obuhvataju funkcionalnosti ova tri sloja (aplikacijski, prezentacijski i sesijski),
zbog toga su ovi slojevi integrisani u jedan sloj TCP/IP modela.

Transportni sloj je zadužen za pouzdan prenos. On obezbjeđuje pouzdanost, kontrolu


protoka i korekciju grešaka između krajnjih čvorova. Jedan od protokola, Transmission
Control Protocol (TCP), osigurava pouzdan i bez grešaka prenos podataka između krajnjih
čvorova.
TCP je konekcijski orijentisan protokol. Ovaj protokol prihvata podatke od aplikacijskog sloja,
dijeli tu komunikaciju na manje dijelove (segmente) i dodaje kontrolne informacije. Svrha
dodavanja kontrolnih informacija je da se osigura pouzdan prijenos, do destinacije i
mogućnost da se ta poruka ponovo pretvori u formu u kojoj je krenula od izvorišne
aplikacije.

Svrha Internet sloja je da enkapsulira TCP ili UDP segment u paket te da mu doda
kontrolne informacije Internet sloja. Ove informacije se odnose na logičko adresiranje na
osnovu kojih se vrši selekcija putanja kojim će paketi putovati. Paketi mogu putovati istim ali
i različitim putanjama, u zavisnosti od trenutnog stanja u mreži. Specifični protokol koji
upravlja ovim slojem jeste Internet Protokol (IP). Ovaj sloj određuje optimalnu putanju do
odredišta i vrši packet switching2. Jako važnu ulogu u komunikaciji ima interakcija između
transportnog i intertnet sloja (TCP/IP) . IP prenosi pakete optimalnom putanjom dok TCP
osigurava pouzdan transport između izvora i pošiljaoca.

Network access sloj se još naziva i „Host to network“ sloj. Ovaj sloj je zadužen za
fizičke i logičke komponente koje su neophodne za ostvarivanje linka. Uključuje detalje
mrežne tehnologije, a obuhvata fizički i data link sloj OSI modela. U realnom životu ova dva
sloja funkcionišu kao cjelina, a tipičan primjer je mrežna kartica. Mrežna kartica prema svojoj
funkcionalnosti radi na 2. sloju OSI modela gdje se kreiraju frame – ovi u kojima se nalaze
MAC adrese izvora i destinacije. MAC adrese se nalaze utisnute u ROM čipu mrežne kartice i
jedinstveno identifikuje svaku karticu. Mrežna kartica je ta koja generiše signale koji onda
putuju kroz medije, a mediji i signali pripadaju fizičkom sloju OSI modela. Dakle funkcionalno
je opravdano povezati ova dva sloja u jedan koji bi predstavljao „pristup mediju“.

Kada govorimo o TCP modelu tada kažemo da je to protokol model, jer svoje
funkcionisanje i klasifikaciju bazira na različitim protokolima koje susrećemo u mrežama, a za
OSI model kažemo da je referentni jer adresira sve dijelove komunikacije.

Sljedeća slika prikazuje neke od karakterističnih protokola specificiranih sa TCP/IP


referentnim modelom.

2
Packet switching – predstavlja prihvatanje paketa na jedan interfejs i prosljeđivanje
paketa na drugi interfejs prema krajnjoj destinaciji. 7
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Slika: Interakcija protokola na pojedinim slojevima

Najčešće korišteni aplikacijski protokoli su:


• File Transfer Protocol ‐FTP
• Hypertext Transfer Protocol – HTTP
• Simple Mail Transfer Protocol – SMTP
• Domain Name System – DNS
• Trivial File Transfer Protocol – TFTP

Protokoli transportnog nivoa su:

• Transmission Control Protocol‐TCP (konekcijski orijentisan)


• User Datagram Protocol‐UDP (ne konekcijski orijentisan)

Protokol Internet sloja je:


• Internet Protokol IP

Protokoli Network access sloja su:


• Ethernet
• Token Ring
• FDDI
• PPP
• Wireless

Ako prikažemo oba modela vidjet ćemo slojeve i korespondirajuće funkcionalnosti

8
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Slika : Usporedni prikaz OSI i TCP/IP modela

Komparacijom OSI modela i TCP/IP modela se mogu uočiti neke sličnosti i različitosti.

Sličnosti uključuju:

• Oba modela imaju slojeve


• Oba modela imaju aplikacijske slojeve, iako oni uključuju različite usluge
• Oba modela imaju slične transportne i mrežne slojeve
• Oba modela se koriste u packet switching mrežama. To znači da individualni paket može
putavati različitim putanjama do istog primaoca

Različitosti uključuju:

• TCP/IP kombinuje prezentacijski i sesijski sloj u aplikacijski sloj


• TCP/IP kombinuje OSI data link i fizički sloj u network access sloj
• TCP/IP izgleda jednostavnije zbog manjeg broja slojeva
• TCP/IP protokoli su standardni i na bazi ovih protokola je razvijen Internet.

Obzirom da stalno govorimo o tome kako se za određene funkcionalnosi brine pojedini protokol i
da je komunikacija moguća jedino interakcijom određenog broja protokola, potrebno je da
vidimo šta je to protokol. Ranije smo rekli da je to skupina pravila koje se pridrzavaju strane u
komunikaciji, ali ovim ne vidimo kako to protokl radi i koja je njegova funkcija.

Funkcije protokola su:

 Da definišu strukturu poruke – na svakom sloju se riješava određeni zadatak koristeći


dodatne kontrolne informacije koje se dodaju na podatak ili na određenu formu podatka
koja dođe do određenog sloja.
 Da osigura informacije potrebne za daljnje prosljeđivanje poruke
 Kako i kada se razmjenjuju poruke o grešci
 Uspostavlja i terminira prenos podataka

Primjer i zadaću protokola možemo najbolje demonstrirati na sljedeći način:


9
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Zamislimo primjer kada imamo dva računara koji šalju podatke nešto poput obične sekvence
karaktera. Radi jednostavnosti primjera prenosimo slovo po slovo određene riječi npr.
“GORAN”.
Ova riječ se sastoji od 5 slova i svako slovo je predstaljeno sa 8 bita koristeći ASCII karakter
set. Dva računara nisu direktno povezani nego komunikacija teče preko velikog broja
posredničkih uređaja routera.

Izvorišna strana šalje slovo po slovo, ali pored samog podatka potrebno je poslati npr.
Trobitni identifikator pozicije slova u riječi jer kada slova stignu na drugi kraj ne mora značiti
da će stići po ispravnom redosljedu. Ovdje protokol defiše da se mora korisititi 3 bita da se
definiše koje je to slovo po redu. U našem slučaju slovo A = 65 = 0100 0001, a prema poziciji
to je 4 slovo = 100. Protokol je sad opet na redu da definiše da li prvo ide karakter pa
identifikator pozicije ili obratno. Da protokola nema moglo bi se desiti da se na izvorisnoj
strani pošalje poruka ovakve structure:
|xxx|xxxx xxxx| odnosno u našem primjeru 100 0100 0001 ( 4 pozicija karakter A)

A na destinacijskoj strani da se ta poruka pokuša interpretirati kao

|xxxx xxxx|xxx| odnosno u našem primjeru 1000 1000 001 ( karakter ˆ pozicija 1).

Ovaj primjer najbolje ilustruje koliki je značaj protokola odnosno cijelog protokol stack a / skupa
protokola koji međusobno ostvaruju interakciju kako bi komunikacija bila moguća. Interakcija
niza protokola se može vidjeti najbolje na primjeru surfanja.

Slika: Skup protokola koji omogučavaju upotrebu web servisa

Svaki protokol uradi specifični zadatak i oslanja se na usluge protokola koji je hijerarhijski ispod
njega npr. HTTP – salje zahtjev za web sadrzajem, TCP se brine da zahtijev i odgovor bude
pravilno isporučen do destinacijskog računara, IP se brine za identifikaciju računara (krajnjih
tačaka) u komunikaciji, ali i za odabir najoptimalnije putanje, Ethernet se brine da adresira
naredni uređaj koji komunikaciju treba da isporuči do krajnje destinacije.

10
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

ENKAPSULACIJA PODATAKA.

Kompletna komunikacija u mreži kreće od izvorišta prema destinaciji. Informacije se


razbijaju na manje dijelove kako bi se lakše transportovali do primaoca. Ako jedan
računar (host A) želi da pošalje podatke drugom računaru (hostu B), podaci moraju prvo
da prođu proces koji nazivamo enkapsulaciju. Enkapsulacijom se forma podatka sa
visočijeg sloja enkapsulira sa kontrolnim informacijama (u formi header –a3 i trailera4) na
datom sluju u novu formu podatka. Enkapsulacija podataka je prikazana na prethodnoj
slici.

Slika: Enkapsulacijski koraci nad podacima kroz slojeve

Kada podaci krenu, oni polaze od izvorišnog aplikacijskog sloja pa kroz sve slojeve na
izvorišnom računaru do aplikacije na destinacijskom računaru. Paket na izvorišnoj strani
doživljava promjene kako prolazi kroz slojeve, dodaju mu se informacije karakteristične
za dati sloj, inverzan proces se dešava na destinacijskoj strani gdje se te kontrolne
informacije uklanjaju i podaci se prosljeđuju na visočiji sloj, sve do destinacijske
aplikacije.

Enkapsulacijski koraci koji se izvode nad podacima su:

• Nastajanje podataka – Kako korisnik pošalje e mail poruku, alfanumerički podaci se


pretvaraju u podatke koji mogu putovati kroz mreže.

• Pakovanje podataka za transport – Podaci se pakuju za međumrežni transport.


Koristeći segmentaciju, transportni sloj osigurava da poruka na obe mreže pouzdano i
tačno stigne. Ne samo da se podaci segmentiraju, nego se dodaju informacije o broju
sementa (da bi destinacija mogla pravilno sastaviti segmente), destinacijski i izvorišni
port (kako bi destinacija znala koja će aplikcija odgovoriti na zahtijev za komunikacijom,
ali da bi znala i kome da pošalje odgovor).

• Dodavanje mrežne IP adrese u zaglavlje – Podaci se smještaju u datagram koji sadrži


zaglavlje sa izvorišnom i destinacijskom IP adresom. Ove adrese koriste mrežni uređaji

3
Header - zaglavlje, odnosi se na dodavanja kontrolnih informacija ispred podataka koje procesiramo, svaki
sloj dodaje u informacije karakteristične za taj sloj.

4
Trailler – odnosi se na dodavanje određenih podataka na sam kraj podataka koje procesiramo, karakteristično
za datalink sloj gdje se dodaje frame checksum, a koji ima ulogu provjeravanja da li je frame stigao ne
izmjenjen do krajnje destinacije.
11
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

da pošalju pakete preko velikog broja mreža do primaoca određenim putanjama. U


pitanju je end to end adresiranje.

• Dodavanje data link sloj zaglavlja i podnožja – Svaki mrežni uređaj enkapsulira paket u
frame. Svaki frame omogućava konekciju na sljedeći direktno spojeni uređaj na linku.
Svaki uređaj na izabranoj „mrežnoj putanji“ koristi frame kako bi se ostvarila veza sa
sljedećim uređajem.

• Konverzija bita za transmisiju ‐Frame mora biti konvertovan u sekvencu jedinica i nula
za transmisiju na medij. Clocking funkcija omogućava urenaju da razlikuje ove bite dok
oni putuju medijem. Medij tokom putanje kojom paket prolazi može biti različit.

Obrnut proces se dešava kod destinacijskog računara, tako da se poruka prezentuje u


izvornom formatu.

Da bi se što bolje upoznali sa funkcionisanjem mreže koristit ćemo software koji se zove
Wireshark5 ( ex. Etherael ).

Slika: Wireshark početni ekran

U pitanju je protocol analyser, ili paket sniffer, čija je glavna karakteristika da je u


stanju da hvata pakete koji izlaze ili ulazu na adapter lokalnog računara. Koristeći ovaj
software hvatat ćemo pakete analizirati ih i pokušati da dokažemo da je ono što smo
savladali na vježbama zaista tako.

Kada instaliramo wireshark i kada ga pokrenemo prvo je potrebno izabrati koji ćemo
adapter pratiti.

5
http://www.wireshark.org/ - home page ovog besplatnog programa 12
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Slika: Selekcija mrežnog adaptera preko kojeg želimo pratiti saobraćaj

Da bi selektovali interfejs potrebno je da kliknete na Capture i Options, ili možete


jednostavno koristit kraticu na tastaturi CTRL + K, trebalo bi da vam se otvori novi
prozor sa mogučnošću selekcije adaptera kao na slici. Nakon što selektujemo adapter i
kliknemo start automatski će krenuti sa evidentiranjem svakog paketa koji dođe do tog
interfejsa. Primjetit ćemo da naš računar stalno razmjenjuje neke informacije sa drugim
računarima, pa čak iako mi nismo inicirali nikakvu komunikaciju. Rekli smo da računari
koji su u lokalnom segmentu komunikaciju ostvaruju u direktnom komunikacijom. Dakle
potrebno je da računar nekako zna da li spada u istu mrežu sa destinacijskim računarom
ili ne. Za određivanje adrese mreže koristimo subnet masku pomoću koje računar
saznaje da li paket treba pokušati poslati direktno prema destinaciji ili za to treba uslugu
gatewaya. Pokušajmo razjasniti šta znači krenuti u direktnu komunikaciju sa
destinacijom. Svaki računar ali i host u mreži mora kreirati određenu referentnu listu koja
će mu pomoći u prosljeđivanju podataka. Kada govorimo o računarim u pitanju je routing
table ( tabela rutiranja). Kako možemo saznati ili da budemo precizniji vidjeti tu tabelu?
Ta tabela je u radnoj memoriji (RAM) računara, i kreira se onog trenutka kada računaru
dodjelimo TCP/IP konfiguracijske postavke kao što su: IP adresa, Subnet maska, GW i sl.
Routing tabelu računara moguće je vidjeti tako što u komandnom promptu ukucamo
komandu route print ( Start – RUN , ukucati CMD).

13
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Slika: Routing tabela koju koristi PC kod donošenja odluke gdje proslijediti signal.

Prije nego krenemo sa objašnjavanjem gore navedene routing tabele računara,


treba reći da je računar čiji je ovo output iz mreže 10.10.10.0 i da su mu konfigurisane
sljedeće TCP/IP postavke IP addressa 10.10.10.3 Subnet mask 255.255.255.224
Gateway: 10.10.10.1 Ako računar želi da komunicira sa računarima iz njegove mreže
10.10.10.0 sa subnet maskom 255.255.255.224 onda prema ovoj tabeli njegov gateway
je 10.10.10.3 (IP adresa računara) a taj gateway je dostupan preko interfejsa koji ima IP
adresu 10.10.10.3 (sopstveni interfejs). Ovo u suštini znači da će računar signal poslati
na svoju mrežnu karticu I ostvariti komunikaciju direktno sa destinacijom. U slučaju da je
destinacija recimo loopback mreža (127.0.0.0) računar će prema routing tabeli to poslati
prema next hop adresi (gateway) 127.0.0.1 što je loopback adresa (predstavlja lokalni
adapter), ta je adresa dostupna preko istog adaptera. Što odgovara našem znanju o ovoj
mreži, jer je to adresa rezervisana i predstavlja loopback adresu. Šta ako računar treba
poslati paket na mrežu koja se explicitno ne nalazi u routing tabeli, npr. mrežu
172.16.0.0? Tada računar koristi tzv. Defaultnu rutu koja je u ruting tabeli predstavljena
sa 0.0.0.0. Zapis u routing tabeli za defaultnu rutu kaže da ukoliko se pojavi potreba za
destinacijom koja nije navedena među rutama, pakete treba poslati prema IP adresi
10.10.10.1, što je defaultni gateway ili next hop adresa. Ova adresa je dostupna ako
paket pošaljemo preko adaptera koji ima adresu 10.10.10.3 (lokalni adapter). Dakle
vidimo da je ova tabela osnova koju računar koristi da proslijedi komunikaciju, bilo da je
u pitanju gateway ili računar iz iste mreže. A svaki računar ovu tabeli kreira na početku
inicijalizacije adaptera, tačnije svaki put kada dodjelimo IP adresu računaru.

Da svaki uređaj mora imati ovakvu jednu tabelu uvjerit ćemo se kada pogledamo
router, uređaji koji povezuje različite mreže. Prisjetimo se da je cijeli internet u osnovi
veliki broj ,mreža koje su povezane backbone routerima.

14
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

Slika: Tabela usmjeravanja – routing table

Ako pogledamo routing tablu vidimo šta će router uraditi kada primi paket za
mrežu 192.168.5.0. Ovaj zapis u ruting tabeli govori da je mreža 192.168.5.0 dostupna
za ovaj router ako paket pošalje prema adresi 10.10.10.6 odnosno signal treba poslati sa
svog Serial 0/1/0 interfejsa. Slično kao i kod računara, ako nema destinacijske mreže
koristit će defaultnu rutu, a ako je nema definisane, onda će jednostavno odbacivati
pakete za mreže koje nisu navedene u ovoj tabeli.

Rekli smo da prilikom procesa surfanja imamo nekoliko koraka, prvi je pretvaranje
logičkog imena domene u IP adresu, zatim se šalje komunikacija prema destinaciji
koristeći IP adresu. Ukoliko je IP adresa iz druge mreže, onda se komunikacija prvo šalje
gateway u a on dalje prosljeđuje prema destinacijskoj mreži ili računaru. Koristeći
wireshark uhvatit ćemo jednu ovakvu komunikaciju i pogledati da li se to zaista tako i
dešava.

U ovom primjeru smo otvorili stranicu www.sarajevo-x.com. Pa pogledajmo kako je ta


naša komunikacija tekla.

15
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

1. Vidimo da naš računar sa IP adresom 92.36.184.60 prvo traži od DNS servera


(195.222.32.10) informacija o IP adresi servera na kojem se hostira web stranica
sarajevo-x.com

2. U drugom koraku dobijamo odgovor na upit za tu domenu

3. Treći, četvrto i peti korak karakteriše uspostava sesije između izvora i destinacije kroz
tzv tree way handshake ( o tome će biti kasnije puno više govora kada budemo
spominjali TCP i UDP protokole na transportnom sloju)

4. Šesti korak je slanje HTTP zahtijeva GET za datom web stranicom.

U ovom primjeru primjetit ćemo da je u trećem koraku računar primjetio da je


destinacija u drugoj mreži i koristit će gateway kako bi proslijedio komunikaciju. Kliknimo
na 3. korak i pogledajmo sadržaj komunikacije. Primjetimo da je izvorišna IP adresa,
upravo adresa mog računara, a destinacijska adresa je IP adresa web servera na kojem
se nalazi ova web stranica. Računar je dakle prepoznao da komunikacija mora ići preko
gateway a, Da bi adresirao nex hop uređaj, kao što je u našem slučaju gateway naš
računar koristi MAC adresu. Dakle možemo reći da se IP adresiranje koristi za end to end
adresiranje a MAC adresiranje za next hop adresiranje. Pogledajmo da je zaista tako na
slici vidimo da je destinacjiska MAC adresa nekog uređaja Cisco_85:61:48 / u pitanju je
Cisco router sto je dakle gateway. Pogledajmo još neke stvari kada je ova komunikacija u
pitanju. Na izvorišnom računaru broj porta koja je aplikacija otvorila je 2427 a
destinacijski broj porta 80 (što smo mogli i očekivati jer je destinacija web server)

Slika: Wireshark – analiza informacija uhvaćenog paketa

Ostaje nam još da otkrijemo otkuda računaru MAC adresa gatewaya, pa isto kao što
računar ima routing tabelu, također kreira i MAC tabelu u kojima ima asocirane IP adrese
sa MAC adresama. MAC tabelu možemo vidjeti ako u komandnom promptu ukucamo arp
-a6. Ovu MAC tabelu računar popunjava tokom svog normalnog rada, ukoliko se desi da
računar nema informaciju o datoj MAC adresi on će koristeći ARP (Address Resolution
Protocol) poslati svim računarim u mreži upit koja je MAC adresa asocirana sa datom IP
adresom i tako će saznati tu informaciju. Napominjemo da se MAC adrese odnose na

6
Ako ovu vježbu budete radili sa recimo ADSL konekcije, onda će vam vjerovatno biti prazna MAC tabela zbog
specifičnosti koje prate PPP linkove. Ako vas interesuje na Internetu možete pogledati informacije o strukturi
frejma kod PPP linkova te načinu adresiranja sa MAC adresama 16
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba

lokalni segment i da se mogu saznati MAC adrese samo onih tzv. Next hop uređaja koji
su dostupni u direktnoj komunikaciji. I kako paket putuje do destinacije, svaki uređaj će
zadržati IP izvora i destinacije a modifikovat će next hop adrese.

Slika: ARP Cache na lokalnom računaru čuva parove IP i MAC adresa

Vidim da računar sa IP adresom 10.10.10.3 zna MAC adrese računara isključivo iz


lokalnog segmenta.

Kroz navedene primjere uvidjeli smo da se zaista komunikacija u mrežama odvija po već
objašnjenim pravilima. I ako pogledate svaki uhvaćeni paket sadrži ne samo IP i MAC
adrese nego i brojeve portova. IP adresa i brojevi portova definišu socket, dok par
socketa jedinstveno identifikuje jednu komunikaciju na mreži

17
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/

You might also like