Professional Documents
Culture Documents
Aplikativni sloj
dr Zdravko ivkovi
2: Aplikativni sloj 1
Aplikativni sloj
2.1 Osnove mrene 2.6 P2P delenje
aplikacije datoteka
2.2 Web i HTTP 2.7 Programiranje
2.3 FTP soketa sa TCP-jem
2.4 Elektronska pota Programiranje soketa sa
SMTP, POP3, IMAP UDP-jem
2.5 DNS 2.9 Gradnja Web
servera
2: Aplikativni sloj 2
Glava 2: Aplikativni sloj
Ciljevi: Upoznavanje sa
Konceptualni i najpopularnijim
implementacioni aspekti protokolima aplikativnog
aplikativnih protokola u sloja
raunarskim mreama HTTP
Model servisa na FTP
transportnom sloju SMTP / POP3 / IMAP
Klijent/server DNS
paradigma Programiranje mrenih
peer-to-peer paradigma aplikacija
soket API
2: Aplikativni sloj 3
Primeri mrenih aplikacija
E-pota Internet telefonija
Web Real-time video
Instant messaging konferencija
Remote login Masivna paralelna
P2P delenje datoteka
obrada
Mrene igre sa vie
korisnika
Streaming
uskladitenih video
zapisa
2: Aplikativni sloj 4
Stvaranje mrene aplikacije
Napisati program koji application
transport
sistemima i
physical
Komunicira sa drugim
sistemima preko mree.
Npr., Web: Web server
softver komunicira sa
browser softverom
Nema pisanja softvera za application
application
funkcioniu na aplikativnom
sloju
Brz razvoj aplikacije
2: Aplikativni sloj 5
Arhitektura aplikacije
Klijent/server
Peer-to-peer (P2P)
Hibrid Klijent/server i P2P arhitekture
2: Aplikativni sloj 6
KLijent/server arhitektura
server:
Host uvek aktivan
permanentna IP adresa
Serverske farme kao
virtuelni server
klijenti:
komunicira sa serverom
Povezuje se sa
serverom u na zahtev
Moe imati dinamiku
IP adresu
Ne komunicira direktno
sa drugim klijentom
2: Aplikativni sloj 7
P2P arhitektura
Nema stalnih servera
Komuniciraju proizvoljni
parovi krajnjih sistema,
peer-ovi ili partneri
Peer-ovi se na zahtev
povezuju u mreu i
menjaju IP adresu
Primeri: Bit Torrent,
Skype
Veoma skalabilni sistemi
Nije jednostavno
upravljanje
2: Aplikativni sloj 8
Komunikacija izmeu procesa
Proces: program koji se Definicija:
izvrava na krajnjem Klijent: proces koji
sistemu zapoinje komunikaciju
Ako su oba procesa na Server: proces koji eka
istom raunaru, re je da ga neko pozove
interprocesnoj
komunikaciji (IPC) (pod
nadzorom OS) Napomena: aplikacije sa
Nas interesuje sluaj P2P arhitekturom imaju
razliitih raunara i klijentske i serverske
komuniciranje procese
razmenom poruka
2: Aplikativni sloj 9
Interfejsi izmeu procesa i raunarske mree
2: Aplikativni sloj 11
Proces adresiranja
Proces mora imati IP adresa hosta nije
identifikator, adresu, dovoljna da
da bi mogao da primi identifikuje proces,
poruku jer na hostu se
host ima jedinstvenu izvrava vie procesa
32-bitnu globalnu IP Na svakom host postoji
adresu vie port-ova na koje
se vezuju pojedini
procesi, pa je redni
broj porta dodatna
adresa procesa
Web server 80
SMTP - 25
2: Aplikativni sloj 12
Aplikativni protokoli odreuju
Tipove poruka koje se Internet protokoli javnog
razmenjuju, npr. da li je to domena (Public-
pitanje ili odgovor
domain) :
Sintaksa razliitih tipova
poruka: ta su polja u definisani RFC-om
poruci i kako se mogu omoguavaju
locirati
interoperabilnost
Semantika polja, tj.
Vrednosno znaenje Npr. HTTP, SMTP
podatka u tom polju Internet vlasniki
Pravila koja definiu kada i protokoli
kako procesi alju ili
primaju poruke
(Proprietary) :
Npr. KaZaA
2: Aplikativni sloj 13
Kakve usluge prua transportni sloj
aplikaciji?
Gubitak podataka Brzina prenosa
Neke aplikacije toleriu
Neke aplikacije
izvestan gubitak podataka u
prenosu (npr. audio) zahtevaju neku
Neke aplikacije zahtevaju 100% minimalnu brzinu
pouzdan prenos podataka (npr. prenosa podataka (npr.,
file transfer, telnet) multimedijalne)
Neke aplikacije ,
Sinhronizacija i kanjenje
tzv.elastine, rade sa
Neke aplikacije zahtevaju
preciznu sinhronizaciju i
proizvoljnom brzinom
malo kanjenje (npr. prenosa podataka
Internet telefonija,
interaktivne igre)
2: Aplikativni sloj 14
Pregled zahteva optih aplikacija u pogledu
transportnih usluga
2: Aplikativni sloj 15
Servisi koje pruaju Internet
transportni protokoli
TCP servis: UDP servis:
Konektivno-orijentisan: Nepouzdan prenos
podataka izmeu
zahteva se uspotava veze
poiljaoca i primaoca
izmeu klijenta i servera
Ne obezbeuje: uspostavu
Pouzdan transport izmeu veze, pouzdan prenos,
klijenta i servera upravljanje protokom,
Upravljanje protokom: upravljanje zaguenjem,
poiljalac vodi brigu o potrebne vremenske
mogunostima primaoca zavisnosti, minimum
brzine prenosa podataka
Upravljanje zaguenjem:
poiljalac vodi brigu o
P: Zato onda uopte slui
mogunostima mree
UDP?
Ne obezbeuje: potrebne
vremenske zavisnosti,
minimum brzine prenosa 2: Aplikativni sloj 16
Pregled Internet aplikacija i korienih aplikativnih
i transportnih protokola
Application Underlying
Application layer protocol transport protocol
2: Aplikativni sloj 17
Internet aplikacije i korienje aplikativnih i
transportnih protokola
2: Aplikativni sloj 18
Web i HTTP
Uvod
Web stranice (Web page) sadre objekte
Objekt moe biti HTML datoteka (file), JPEG slika, Java
aplet, audio file,
Web strana poseduje osnovnu HTML datoteku (base HTML-
file) koja sadri vie referenciranih objekata
Svaki objekt moe biti adresiran preko URL adrese
Primer URL:
www.someschool.edu/someDept/pic.gif
2: Aplikativni sloj 19
Web i HTTP
Veb stranice se u veini sluajeva sastoje od osnovne HTML
datoteke i nekoliko referenciranih objekata. Ukoliko, primera
radi, veb strana sadri HTML tekst i pet JPEG slika, onda
ona ima est objekata: osnovnu HTML datoteku i pet slika.
Osnovna HTML datoteka referencira ostale objekte na
stranici putem njihovih URL-ova. Svaka URL adresa ima dve
komponente: ime servera na kome se dati objekat nalazi i
putanju do objekta.
2: Aplikativni sloj 20
Web i HTTP
U samom srcu Weba nalazi se protokol HTTP {HyperText
Transfer Protocol) protokol njegovog aplikacijsknog sloja.
HTTP je defmisan dokumentima [RFC 1945] i [RFC 2616], a
implementira se u dva programa - klijentskom i serverskom.
Klijentski i serverski programi, koji se izvravaju na dva
razliita raunara, komuniciraju razmenom HTTP poruka.
Protokol HTTP definie strukturu tih poruka i nain na koji
ih klijent i server razmenjuju.
Protokol HTTP definie nain na koji veb klijenti (recimo,
pretraivai) trae veb strane od veb servera, kao i nain na
koji veb serveri alju traene stranice klijentima.
Kada korisnik zatrai neku veb stranicu (miem izabere
hipervezu), pretraiva alje serveru HTTP poruke
zahtevajui objekte sa date stranice. Server prima ove
zahteve i odgovara HTTP porukama u kojima se nalaze
traeni objekti.
2: Aplikativni sloj 21
Pregled HTTP-a
HTTP: hypertext
transfer protocol
Aplikativni protokol koji
PC running
koriste Web aplikacije Explorer
Klijent/server model rada
klijent: browser koji
alje zahteve, prima i
prikazuje Web objekte Server
server: Web server koji running
Apache Web
alje objekte kao
server
odgovore na zahteve
klijenata
Mac running
HTTP 1.0: RFC 1945
Navigator
HTTP 1.1: RFC 2068
2: Aplikativni sloj 22
Pregled HTTP-a (nastavak)
Koristi TCP: HTTP je stateless
Klijent zapoinje uspostavu server ne uva
TCP konekcije (kreira soket) podatke o proteklim
ka serveru na portu 80 zahtevima klijenta
Server prihvata uspostavu
TCP konekcije State protokoli su sloeniji!
Izmenljuju se HTTP poruke
Moraju da pamte stanja u
izmeu pretraivaa kojima su se nalazili
(browser ili HTTP klijent) i
Ako nastupi problem u
Web servera (HTTP server)
komunikaciji, onada se on
TCP konekcija se raskida
reava analizom zateenog
stanja
2: Aplikativni sloj 23
HTTP konekcije
Neperzistenti HTTP Perzistentni HTTP
Kratkotrajna konekcija Trajna konekcija
Ne moe se slati TCP Vie objekata se moe
vezom vie od jednog slati preko jedne TCP
objekta veze izmeu klijenta i
HTTP/1.0 koristi servera
neperzistentni HTTP HTTP/1.1 koristi
perzistentnu konekciju
kao podrazumevanu
(default) opciju
2: Aplikativni sloj 24
FTP: protokol za prenos datoteka
2: Aplikativni sloj 25
FTP: protokol za prenos datoteka
2: Aplikativni sloj 26
FTP: odvojeno upravljanje prenosom od
samog prenosa podataka
TCP control connection
FTP klijent uspostavlja TCP port 21
upravljaku vezu sa FTP
serverom preko porta 21
Klijent preko ove konekcije se TCP data connection
FTP port 20 FTP
identifikuje serveru slanjem svog
client server
imena i lozinke kako bi preuzeo
kontrolu nad prenosom
Server otvara drugu TCP vezu na
Klijent potom pretrauje portu 20 preko koje se vri
udaljeni direktorijum slanjem prenos podataka koji pripadaju
komande koja ide preko datoteci
upravljake veze
Upravljaka konekcija je izvan
Kada server primi komandu za kanala za prenos podataka: out
prenos datoteke, server otvara of band
novu TCP konekciju sa klijentom
FTP server odrava stanje:
za prenos podataka iz datoteke
trenutni direktorijum, prethodne
Nakon prenosa podatka iz autentifikacije...
datoteke server raskida vezu
2: Aplikativni sloj 27
FTP komande i odzivi (opt.)
2: Aplikativni sloj 28
Elektronska pota outgoing
message queue
user mailbox
user
Tri osnovne komponente:
agent
Korisniki agenti
mail
mail serveri user
server
agent
simple mail transfer protocol:
SMTP SMTP mail
server user
Korisniki agent SMTP agent
2: Aplikativni sloj 30
Elektronska pota: SMTP [RFC
2821]
Koristi pouzdan TCP za prenos poruke e-pote
od klijenta do servera preko porta 25
Tri faze prenosa
handshaking (uspostava veze)
Prenos poruka
Raskid veze
Komande/odzive interakcija
komandne: ASCII tekst
odziv: kod statusa i rezervisane rei
Poruke moraju biti u 7-bitnom ASCII
2: Aplikativni sloj 31
Scenario: Alisa alje poruku Bobu
1) Alisa koristi UA da napie 4) SMTP klijent alje Alisinu
pismo i poalje ga: poruku preko TCP veze
bob@someschool.edu
2) Alisin UA alje pismo 5) Bobov mail server stavlja
potanskom serveru; poruku u Bobovo potansko
poruka se smeta u red sandue
ekanja za slanje
6) Bob poziva svog korisnikog
3) Klijentska strana SMTP-a
uspostavlja TCP vezu prema agenta da bi proitao
Bobovom potanskom poruku
serveru
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
2: Aplikativni sloj 32
Primer SMTP interakcije (opt.)
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
2: Aplikativni sloj 33
Veba SMTP interakcije (opt.)
telnet servername 25
see 220 reply from server
enter HELO, MAIL FROM, RCPT TO, DATA, QUIT
commands
above lets you send email without using email client
(reader)
2: Aplikativni sloj 34
SMTP: saetak
SMTP korsisti perzistentnu SMTP vs. HTTP:
konekciju
HTTP: dovlaenje (pull)
SMTP zahteva da poruka
bude u 7-bit ASCII SMTP: prosleivanje (push)
(zaglavlje i telo)
Oba imaju intrakciju
SMTP server koristi pomou ASCII komandi i
CRLF.CRLF kako bi odredio odziva i kodova statusa
kraj poruke
HTTP: svaki objekt je
enkapsuliran u sopstvenoj
povratnoj poruci
SMTP: vie objekata se
alju u poruci sa vie delova
(multipart)
2: Aplikativni sloj 35
Protokoli za pristup elektronskoj
poti
SMTP SMTP access user
user
agent protocol agent
2: Aplikativni sloj 36
Chapter 2: Summary
Most importantly: learned about protocols
typical request/reply
control vs. data msgs
message exchange:
in-band, out-of-band
client requests info or
centralized vs. decentralized
service
stateless vs. stateful
server responds with
data, status code reliable vs. unreliable msg
transfer
message formats:
complexity at network
headers: fields giving
edge
info about data
data: info being
communicated
2: Aplikativni sloj 37