You are on page 1of 37

RAUNARSKE MREE

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

Radi na razliitim krajnjim


network
data link

sistemima i
physical

Komunicira sa drugim
sistemima preko mree.
Npr., Web: Web server
softver komunicira sa
browser softverom
Nema pisanja softvera za application
application

ureaje u jezgru mree!


transport
transport network
network data link
Ureaji u jezgru mree ne
data link physical
physical

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

Kao to smo ve rekli, aplikacije u veini sluajeva ine dva procesa


na dva razliita raunara i ti procesi izmeu sebe komuniciraju
korienjem mree.
Procesi svoje poruke alju u mreu i primaju poruke iz nje preko
soketa. Najjednostavnije je da soket procesa zamislimo kao
svojevrsna vrata datog procesa, koji bi, opet, mogao da se poistoveti
sa kuom.
Kada neki proces eli da poalje poruku drugom procesu, on tu
poruku izbacuje u mreu kroz svoja vrata (soket). Pri tom, on
pretpostavlja da s druge strane njegovih vrata postoji transportna
infrastruktura koja e poruku preneti kroz Internet sve do vrata
odredinog procesa.
Kada dospe do odredinog raunara, poruka prolazi kroz vrata
primajueg procesa (soket), koji zatim moe da preduzme traenu
akciju.
2: Aplikativni sloj 10
Soketi
Proces alje i prima Krajnji
sistem
Krajnji
sistem
poruke preko svog soketa,
interfejsa izmeu Pod kontrolom
aplikativnog programa i proces
programera
proces
mree (API)
soket soket
Analogija soketa i vrata
na kui
TCP with TCP with
buffers, Internet buffers,
Proces preko API-ja ima variables variables
samo mogunost:
odabiranja transportnog Pod kontrolom OS
protokla
Odabiranja vrednosti za
pojedine parametre

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

Application Data loss Bandwidth Time Sensitive

file transfer no loss elastic no


e-mail no loss elastic no
Web documents no loss elastic no
real-time audio/video loss-tolerant audio: 5kbps-1Mbps yes, 100s msec
video:10kbps-5Mbps
stored audio/video loss-tolerant same as above yes, few secs
interactive games loss-tolerant few kbps up yes, 100s msec
instant messaging no loss elastic yes and no

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

e-mail SMTP [RFC 2821] TCP


remote terminal access Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
file transfer FTP [RFC 959] TCP
streaming multimedia proprietary TCP or UDP
(e.g. RealNetworks)
Internet telephony proprietary
(e.g., Dialpad) typically UDP

2: Aplikativni sloj 17
Internet aplikacije i korienje aplikativnih i
transportnih protokola

Na slajdu navedeni su transportni protokoli koje koriste neke


popularne Internet aplikacije.
Vidimo da aplikacije za elektronsku potu, pristup udaljenim
terminalima, Web i transfer datoteka koriste TCP. Programeri ovih
aplikacija izabrali su ovaj protokol prvenstveno zato to on
obezbeduje pouzdanu transportnu uslugu, garantujui da e svi podaci
stii do svog odredita.
Isto tako, vidimo da aplikacije za Internet telefoniju (Skype) obino
koriste UDP. Obe strane ove aplikacije moraju da alju podatke kroz
mreu brzinom koja je vea od neke minimalne brzine, a to je pre
mogue uz upotrebu protokola UDP nego uz protokol TCP, i koja
tolerie odreeni gubitak podataka.

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

host name path name

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

FTP file transfer


FTP FTP
user client server
interface
user
at host local file remote file
system system

Prenos datoteka na ili sa udaljenog host-a


Klijent/server model
klijent: strana koja inicira prenos u oba sluaja
server: udaljeni host
ftp: RFC 959
Koristi TCP servis

2: Aplikativni sloj 25
FTP: protokol za prenos datoteka

Kao to smo videli na slici, korisnikova interakcija sa protokolom FTP


odvija se preko FTP korisnikog agenta. Korisnik u ovom sluaju
najpre upisuje ime udaljenog raunara, nakon ega FTP klijentski
proces uspostavlja TCP konekciju sa FTP serverskim procesom
udaljenog raunara.
Nakon toga, korisnik treba da upie svoje korisniko ime i svoju
lozinku koji se zatim alju TCP konekcijom kao deo FTP komandi. im
ga server ovlasti, korisnik moe da pone da prebacuje jednu ili vie
datoteka sa lokalnog sistema na udaljeni (ili obratno).

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

Primeri komandi: Primeri povratnih kodova


sent as ASCII text over status code and phrase (as
control channel in HTTP)
USER username 331 Username OK,
PASS password password required
125 data connection
LIST return list of file in
already open;
current directory
transfer starting
RETR filename retrieves 425 Cant open data
(gets) file connection
STOR filename stores 452 Error writing
(puts) file onto remote file
host

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

Tzv. mail reader, ali


SMTP
neprecizno mail user
ita, odgovara ili prosleuje, server agent
uva i pie elektronske poruke
Npr., Outlook, elm, Netscape user
Messenger agent
user
Prima dolazne i alje odlazne
agent
poruke ka potanskom serveru
po posebnom protokolu 2: Aplikativni sloj 29
Elektronska pota: potanski
serveri
Potanski (Mail) serveri user
agent
Potansko sandue (mailbox)
mail
sadri pristiglu potu za server
user
datog korisnika agent
Poruke koje korisnik alje SMTP mail
ekaju u redu za slanje server user
(message queue)
SMTP agent
Potanski serveri koriste
SMTP protokol radi razmene SMTP
elektronskih pisama mail user
klijent: potanski server server agent
koji alje pisma
server: postanski user
agent
server koji prima pisma
user
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

senders mail receivers mail


server server
SMTP: isporuuje i skladiti poruku na serveru primaoca
Protokoli za pristup elektronskoj poti (Mail access): dovlai
korisniku potu sa servera
POP: Post Office Protocol [RFC 1939]
autorizacija (agent <-->server) i dovlaenje (download)
IMAP: Internet Mail Access Protocol [RFC 1730]
Vie funkcija (sloeniji)
Rad sa uskladitenim porukama na serveru
HTTP: Hotmail , Yahoo! Mail, etc.

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

You might also like