Professional Documents
Culture Documents
Osnove Komunikacije
Osnove Komunikacije
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:
Sistem
Izvor Predajnik Prijemnik Odredište
prenosa
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.
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 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.
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
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.
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.
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.
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
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.
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.
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).
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
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.
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
8
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba
Komparacijom OSI modela i TCP/IP modela se mogu uočiti neke sličnosti i različitosti.
Sličnosti uključuju:
Različitosti uključuju:
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.
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)
|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.
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.
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.
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
• 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.
Da bi se što bolje upoznali sa funkcionisanjem mreže koristit ćemo software koji se zove
Wireshark5 ( ex. Etherael ).
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
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.
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
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.
15
Naziv predmeta::Predavanje::Vjezbe::Workshop
http://dl.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc goran@fit.ba
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)
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.
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/