Page 1
1.UVOD
PRIMJERI RAČUNARSKIH KOMUNIKACIJA
IP-mreţa (Internet)
mrežni protokol za prijenos podataka kojeg koriste izvorišna i odredišna
raĉunala za uspostavu podatkovne komunikacije preko raĉunalne
mreže.
Treba osigurati komunikaciju izmeĊu aplikacija na raĉunalima (host,
server)
Jedan od glavnih Internet protokola
Internet protokoli (TCP, UDP, IP) i ostali (z.B. Ethernet, WLAN)
Podaci u IP mreži se šalju u blokovima koji se nazivaju paketi ili
datagrami. prilikom slanja paketa izmeĊu izvorišta i odredišta se ne
odreĊuje unaprijed toĉan put preko mreže kojim će podaci prijeći, a
samim time se ne garantira da će poslan pakat zaista stići na odredište
Paket - Jedinica za prijenos preko mreže. Podaci koji putuju mrežom se
dijele na pakete, koji su pojedinaĉno šalju preko mreže.
Sam paket se u procesu prijenosa može promijeniti, može se promijeniti
redoslijed paketa u odnosu na ona redoslijed kojim su poslani s
izvorišta, može se duplicirati ili potpuno izgubiti tijekom prijenosa.
Ukoliko aplikacija zahtijeva pouzdanost, koriste se drugi mehanizmi ili
protokoli, najĉešće na sloju iznad samog IP protokola.
Infrastruktura se sastoji npr. iz ureĊaja za posredovanje (switch, router),
modema itd.
usmjerivaĉi(eng. router) - ureĊaji koji usmjeravaju pakete na njihovom
putu kroz raĉunalnu mrežu. Usmjerivaĉi povremeno mogu presložiti
redoslijed, promijeniti ili ĉak izgubiti pakete
Modem (prijevod od eng. modulate/demodulate) je ureĊaj koji modulira
digitalni signal u oblik pogodan za prijenos preko komunikacijskog
Page 2
kanala, a nakon prijenosa ga demodulira u izvorni oblik. Služi za
spajanje na Internet.
Switch je ureĊaj koji upravlja protok podataka izmeĊu dijelova lokalne
mreže (LAN). Za razliku odhub-a, switch dijeli mrežni promet te ga šalje
na odreĊena odredišta, dok hub šalje podatke na sve ureĊaje koji su u
mreži.
Sam IP protokol definira samo osnovne parametre razmjene paketa u IP
mrežama, kao što su adresiranje, izgled paketa i drugo
Povezivanje na osnovi kablova ili bežiĉno
Razlikovanje izmeĊu pristupne mreže i jezgre
Pristupna mreža (access network) je dio komunikacijske mreže koja
povezuje korisnika usluge sa poslužiteljem
Jezgrane mreže (core network) su centralni dio telekomunikacijske
mreže i pružaju razliĉite usluge korisnicima koji su povezani putem
pristupne mreže
Internet Service Provider (pružatelji mrežnih usluga)
Prespajanje – prosljeĊivanje podataka iz nekog ulaza na neki izlaz
USB – povezivanje PC-a sa perifernim ureĊajima
Serijsko povezivanje – podaci se prenose jedan za drugim
Korisiti se 8 bitova za ĉvor (adresa) => na 1 raĉ se može spojiti 127
USB-a
Periferni ureĊaj koji želi komunicirati sa PC-em mora dobiti specijalni
podatkovni sadržaj token i tek onda može slati podatke na sabirnicu
Umreţavanje u automobilu
Automobili srednje i gornje klase posjeduju oko 60 do 100 elektroniĉkih
upravljaĉkih ureĊaja (Electronic Control Units, ECUs) za koĉenje,
upravljanje, zabavu itd.
Page 3
Controller Area Network (CAN) je standardni komunikacijski protokol
� Posebni zahtjevi za pouzdanošću, reakcijom u realnom vremenu itd.
Svi ECU ureĊaji koriste 1 sabirnicu (prioriteti po hijerarhiji) a podaci se
razmjenjuju koristeći CAN
Centralni Gateway
Prikljuĉak upravljaĉkih ureĊaja (ECU) putem CAN sabirnica i ostalih
sabirniĉkih sustava (npr. FlexRay s višim brzinama, MOST s još višim
brzinama za zabavu)
Na ureĊajima (ECU) prikljuĉeni su ostale sabirnice kao npr. Local
Interconnect Network (LIN)
Kodiranje – definirati napon i ostale fiziĉke veliĉine
Kriptiranje – omogućuje da se podaci koji se šalju ne mogu tako lako izĉitati
Autentikacija – potvrda je da je onaj kojemu šaljemo podatke doista ta osoba
Potrebno je osigurati odreĊenu propusnost
Propusnost – vrijeme koje protekne od slanja do primanja podataka
Vrijeme kašnjenja kod nekih aplikacija igra ulogu u toj mjeri da ju je nemoguće
koristiti (pr. Interaktivne app – igrice)
A kod nekih nam kašnjenje ne igra bitnu ulogu pr. Primanje datoteke
Pouzdanost – pr. Imamo skup terminala koji postavljaju upite nad nekim web
serverom, a može se dogoditi da taj server ispadne iz sustava i ne može
odgovoriti na naše upite – nepouzdan je u takvoj situaciji
Ako nam server ispadne iz sustava onda bi mogli taj server replicirati na
nekom drugom serveru gdje bi se prosljeĊivali ti upiti
PREDNOSTI RAČUNARSKIH MREŢA
Pristup udaljenim podacima (pr. Web upit je moguće postaviti na raĉ.
Koje je udaljeno od našeg)
Page 4
Razmjena podataka
Upravljanje udaljenim ureĊajima
Zajedniĉko korištenje resursa
Povećanje uĉinkovitosti i tolerancije na pogreške (fault tolerance)
(odreĊeni gubitak možemo tolerirati a da ne utjeĉe na kvalitetu i sl.)
VAŢNOST RAČUNARSKIH MREŢA
znaĉajan rast njihovog broja i korištenja u posljednih 20 godina
Infrastruktura za sva podruĉja života: ured, uprava, obrazovanje,
zabava, e-commerce, proizvodnja, …
Mnogi (svi?) software-ski proizvodi zahtijevaju komunikaciju (i kod neke
jednostavne app kao što je obrada teksta postoji mogućnost da taj tekst
obraĊuje nekoliko korisnika povezanih mrežom)
ZNAČAJ INTERNETA
Globalna mreža raĉunarskih mreža
Najveća i najvažnija raĉunarska mreža
Sadržaj raĉunarskih komunikacija
Mrežne usluge na primjeru Interneta
Slojevi se prolaze odozgo prema dolje
Na svakom sloju se obraĊuju najvažniji mehanizmi vonraĉunarskih
mreža
KLASIFIKACIJA KOMUNIKACIJSKUH SUSTAVA
Oblici komunikacije:
1. Unicast (točka-točka): 1 pošiljatelj, 1 primatelj
Page 5
Pošiljatelj šalje neke podatke, a primatelj ih prima, pr. Slanje FTP
datoteke, najelemntarniji oblik
2. Multicast (točka-više točaka): 1 pošiljatelj, grupa primatelja
Potencijalno 3 primatelja, ali 3 nije u grupi, pr. slanje maila
3. Broadcast: podaci se šalju svim sudionicima na mreži pr. Radio,
televizija
4. Anycast: iz neke grupe možemo izabrati odreĊeni broj primatelja kojima
šaljemo podatke
NAČIN PRIJENOSA
Page 6
Smjer prijenosa:
1. simplex: jednosmjerna veza (podaci se šalju u jednom smjeru s lijeva
na desno)
2. polu-duplex: dvosmjerna veza sprespajanjem (podaci se šalju u
jednom smjeru nakon ĉega se izvrši prespajanje i tada se podaci šalju u
drugom smjeru
3. (puni) duplex: podaci se istovremeno razmjenjuju u oba smjera (pr.
telefon)
Multipleksiranje – korištenje 1 medija od strane više ureĊaja (pr. automobil)
FDM – podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
ureĊaj) prednost: svaki ureĊaj ima svoju frekvenciju, nedostatk: rasipanje
resursa – možda neki ureĊaj nema podatke za slati, a nekom drugom ureĊaju
je možda potreban njegov frekvencijski podpojas
TDM – cijeli frekvencijski pojas se stavi na raspolaganje 1 ureĊaju ali u
odreĊenom vremenu i tada ni jedan drugi ureĊaj ne može koristiti frekvencijski
pojas; prednost: kanal je u potpunosti iskorišten vremenski (popunjen je
podacima); nedostatak: podaci se ne mogu odmah obraditi
OBLICI KOMUTACIJE
1. KOMUTACIJA VODA
IzmeĊu pošiljatelja i primatelja se izgradi 1 kanal koji služi za
prijenos podataka (podaci se šalju istim putem)
Page 7
Bit rate
- raspoloživa koliĉina bitova koja se može prijenjeti
- fiksno se dijeli na kanle
prednosti: možemo definirati na koji se naĉin podaci prenose
(možemo odrediti pojedine parametre kao što je vrijeme kašnjenja
itd.)
nedostaci: princip relativno neefikasan, ĉim rezerviramo neki dio
on više nije na raspolaganju nekom drugom; resursi su zakupljeni
iako ne šaljemo podatke
2. KOMUTACIJA PAKETA
U pakete je smješten dio podataka koje primatelj želi primiti ili
poslati
Šalje se više paketa
Paketi dolaze na odredište neovisni jedni o drugom (mogu se slati
razliĉitim putevima)
Brzina bitova se uĉinkovitije dijeli ( ne rezerviraju se već se
stavljaju na raspolaganje onome tko treba slati)
Problem: u nekom trenutku se može pojaviti prevelika koliĉina
paketa pa se može desiti da se memorija prelije i da se dio paketa
izgubi (zbog premale memorije i prevelike koliĉine paketa) a isto
tako se može desiti i kašnjenje
STATIŠKO MULTIPLEKSIRANJE
Kapacitet mreže 10 mbps, vod ima kapacitet 1,5 mbps => pakete ne možemo
dovoljno brzo proslijediti na vod zato se podaci koji se ne mogu poslati
spremaju u buffer i ĉekaju da budu prosljeĊeni (statiĉka veliĉina koja pr ovisi o
memoriji).
Page 9
PRIJENOSNI MEDIJ
1. oţičen
- npr. bakrena žica, svjetlovod
- Brzine veze od nekoliko Kbps do nekoliko Gbps
- Brzina širenja signala kao dio brzine svjetlosti, c ≈
108 m/s = 200 m/μs
- Mala mogućnost pogreške, kod svjetlovoda npr. 10-10 (na
10 poslanih bitova 1 se pogrešno prenese)
2. beţičan
- npr. radio (zemaljski, satelitski)
- Velike mogućnosti pogreške zbog razliĉitih problema kod
širenjaradio-valova: 10-5 bis 10-2
- burst – kad se ĉitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr. PCI)
lokalne mreže (LAN)
- Nekoliko kilometara, brzina signala npr. 2,5 km/c = 12,5
Metropolitan Area Networks (MAN)
- Gradska podruĉja, 50-100 km
Wide Area Networks (WAN)
- globalno, brzina signala npr. 10.000 km/c = 50 ms
Brzina prijenosa
koliĉina bitova koje se može prenjeti u nekom vremenu
Od 56 Kbps za modem do nekoliko Gbps (svjetlovod, satelit)
Produkt brzine prijenosa i brzine signala daje koliĉinu podataka na vodu:
- R = 10 Mbps, d = 2,5 km: R x ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
Page 10
- ≈
TOPOLOGIJA (VRSTE MREŢA)
– naĉin rasporeĊivanja pojedinih komunikacijskih ureĊaja
1. bus – podatak koji prvi ĉvor šalje 4 prolazi kroz sve ĉvorove, ako se
prekine veza izmeĊu 2 ĉvora komunikacija je nemoguća
2. prsten – veza se ostavruje na naĉin da stanica koja želi slati podatke
treba dobiti token (postoji samo 1 i on kruži ), kada uhvati taj token onda
može slati podatke, komunikacija i dalje postoji iako se prekine veza
izmeĊu 2 ĉvora
3. zvijezda – komunikacija ide preko centralnog ĉvora; predost: ista
udaljenost izmeĊu 2 ĉvora; nedostatak: ako pukne veza u glavnom
ĉvoru komunikacija je nemoguća
Page 11
4. stablo – grananje iz jednog ĉvora u više njih, prednost: lako proširivanje
mreže, nedostatak: ako korijenski ĉvor postane neispravan svi ĉvorovi
koji proizlaze iz njega su neispravni
5. 2D-torus – koristi se unutar povezivanja paralelnih raĉunala, prednost:
poznata je maksimalna udaljenost izmeĊu 2 ĉvora
- Razlika izmeĊu paralelnih raĉ. I mrežnih raĉ. je u tome što kod
paralelnih raĉ imamo zajedniĉku memoriju koju nemamo u mreži
6. potpuno umreţena – prednost: svaki ĉvor je sa svakim direktno
povezan; nedostatak: puno kablova kod povezivanja
Page 12
PROTOKOLI
Mreţe računala su sloţene
mreže raĉ su složeni sustavi koje ĉine heterogeni ureĊaji kao što su
Periferni ureĊaji, usmjernici (router), vodovi, ...
u mreži se razmjenjuju poruke
potrebno je osigurati Mehanizme za osiguranje od pogrešaka, kontrolu
toka i opterećenja, adresiranje, prosljeĊivanje, pristup mediju, …
Protokoli
Osnovni princip strukturiranja
Definiraju format poruke (u kojem se nalaze kontrolni i korisniĉki podaci
kao što su adresa, br porta itd.) i ponašanje sudionika komunikacije
Format poruke – reĉi koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr. ponašanja – kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
Page 13
Na svakom sloju se definira pojedini protokol
gornji sloj koristi usluge sloja ispod (pr. 1. sloj koristi usluge 2. sloja), a
te usluge se nude na mjestu Service Access Point (SAP), SAP je na
svakom sloju drugaĉije definiran ( dakle SAP je mjesto gdje gornji sloj
može zatražiti usluge sloja ispod), pri ĉemu se podaci predaju pakirani
kao Service Data Units (SDUs).
Instance sloja n na razliĉitim raĉunalima razmjenjuju Protocol
DataUnits (PDUs), svaki PDU sadrži zaglavlje (Header)
PDU sloja N postaje SDU sloja N-1
Port je jedan SAP transportnog sloja
Pr. app 1 šalje podatke app2. da bi se podaci poslali oni prolaze kroz 5
slojeva (Aplikacijski sloj, Transportni sloj, Sloj mreže, Sloj veze i Fiziĉki
sloj). Aplikacijski sloj će generirati podatke i zatražiti će uslugu
Transportnog sloja na SAP-u gdje će svoju podatke predati kao SDU.
Nakon što je transportni sloj zaprimio taj SDU on ne razumije unutarnju
strukturu podataka u SDU već na taj SDU dodaje svoje zaglavlje (pr. broj
porta) i time taj SDU sa zaglavljem postaje PDU transportnog sloja. Taj
PDU se prosljeĊuje sloju mreže kao SDU jer opet ovaj sloj ne razumije
unutarnju strukturu podataka u SDU pa opet na taj SDU nadodaje svoje
zaglavlje i prosljeĊuje sloju veze koji opet generira svoj PDU. putem
fiziĉkog sloja se podaci prosljeĊuju do sloja veze koji ĉita svoje zaglavlje u
PDU vrši odreĊene akcije i preostale podatke šalje sloju mreže koji ĉita i
odstranjuje svoje zaglavlje i prosljeĊuje do transportnog sloja koji ĉita i
odstranjuje svoje zaglavlje te app sloju prosljeĊuje izvorne podatke app1.
(korisniĉki podaci). Podaci se šalju putem ureĊaja pr. switchevi ili ruteri.
Page 14
ISO Open Systems Interconnection (OSI)
Raširena terminologija
Komunikacija se vrši kroz istance
Usluga: što istanca nudi; sliĉno javnom suĉelju kod komponente
softvera
Page 15
Protokol: mora definirati kako se istance integriraju radi realizacije
usluge; definira format poruke i pravila ponašanja; opisuje
implementaciju ali ju ne nudi
Sloj: skup istanci
OSI model prikladan je za logiĉki model komunikacije
OSI model sastoji se od 7 slojeva i svaki sloj ima definiran svoj PDU
1. fizički sloj – definira mehaniĉke, elektriĉne i proceduralne
karakteristike prijenosa bitova
2. sloj veze – definira pristup mediju i siguran prijenos okvira:
sinkronizacija okvira…
3. sloj mreţe – definira prijenos paketa: izgradnja veze, usmjeravanje,
upravljanje resursima…
4. transportni sloj – definira pouzdani prijenos segmenta „s kraja na kraj“
5. sloj razgovora – treba osigurati komunikaciju izmeĊu app
6. sloj prikaza – sintaksa i semantika razmijenjenih podataka
7. aplikacijski sloj – tu se realizira komunikacija aplikacijskih procesa sa
specifiĉnim app informacijama
Arhitektura slojeva u Internetu
1. Aplikacijski sloj
Mrežni servisi (HTTP, FTP, …)
2. Transportni sloj
Transport segmenata izmeĊu aplikacija
(TCP,UDP)
3. Sloj mreže
Datagrami izmeĊu raĉunala preko
usmjerivaĉa(router),prosljeĊivanje,
Page 16
usmjeravanje (routing)
4. Sloj veze
Okvir izmeĊu susjednih ureĊaja, pristup mediju
5. Fiziĉki sloj
definira Binarne formate i postupke modulacije
Implementacija protokola
Slojevi ispod app sloja su najĉeće dio operacijskog sustava; usluge
transportnog sloja je moguće koristiti kroz sistemske pozive OS; većina
programskih jezika nudi odgovarajući API (Application Programming
Internet) npr. objekti i metode u Javi; u OS postoje razliĉite mogućnosti
realizacije, radi bolje uĉinkovitosti se izbjegava višestruko kopiranje SDU-ova
kod prosljeĊivanja pa se umjesto toga koristi „Copy by reference“
OS Layer otimizacija : striktno razdvajanje u slojeve se u stvarnosti ĉesto ne
koristi, npr. radi bolje uĉinkovitosti se katkad povezuju mehanizmi 2 sloja.
Opis protokola
protokoli specificirani u dokumentima organizacija za standardizaciju
neformalan opis: uobiĉajen kod IETF
formalan opis
format poruka: sliĉno strukturama podataka u programskim
jezicima, npr. Abstract Syntax Notation One (ASN.1) kod ISO
scenariji: tipiĉni tokovi razmjene poruka, npr. Message
Sequence Chart (MSC) kod ITU ili dijagrami sekvenci u UML (pr.
scenarija je uspješno slanje paketa, gubitak paketa)
ponašanje instanci: automati, npr. Specification and
Description Language (SDL) kod ITU ili statecharts u UML
Opis protokola u računarskim komunikacijama
Page 17
najĉešće neformalan
scenariji (neformalno)
Kvaliteta usluge (Quality-of-Service, QoS)
opisuje kvantitativne aspekte mreža raĉunala i njihovih protokola, npr.:
vrijeme odgovora (npr. na reakciju servera)
propusnost (koliĉina prenesenih podataka u vremenskoj
jedinici)
rata gubitaka i pogrešaka (npr. paketa u mreži kod bežiĉnog
prijenosa)
Page 18
raspoloživost (vrijeme u kojem je sustav spreman za rad,
npr. ako je server 99.99% vremena raspoloživ, onda 4,32
minute u mjesecu nije raspoloživ)
Važno za izbor i konfiguraciju mrežnih arhitektura i protokola
mogućnosti: mjerenje (odnosi se na postojeći sustav), (stohastiĉka) analiza,
simulacije (za to treba imati neki model)
Podrška kroz odgovarajuće programske alate
Kvantitativni aspekti bi trebali biti vezani uz vrstu mrežnih app za koje se
koriste
Povijest
Važniji dogaĊaji:
prije 1970. godine: telefonska mreža s komutacijom vodova
u 60-im godinama: prvi koncepti podatkovnih mreža s komutacijom
paketa, primjena u vojne svrhe, povezivanje velikih raĉunala
u 70-im godinama: ARPAnet, lokalne mreže zasnovane na sluĉajnom
pristupu (Aloha, Ethernet), Internetworking
u 80-im godinama: razvoj protokola kao TCP/IP, SMTP, DNS, FTP,
primjena uglavnom u znanosti
U 90-im godinama: razvoj aplikacijskih protokola kao HTTP, široka
upotreba web-browsera, komercijalizacija, preko 100 milijuna korisnika,
sigurnost postaje važan problem, prve bežiĉne mreže (WLAN)
od poĉetka 2000.: crash na burzi, daljni rast, nove aplikacije kao npr.
Internet telefonija, peer-to-peer sustavi, Web2.0, nove bežiĉne mreže
(Bluetooth, ZigBee, Wimax)
Organizacije za standardizaciju protokola:
Page 19
International Standards Organization (ISO)
- meĊunarodni standardi
- nacionalni: American National Standards Institute (ANSI),
...
International Telecommunications Union (ITU)
- telekomunikacijski standardi
- ITU-T (Telecommunications Sector, ranije CCITT)
- ITU-R (Radiocommunications Sector)
European Telecommunications Standards Institute (ETSI)
Internet Engineering Task Force (IETF)
- Request for Comments (RFCs)
Institute of Electrical and Electronic Engineers (IEEE)
- industrijski forumi za brži razvoj i certifikaciju
interoperabilnih proizvoda
- World Wide Web Consortium (W3C), Object Management
Group (OMG), MPLS Forum, WiFi Alliance, Bluetooth
Special Interest Group, ZigBee Alliance, Wimax Forum, …
2. APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- E-Mail
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
Page 20
Primjena mreţa
- Korisniĉki procesi na razliĉitim raĉunalima (host-ovi), koji u mreži
komuniciraju porukama
- Može se direktno implementirati korištenjem usluga transportnog sloja
- standardne aplikacije koriste neki aplikacijski protokol koji definira
format poruka i proceduru kod njihovog primitka
- Npr.: Web-Browser i Web-Server
- Donji slojevi i jezgra mreže ne zahtijevaju poznavanje aplikacije
- Jednostavna primjena, velika dinamika
Client-Server-Paradigma
Komunikacija na mreži se uspostavlja izmeĊu 2 osnovna tipa: client i server
- Server nudi uslugu koju traži client
- Uobiĉajena paradigma mnogih “tradicionalnih” aplikacija, kao
npr. Web-Browser i Web–Server
- Tipična svojstva server-a:
- učinkovit – da nam odgovor doĊe u realnom vremenu
- uvijek raspoloživ – ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a:
- Samo povremeno na mreži – na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om, ne meĊusobno!
Client-Server-Paradigma je centralizirana arhitektura – u pravilu je 1 server i
više client-a, a taj server predstavlja centralnu jedinicu
Nedostatak: ako server nije dostupan nema ni usluge
Ostale paradigme
Page 21
- Promjenjiva uloga client-a i server-a: raĉunala preuzimaju
katkad jednu, katkad drugu ulogu Npr. Pozivamo neku web
stranicu preko web servera, taj server nam ne uĉita traženu
stranicu već upit proslijedi nekom drugom serveru( server postaje
client onda kada je zatražio uslugu drugog servera)
- Distribuirana aplikacija: sastoji se iz više nezavisnih aplikacija
koje skupa izgledaju kao jedna jedinstvena aplikacija (npr.
WebShop s Webserver- om, aplikacijski server i baza podataka)
- decentralna arhitektura: autonomni sustavi (npr. Peer-to-Peer
aplikacije kao Gnutella, Chord) sustavi bez servera (serverless)
- hibridna arhitektura: takoĊer autonomni samo što je za
inicijalizaciju potrebna neka centralna arhitektura, dok se
aplikacija izvodi decentralno izmeĊu raĉunala (npr. neke Peer-to-
Peer aplikacije kao Bittorrent)
VARIJANTE CLIENT – SERVER
Ne poistovjećuju se sa raĉunalom jer se na 1 raĉunalu može izvoditi nekoliko
servera
Page 22
Organizacija se sastoji od komponenti : KS (korisničko sučelje), A
(aplikacija), BP (baza podataka)
Postoji 5 mogućnosti CLIENT – SERVER organizacije (prikazano na slici)
1. MOGUĆNOST ( ORGANIZACIJA TC – FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS, cijela A i cijela BP
TC – prednost : manje korištenje resursa clienta naspram serveru;
nedostatak :ako nemamo vezu ne možemo raditi ništa jer se cijela A i BP
nalaze na strani servera
FS – lakše kontroliranje sigurnosti i integriteta podataka; nedostatak -
preveliko opterećenje servera
Page 23
primjer ovakve org. je studomat, bankovni sustavi
2. MOGUĆNOST
Na strani clienta cijelo KS, a na strani servera cijela A i cijela BP (pr.
remote desktop)
3. MOGUĆNOST
Na strani clienta cijelo KS i dio A, a na strani servera preostali dio A i cijela
BP
4. MOGUĆNOST
Na strani clienta cijelo KS i cijela A, a na strani servera cijela BP
5. MOGUĆNOST (ORGANIZACIJA FC-TS)
Na strani clienta cijelo KS, cijela A i dio BP, a na serveru preostali dio BP
FC – prednost: mrežne resurse možemo koristiti bez obzira da li smo u
komunikaciji sa serverom (zbog podjele BP-a); Nedostatak: zahtijeva velike
resurse
TS – prednost : manje korištenje resursa; Nedostatak: podjela baze – ako
ažuriramo podatak na strani clienta moramo i na strani servera kako bi se
oĉuvao integritet podataka
Primjer: kasa u trgovini
Da bi aplikacija mogla komunicirati sa drugom app koristi usluge
transprtnog sloja
Page 24
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1. TCP: orijentiran na vezu, pouzdan
„Orijentiran na vezu“ (conection – oriented) prije slanja podataka se gradi veza
(dogovaranje komunikacijskih parametara)
FAZE:
1. graĊenje veze (dogovaranje parametara kao što su put kojim će se slati
paketi, veliĉina buffera u pojedinim ruterima itd.
2. slanje i primanje podataka
3. raskidanje veze
U 1. fazi rezerviramo odg. resurse a u 3. fazi ih oslobaĊamo da netko drugi
može slati podatke
Kad dogovaramo parametre prijenosa možemo postići da se paketi šalju
unutar toĉno odreĊenog vremena ili da je vremenski razmak izmeĊu paketa
uvijek isti; u vezi s tim vremenima je i pouzdanost( da paketi doĊu na
vrijeme)
2.UDP: nije orijentiran na vezu, nepouzdan
„Ne orijentiran na vezu“ (Conectionless) – ne gradi vezu, kad imamo
podatke za slanje onda ih šaljemo, za razliku od TCP-a gdje dogovaramo
put kojim će se paketi slati ovdje se ništa ne dogovara i paketi se mogu
slati razliĉitim putevima.
U nekim sluĉajevima ovo može biti i prednost pr. ako pukne veza izmeĊu 2
rutera kroz koje moraju proći paketi jer je tako definirano korištenjem TCP
paketi neće biti primljeni, a korištenjem UDP-a paketi se mogu slati nekim
drugim putem kroz neke druge rutere pa će biti primljeni.
Page 25
Nepouzdan je zato što svi paketi ne dolaze istim putem, neki se mogu
izgubiti, a ako je memorija rutera puna neki paketi mogu biti uništeni
Obiĉno realizirane u operacijskom sustavu
Većina operacijskih sustava nudi tzv. socket sučelje, realizirano u
programskim jezicima
socket sučelje je jedna od najosnovnijih tehnologija za umrežavanje
raĉunala, a olakšava komunikaciju izmeĊu app koristeći standardne
mehanizme ugraĊene u mrežu hardvera i operacijske sustave
Sa socket-ima moguće je definirati:
- Transportni protokol (TCP ili UDP)
- IP-adresu izvornog i odredišnog raĉunala
- Brojeve port-a (za razlikovanje aplikacija u raĉunalima)
Tako je moguće programirati aplikacije …
Kvantitativni zahtjevi aplikacija
Gubitak
- Ne može se tolerirati kod prijenosa datoteka, online bankarstva itd.
- Djelomiĉno se može tolerirati u multimediji
Brzina veze
- tradicionalne aplikacije kao FTP, e-mail i HTTP ne zahtijevaju fiksnu
brzinu veze (bit rate), ali je “bolje” ako imaju veliku brzinu veze
- Multimedija u realnom vremenu zahtijeva donju granicu kod brzine
veze
Vrijeme kašnjenja
- Tradicionalne aplikacije ne zahtijevaju maksimalno vrijeme kašnjenja,
ali su takoĊer “bolje” kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
Page 26
- Upravljanje tehniĉkim ureĊajima ĉesto zahtijeva garanciju neke
gornje granice kod vremena kašnjenja
Neki aplikacijski protokoli i pripadni transportni protokoli
Najčešće aplikacije
Page 27
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
E-Mail
Upravljanje mrežama (Network management)
Domain Name System (DNS)
HTTP (Hypertext Transfer Protocol)
Protokol za web
Procedura
Korisnik unosi Uniform Resource Locator (URL) u Web-Browser
Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)
koji specificira da li je identificirani resurs slobodan i mehanizme za
preuzimanje tog resursa
URL sadrži ime raĉunala nekog Web-servera i stazu prema nekom
objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj
objekt
Web-Server vraća objekt Webbrowser-u
Web-Browser prikazuje objekt u korisniku ĉitljivom obliku (podaci su
najĉešće zapisani u HTML dokumentu koji se prikazuju u obliku ĉitljivom
korisniku)
2. vrste HTTP poruka:
1. HTTP REQUEST
2. HTTP RESPONSE
1. HTTP REQUEST (poruka za upit)
Format poruke:
Page 28
zaglavlje sadrži kontrolne podatke, a tijelo korisniĉke podatke
Metode mogu biti:
GET: poziv nekog dokumenta, sastoji se iz metode, URL-a, verzije
(podaci se šalju od servera prema clientu pr. web stranica)
HEAD: poziv metapodataka nekog dokumenta (pr metapodataka je
pretraživanje po kjuĉnoj rijeĉi
POST: slanje podataka web-serveru (podaci se šalju od clienta prema
serveru pr. ispunjavanje obrasca na internetu)
Put, Delete, Trace, Options
Retci zaglavlja:
Type/Value-parovi, tipovi: Host, User-agent, …
Tijelo
Prazno kod GET, kod POST može imati sadržaj
Primjer upita:
Page 29
Redak za upit : Get – metoda,url, 1.1 verzija HTTP-a
Retci zaglavlja: Host, User – agent,Connection i Accept - language su
type-value parovi
Conection: close – nakon što se upit obradi veza se zatvara
Tijelo je prazno kod Get metode
2. HTTP RESPONSE (poruka za odgovor)
Format poruke:
Mogući kodovi u statusnom retku
200 OK („sve je u redu“)
Page 30
301 Moved Permanently (Redirection: objekt se nalazi na Location: …)
400 Bad Request (poruka za upit prepoznata)
404 Not Found (objekt nije pronaĊen)
505 HTTP Version Not Supported
Statusni kod je 200 a fraza za taj kod je OK
Retci zaglavlja takoĊer type – value parovi
Primjer upita:
HTTP-tijek (tok komunikacije prema HTTP protokolu)
1. ne-perzistentan HTTP
šalje se 1 upit (npr. HTML dokument se može sastojati od slike, teksta i
tablica a oni su objekti tog dokumenta) a transportni protokol za svaki
objekt tog upita generira 1 TCP vezu (1 TCP veza za sliku, 1TCP veza
za tekst i 1TCP veza za tablicu), server je briše odmah nakon slanja
objekta
osnovna stranica i ugniježĊeni objekti sekvencijalno (slanje u nizu) ili
više paralelnih veza za ugniježĊene objekte
prednosti:ne gube se svi podaci ako pukne veza
nedostaci:koristi više mrežnih resursa
Page 31
2. perzistentan HTTP
server zadržava vezu
svi se objekti šalju jednom TCP vezom
bez pipelining-a: nakon svakog objekta upit za slijedeći objekt
s pipelining-om: 1 upit za sve ugniježĊene objekte
Predosti:koristi manje mrežnih resursa
Nedostaci: brzina uĉitavanja
Standardni port web servera: 80
Port identificira (adresira) pojedinu app unutar raĉ.
Primjer tijeka ne-perzistentnog HTTP
URL: www.someSchool.edu/someDepartment/home.index
Osnovna stranica sadrži 10 ugnježĊenih objekata (jpeg)
Page 32
Vrijeme odgovora
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
Poruka za upit u 1 smjeru te poruka za odgovor natrag zahtijevaju još 1
RTT
ukupno:
2 RTT
+ vrijeme slanja
+ ostala vremena ĉekanja (pr. vrijeme obrade)
Page 33
Dinamički sadrţaji
Slanje informacija
od browsera
prema serveru
U tijelu
poruke za
upit s POST
ĉesto: kao
Type/Value
parovi dodani
na URL u
poruci za upit
s GET
Dinamički sadržaji s CGI skriptama
Common Gateway Interface (CGI) obraĊuje informacije kao eksterni
proces i šalje novu HTML stranicu na server
Server komunicira s BP preko CGI skripte
Prednost: sigurnost, bolja fleksibilnost
Nedostatak: nova komponenta usporava sam proces
Dinamički sadržaji kroz Scripting
Page 34
Interpretacijom ugraĊenih skripti moguće je generirati dinamiĉke
sadržaje
Server-side Scripting: u HTML je ugraĊen kôd koji interpretira server i
pri tome generira HTML, npr. PHP
Client-side Scripting: u HTML je ugraĊen kôd koji interpretira client,
npr. JavaScript
Web-Caching
Smanjenje vremena ĉekanja korisnika i mrežnog prometa uporabom
pomoćnog meĊuspremnika (cache)
Cache je server za web browser, a client za web server
Page 35
Proxy sadrži kopiju podataka sa servera, nakon što client pošalje upit proxy
serveru ako on ima spremljene te podatke koji se traže u svojoj memoriji šalje
odgovor clientu (upit se nije slao serveru) ako pak nema te podatke koji se
traže prosljedit će upit serveru.
Samim time što proxy sadrži kopiju podataka može se desiti da se podaci na
serveru s vremenom promijene pa podaci na proxy serveru ne budu aktualni
no proxy može poslati upit serveru da li su njegovi podaci (neki objekat) još
uvijek aktualni.
Page 36
Kod slanja upita da li je objekt promijenjen ili ne šalje se datum kojeg ima
proxy zabilježen o tom objektu i ako je taj datum isti i kod servera objekt nije
promijenjen odnosno još uvijek je aktualan, ako je promijenjen proxy će
preuzeti podatke iz HTTP odgovora i ažurirati svoju bazu
Primjer upotrebe meĎuspremnika
Pretpostavke
- Srednja veliĉina objekta = 100.000 bitova
- Srednja rata HTTP upita clienata u LAN = 15/s ( u 1 s clienti
generiraju 15 upita na server
- Kašnjenje izmeĊu LAN-a i HTTP servera = 2 s (server odgovara na
upit nakon 2 s)
Posljedice
- Opterećenje LAN-a (lokalne mreže)
6 bitova/s = 0,15 = 15 % (broj
upita x veliĉina objekta / kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
6 bitova/s = 1 = 100 % (broj
upita x veliĉina objekta / kapacitet voda )
- Ukupno kašnjenje = kašnjenje u LAN-u + kašnjenje kod pristupa +
kašnjenje u Internetu = ms + minute + 2 s = minute
Ukupno kašnjenje je nekoliko minuta
Page 37
2 rješenja da se smanji kašnjenje
1. RJEŠENJE: NADOGRADNJA PRISTUPA
Pristupni vod s 10 Mbps
Moguće, ali povezano s troškovima
Posljedice
- Opeterećenje LAN-a = 15 %
- Opterećenje pristupnog voda
6 bitova/s = 0,15 = 15 %
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod pristupa +
kašnjenje u Internetu = ms + ms + 2s = sekunde
- smanjeno kašnjenje s par minuta na par sekundi ali su veliki troškovi
za ovu nadogradnju
Page 38
2. RJEŠENJE: UPOTREBA CACHE (PROXY SERVERA)
pretpostavka: Cache Hitrate je 0,4
Realno: 40 % traženih stranica nalazi se dugoroĉno u
meĊuspremniku, a 60% je potrebno zatražiti od HTTP servera
Posljedice
- opterećenje LAN-a = 15 %
- Opterećenje pristupnog voda
0,6 x 1,5 x 6 bitova/s = 0,6 =
60 %
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 0,6 x
HITRATE – udio upita na koji proxy može odgovoriti (npr. 4/10 od 10 upita
na 4 može odgovoriti a za preostalih 6 upita podatke treba zatražiti od
servera, može odgovoriti na 40% upita pa je hitrate 0,4)
Page 39
MISSRATE – preostali udio upita na koji proxy ne može odgovoriti (ili nema
podatke ili podaci nisu aktualni pa ih treba zatražiti od servera) (ako može
odgovoriti na 40% upita onda na 60% upita ne može ogovoriti pa je
missrate 0,6)
FTP (File Transfer Protkol)
Prijenos datoteka izmeĊu raĉunala
naredbe: USER username, PASS password, LIST, RETR filename,
STOR filename, …
Potrebna je 1 TCPveza (port 21) za razmjenu upravljaĉkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija: „out-of-band-control“ zbog posebne veze za
upravljaĉke podatke
Page 40
Prednosti: s dvije veze povećavamo propusnost
Nedostaci: velik utrošak resursa => jednom rezerviramo resurse za 1 vezu a
drugi put za drugu
Simple Mail Transfer Protocol (SMTP)
Protokol za slanje maila
Poruke u ASCII formatu ( zaglavlje + tijelo)
Jako je star protokol
Ostali podaci (Word datoteke i sl.) pretvaraju se u ASCII format te
pridodaju: multimedia mail extension (MIME – pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Ĉitanje preko POP3, HTTP
Page 41
Koristi TCP za pouzdan prijenos poruka od clienta prema serveru (preko
porta 25)
Možemo promijeniti vezu iz TCP na UDP ali to ne znaĉi da moramo
mijenjati i faze prijenosa SMTP-a jer se TCP i UDP nalaze na jednom
sloju a SMTP na drugom pa je 1 promjena neovisna o drugoj
Direktan prijenos: od servera (pošiljatelj) prema serveru (primatelj)
Tri faze prijenosa:
1. Handshaking (dogovaraju se parametri prijenosa)
2. Prijenos poruke (prijenos)
3. Faza završetka (komunikacijska veza se raskida)
Interakcija pomoću naredbi i odgovora
Naredbe: ASCII tekst
Odgovori: statusni kod i tekst
Poruke moraju biti u 7-bitnom ASCII tekstu (128 znakova)
UPRAVLJANJE MREŢAMA (Network management)
Zadaci upravljanja mrežom
Nadzor i administracija mreže = složen HW/SW sustav (mnogo ureĊaja,
vodova, strukture podataka, …)
Prema ISO slijedećih 5 podruĉja (FCAPS) primjene mreže
F (fault ili pogreška): nadgledanje, dokumentacija, mjere
reakcije => upravljanje pogreškama => mjere koje je potrebno
poduzeti da bi se te pogreške ispravile.
TTS sustavi (Trouble Ticket Systems) – to su baze koje sadrže
pogreške i za svaku pogrešku sadrže mjere reakcije (pr.
pogreška može biti upisana kriva adresa a mjera npr.
Provjerite da li ste dobro upisali adresu)
TTS ima na jednom mjestu definirane sve tipove pogrešaka i
takav sustav u velikoj mjeri rastereti administratora od
gubljenja vremena za takve probleme
Page 42
Može se desiti da i uz taj sustav ne možemo ukloniti pogrešku
pa nju administrator prosljeĊuje svom nadreĊenom
Propagacija pogrešaka – iz 1 pogreške se generira ĉitav skup
poruka o pogrešci
Problem kod propagacije => npr. Iz poruke možemo zakljuĉiti
da je problem u serveru a nije u serveru već u vodu
(razmnožavanje pogrešaka)
C (configuration ili konfiguracija): cilj je voditi podatke o
konfiguraciji ureĊaja i njihovog hardvera i softvera
Konfiguracija definira neke vrijednosti koje hardver i softver
treba tijekom svog rada ispunjavati. Moguće je definirati 2 tipa
vrijednosti : hard i soft => da li je striktna vrijednost ili ne;
moguće je uvesti i interval za zadovoljavanje neke vrijedosti
A (access ili pristup): odreĊivanje, kontrola, dokumentacija
pristupa korisnika i
UreĊaja: korisnik => naĉin pristupa korisnika => dodjeljivanje
prava klasi korisnika koja može pristupiti nekom serveru, a
moguće je definirati i mjesto pristupa serveru npr. Nekom
serveru mogu pristupiti samo zaposlenici tvrtke i to samo
unutar tvrtke
UreĊajima takoĊer možemo definirati odreĊena prava npr.
Možemo definirati ureĊajima iz svoje mreže da na prosljeĊuju
pakete na neke druge rutere
P (performance ili učinak): nadgledanje opterećenja,
propusnost, vrijeme odgovora, dokumentacija (npr. za nadzor
SLA - Service Level Agreements), mjere reakcije
Page 43
S (security ili sigurnost): nadgledanje i kontrola pristupa,
upravljanje kljuĉevima, npr. pravila filtriranja za firewall (pravila
filtriranja je moguće odrediti za web server npr. Da mu
odreĊene adrese ne mogu pristupiti => pr. studomatu
definramo da mu mogu pristupiti samo raĉ. iz hrvatske) ,
Intrusion Detection
Razliĉiti standardi, npr. TMN – upravljanje telekomunikacijskim
mrežama, CORBA – definira mogućnosti upravljanja mrežom
Promjena u bilo kojem podruĉju odrazit će se i u drugim podruĉjima => pr.
povećamo sigurnost – pogoršamo uĉinak (veća opterećenost)
Simple Network Management Protocol (SNMP)
Raširen protokol
Managing Entity, proces na središnjoj upravljaĉkoj stanici
(Management Station), » Client => pruža inf. O stanju cijele mreže na
naĉin da komunicira s agentima
Managed Device, ureĊaj u mreži (npr. Ruter)
Managed Object, HW ili SW u Managed Device, npr. tablica
prosljeĊivanja je managed object u ruteru
Management Agent, proces na Managed Device, izvodi lokalne akcije,
» Server
Request/Reply protokol izmeĊu Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju izmeĊu entity-a i agent-a
Page 44
Tipovi SNMP poruka:
GET: ĉitanje neke Managed Object varijable od strane Managing Entity
(informacija agentu da entitetu treba poslati neke podatke
SET: postavljanje (aktualiziranje) neke Managed Object varijable od
strane Managing Entity pr. veliĉina buffera koju želimo rezervirati
takoĊer GET-NEXT (ĉita sljedeći element u tablici) i GET-BULK (pr.
jednom nardbom je moguće izĉitati sve podatke iz tablice(grupni
podaci)) za strukture podataka => jedan upit a skupni odgovor
Za ove naredbe dolazi inicijativa od strane entiteta
TRAP: obavijest od strane Management Agent o nekoj pogrešci,
inicijativa dolazi od strane agenta pr. ruter2 nije u funkciji što zna ruter 1
jer je njegov korisnik pa ruter2 generira poruku o grešci i šalje ju clientu
(entitetu)
Page 45
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects, normirane
od strane IETF => MIB je vrsta baze podataka koja sadrži strukture
podataka ua pojedine upravljaĉke objekte gdje su definirane pojedine
varijable)
Sintaksa je opisana u Structure of Management Information (SMI),
definirana od strane IETF, koja se oslanja na Abstract Syntax Notation
One (ASN.1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN.1 posjeduje i numeracijsku shemu u svrhu jednoznaĉne
identifikacije objekata, ĉime je svaki MIB modul jednoznaĉno odreĊen
pomoću Bit Encoding Rules (BER) definira se toĉan binarni format za
prijenos
Domain Name System (DNS)
Imena hostova odnosno domena
DNS preslikava imena domena na neke vrijednosti, te vrijednosti su npr.
IP adrese
Page 46
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
– da imamo samo jednu došlo bi do zagušenja ili opterećenja BP),
sastoji se iz mnogo imeniĉkih servera koji komuniciraju nekim
aplikacijskim protokolom
osnovna pretpostavka za korištenje infrastrukture!
npr. rezolucija imena kod slanja e-maila:
Mail program (mail server) će prije nego se mail pošalje pozvati DNS server i
predat će mu ime domene , nakon toga će DNS server iz baze podataka
pronaći korespondirajuću IP adresu za tu domenu, kad pronaĊe zapis šalje ga
opet mail serveru i tako je moguće pristupiti udaljenom mail serveru i prosljediti
mail.
Komunikacija izmeĊu mail servera i DNS servera odvija se
transparentno (nije vidljiva)
Struktura domena
DNS implementira hijerarhijski imeniĉki prostor za Internet objekte
ĉita se od lijevo prema desno, od desno prema lijevo se procesira
imeniĉki serveri upravljaju pojedinim zonama
hijerarhija je implementirana kroz imeniĉke servere
Page 47
Edu predstavlja krovnu domenu za obrazovanje, princeton i mit su podomene
koje predstavljaju pojedine fakultete, a cs, ee, physics predstavljaju pojedine
vrste fakulteta pr. cs je fakultet informatike
Hijerarhija imeničkih servera
Root Name Server
ima ih nekoliko
top-level imenički server
za com, org, net, edu, uk, de, eu, …
autoritativni imenički server
najdonja razina, za pojedine organizacije
Resource Records
Page 48
podatkovni elementi u bazi DNS-a, a ti elementi su: naziv domene,
vrijednost, tip, TTL
TTL: Time to Live, vrijeme trajanja (kako dugo vrijedi ime za pojedinu
domenu)
tip = A
Podatkovni element ĉija je vrijednost IP adresa
Najĉešći oblici
primjer: (ns.cisco.com, 128.96.32.20, A, TTL)
tip = NS
Podatkovni element ĉija je vrijednost ime domene host-a na kojem se
izvodi imeniĉki server, a koji preslikava imena u domeni
primjer: (princeton.edu, cit.princeton.edu, NS, TTL)
tip = CNAME (Canonical Name)
Podatkovni element ĉija je vrijednost kanonsko ime host-a koji
omogućuje definiranje alias-imena ( drugo ime za neki server pa kad
pozivamo to alias ime mi ne znamo orginalno ime servera, prednost je
što kod takvih servera koji imaju definirano alias ime ne možemo raditi
štetu)
primjer: (cic.cs.princeton.edu, cicada.cs.princeton.edu, CNAME, TTL)
tip = MX (Mail Exchange)
Podatkovni element ĉija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer: (cs.princeton.edu, optima.cs.princeton.edu, MX, TTL)
Primjer: Resource Records
Root Name Server
(princeton.edu, cit.princeton.edu, NS, TTL)
Page 49
(cit.princeton.edu, 128.196.128.233, A, TTL)
(cisco.com, ns.cisco.com, NS, TTL)
(ns.cisco.com, 128.96.32.20, A, TTL)
…
sadrži imeniĉki element za svaki server slijedeće razine i A-element
s IP adresom
zajedno ĉine link na servere druge razine
Page 50
3. TRANSPORTNI SLOJ
Zadatak transportnog sloja: komunikacija izmeĊu korisniĉkih procesa
Na app sloju imamo definirane mrežne aplikacije (izovde se na nekoliko raĉ.),
kako bi se ostvarila komunikacija izmeĊu tih app koriste se usluge
transportnog sloja i to na SAP - u
Proces= aplikacija
Host = raĉunalo
Bitna uloga porta – adresira(identificira) pojedinu aplikaciju unutar raĉ. (P1 i P2
se izvode na istom raĉ. Koje ima 1 IP adresu, kako bi se znalo kojoj app P3
šalje poruku bitan je broj porta)
Da nema porta mogla bi se izvoditi na 1 raĉ. Samo 1 app
Socket – omogućuje mrežnu komunikaciju
Moguće karakteristike usluge
Kontrola pogrešaka (podaci su pakirani u pakete i oni putuju od 1 app
do 2 app, no moguće je da se zbog nekih razloga neki paket izgubi ili
ošteti pa je pa je potrebno voditi kontrolu i prepoznati gubitak)
Osiguranje redoslijeda (ako se koristi UDP protokol onda se može desiti
da neki paketi ne stignu u dobrom redosljedu)
Page 51
Orijentiran na vezu/nije orijentiran na vezu (koju komunikaciju odabrati
ovisi o tome kakve karakteristike ima mrežna app)
Kontrola toka i opterećenja (bitno kontrolirati jer se može desiti da neko
raĉ. Ne može dovoljno brzo obraditi neke upite koji dolaze sa drugih
raĉ.)
Osiguranje kvalitete usluge (npr. brzina prijenosa, kašnjenje, gubitak)
User Datagram Protocol (UDP)
jednostavan
Nije orijentiran na vezu; nema kontrolne mehanizme; ne osigurava
redoslijed
Suĉelje za jednostavnu komutaciju paketa pomoću IP, odgovornost za
kontrolne mehanizme kod aplikacija
Transmission Control Protocol (TCP)
Orijentiran na vezu; kontrola pogrešaka, toka i opterećenja; ne
osigurava kvalitetu usluge (ne osigurava kvalitetu usluge jer se koristi IP
koji nije orijentiran na vezu)
Apstrahira tok byte-ova (byte stream)
Ako radimo aplikaciju onda je korištenje UDP-a složenije jer se u samoj app
moraju nalaziti i kontrolni mehanizmi => TCP jednostavniji jer se kontrolni
mehanizmi nalaze na transportnom sloju a ne u samoj app
User Datagram Protocol (UDP)
Poruka na app sloju je segment na transportnom sloju
Segment:
source port: broj izvornog porta (16 bitova)
dest port: broj odredišnog porta (16 bitova)
Page 52
vezu uspostavljamo izmeĊu 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova => 16 bitova => maksimalni broj app
koje možemo imati na 1 raĉ.
Kad se šalju paketi (segmenti) zapravo se šalju pojedini bitovi koji
reprezentiraju podatke (oni se nalaze na fiziĉkom sloju)
length: duljina cijelog segmenta (16 bitova)
Kako bi mogli iz primljenog skupa bitova generirati segment moramo
znati koja je duljina 1 segmenta da ih odvojimo (duljina odreĊuje
poĉetak i kraj segmenta)
checksum: kontrolni zbroj (16 bitova) za kontrolu pogrešaka u prijenosu
pojedinaĉnog bita, ako se samo 1 bit pogrešno prenese možemo ga
prepoznati, a ako se cijela skupina bitova pogrešno prenese to se ne
može prepoznati i checksum u takvoj situaciji ne funkcionira; upotreba je
opcionalna, 00000000000000002 znaĉi: nije korišten
Izračunavanje kontrolnog zbroja
Page 53
Svi se bitovi invertiraju=> 0 u 1 ili 1 u 0 => može se desiti i ostatak , u tom
sluĉaju njega miĉemo na kraj
Onaj tko generira UDP segment poznavat će niz bitova koji se prenosi i
izraĉunat će kontrolni zbroj koji će upisati za to predviĊeno polje, kad taj
segment stigne na odredište onaj koji će zaprimiti taj segment takoĊer će
izraĉunati kontrolni zbroj i usporediti ga sa kontrolnim zbrojem zapisanim u
segmentu i ako ne postoji pogreška dobit ćeme sve 1
Multipleksiranje i demultipleksiranje
Multipleksiranje: prijenos segmenata razliĉitih korisniĉkih procesa
transportnim slojem na izvornom hostu
Demultipleksiranje: predaja segmenata razliĉitim korisniĉkim
procesima na transportnom sloju odredišnog hosta
Korisniĉki proces dogovara s transportnim slojem na izvornom hostu
broj izvornog porta (izabire ga ili aplikacija ili se od strane operacijskog
sustava dodjeljuje neki slobodan port)
Realiziran npr. kroz socket-API:
DatagramSocket serverSocket =
new DatagramSocket(6428);
serverSocket.send(aPacket);
UDP na odredišnom hostu odluĉuje prema broju odredišnog porta (i
samo prema njemu) kojoj aplikaciji se segment dodjeljuje
Korisniĉki proces može sadržavati više socket-a
Page 54
Kad app2 šalje podatke app3 kao odredišni port će odabrati neki broj porta, a
taj odredišni port će postati izvorni port kad app3 šalje podatke app2
Pseudo-zaglavlje
Pošto 3 sloj ne nudi kontrolu pogrešaka ona se mora povjeri višem sloju,
odnosno, 2. sloju (transportni sloj)
Pseudo zaglavlje se koristi kako bi mogli otkriti eventualne pogreške u
prenošenju IP adrese
Informacija o IP adresi se treba prenjeti sa sloja 3. sloja na 2. sloj pa je
zbog toga pseudo zaglavlje
Pseudo-zaglavlje sadrži izvornu i odredišnu IP adresu, broj protokola
(17 za UDP) i duljinu segmenta
UDP pošiljatelja najprije upisuje 0 u checksum polje, generira
pseudozaglavlje i raĉuna kontrolni zbroj zajedno za UDP segment i
pseudozaglavlje
Ovaj kontrolni zbroj upisuje se u checksum polje
Zatim se segment i pseudo-zaglavlje prosljeĊuju na IP
UDP primatelja dobiva (od IP) UDP segment i pseudo-zaglavlje, piše 0 u
checksum polje i raĉuna kontrolni zbroj za segment i pseudozaglavlje
Page 55
prednost: provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama, npr. krivo proslijeĊene segmente
nedostatak: povreda principa uslojavanja
KONTROLA POGREŠAKA
1.Stop-and-Wait
2. Go-Back-N i Selective Repeat
šum, buffer overflow, ispadi komponenti uzrokuju pogreške bita i gubitak
paketa
rješava se protokolima s prepoznavanjem pogrešaka, potvrdama i
ponavljanjem slanja
Page 56
Pošiljatelj šalje paket preko nepouzdanog kanala i oĉekuje ACK (potvrdu da je
primatelj uspješno primio paket), nakon što je primatelj uspješno primio paket
generirat će ACK i poslati ga pošiljatelju
3 osnovna protokola za pouzdan transport:
Stop-and-Wait
pošiljatelj dodaje – u svrhu prepoznavanja pogreške – kontrolni zbroj ili
Cyclic Redundancy Check (CRC)
primatelj šalje potvrdu (acknowledgment, ACK)
nakon timeout-a (= potvrda nije stigla) paket se ponovo šalje
za prepoznavanje mogućih duplikata potrebni su redni brojevi (SQN –
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se “popunio” kanal
razlikuju se s obzirom na timeout, potvrde, ponovno slanje
Page 57
Stop-and-Wait Protokol
neformalan opis:
Ponašanje pošiljatelja
1. Šalji paket s aktualnim SQN i ukljuĉi timer
2. Ako se ACK vrati bez pogreške bita i s aktualnim SQN prije isteka
timeout-a, inkrementiraj SQN (povećaj za 1) i vrati se na 1. korak
3. Ako je timeout istekao, ponovo šalji paket, takoĊer ponovo ukljuĉi
timer i vrati se na 2. korak
Ponašanje primatelja
Ako je paket primljen bez pogreške bita i s aktualnim SQN, šalji ACK s
aktualnim SQN i inkrementiraj SQN; inaĉe ponovo šalji posljednji ACK
Pošiljatelj starta timer kad pošalje paket (uloga timera jest da se oznaĉi koliko
će se dugo ĉekati na potvrdu (ACK), kad ne bi bilo timera moglo bi se ćekati
unedogled ako se ACK na putu negdje zagubi), ako je timer istekao a paket je
stigao na odredište meĊutim potvrda se negdje zagubila i nije stigla unutar
timera, pošiljatelj će poslati taj isti paket i kad on stigne na odredište primatelj
će imati 2 ista paketa zato se uvodi SQN kako bi se duplikati eliminirali
Nedostatk ovog protokola: dugo traje =>resipanje resursa raĉunala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) => nije ekonomiĉno iz tog
razloga su bolje varijante kliznog prozora jer se šalje više paketa a ne samo 1,
a ACK potvrda nam potvrĊuje primitak cijele grupe paketa.
Opis pomoću UML Statecharts
Statechart se uvijek nalazi u nekom stanju (state), crno oznaĉena toĉka
predstavlja poĉetno stanje (initial state)
Page 58
Prijelaz izmeĊu stanja (state transition) se ostvaruje nekim dogaĊajem
(event) i ispunjavanjem nekog uvjeta (guard)
Nakon prijelaza u novo stanje izvodi se neka akcija (action)
Iz praktiĉnih razloga moguće je uvesti i varijable
Napomene vezane uz Statecharts
Statecharts predstavljaju varijantu konaĉnih automata
DogaĊaji, uvjeti i akcije se ĉesto opisuju kroz pseudokod (time dobivamo
tzv. “poluformalan” opis)
Ponašanje protokola ĉesto se modelira ovakvim (ili sliĉnim) automatima
Postoje programski alati koji takvo modeliranje podržavaju: protokoli se
mogu specificirati kao automati iz ĉega se može generirati kod; na
osnovu toga moguće je izvoditi razliĉite analize, simulacije i testiranja
Ovdje se koriste statecharts za precizan opis protokola Stop-and-Wait
(kasnije i ostalih protokola)
Stop-and-Wait: normalan slijed (flow)
Pošiljatelj:
Page 59
1. i pošiljatelj i primatelj postavljaju SQN na 1
2. wait for dana – u stanju je spremnosti da pošalje paket
3. vrši se akcija slanja paketa pri ĉemu paket sadrži (aktualni SQN,
podatke i CRC) i nakon što je paket poslao starta timer
4. nakon što je startao timer ovdje se nalazi u stanju ĉekanja potvrde
ACK1
Primatelj se nalazi u stanju ĉekanja paketa SQN1
paket 1 je uspješno proslijeĊen do primatelja
Primatelj:
5. vrši se akcija primitka paketa, provjerava se da li su uvjeti zadovoljeni
- nije se dogodila nikakva pogreška i
primljen sqn je jednak aktualnom sqn-u), ekstakta paket i šalje
pošiljatelju ACK sa aktualnim SQN brojem i CRC-om), nakon što je
poslao ACK povećava SQN za 1 (sljedeći ACK2)
6. prelazi u stanje ĉekanja na paket sa SQN=2
Pošiljatelj je još uvijek u stanju ĉekanja ACK1
Ack 1 je takoĊer uspješno proslijeĊena
Pošiljatelj:
7. vrši se akcija primitka potvrde, provjerava se da li su zadovoljeni
– nema pogreške u
prijenosu i SQN ACK-a je jednak aktualnom SQN-u), nakon što su
uvjeti zadovoljeni stopira timer i poveĉava SQN za 1 (sada je aktualni
SQN2) i prelazi u novo stanje
8. stanje spremnosti da pošalje novi paket SQN2
Page 60
Stop-and-Wait: gubitak paketa
Pošiljatelj:
1. stanje spremnosti da pošalje novi paket SQN2
2. prelazi u stanje gdje se vrši akcija slanja paketa pri ĉemu paket sadrži
(aktualni SQN, podatke i CRC) i nakon što je paket poslao starta timer
3. stanje ĉekanja potvrde (ACK2)
Primatelj se nalazi u stanju ĉekanja paketa
MeĊutim paket se negdje na puto do primatelja zagubio samim time
primatelj nije mogao posati ACK2 jer nije zaprimio paket sa SQN2
4. stanje timouta (isteklo je vrijeme timera), pa se ponovno vrši akcija
slanja paketa SQN2 i opet se starta timer
5. stanje ĉekanja potvrde ACK2
primatelj se još uvijek nalazi u stanju ĉekanja paketa SQN2
Paket 2 je ovaj put uspješno proslijeĊen do primatelja
Primatelj:
6. vrši se akcija primitka paketa, provjerava se da li su uvjeti zadovoljeni
- nije se dogodila nikakva pogreška i
primljen sqn je jednak aktualnom sqn-u), ekstakta paket i šalje
pošiljatelju ACK sa aktualnim SQN brojem i CRC-om), nakon što je
poslao ACK povećava SQN za 1 (sljedeći ACK3)
7. prelazi u stanje ĉekanja na paket sa SQN=3
Ack 2 je takoĊer uspješno proslijeĊena
Page 61
Pošiljatelj:
8. vrši se akcija primitka potvrde, provjerava se da li su zadovoljeni uvjeti
– nema pogreške u prijenosu i SQN
ACK-a je jednak aktualnom SQN-u), nakon što su uvjeti zadovoljeni
stopira timer i poveĉava SQN za 1 (sada je aktualni SQN3) i prelazi u
novo stanje
9. stanje spremnosti da pošalje novi paket sa SQN3
Stop-and-Wait: gubitak potvrde (ACK)
Pošiljatelj:
1. stanje spremnosti da pošalje novi paket sa SQN3
2. prelazi u stanje gdje se vrši akcija slanja paketa pri ĉemu paket sadrži
(aktualni SQN, podatke i CRC) i nakon što je paket poslao starta timer
3. stanje ĉekanja potvrde (ACK3)
Primatelj se nalazi u stanju ĉekanja paketa sa SQN3
Paket 3 je uspješno proslijeĊen do primatelja
Primatelj:
4. vrši se akcija primitka paketa, provjerava se da li su uvjeti zadovoljeni
- nije se dogodila nikakva pogreška i
primljen sqn je jednak aktualnom sqn-u), ekstakta paket i šalje
pošiljatelju ACK sa aktualnim SQN brojem i CRC-om), nakon što je
poslao ACK povećava SQN za 1 (sljedeći ACK4)
5. prelazi u stanje ĉekanja na paket sa SQN=4
Page 62
ACK3 se negdje na putu zagubio i nije stigao do pošiljatelja
Pošiljatelj je u stanju ĉekanje potvrde
Pošiljatelj:
6. stanje timouta (isteklo je vrijeme timera), pa se ponovno vrši akcija
slanja paketa SQN3 i opet se starta timer
7. stanje ĉekanja potvrde ACK3
I ovaj put je paket s SQN3 uspješno proslijeĊen primatelju
primatelj je u stanju ĉekanja paketa s SQN4
Primatelj:
8. vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
– jedan uvjet nije zadovoljen jer
pristigli paket s SQN3 ne odgovara aktualnom paketu kojeg mi
oĉekojemo a to je SQN4 (dobili smo duplikat)), nakon što je primatelj
otkrio da je dobio duplikat šalje prethodnu ACK3
9. stanje ĉekanja paketa s SQN4
ACK 3 je ovaj put uspješno proslijeĊena pošiljatelju
Pošiljatelj:
10. vrši se akcija primitka potvrde, provjerava se da li su zadovoljeni uvjeti
– nema pogreške u prijenosu i SQN
ACK-a je jednak aktualnom SQN-u), nakon što su uvjeti zadovoljeni
stopira timer i poveĉava SQN za 1 (sada je aktualni SQN4) i prelazi u
novo stanje
11. stanje spremnosti da pošalje novi paket sa SQN4
Page 63
Stop-and-Wait: zakašnjeli ACK
Pošiljatelj:
1. stanje spremnosti da pošalje novi paket SQN4
2. prelazi u stanje gdje se vrši akcija slanja paketa pri ĉemu paket sadrži
(aktualni SQN, podatke i CRC) i nakon što je paket poslao starta timer
3. stanje ĉekanja potvrde (ACK4)
Primatelj se nalazi u stanju ĉekanja paketa sa SQN4
Paket 4 je uspješno proslijeĊen do primatelja
Primatelj :
4. vrši se akcija primitka paketa, provjerava se da li su uvjeti zadovoljeni
- nije se dogodila nikakva pogreška i
primljen sqn je jednak aktualnom sqn-u), ekstakta paket i šalje
pošiljatelju ACK sa aktualnim SQN brojem i CRC-om), nakon što je
poslao ACK povećava SQN za 1 (sljedeći ACK5)
5. prelazi u stanje ĉekanja na paket sa SQN=5
ACK 4 kasni i ne dolazi unutar timera
Pošiljatelj:
6. stanje timouta (isteklo je vrijeme timera), pa se ponovno vrši akcija
slanja paketa s SQN4 i opet se starta timer
7. stanje ĉekanja potvrde ACK4
I ovaj put je paket s SQN4 uspješno proslijeĊen primatelju
Page 64
Primatelj je u stanju ĉekanja paketa s SQN5
Primatelj:
8. vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
– jedan uvjet nije zadovoljen jer
pristigli paket s SQN4 ne odgovara aktualnom paketu kojeg mi
oĉekojemo a to je SQN5 (dobili smo duplikat)), nakon što je primatelj
otkrio da je dobio duplikat šalje prethodnu ACK4
9. stanje ĉekanja paketa s SQN5
Stiže zakašnjela ACK4 do pošiljatelja koji je u stanju ĉekanja
potvrde
Pošiljatelj:
10. vrši se akcija primitka potvrde, provjerava se da li su zadovoljeni uvjeti
– nema pogreške u prijenosu i SQN
ACK-a je jednak aktualnom SQN-u), nakon što su uvjeti zadovoljeni
stopira timer i poveĉava SQN za 1 (sada je aktualni SQN5) i prelazi u
novo stanje
11. stanje spremnosti da pošalje novi paket sa SQN5
U meĊuvremenu stiže ACK4 potvrda koju je primatelj poslao kada
je zaprimio duplikat
12. pošiljatelj vrši akciju primitka potvrde, prepoznaje duplikat ACK4 i
ignorira primljenu potvrdu te se nakon toga opet nalazi u stanju
spremnosti da pošalje novi paket s SQN5
Stop-and-Wait: zakašnjeli paket
Page 65
Pošiljatelj:
1.
2. prelazi u stanje gdje se vrši akcija slanja paketa pri ĉemu paket sadrži
(aktualni SQN, podatke i CRC) i nakon što je paket poslao starta timer
3. stanje ĉekanja potvrde (ACK5)
Primatelj se nalazi u stanju ĉekanja paketa sa SQN5 no došlo je
do kašnjenja paketa
Primatelj:
4. vrši se akcija primitka paketa, provjerava se da li su uvjeti zadovoljeni
- nije se dogodila nikakva pogreška i
primljen sqn je jednak aktualnom sqn-u), ekstakta paket i šalje
pošiljatelju ACK sa aktualnim SQN brojem i CRC-om), nakon što je
poslao ACK povećava SQN za 1 (sljedeći ACK6)
5. prelazi u stanje ĉekanja na paket sa SQN=6
ACK 5 kasni i ne dolazi unutar timera jer je i paket kasnio
Pošiljatelj:
6. stanje timouta (isteklo je vrijeme timera), pa se ponovno vrši akcija
slanja paketa s SQN5 i opet se starta timer
7. stanje ĉekanja potvrde ACK5
I ovaj put je paket s SQN5 uspješno proslijeĊen primatelju
primatelj u stanju ĉekanja paketa s SQN6
Page 66
Primatelj:
8. vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
– jedan uvjet nije zadovoljen jer
pristigli paket s SQN5 ne odgovara aktualnom paketu kojeg mi
oĉekojemo a to je SQN6 (dobili smo duplikat)), nakon što je primatelj
otkrio da je dobio duplikat šalje prethodnu ACK5
9. stanje ĉekanja paketa s SQN6
Stiže zakašnjela ACK5 do pošiljatelja koji je u stanju ĉekanja
potvrde
Pošiljatelj:
10. vrši se akcija primitka potvrde, provjerava se da li su zadovoljeni uvjeti
– nema pogreške u prijenosu i
SQN ACK-a je jednak aktualnom SQN-u), nakon što su uvjeti
zadovoljeni stopira timer i poveĉava SQN za 1 (sada je aktualni SQN6)
i prelazi u novo stanje
11. stanje spremnosti da pošalje novi paket sa SQN6
U meĊuvremenu stiže ACK5 potvrda koju je primatelj poslao kada
je zaprimio duplikat
12. pošiljatelj vrši akciju primitka potvrde, prepoznaje duplikat ACK5 i
ignorira primljenu potvrdu te se nakon toga opet nalazi u stanju
spremnosti da pošalje novi paket s SQN6
Page 67
Prostor rednih brojeva (sequence number space)
prikaz rednih brojeva je konaĉan: polje s n bitova omogućuje 2n rednih
brojeva
višestruka primjena kroz cikliĉki prolaz
za Stop-and-Wait dovoljan je jedan bit za prikaz 2 redna broja: 0 i 1
Stop-and–Wait s 0 i 1 kao rednim brojevima zove se i Alternating-Bit-
Protocol
Ako imamo veliki SQN onda prenosimo velik br. Bitova što povećava
mogućnost pogrešaka i overhead
GO – BACK – N I SELECTIVE REPEAT PROTOKOLI
Page 68
Protokoli kliznog prozora (sliding window protocol)
Protokoli koji se zasnivaju na slanju više paketa i primanje 1 potvrde za
grupu paketa
Njima se želi smanjiti neuĉinkovitost Stop – and – wait protokola
Više procesiranja za cijelu grupu paketa
GO – BACK – N
Pošiljatelj šalje grupu paketa => veliĉina te grupe je odreĊena
Prozor – grupa paketa koja se može odjednom poslati
Veliĉina prozora je w (npr. w=4 => možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w – 1
(gornja granica prozora)
Opcionalnost slanja grupe paketa - ako nam je app dala podatke za
samo 1 paket onda ćemo njega poslati, ostali paketi su prazni pa ih ne
moramo slati)
Base – SQN najstarijeg poslanog a nepotvrĊenog paketa
Next SQN – SQN sljedećeg paketa za slanje
Kad se neki paket potvrdi onda se prozor miĉe za 1 mjesto
SELECTIVE REPEAT
Kumilativnim potvrdama se potvrĊuje cijela grupa paketa
Pr. ako mi šaljemo 100 paketa i 1 paket nam je krivo prenesen, onda
ćemo poslati potvrdu za posljednjeg dobro prenesenog paketa koji je
pristigao prije krivo prenesenog, sve dalje od krivo prenesenog paketa ,
ukljuĉujući i njega, će se morati ponovo prenositi