Nivo aplikacije - Ivan Drakic | ivan drakic komuniciraju međusobno klijent/server 4 2: Nivo...

40
1 2: Nivo aplikacije 1 2: Application Layer 1 2: Nivo aplikacije 2 Nivo aplikacije Principi protokola nivoa aplikacije Web i HTTP FTP Elektronska pošta SMTP, POP3, IMAP DNS P2P file sharing

Transcript of Nivo aplikacije - Ivan Drakic | ivan drakic komuniciraju međusobno klijent/server 4 2: Nivo...

1

2: Nivo aplikacije 12: Application Layer 1

2: Nivo aplikacije 2

Nivo aplikacije

Principi protokola nivoa aplikacijeWeb i HTTPFTPElektronska pošta

SMTP, POP3, IMAPDNSP2P file sharing

2

2: Nivo aplikacije 3

Neke mrežne aplikacije

E-mailWeb“Instant messaging”“Remote login”“P2P file sharing”“Multi-user” mrežne igre“Streaming stored”video klipovi

Internet telefon“Real-time” video konferencija“Grid computing”Društvene mreže

2: Nivo aplikacije 4

Kreiranje mrežne aplikacijeNapisati programe koji

se izvršavaju na različitim krajnjim sistemima ikomuniciraju preko mreže.npr., Web: Web server software komunicira prekobrowser software

Ne piše se softver za uređaje na kičmi mreže

mrežni uređaji na kičmi ne funkcionišu na nivou aplikacijeovakav dizajn dozvoljava brzi razvoj aplikacija

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

3

2: Nivo aplikacije 5

Arhitekture aplikacija

Klijent-serverPeer-to-peer (P2P)Hibrid klijent-server i P2P…

2: Nivo aplikacije 6

Klijent-server arhitekturaServer:

Uvijek uključen i čeka pristup klijenataPermanentna IP adresaFarme servera

Klijenti:Komuniciraju sa serveromPovezan povremenoMože imati dinamičkuIP adresuNe komuniciraju međusobno

klijent/server

4

2: Nivo aplikacije 7

Google Data CentriProcijenjena cijena data centra: 600 miliona $Google je tokom 2007 potrošio 2.4 milijardi $ u nove data centreSvaki data centar troši 50-100 MW električne struje

2: Nivo aplikacije 8

P2P arhitektura

Server nije uvijek uključenProizvoljni krajnji sistemi mogu direktno komuniciratiPeer-ovi su povremeno povezani i mogu mijenjati IP adresePrimjer: Gnutella

Vrlo skalabilni!

Teški za upravljanje!

peer-peer

5

2: Nivo aplikacije 9

Hibrid klijent-server i P2P

Skypevoice-over-IP P2P aplikacijacentralizovani server: pronalaženje adrese udaljene strane: klijent-klijent konekcija je direktna bez posredovanja servera

Instant messagingČatovanje dva korisnika je P2PDetektovanje prisutnosti i lokacije je centralizovano:

• Korisnik registruje svoju IP adresu na centralni server kada hoće da čatuje

• Korisnik kontaktira centralni server da pronađe IP adresekorisnika sa kojima želi da čatuje

2: Nivo aplikacije 10

Komuniciranje procesa

Proces: program koji se izvršava na hostu.U samom hostu, dva procesa komuniciraju na bazi inter-procesnekomunikacije(definisane u OS).Procesi na različitim hostovima komuniciraju razmjenom poruka

Klijent proces: proceskoji inicijalizuje komunikaciju

Server proces: proceskoji čeka da bude kontaktiran

Napomena: aplikacije saP2P arhitekturom imajui klijent i server procese

6

2: Nivo aplikacije 11

Proces komunikacije mrežom

Proces šalje/prima poruke preko svog “socket”-a“socket” je analogan vratima

Proces šalje poruke prekosocketaproces koji šalje se oslanja na transportnuinfrastrukturu na drugoj stani vrata koja prenosi poruku do “socket”prijemnog procesa

proces

TCP sa baferima,variabile

“socket”

host iliserver

proces

TCP sa baferima,variabile

“socket”

host iliserver

Internet

kontolišeOS

Kontrolisano odprogramera apl.

API: (1) izbor transportnog protokola; (2) mogućnost specificiranja nekoliko parametara (maksimalnaveličina bafera i maksimalna veličina segmenta)

2: Nivo aplikacije 12

Proces adresiranja:Za proces koji prima poruke, mora postojati identifikatorSvaki host ima jedinstvenu 32-bitnu IP adresuPrisjetiti se komande ipconfig...P: Da li je IP adresa hosta na kojem se proces izvršava dovoljna za identifikaciju procesa?

Identifikator uključuje i IP adresu i broj porta vezan za proces na hostu.Primjer brojeva porta:

HTTP server: 80Mail server: 25

VIŠE KASNIJE

O: Ne, mnogi procesi se mogu izvršavati na istom hostu

7

2: Nivo aplikacije 13

Protokol nivoa aplikacije definiše

Tipove poruka koje se razmjenjuju, npr., zahtjevi & poruke odgovoraTipove sintaksi poruka: koja su polja & kako su odvojenaSemantika polja, npr., značenje informacija u poljimaPravila vezana kada i kako se šalju poruku i kako se odgovara na njih

Javni (public) protokoli:Definisani u RFC-ovimaDozvoljavaju interoperatibilnostnpr, HTTP, SMTP

Privatni (proprietary) protokoli:npr, Skype,…

2: Nivo aplikacije 14

Koji transportni servisi su potrebni aplikacijama?Gubici podataka

Neke aplikacije (npr., audio) mogu tolerisati određeni nivo gubitakaDruge aplikacije (npr., file transfer, telnet) zahtijevaju 100% pouzdani transfer podataka

VrijemeNeke aplikacije (npr., Internet telefonija, interaktivne igre)zahtijevaju malo kašnjenje

Brzina prenosaNeke aplikacije (npr., multimedija) zahtijevajupreciziranje minimalne dostupne brzine prenosaDruge aplikacije(“elastične aplikacije”) koriste onoliko opsega koliko mogu dobiti

ZaštitaEnkripcija, integritet podataka, …

8

2: Nivo aplikacije 15

Transportni servisni zahjevi zajednički za sve aplikacije

Aplikacija

file transfere-mail

Web dokumentireal-time audio/video

stored audio/videoInteraktivne igre

instant messaging

Gubici

bezbezbeztolerantne

tolerantnetolerantnebez

Brzina prenosa

elastičanelastičanelastičanaudio: 5kb/s-1Mb/svideo:10kb/s-5Mb/sIsti kao gorenekoliko kb/s i višeelastičan

Vrem. osjet.

neneneda, 100-tinak ms

da, nekoliko sda, 100-tinak msda i ne

2: Nivo aplikacije 16

Servisi transportnih protokola Interneta

TCP servisi:konektivnost: uspostavljanjekomunikacije se zahtijeva između klijentskih i serverskih procesapouzdani transport između procesa slanja i prijemakontrola protoka: pošiljalac ne smije da “zaguši” prijemnikkontrola zagušenja: usporava pošiljaoca kada je mreža zagušenaNe obezjeđuje: tajming, garantovanje minimalnog opsega

UDP servisi:Nepouzdani prenos podataka između procesa slanja i prijemaNe obezbjeđuje: uspostavljanje veze, pozdanost, kontrolu protoka, kontrolu zagušenju, tajming, ili garantovani opseg

P: Zašto oba? Zašto UDP?

9

2: Nivo aplikacije 17

Internet aplikacije: aplikacija, transportniprotokoli

Aplikacija

e-mailudaljeni terminal

Web file transfer

streaming multimedia

Internet telefonija

Protokoli nivoaaplikacije

SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]privatni(npr. RealNetworks)privatni(npr., Dialpad, Skype)

Transportniprotokol

TCPTCPTCPTCPTCP ili UDP

UDP (i TCP)

2: Nivo aplikacije 18

Web i HTTPTermini

Web stranica se sastoji od objekataObjekat može biti HTML fajl, JPEG slika, Java “applet”, audio fajl,…Web stranica se sastoji od osnovnog HTML-fajlakoji sadrži više referenci objekataSvaki objekat se adresira sa URL (Uniform Resource Locators)Primjer URL:

http://www.ethereal.com/distribution/win32

ime hosta ime puta

10

2: Nivo aplikacije 19

HTTP pregled

HTTP: hypertext transfer protokolWeb-ov protokol nivoa aplikacijeklijent/server model

klijent: “browser” koji zahtijeva, prima, prikazuje Web objekteserver: Web server šalje objekte kao odgovor na zahtjeve

HTTP 1.0: RFC 1945HTTP 1.1: RFC 2616 (1998)

PC saExplorer-om

Server sa

Apache Webserverom

Mac saNavigator-om

HTTP zahtjev

HTTP zahtjev

HTTP odgovor

HTTP odgovor

2: Nivo aplikacije 20

HTTP pregled (nastavak)Koristi TCP:

klijent inicijalizuje TCP vezu(kreira socket) prema serveru, port 80server prihvata TCP vezu odklijentaHTTP poruke zahtjeva i odgovora (poruke protokola nivoa aplikacije) se razmjenjuju između “browser”-a (HTTP klijent) i Web servera (HTTP server)TCP veza se zatvara

HTTP je “stateless”server ne čuva informacije o prethodnim korisnikovim zahtjevima (ne raspoznaje korisnike)

Protokoli koji nadziru“stanje” su kompleksni!Ranije stanje mora biti nadziranoako server/klijent “padne”, njihovi uvidi u “stanje”mogu biti inkonzistentni,moraju biti ponovo razmotreni

Pored toga

11

2: Nivo aplikacije 21

HTTP veze

Neperzistentni (neistrajan)HTTPNajviše jedan objekat je poslat preko TCP konekcije.HTTP/1.0 koristineperzistentni HTTP

Perzistentni HTTPViše objekata može biti poslato preko jedne TCP veze između klijenta i servera.HTTP/1.1 koristiperzistentne veze u default modu

2: Nivo aplikacije 22

Neperzistentni HTTPPretpostavimo korisnik unese sledeći URL

http://www.cftmn.com/index.html

1a. HTTP klijent inicijalizuje TCP vezu do HTTP servera (procesa) na www.cftmn.com po portu 80

2. HTTP klijent šalje HTTP poruku zahtjeva (sadrži URL) u socket TCP veze. Poruka indicira da klijent želi objekat/index.phtml

1b. HTTP server na hostuwww.cftmn.com čeka na TCP konekcije na portu 80. “Prihvata” vezu, obaveštava klijenta

3. HTTP server prima poruku zahtjeva, formira poruku odgovora koja sadrži zahtijevani objekat i šalje poruku svom socketu

vrijeme

12

2: Nivo aplikacije 23

Neperzistentni HTTP (nastavak)

5. HTTP klijent prima poruku odgovora koja sadrži html fajl, prikazuje html, tumači html fajl, pronalazi upućene objekte

6. Koraci 1-5 se ponavljaju za svaki objekat

4. HTTP server zatvara TCP vezu.

Vrijeme

2: Nivo aplikacije 24

Modelovanje vremena odgovaraDefinicija RTT (Round Trip Time): vrijeme prenosa malog paketa od klijenta do servera i nazad.Vrijeme odgovora:

jedan RTT za inicijalizaciju TCP veze

jedan RTT za HTTP zahtjev i vraćanje prvih nekoliko bajtovaHTTP odgovora

Vrijeme prenosa fajlaukupno = 2RTT+vrijeme prenosa fajla

Vrijeme zaPrenosfajla

InicijalizacijaTCP veze

RTT

Fajl zahtjeva

RTT

Fajl primljen

vrijeme vrijeme

13

2: Nivo aplikacije 25

Perzistentni HTTPProblemi neperzistentnog HTTP-a:

zahtjeva 2 RTT po objektuOS mora raditi i dodijeliti resurse hosta za svaku TCP vezuProblem je što browser-i često otvaraju paralelne TCP veze za povlačenje zahtijevanihobjekata

Perzistentni HTTPserver zadržava vezu otvorenu poslije slanja odgovorasekvencijalne HTTP poruke između istog klijent/servera se šalju istom vezomZatvara konekciju poslijeodređenog vremena neaktivnosti

Perzistentni bez “pipelining”:Klijent šalje novi zahtjev samo kada je prethodni odgovor primljenjedan RTT za svaki upućeni objekatKada nema zahtjeva TCP konekcija je slobodna

Perzistentni sa “pipelining”:default u HTTP/1.1klijent šalje zahtjeve odmah po dobijanju referenci objekataVeličine svega po jedanRTT za svaki referenciraniobjekat

2: Nivo aplikacije 26

HTTP poruka zahtjeva

Dva tipa HTTP poruka: zahtjev, odgovorHTTP poruka zahtjeva:

ASCII (format čitljiv čovjeku)

GET /somedir/page.html HTTP/1.1Host: www.someschool.eduUser-agent: Mozilla/4.0Connection: close Accept-language:fr

linija zahtjeva(GET, POST,

HEAD komande)

linijezaglavlja

Prazna linija indicira kraj poruke

Tri polja: komandaURL polje i polje

HTTP verzije

Ovo polje koristiproxy server, bez

obzira na postojećuTCP konekciju

Želi da zatvori vezu pošto primi odgovor.

Verzija objekta prilagodjenog Netscape.

Francuska verzijaobjekta

14

2: Nivo aplikacije 27

Tipovi

HTTP/1.0GETPOSTHEAD

Pita servera da pusti traženi sadržaj (otklanjanje grešaka)

HTTP/1.1GET, POST, HEADPUT

Uploaduje fajl na mjesto u Web serveru definisano u URL polju

DELETEBriše fajl definisan uURL polju

2: Nivo aplikacije 28

HTTP poruka odgovora

HTTP/1.1 200 OK Connection closeDate: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html

data data data data data ...

statusna linija(protokolski kod

statusa -statusna fraza)

linijezaglavlja

podaci, npr., traženi

HTML fajl

Verzija protokola, statusni kod

i statusna porukaKada je generisan

odgovor!

15

2: Nivo aplikacije 29

HTTP kodovi statusa odgovora

200 OKZahtjev uspješan, zahtijevani objekat se nalazi u poruci

301 Moved PermanentlyZahtijevani objekat preseljen, nova lokacija specificirana u poruci (Lokacija:)

400 Bad RequestServer ne razumije poruku zahtijeva

404 Not FoundZahtijevani dokument nije pronađen na ovom serveru

505 HTTP Version Not Supported

U prvoj liniji u server->klijent poruci odgovora.Nekoliko primjera kodova statusa i odgovarajućih poruka:

2: Nivo aplikacije 30

Cookies: vode računa o “stanju”(RFC 2109)

Mnogi Web sajtovi koriste cookies

Četiri komponente:1) Linija zaglavlja cookie u

HTTP poruci odgovora2) Linija zaglavlja cookie u

HTTP poruci zahtjeva3) cookie fajl se čuva na

korisnikovom hostu i održava se od strane korisnikovog browser-a

4) Baza podataka na Web sajtu

Primjer:Neko pristupaInternetu uvijek preko istog PC-aPosjećuje specifične e-commerce sajtove po prvi putKada inicijalni HTTP zahtjevi dođu na sajt,sajt kreira jedinstveniID i kreira odgovarajuću informaciju u bazi podataka za ID

16

2: Nivo aplikacije 31

Cookies: vode računa o “stanju”(nastavak)

klijent server

uobičajen http odgovor

uobičajen http odgovor

cookie fajl

Nedjelju dana kasnije!

obična http por. zahtjevacookie: 1678 cookie-

definisana akcija

pristup

ebay 8734obična http por. zahtjeva Amazon server

kreira ID1678 za korisnikaKreiranje

upisa

uobičajen http odgovorSet-cookie: 1678

ebay 8734amazon 1678

obična http por. zahtjevacookie: 1678 cookie-

definisana akcija

pristupebay 8734amazon 1678

Baza podataka

2: Nivo aplikacije 32

Cookies: (nastavak)

Šta cookies donose:autorizaciju“shopping cards”preporukestanje korisnikove sesije (Web e-mail)

Cookies i privatnost:Cookies dozvoljavaju sajtu da dosta nauči o korisnikuMogu se dostaviti imenai e-mail sajtovimaPretraživači koriste cookies da nauče više o korisnicimaKompanije dobijaju dodatne informacije preko weba

Pored toga

17

2: Nivo aplikacije 33

Web “caches” (proxy server)

Korisnik setuje browser: Web pristup preko proxy serverabrowser šalje sve HTTP zahtjeve proxy serveru

objekat u proxy-u: proxy šalje objekatili proxy zahtjeva objekat od željenog servera, tada vraća objekat klijentu

Cilj: zadovoljenje klijentovog zahtjeva bez uključivanja originalnog servera

client

Proxyserver

client

HTTP request

HTTP response

HTTP request HTTP request

origin server

origin server

HTTP response HTTP response

2: Nivo aplikacije 34

Više o proxy serveru

Proxy server radi i kao klijent i kao serverTipično proxy instalira ISP (univerzitet, kompanija, rezidencijalni ISP)

Zašto proxy server?Smanjuje vrijeme odziva na zahtjev.Smanjuje saobraćaj na linku institucije prema Internetu.Internet sa proxy serverom omogućava“slabim” provajderima sadržaja efikasniju predaju sadržaja

18

2: Nivo aplikacije 35

Primjer (1)Pretpostavke

Srednja veličina objekta = 100,000 bSrednja brzina zahtjeva za željeni servere = 20zahtj/sKašnjenje od rutera institucije do željenog servera i nazad = 2s

PoslediceIskorišćenje na LAN-u = 20%Iskorišćenje veze prema I = 100%Ukupno kašnjenje = Internet kašnjenje + kašnjenje pristupa + LAN kašnjenje

= 2s + minuti + milisekunde

Željeni serveri

javniInternet

Mreža institucije10 Mb/s LAN

2Mb/s Veza na Internet

Intenzitet saobraćaja u LAN mreži(20zahtj/s*100kb/zahtj)/10Mb/s=0.2Intenzitet saobraćaja na linku(20zahtj/s*100kb/zahtj)/2Mb/s=1

2: Nivo aplikacije 36

Primjer (2)Moguće rješenje

Povećanje propusnosi veza na Internet na npr, 10 Mb/s

PosledicaIskorišćenje na LAN-u = 20%Iskorišćenje veze na I. = 20%Ukupno kašnjenje = Internet kašnjenje + kašnjenje pristupa + LAN kašnjenje

= 2 s + ms-e + ms-eNadogradnja košta

Željeni serveri

Javni Internet

Mreža institucije10 Mb/s LAN

10 Mb/s Veza na Internet

19

2: Nivo aplikacije 37

Primjer (3)Instaliranje proxy servera

Pretpostavimo da je vjerovatnoća pogađanja 0.4 (0.2-0.7 u praksi)

Posledice40% zahtjeva će skoro odmah biti zadovoljeno60% zahtjeva zadovoljava željeni serverIskorišćenje veze na Internet je smanjeno na 60%, rezultujući zanemarljiva kašnjenja (npr10ms)Ukupno kašnjenje = Internet kašnjenje + kašnjenje pristupa + LAN kašnjenje

Srednje kašnjenje=.6*2 s + .4*.01 s + ms-e < 1.3s

Manje kašnjenje nego u prethodnom slučaju, uz značajno manje troškove (PC sa javnim softverom).

Željeniserveri

JavniInternet

Mreža institucije10 Mb/s LAN

2Mb/s Veza na Internet

Proxy institucije

2: Nivo aplikacije 38

“Conditional” GET

Cilj: ne slati objekat ako cache ima up-to-date sačuvanu verzijucache: specificira datum čuvanja kopije u HTTP zaglavljuIf-modified-since:

<date>

server: odgovor ne sadrži objekat ako je sačuvana kopija up-to-date: HTTP/1.0 304 Not

Modified

cache serverHTTP poruka GET

If-modified-since: <date>

HTTP odzivHTTP/1.0

304 Not Modified

Objekatnije

modifikovan

HTTP poruka zahtjevaIf-modified-since:

<date>

HTTP odzivHTTP/1.0 200 OK

<data>

objekat modifikovan

20

2: Nivo aplikacije 39

FTP: the file transfer protocol

transfer fajla od/do udaljenog hostaklijent/server model

klijent: strana koja inicijalizuje prenos (ili od/doudaljenog hosta)server: udaljeni host

ftp: RFC 959ftp server: port 21

fajl transfer FTPserver

FTPkorisn.

interfejs

FTPklijent

lokalnifajlsistem

udaljeni fajlsistem

Korisnik na

hostu

2: Nivo aplikacije 40

FTP: odvojene kontrolne veze i veze za prenos podataka

FTP klijent kontaktira FTP server na port 21, definišućiTCP kao transportni protokolKlijent dobija autorizaciju preko kontrolne vezeKlijent pregleda udaljene direktorijume slanjem komandi preko kontrolne veze. Slično važi i za komande get i put.Kada server primi komandu za prenos fajla, server otvara TCP vezu za prenos podataka do klijenta (port 20)Poslije slanja jednog fajla server zatvara vezu.

FTPklijent

FTPserver

TCP kontrolna vezaport 21

TCP konekcija podatakaport 20

Server otvara drugu TCPvezu podataka za prenos drugog fajla.Kontrola veze: “out of band”, kao kod RTSP.FTP server nadzire “state”: trenutni direktorijum, ranija identifikacija. “statefull”Kontrola HTTP veze: “inband”?

21

2: Nivo aplikacije 41

FTP komande, odgovori

Primjeri komandi:Šalje kao 7 bitni ASCII tekst preko kontrolnog kanala, identično kao HTTP.USER imePASS lozinka

LIST vraća spisak fajlova u direktorijumuRETR imefajla povlači fajlSTOR imefajla smješta fajl na udaljeni host

Primjer kodova odgovorastatus kodovi i fraze (kao uHTTP)331 Username OK, password required125 data connection already open; transfer starting425 Can’t open data connection452 Error writing file

2: Nivo aplikacije 42

Elektronska Pošta

Tri glavne komponente:korisnički agentimail serveriSMTP (simple mail transfer protocol)

Korisnički Agent“mail reader”sastavljanje, editovanje, čitanje mail porukanpr., Eudora, Outlook, Netscape Messengerodlazne, dolazne poruke se čuvaju na hostu

kor. mailbox

izlaznired čekanja poruka

mailserver

Kor.agent

Kor.agent

Kor.agent

mailserver

koragent

koragent

mailserver

Kor.agent

SMTP

SMTP

SMTP

22

2: Nivo aplikacije 43

Elektronska Pošta: mail serveri

Mail Serverimailbox sadrži dolazne poruke korisnikaRed čekanja odlaznih porukakoje trebaju da se pošaljuSMTP protokol između mail servera za slanje email poruka

klijent: slanje mail serveru“server”: prijem sa mail servera

mailserver

Kor.agent

Kor.agent

Kor.agent

mailserver

Kor.agent

Kor.agent

mailserver

Kor.agent

SMTP

SMTP

SMTP

2: Nivo aplikacije 44

Elektronska Pošta: SMTP [RFC 2821]

koristi TCP za pouzdani transfer email poruke od klijenta do servera po portu 25direktan transfer: od servera pošiljaoca do servera primaocaTri faze transfera

handshaking (upoznavanje)prenos porukezatvaranje

komanda/odgovor interakcijekomande: ASCII tekstodgovor: status kod ili fraza

Poruke moraju u kompletu biti 7-bitne ASCII.

Zašto?Zašto je ovo danas problematično? Što mislite kako je kod HTTP-a?

23

2: Nivo aplikacije 45

Scenario: Ana šalje poruku Bobanu1) Ana koristi KA da sastavi

poruku i adresira je [email protected]

2) Anin KA šalje poruku njenom mail serveru;poruka se smješta u red čekanja

3) Klijentska strana SMTP otvara TCP vezu sa Bobanovim mail serverom

4) SMTP klijent šalje Aninu poruku preko TCP veze

5) Bobanov mail server prima poruku i SMTP-ov serverski dio smješta poruku u Bobanov mailbox

6) Bob aktivira svoj KA da pročita poruku

Kor. agent

mailserver

mailserver Kor.

agent

1

2 3 4 56

2: Nivo aplikacije 46

Primjer SMTP interakcijeS: 220 mail.cg.yuC: HELO crepes.frS: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]>S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]>S: 250 [email protected] ... Recipient ok C: DATAS: 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: QUITS: 221 cg.yu closing connection

24

2: Nivo aplikacije 47

SMTP: kraj

SMTP koristi perzistentnekonekcijeSMTP zahtijeva poruke u 7-bit ASCII formatuSMTP server koristiCRLF.CRLF da odredi kraj poruke

Upoređenje sa HTTP:HTTP: “pull”SMTP: “push”

Oba imaju ASCII komande/odgovore, kodove statusa, ali se razlikuju po tijelima poruke.

HTTP: svaki objekat se smješta u sopstvenoj poruci odgovoraSMTP: više objekata se šalje u višedjelnoj (multipart) poruci

2: Nivo aplikacije 48

Format mail poruke (RFC 822)

SMTP: protokol za razmjenu email porukaRFC 822: standard zaformat tekstualnih porukaZaglavlja linija, npr.,

To:From:Subject:

Različito od SMTP komandi!tijelo

poruka, samo ASCII karakteri

zaglavlje

tijelo

Praznalinija

25

2: Nivo aplikacije 49

Format poruke: multimedijaMIME: multimedia mail extension, RFC 2045, 2046Dodatne linije u zaglavlju poruke deklarišu tip MIME sadržaja

From: [email protected]: [email protected]: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ..... ......................... ......base64 encoded data

Tip multimedijalnih podataka, podtip,

deklaracija parametara

Metod korišćen za kodiranje podataka

MIME verzija

Kodirani podaci

2: Nivo aplikacije 50

MIME tipoviTip sadržaja: tip/podtip; parametri

TekstPrimjeri podtipova: plain, html

SlikePrimjeri podtipova : jpeg, gif

AudioPrimjeri podtipova : basic(8-bit mu-law kodiranje), 32kadpcm (32 kb/s kodiranje)

VideoPrimjeri podtipova : mpeg, quicktime

AplikacijeDrugi podaci koji moraju biti obrađeni odgovarajućim programom prije “gledanja”Primjeri podtipova : msword, octet-stream

26

2: Nivo aplikacije 51

Višedjelni tipFrom: [email protected]: [email protected]: Picture of me. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=StartOfNextPart

--StartOfNextPartDear Bob, Please find a picture of me.--StartOfNextPartContent-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPartDo you want the recipe?

2: Nivo aplikacije 52

Protokoli Mail pristupa

SMTP: predaja/smještanje na serveru primaocaProtokol mail pristupa: povlačenja sa servera

POP: Post Office Protocol [RFC 1939]• autorizacija (agent <-->server) i povlačenje

sadržaja• Port 110

IMAP: Internet Mail Access Protocol [RFC 1730]• Više funkcija (složeniji)• Port 143• Manipulacija sa sačuvanim porukama na serveru

HTTP: Hotmail , Yahoo! Mail, itd.

Koragent

mail server pošiljaoca

Koragent

SMTP SMTP Protokolpristupa

mail server primaoca

27

2: Nivo aplikacije 53

POP3 protokolFraza autorizacije

Klijentove komande: user: deklariše imepass: lozinka

Serverovi odgovori+OK

-ERR

Faza transakcije, klijent:list: lista poruka i njihovih brojevaretr: povlačenje poruke na osnovu brojadele: brisanjeQuit

Faza update, poslije završetka sesije mail server briše poruke koje su označene za brisanje.

C: listS: 1 498 S: 2 912 S: . C: retr 1S: <message 1 contents>S: . C: dele 1 C: retr 2S: <message 1 contents>S: . C: dele 2C: quitS: +OK POP3 server signing off

S: +OK POP3 server ready C: user bobanS: +OK C: pass hungryS: +OK user successfully logged on

2: Nivo aplikacije 54

DNS: Domain Name System

Ljudi: imaju mnogo dokumenata za identifikaciju:

ime, broj pasoša,...Internet hostovi, ruteri:

IP adresa (32 bit) – koristi se za adresiranje datagrama“ime”, npr., server1.cis.cg.ac.yu –koriste ga ljudi

P: Kako mapirati IP adrese i imena?

Domain Name System:Distribuirana baza podatakaimplementirana kao hijerarhija velikog brojaservera imenaProtokol nivoa aplikacije host, ruteri, serveri imena komuniciraju za utvrđivanjeimena (adresa/ime translacija)

napomena: ključnaInternet funkcija, implementirana kao protokol nivoa aplikacijeKompleksnost na “ivici”mreže

Port 53, UDP, RFC 1034 i 1035.

28

2: Nivo aplikacije 55

DNSDNS servisi

Translacija imena hosta u IP adresuHost “aliasing”

Kanonska (www.yahoo.akadns.com) i alias imena (www.yahoo.com)

Mail server “aliasing”“mail.cg.yu” u “cg.yu”Distribucija opterećenja

Replikacija Web servera: setovanje IP adresa za jedno kanoničko ime

Zašto ne centralizovani DNS?Jedna tačka otkazaObim saobraćajaCentralizovana baza podatakaNadzor

Ne odgovara!

2: Nivo aplikacije 56

Root DNS Serveri

com DNS serveri org DNS serveri edu DNS serveri

poly.eduDNS serveri

umass.eduDNS serveriyahoo.com

DNS serveriamazon.comDNS serveri

pbs.orgDNS serveri

Distribuirana, Hijerarhijska Baza Podataka

Klijent želi IP adresu za www.amazon.com; prvaaproksimacija:Klijent pita root server da nađe com DNS serverKlijent pita jedan od com DNS servera da nađeamazon.com DNS serverKlijent pita amazon.com DNS server da mu pošaljeIP adresu www.amazon.com

29

2: Nivo aplikacije 57

DNS: “Root” serveri imenaKontaktiraju ih lokalni serveri imena kada ne mogu da pronađu imeroot server imena:

kontaktira autoritativni server imena ako mapiranje nije poznatodobija mapiranjevraća mapiranje lokalnom serveru imena

b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CA

e NASA Mt View, CAf Internet Software C. Palo Alto, CA

i NORDUnet Stockholmk RIPE London

m WIDE Tokyo

a NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA

postoji 13 svetskih “root” servera imena

www.root-servers.org

2: Nivo aplikacije 58

TLD i Autorizacioni serveri

Top-level domain (TLD) serveri: odgovorni zacom, org, net, edu, etc, i sve “top-level”domene zemalja uk, fr, ca, jp.

“Network solutions” nadzire servere za com TLD“Educause” za edu TLD

Autoritativni DNS serveri: DNS serveri organizacije obezbjeđuju mapiranja imena hostova u IP adrese za servere organizacije(npr., Web i mail).

Može biti nadziran od strane organizacije ili servis provajdera

30

2: Nivo aplikacije 59

“Local Name Server”

Striktno ne pripada hijerarhijiSvaki ISP (rezidencijalni ISP, kompanijski, univerzitet) ima jedan.

Još se zove “default name server”Kada host napravi DNS upit, upit se šalje na njegov lokalni DNS server

Ponaša se kao proxy, prosleđuje upite u hijerarhiju.

2: Nivo aplikacije 60

cis.poly.edu

gaia.cs.umass.edu

root DNS server

lokalni DNS serverdns.poly.edu

1

23

4

5

6

autoritativni DNS serverdns.cs.umass.edu

78

TLD DNS server

Primjer

Host cis.poly.edu želiIP adresu zagaia.cs.umass.edu

Iterativni upit:Kontaktirani server odgovara sa imenom servera kojeg treba kontaktirati“Neznam ovo ime, ali pitaj ovajserver”

31

2: Nivo aplikacije 61

cis.poly.edu

gaia.cs.umass.edu

root DNS server

lokalni DNS serverdns.poly.edu

1

2

45

6

autoritativni DNS serverdns.cs.umass.edu

7

8

TLD DNS server

3

Rekurzivni upitiRekurzivni upit:

Stavlja problem utvrđivanja imena na kontaktirani DNSVeliko opterećenje?

2: Nivo aplikacije 62

DNS: “caching” i “updating”Kada server imena definiše mapiranje on ga čuva:

Pri čemu se sačuvani podaci posle izvjesnog timeout perioda brišuTLD serveri su tipično sačuvani u lokalnim DNSovima

• Na taj način se root name serveri rijetko posjećuju“update/notify” mehanizmi su definisani od IETF

RFC 2136http://www.ietf.org/html.charters/dnsind-charter.html

32

2: Nivo aplikacije 63

DNS zapisiDNS:distribuirana baza podataka koja sadrži zapise resursa (resource records (RR))

Type=NSname je domenvalue je IP adresa autoritativnog name servera za ovaj domen

RR format: (name, value, type, ttl)

Type=Aname je ime hostavalue je IP adresa

Type=CNAMEname je alias ime nekog“kanoničkog” (stvarnog) imenavalue je kanoničko imewww.ibm.com je u stvariservereast.backup2.ibm.com

Type=MXvalue je kanonično ime mailservera čiji je name alias ime.

2: Nivo aplikacije 64

DNS protokol, porukeUpiti i odgovori, imaju isti format

Zaglavlje porukeidentifikacija: 16 bitni # za upit, odgovor na upit koristi isti #oznake:

Upit ili odgovorPoželjne rekurzijeDostupne rekurzijeOdgovor (brojpojavljivanja tipova )

33

2: Nivo aplikacije 65

DNS protokol, poruke

Ime, tip polja za upit

RR-ovi u odgovoru naupit

Podaci zaautoritativne servere

Dodatna korisnainformacija

2: Nivo aplikacije 66

Ubacivanje zapisa u DNSPrimjer: baš je kreiran “Network Utopia”Registracija imena networkuptopia.com u registar (npr., Network Solutions koja više nema monopol www.intenic.net)

Potrebno je dostaviti registru imena i IP adrese vašeg autoritativnog name server (primarnog i sekundarnog )Registar ubacuje dva RR u sve com TLD servere:

(networkutopia.com, dns1.networkutopia.com, MX)(dns1.networkutopia.com, 212.212.212.1, NS)

Postavlja u autoritativni server Type MX zapis zawww.networkuptopia.com i Type NS zapis za networkutopia.comKako ljudi mogu saznati IP adresu nekog Web sajta?

Kako poslati DNS poruku upita direktno DNS serveru?nslookup komanda sa MSDOS comand promptaPomoću odgovarajućih sajtova

34

2: Nivo aplikacije 67

“P2P file sharing”

Generiše najveći saobraćaj na Iternetu, čak veći od Weba.Razmjenjuju se ne samo MP3 fajlovi već i video klipovi, slike, tekstovi i softveri. Fokus će biti na protokolima i arhitekturi, dok ostala pitanja (sigurnost, privatnost, anonimnost, autorska prava) mogu biti predmet samostalnih istraživanja.

2: Nivo aplikacije 68

“P2P file sharing”Primjer

Ana aktivira P2P klijent aplikaciju na svom laptopuSvakog dana se povezuje naInternet putem ADSL-a : dobija IP adresu za svaku konekcijuTraži “Balkan”Aplikacija prikazuje druge “peers” koji imaju kopiju“Balkan”.Ti peer uređaji su obično PC računari, slično kao u Aninom slučaju.Ana bira jednog od “peers”, npr Bobana i uspostavlja TCP konekciju između njihovih računara.

Fajl se kopira sa BobanovogPC računara na Anin laptop: koristi se HTTPDok Ana povlači, drugi korisnici povlače od Ane.Ako Boban isključi računar Anin P2P klijent će pokušati ostatak povući sa drugog peer-a.P2P sistemu je na raspolaganju ogroman računarski kapacitet.Anin “peer” je i Web klijent i privremeni Web server.

Svi peerovi su serveri = vrlo skalabilno!

Ostaje pitanje kako se željeni sadržaj nalazi?

35

2: Nivo aplikacije 69

P2P: centralizovan direktorijum

originalni “Napster” dizajn1) Kada se “peer” poveže,

informiše centralni server o:

IP adresisadržaju

2) Ana pita za “Balkan”3) Ana zahtijeva fajl od

BobanaPovremeno server kontaktira peer radi utvrđivanja prisutnosti.

server centralnogdirektorijuma

peers

Ana

Boban

1

1

1

12

3

2: Nivo aplikacije 70

P2P: problemi sa centralizovanim direktorijumom

Jedna tačka otkazaUsko grlo za performanseProblemi sa pravima

file transfer je decentralizovan, ali je lociranje sadržaja vrlo centralizovano

36

2: Nivo aplikacije 71

Query flooding (poplava upita): Gnutella

Potpuno distribuirannema centralnog servera

Protokol javnog domenaMnogi Gnutella klijenti implementiraju protokol i formiraju apstraktnu logičku mrežu ili overlay network

overlay network: grafLinija između peer X i Y ako postoji TCP konekcijaSvi aktivni peerovi i linije čine overlay mrežuLinija nije fizički link. U stvari ona predstavlja više fizičkih linkova.Posmatrani peer će tipično biti povezan na manje od 10 overlay susjeda.

2: Nivo aplikacije 72

Gnutella: protokol

Query

QueryHit

Query

Query

QueryHit

Query

Query

QueryHit

File transfer:HTTPPoruke upita (Query)

se šalju preko postojećihTCP konekcija

peerovi prosleđuju poruke upita

QueryHit (ime fajla i veličina) se šalje usuprotnom smjeru preko postojećih TCP konekcija

Bira se jedan QueryHiti uspostavlja se direktna TCP konekcija, tako da na scenustupa HTTP.

Problem skalabilnosti!

Limited scope query flooding

37

2: Nivo aplikacije 73

Gnutella: Pridruživanje peera

1. Peer X, koji želi da se pridruži, mora naći neki drugipeer u Gnutella mreži: koristi listu kandidata bootstrap peerova (iz softvera ili sa sajta)

2. X sekvencijalno pokušava napraviti TCP konekciju sa peerovima sa liste dok je ne uspostavi sa Y

3. X šalje Ping poruku Y; Y prosleđuje Ping dalje. 4. Svi peerovi koji prime Ping poruku odgovaraju sa Pong

porukom, koja pored IP adrese sadrži broj fajlova i njihovu veličinu izraženu u kB.

5. X prima mnogo Pong poruka. Tada može napraviti izbor i uspostaviti dodatne TCP konekcije. Pored toga se može povezati na još nekoliko bootstrap peerova. Koliko konekcija se uspostavlja je izbor programera.

2: Nivo aplikacije 74

Korišćenje heterogenosti: KaZaA

FastTrack (Holandija, 2004)Koristi dobre strane prethodna dva pristupa.Proizvodila je više saobraćaja nego bilo koja druga aplikacija.Protokol je privatno vlasništvo, tako da je kontrolni saobraćaj kodiran.Slično kao Gnutella nema servera koji bi pratio lokacije sadržaja, ali za razliku od nje peerovi nijesu iste ravnopravnosti.

38

2: Nivo aplikacije 75

Korišćenje heterogenosti: KaZaA

Svaki peer je ili vođa grupe ili je dodijeljen vođi grupe.

TCP konekcija između peera i njegovog vođe grupe.TCP konekcija između nekog para vođa grupa.

Vođa grupe prati promjene na svojim običnim peerovima tako da postaje mini Napster server.

2: Nivo aplikacije 76

P2P Primjer: BitTorrent

tracker: prati peer-ove Koji pristupaju torrent-u

torrent: grupa peer-ova kojirazmjenjuju djelovefajla

Dobijanje listePeer-ova

“Trgovina”djelovima fajla

peer

P2P distribucija fajla

39

2: Nivo aplikacije 77

BitTorrent (1)Fajl se dijeli na chunk-ove veličine 256kB.peer se pridružuju torrent:

nema chunk-ove, ali ih vremenom akumuliraregistruje se na tracker radi dobijanja liste peer-ova, i povezuje se na grupu peer-ova (“susjeda”)

Dok povlači, peer šalje chunk-ove drugim peer-ovima. Peer-ovi se sporadično povezuju na torrentJednom kada peer povuče kompletan fajl, može napustiti (sebično) ili ostati (altruistično) na torrentu

2: Nivo aplikacije 78

BitTorrent (2)Primanje Chunk-ova

U svakom trenutku različiti peer-ovi imaju različite grupe chunk-ovaperiodično, peer provjerava kod svojih susjeda listu chunk-ova koju posjeduju.Peer postavlja zahtjeve za nedostajućim chunk-ovima tražeći prvo one koji su najrjeđi

Slanje Chunk-ova:Peer šalje chunk-ove četvorici susjeda sanajvećom brzinom

Svakih 10s se utvrđujetop 4

svakih 30s: slučajno se bira drugi peer, počinje slanje chunk-ova

Novoizabrani peer može ući u top 4

40

2: Nivo aplikacije 79

P2P primjer 2: Skype

P2P (pc-to-pc, pc-to-phone, phone-to-pc) Voice-Over-IP (VoIP) aplikacija

Takođe IM i video“proprietary” protokol nivoa aplikacijeHijerarhijaska mreža

Skype klijent (SC)

Supernode(SN)

Skype login server

2: Nivo aplikacije 80

Skype: ostvarivanje pozivaKorisnik startuje Skype

Skype login server

SK se registruje na SNLista bootstrap SN

SK se loguje(autentifikacija)

Poziv: SK kontaktira SN i šalje mu broj pozvane strane

SN kontaktira druge SN-ove(nepoznato je kako) radi pronalaženja adrese pozvane strane koja se po dobijanju šalje klijentu

SK direktno kontaktira pozvanu stranu, prekoTCPNakon uspostavljanja konekcije medijsku sadržaj se prenosi preko UDP