Upload
leell00
View
204
Download
9
Embed Size (px)
DESCRIPTION
Skripta iz Primjeea mrežnih servisa i računalnih komunikacija u poslovnim sustavima
Citation preview
1UVOD
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 (zB 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 modulatedemodulate) je uređaj koji modulira
digitalni signal u oblik pogodan za prijenos preko komunikacijskog
1
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 ndash prosljeđivanje podataka iz nekog ulaza na neki izlaz
USB ndash povezivanje PC-a sa perifernim uređajima
Serijsko povezivanje ndash podaci se prenose jedan za drugim
Korisiti se 8 bitova za čvor (adresa) =gt 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
2
Controller Area Network (CAN) je standardni komunikacijski protokol
1048576 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 ndash definirati napon i ostale fizičke veličine
Kriptiranje ndash omogućuje da se podaci koji se šalju ne mogu tako lako izčitati
Autentikacija ndash potvrda je da je onaj kojemu šaljemo podatke doista ta osoba
Potrebno je osigurati određenu propusnost
Propusnost ndash 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 ndash igrice)
A kod nekih nam kašnjenje ne igra bitnu ulogu pr Primanje datoteke
Pouzdanost ndash 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 ndash 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)
3
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 hellip
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
4
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
5
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash prosljeđivanje podataka iz nekog ulaza na neki izlaz
USB ndash povezivanje PC-a sa perifernim uređajima
Serijsko povezivanje ndash podaci se prenose jedan za drugim
Korisiti se 8 bitova za čvor (adresa) =gt 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
2
Controller Area Network (CAN) je standardni komunikacijski protokol
1048576 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 ndash definirati napon i ostale fizičke veličine
Kriptiranje ndash omogućuje da se podaci koji se šalju ne mogu tako lako izčitati
Autentikacija ndash potvrda je da je onaj kojemu šaljemo podatke doista ta osoba
Potrebno je osigurati određenu propusnost
Propusnost ndash 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 ndash igrice)
A kod nekih nam kašnjenje ne igra bitnu ulogu pr Primanje datoteke
Pouzdanost ndash 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 ndash 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)
3
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 hellip
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
4
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
5
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Controller Area Network (CAN) je standardni komunikacijski protokol
1048576 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 ndash definirati napon i ostale fizičke veličine
Kriptiranje ndash omogućuje da se podaci koji se šalju ne mogu tako lako izčitati
Autentikacija ndash potvrda je da je onaj kojemu šaljemo podatke doista ta osoba
Potrebno je osigurati određenu propusnost
Propusnost ndash 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 ndash igrice)
A kod nekih nam kašnjenje ne igra bitnu ulogu pr Primanje datoteke
Pouzdanost ndash 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 ndash 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)
3
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 hellip
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
4
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
5
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 hellip
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
4
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
5
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
5
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash korištenje 1 medija od strane više uređaja (pr automobil)
FDM ndash podatke šaljemo frekvencijskim pojasom (svaki podpojas koristi 1
uređaj) prednost svaki uređaj ima svoju frekvenciju nedostatk rasipanje
resursa ndash možda neki uređaj nema podatke za slati a nekom drugom uređaju
je možda potreban njegov frekvencijski podpojas
TDM ndash 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)
6
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 15 mbps =gt 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)
7
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 asymp 10485762 x
108 ms = 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 ndash kad se čitav niz bitova pogrešno prenese
UDALJENOST
Sistemske sabirnice (npr PCI)
lokalne mreže (LAN)
- Nekoliko kilometara brzina signala npr 25 kmc = 125
1048576s
Metropolitan Area Networks (MAN)
- Gradska područja 50-100 km
Wide Area Networks (WAN)
- globalno brzina signala npr 10000 kmc = 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 = 25 km R x 1048576dc = 125 Bits ( u 1
vremenskoj jedinici možemo imati 125 bitova na vodu)
8
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
- R = 1 Gbps d = 10000 km R x 1048576dc asymp 1048576500 MB
TOPOLOGIJA (VRSTE MREŽA)
ndash način raspoređivanja pojedinih komunikacijskih uređaja
1 bus ndash podatak koji prvi čvor šalje 4 prolazi kroz sve čvorove ako se
prekine veza između 2 čvora komunikacija je nemoguća
2 prsten ndash 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 ndash komunikacija ide preko centralnog čvora predost ista
udaljenost između 2 čvora nedostatak ako pukne veza u glavnom
čvoru komunikacija je nemoguća
9
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
4 stablo ndash 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 ndash 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 ndash prednost svaki čvor je sa svakim direktno
povezan nedostatak puno kablova kod povezivanja
10
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 hellip
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 ndash reči koje podatke trebam kako bi mogao osigurati
komunikaciju
Pr ponašanja ndash kad pošaljemo podatke želimo znati da li su oni
ispravno preneseni pa želimo potvrdu primatelja
Strukturiranje u slojeve
11
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
12
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
13
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash definira mehaničke električne i proceduralne
karakteristike prijenosa bitova
2 sloj veze ndash definira pristup mediju i siguran prijenos okvira
sinkronizacija okvirahellip
3 sloj mreže ndash definira prijenos paketa izgradnja veze usmjeravanje
upravljanje resursimahellip
4 transportni sloj ndash definira pouzdani prijenos segmenta bdquos kraja na krajldquo
5 sloj razgovora ndash treba osigurati komunikaciju između app
6 sloj prikaza ndash sintaksa i semantika razmijenjenih podataka
7 aplikacijski sloj ndash tu se realizira komunikacija aplikacijskih procesa sa
specifičnim app informacijama
Arhitektura slojeva u Internetu
1 Aplikacijski sloj
Mrežni servisi (HTTP FTP hellip)
2 Transportni sloj
Transport segmenata između aplikacija
(TCPUDP)
3 Sloj mreže
Datagrami između računala preko
usmjerivača(router)prosljeđivanje
14
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 bdquoCopy by referenceldquo
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 (ASN1) 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
15
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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)
16
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
raspoloživost (vrijeme u kojem je sustav spreman za rad
npr ako je server 9999 vremena raspoloživ onda 432
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 TCPIP 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 Web20 nove bežične mreže
(Bluetooth ZigBee Wimax)
Organizacije za standardizaciju protokola
17
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 hellip
2 APLIKACIJSKI SLOJ
Najčešće aplikacije
- Hypertext Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Upravljanje mrežama (Network management)
- Domain Name System (DNS)
18
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ldquotradicionalnihrdquo aplikacija kao
npr Web-Browser i WebndashServer
- Tipična svojstva server-a
- učinkovit ndash da nam odgovor dođe u realnom vremenu
- uvijek raspoloživ ndash ako ga nema onda ni client ne može
koristiti njegove raspoložive resurse
- Tipična svojstva client-a
- Samo povremeno na mreži ndash na mreži je samo kada želi
neke usluge od servera
- Komuniciraju sa server-om ne međusobno
Client-Server-Paradigma je centralizirana arhitektura ndash 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
19
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
- 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 ndash SERVER
Ne poistovjećuju se sa računalom jer se na 1 računalu može izvoditi nekoliko
servera
20
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Organizacija se sastoji od komponenti KS (korisničko sučelje) A
(aplikacija) BP (baza podataka)
Postoji 5 mogućnosti CLIENT ndash SERVER organizacije (prikazano na slici)
1 MOGUĆNOST ( ORGANIZACIJA TC ndash FS)
Na strani client-a se nalazi dio KS dok se na strani servera nalazi preostali
dio KS cijela A i cijela BP
TC ndash 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 ndash lakše kontroliranje sigurnosti i integriteta podataka nedostatak -
preveliko opterećenje servera
21
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash 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 ndash prednost manje korištenje resursa Nedostatak podjela baze ndash 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
22
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Usluge transportnog sloja
U Internet-u postoje 2 osnovna transportna protokola
1 TCP orijentiran na vezu pouzdan
bdquoOrijentiran na vezuldquo (conection ndash 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)
2UDP nije orijentiran na vezu nepouzdan
bdquoNe orijentiran na vezuldquo (Conectionless) ndash 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
23
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 hellip
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 ldquoboljerdquo 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 ldquoboljerdquo kod kraćih vremena
- Multimedija u realnom vremenu i interaktivne igre zahtijevaju kratko
vrijeme kašnjenja
24
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
- 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
25
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Hypertext Transfer Protocol (HTTP)
File Transfer Protocol (FTP)
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
26
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
TypeValue-parovi tipovi Host User-agent hellip
Tijelo
Prazno kod GET kod POST može imati sadržaj
Primjer upita
27
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Redak za upit Get ndash metodaurl 11 verzija HTTP-a
Retci zaglavlja Host User ndash agentConnection i Accept - language su
type-value parovi
Conection close ndash 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
28
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
200 OK (bdquosve je u reduldquo)
301 Moved Permanently (Redirection objekt se nalazi na Location hellip)
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 ndash 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
prednostine gube se svi podaci ako pukne veza
29
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
nedostacikoristi više mrežnih resursa
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
Predostikoristi 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 wwwsomeSchooledusomeDepartmenthomeindex
Osnovna stranica sadrži 10 ugnježđenih objekata (jpeg)
Osnovna stranica
Izgradnja TCP veze zahtijeva Round Trip Time (RTT)
30
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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)
Dinamički sadržaji
Slanje informacija od browsera prema serveru
U tijelu poruke za upit s POST
često kao TypeValue parovi dodani na URL u poruci za upit s GET
31
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
Interpretacijom ugrađenih skripti moguće je generirati dinamičke
sadržaje
Server-side Scripting u HTML je ugrađen kocircd koji interpretira server i
pri tome generira HTML npr PHP
Client-side Scripting u HTML je ugrađen kocircd koji interpretira client
npr JavaScript
32
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
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
33
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
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
34
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Pretpostavke
- Srednja veličina objekta = 100000 bitova
- Srednja rata HTTP upita clienata u LAN = 15s ( 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)
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 15 (broj
upita x veličina objekta kapacitet mreže)
- Opterećenje pristupnog voda (pristupni vod povezuje mrežu s
internetom)
15s x 1048576100000 bitova 15 x 1048576106 bitovas = 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
35
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
15s x 1048576100000 bitova 10 x 1048576106 bitovas = 015 = 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
36
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
2 RJEŠENJE UPOTREBA CACHE (PROXY SERVERA)
pretpostavka Cache Hitrate je 04
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
06 x 104857615s 10485761048576100000 bitova 15 x 1048576106 bitovas = 06 =
60
- Ukupno kašnjenje = kašnjenje u LANu + kašnjenje kod
pristupa + kašnjenje u Internetu = ms + ms + 06 x 10485762 s lt 2 s
HITRATE ndash udio upita na koji proxy može odgovoriti (npr 410 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 04)
37
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
MISSRATE ndash 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 06)
FTP (File Transfer Protkol)
Prijenos datoteka između računala
naredbe USER username PASS password LIST RETR filename
STOR filename hellip
Potrebna je 1 TCPveza (port 21) za razmjenu upravljačkih podataka i
posebna TCP veza (port 20) za prijenos svake datoteke
komunikacija se odvija bdquoout-of-band-controlldquo zbog posebne veze za
upravljačke podatke
38
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Prednosti s dvije veze povećavamo propusnost
Nedostaci velik utrošak resursa =gt 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 ndash pretvara datoteku nekog
drugog formata u ASCII format)
Slanje pomoću SMTP protokola preko TCP
Čitanje preko POP3 HTTP
39
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 HWSW sustav (mnogo uređaja
vodova strukture podataka hellip)
Prema ISO slijedećih 5 područja (FCAPS) primjene mreže
F (fault ili pogreška) nadgledanje dokumentacija mjere
reakcije =gt upravljanje pogreškama =gt mjere koje je potrebno
poduzeti da bi se te pogreške ispravile
TTS sustavi (Trouble Ticket Systems) ndash 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
40
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash iz 1 pogreške se generira čitav skup
poruka o pogrešci
Problem kod propagacije =gt 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 =gt 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 =gt način pristupa korisnika =gt 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
41
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 =gt pr studomatu
definramo da mu mogu pristupiti samo rač iz hrvatske)
Intrusion Detection
Različiti standardi npr TMN ndash upravljanje telekomunikacijskim
mrežama CORBA ndash definira mogućnosti upravljanja mrežom
Promjena u bilo kojem području odrazit će se i u drugim područjima =gt pr
povećamo sigurnost ndash 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) raquo Client =gt 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
raquo Server
RequestReply protokol između Management Entity i Management
Agent preko UDP
SNMP protokol definira komunikaciju između entity-a i agent-a
42
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 =gt 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)
43
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Management Information Base (MIB)
MIB moduli sadrže strukture podataka za Managed Objects normirane
od strane IETF =gt 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 (ASN1) definiran od strane ISO (u osnovi kao C bez referenci)
ASN1 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
44
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
DNS je distribuirana baza podataka (imamo više baza podataka a ne 1
ndash 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
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
45
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 hellip
autoritativni imenički server
najdonja razina za pojedine organizacije
Resource Records
46
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 (nsciscocom 128963220 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 (princetonedu citprincetonedu 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 (ciccsprincetonedu cicadacsprincetonedu CNAME TTL)
tip = MX (Mail Exchange)
Podatkovni element čija je vrijednost ime domene host-a na kojem se
izvodi Mail server
primjer (csprincetonedu optimacsprincetonedu MX TTL)
Primjer Resource Records
Root Name Server
(princetonedu citprincetonedu NS TTL)
47
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
(citprincetonedu 128196128233 A TTL)
(ciscocom nsciscocom NS TTL)
(nsciscocom 128963220 A TTL)
hellip
sadrži imenički element za svaki server slijedeće razine i A-element
s IP adresom
zajedno čine link na servere druge razine
48
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash 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 ndash 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)
49
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Orijentiran na vezunije 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 =gt 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)
50
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
vezu uspostavljamo između 2 app i moramo znati koja app šalje a koja
app prima podatke
ukupno možemo imati 214 portova =gt 16 bitova =gt 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
51
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Svi se bitovi invertiraju=gt 0 u 1 ili 1 u 0 =gt 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)
serverSocketsend(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
52
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
53
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
prednost provjera kontrolnog zbroja prepoznaje i pogreške u IP
adresama npr krivo proslijeđene segmente
nedostatak povreda principa uslojavanja
KONTROLA POGREŠAKA
1Stop-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
54
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ndash u svrhu prepoznavanja pogreške ndash 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 ndash
sequence number)
Go-Back-N i Selective Repeat
Protokoli kliznog prozora (sliding window protocols)
šalje se više paketa odjednom kako bi se ldquopopuniordquo kanal
razlikuju se s obzirom na timeout potvrde ponovno slanje
55
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 =gtresipanje resursa računala i resursa
mreže (zbog slanja 1 paketa i primanje 1 potvrde) =gt 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)
56
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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 ldquopoluformalanrdquo 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
57
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
1 i pošiljatelj i primatelj postavljaju SQN na 1
2 wait for dana ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
uvjeti ([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
58
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Stop-and-Wait gubitak paketa
Pošiljatelj
1 10485761048576stanje 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
59
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Pošiljatelj
8 vrši se akcija primitka potvrde provjerava se da li su zadovoljeni uvjeti
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
60
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
61
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
62
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Primatelj je u stanju čekanja paketa s SQN5
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
63
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Pošiljatelj
1 stanje spremnosti da pošalje novi paket sa SQN5
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
([biterror(pkt) 1048576SQN(pkt)=SQN] - 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
64
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
Primatelj
8 vrši se akcija primanja paket i provjerava se da li su uveti zadovoljeni
([biterror(pkt) v SQN(pkt)10485761048576SQN] ndash 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
([biterror(ACK) 1048576SQN(ACK)=SQN] ndash 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
65
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
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-andndashWait 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 ndash BACK ndash N I SELECTIVE REPEAT PROTOKOLI
66
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
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 ndash and ndash wait protokola
Više procesiranja za cijelu grupu paketa
GO ndash BACK ndash N
Pošiljatelj šalje grupu paketa =gt veličina te grupe je određena
Prozor ndash grupa paketa koja se može odjednom poslati
Veličina prozora je w (npr w=4 =gt možemo slati grupu od 4 paketa)
Interval prozora (od base(donja granica prozora) do base + w ndash 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 ndash SQN najstarijeg poslanog a nepotvrđenog paketa
Next SQN ndash 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
67
68
68