90
1.UVOD PRIMJERI RAČUNARSKIH KOMUNIKACIJA IP-mreža (Internet) mrežni protokol za prijenos podataka kojeg koriste izvorišna i odredišna računala za uspostavu podatkovne komunikacije preko računalne mreže. Treba osigurati komunikaciju između aplikacija na računalima (host, server) Jedan od glavnih Internet protokola Internet protokoli (TCP, UDP, IP) i ostali (z.B. Ethernet, WLAN) Podaci u IP mreži se šalju u blokovima koji se nazivaju paketi ili datagrami. prilikom slanja paketa između izvorišta i odredišta se ne određuje unaprijed točan put preko mreže kojim će podaci prijeći, a samim time se ne garantira da će poslan pakat zaista stići na odredište Paket - Jedinica za prijenos preko mreže. Podaci koji putuju mrežom se dijele na pakete, koji su pojedinačno šalju preko mreže. Sam paket se u procesu prijenosa može promijeniti, može se promijeniti redoslijed paketa u odnosu na ona redoslijed kojim su poslani s izvorišta, može se duplicirati ili potpuno izgubiti tijekom prijenosa. 1

Skripta Mreže PITUP.doc

  • 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

Page 1: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 2: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 3: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 4: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 5: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 6: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 7: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 8: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 9: Skripta Mreže PITUP.doc

- 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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 10: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 11: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 12: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 13: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 14: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 15: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 16: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 17: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 18: Skripta Mreže PITUP.doc

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)

- E-Mail

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 19: Skripta Mreže PITUP.doc

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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 20: Skripta Mreže PITUP.doc

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 21: Skripta Mreže PITUP.doc

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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 22: Skripta Mreže PITUP.doc

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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 23: Skripta Mreže PITUP.doc

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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 24: Skripta Mreže PITUP.doc

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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 25: Skripta Mreže PITUP.doc

- 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)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 26: Skripta Mreže PITUP.doc

Hypertext Transfer Protocol (HTTP)

File Transfer Protocol (FTP)

E-Mail

Upravljanje mrežama (Network management)

Domain Name System (DNS)

HTTP (Hypertext Transfer Protocol)

Protokol za web

Procedura

Korisnik unosi Uniform Resource Locator (URL) u Web-Browser

Uniform Resource Locator(URL) je Uniform Resource Identifier (URI)

koji specificira da li je identificirani resurs slobodan i mehanizme za

preuzimanje tog resursa

URL sadrži ime računala nekog Web-servera i stazu prema nekom

objektu (datoteci) tamo Web-Browser postavlja upit Webserver-u za taj

objekt

Web-Server vraća objekt Webbrowser-u

Web-Browser prikazuje objekt u korisniku čitljivom obliku (podaci su

najčešće zapisani u HTML dokumentu koji se prikazuju u obliku čitljivom

korisniku)

2 vrste HTTP poruka

1 HTTP REQUEST

2 HTTP RESPONSE

1 HTTP REQUEST (poruka za upit)

Format poruke

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 27: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 28: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 29: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 30: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 31: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 32: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 33: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 34: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 35: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 36: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 37: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 38: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 39: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 40: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 41: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 42: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 43: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 44: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 45: Skripta Mreže PITUP.doc

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

mail

Komunikacija između mail servera i DNS servera odvija se

transparentno (nije vidljiva)

Struktura domena

DNS implementira hijerarhijski imenički prostor za Internet objekte

čita se od lijevo prema desno od desno prema lijevo se procesira

imenički serveri upravljaju pojedinim zonama

hijerarhija je implementirana kroz imeničke servere

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

Page 46: Skripta Mreže PITUP.doc

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

Page 47: Skripta Mreže PITUP.doc

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

Page 48: Skripta Mreže PITUP.doc

(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

Page 49: Skripta Mreže PITUP.doc

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

Page 50: Skripta Mreže PITUP.doc

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

Page 51: Skripta Mreže PITUP.doc

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

Page 52: Skripta Mreže PITUP.doc

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

Page 53: Skripta Mreže PITUP.doc

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

Page 54: Skripta Mreže PITUP.doc

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

Page 55: Skripta Mreže PITUP.doc

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

Page 56: Skripta Mreže PITUP.doc

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

Page 57: Skripta Mreže PITUP.doc

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

Page 58: Skripta Mreže PITUP.doc

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

Page 59: Skripta Mreže PITUP.doc

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

Page 60: Skripta Mreže PITUP.doc

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

Page 61: Skripta Mreže PITUP.doc

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

Page 62: Skripta Mreže PITUP.doc

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

Page 63: Skripta Mreže PITUP.doc

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

Page 64: Skripta Mreže PITUP.doc

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

Page 65: Skripta Mreže PITUP.doc

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

Page 66: Skripta Mreže PITUP.doc

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

Page 67: Skripta Mreže PITUP.doc

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

Page 68: Skripta Mreže PITUP.doc

68