You are on page 1of 39

Chng 2 : Tng ng Dng

Mc tiu:
nh ngha, Hot ng cc giao thc trong tng ng dng. o M hnh Khch hng Ngi phc v (clientserver) o M hnh ng ng o Tm hiu mt s giao thc tng ng dng thng qua cc v d c th.

S hc ci g ? Cc giao thc c th: o HTTP o FTP o SMTP o POP o DNS o MSN, Gnutella Lp trnh cc ng dng mng : socket API

2: Tng ng dng

Trnh ng dng v Giao thc tng ng dng


Trnh ng dng : Cc tin trnh phn tn truyn thng vi nhau o Chy trn cc thit b u cui o Trao i thng ip vi nhau. o email, FTP, Web Giao thc tng ng dng o L mt phn ca trnh ng dng. o Xc nh thng ip trao i gia cc ng dng. o S dng dch v truyn thng do giao thc tng di (TCP, UDP) cung cp.
application transport network data link physical

application transport network data link physical

application transport network data link physical

2: Tng ng dng

Mt s thut ng
Tin trnh : l chng trnh chy trn thit b u cui. Trn cng my tnh, hai tin trnh c th truyn thng vi nhau thng qua truyn thng lin tin trnh (HH qun l). Cc tin trnh chy trn cc my tnh khc nhau : tun th giao thc tng ng dng. User agent: phn mm ng vai tr giao din gia ngi dng v mng. o Ci t Giao thc tng ng dng. o Web: browser o E-mail: mail reader o streaming audio/video: media player
2: Tng ng dng 3

M hnh Client-Server
ng dng gm hai thnh phn : Client v Server Client: Khi to giao tip vi server (speaks first) Yu cu dch v t server. Web : client nhn v hin th web page ; e-mail: cc trnh c th. Server: Cung cp dch v theo yu cu t Client Web server gi Web page, Mail server gi v nhn E-mail
application transport network data link physical

Yu cu

Tr li
application transport network data link physical

2: Tng ng dng

Giao thc tng ng dng


API: Application Programming Interface
L giao din gia tng ng dng v tng Giao vn. Socket : Internet API o Hai tin trnh truyn thng bng cch gi/nhn d liu vo/t socket.

Vy th Phn bit cc tin


trnh bng cch no? o a ch IP ca my. o S hiu Cng cho php bn my tnh nhn xc nh tin trnh no nhn th.

Cn tip
2: Tng ng dng 5

ng dng cn Dch v Giao vn g?


Mt mt d liu (Data loss) Mt s ng dng c th chp nhn mt s mt mt. Mt s ng dng li i hi 100% d liu truyn tin cy (web). Thi gian (Timing) Mt s ng dng (hi thoi qua Internet, cc tr chi trc tuyn) i hi tr thp. Bng thng (Bandwidth) Mt s ng dng (a phng tin) yu cu bng thng ti thiu c th hot ng c. Mt s ng dng khc c th s dng bt c bng thng no c cp pht.

2: Tng ng dng

Yu cu vi mt s ng dng c th
ng dng Truyn file Th tn in t Web a phng tin Thi gian thc stored audio/video Tr chi tng tc ng dng Ti chnh Mt mt Khng Khng C th C th Chp nhn Chp nhn Khng Bng thng Co dn Co dn Co dn audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up Co dn Thi gian Khng Khng Khng C, 100s msec C, few secs C, 100s msec Khng xc nh

2: Tng ng dng

Dch v Giao thc Giao vn Internet


Dch v TCP: Hng ni : Yu cu thit lp kt ni gia client v server. Truyn d liu tin cy gia tin trnh gi v nhn iu khin lu lng : bn gi s khng lm lt bn nhn. Kim sot tc nghn: iu chnh tc gi khi mng qu ti. Khng h tr : thi gian, bng thng ti thiu. Dch v UDP: Truyn d liu khng tin cy gia cc tin trnh gi v nhn. Khng h tr : thit lp kt ni, tin cy, iu khin lu lng, kim sot tc nghn, thi gian, bng thng ti thiu. Ti sao mt s ng dng s dng UDP

2: Tng ng dng

Cc ng dng trn Internet v giao thc giao vn tng ng


ng dng Th tn in t Truy cp t xa Web Truyn file a phng tin lung file server xa in thoi Internet Giao thc ng dng SMTP [RFC 821] telnet [RFC 854] HTTP [RFC 2068] FTP [RFC 959] c quyn (vd. RealNetworks) NSF c quyn (vd. Vocaltec) Giao thc Giao vn tng ng TCP TCP TCP TCP TCP hoc UDP TCP hoc UDP Thng l UDP

2: Tng ng dng

Giao thc Web : HTTP


HTTP: Giao thc truyn siu vn bn. HT TP L giao thc tng ng dng cho ng r eq ues PC s dng HT t TP dng Web. res Explorer pon se S dng m hnh client/server o client: browser yu cu, nhn, st e u hin th cc i tng Web. eq r se Server P n T o s dng HT esp o server: Web server gi cc i r TP NCSA Web T H tng khi c yu cu server HTTP1.0 : RFC 1945 Mac s dng HTTP1.1 : RFC 2068
Navigator

2: Tng ng dng

10

Giao thc HTTP


HTTP s dng giao thc TCP. Client khi to kt ni TCP (socket) ti server qua cng 80 Server chp nhn kt ni TCP t Client Cc thng ip HTTP : trao i gia Browser (HTTP client) v Web server (HTTP server) ng kt ni TCP. HTTP l giao thc khng trng thi server khng lu li thng tin v yu cu ca client

Giao thc lu li trng rt phc tp ! Cc trng thi trc y phi c lu li (tn b nh). Nu kt ni server/client b gin on, trng thi trn chng c th sai khc => cn c ch iu chnh li
2: Tng ng dng 11

V d v HTTP
Bn nh a ch trn trnh duyt
www.someSchool.edu/someDepartment/home.index

(bao gm file HTML tham chiu ti 10 nh JPEG)

1a. HTTP client khi to kt ni TCP ti HTTP server ti a ch www.someSchool.edu. Cng mc nh l 80. 2. HTTP client gi thng ip HTTP yu cu (bao gm URL) qua kt ni TCP va thit lp

1b. HTTP server a ch www.someSchool.edu i kt ni TCP cng 80, chp nhn kt ni, thng bo li cho client. 3. HTTP server nhn thng ip yu cu,ly cc i tng c yu cu gi vo trong thng ip tr li, (someDepartment/home.index) gi thng ip vo socket
2: Tng ng dng 12

Thi gian

V d v HTTP
4. HTTP server ng kt ni TCP.

Thi gian

5. HTTP client nhn thng ip tr li bao gm tp html, hin th html.Phn tch tp html file, tm 10 jpeg i tng c tham chiu

6. Cc bc t 1 n 5 c lp li cho tng i tng trong 10 i tng jpeg

2: Tng ng dng

13

Kt ni lin tc v khng lin tc


Kin tr: Khng kin tr: Mc nh cho HTTP/1.1 HTTP/1.0 : server phn tch yu cu, tr li ri server phn tch yu ng kt ni TCP. cu, tr li, phn tch yu cu k tip: trn Mt i tng : 2 RTT cng mt kt ni TCP ( tr). client gi yu cu cho Mi ln truyn, chu mt tt c cc i tng khi tr do thit lp kt ni. nhn c file HTML Nhng phn ln trnh c s duyt m ng thi t bc hn, nhanh hn. nhiu kt ni TCP.
2: Tng ng dng 14

nh dng Thng ip Yu cu HTTP


C hai kiu thng ip HTTP : Thng ip yu cu (request) v Thng ip tr li (response) Thng ip HTTP request: o Theo nh dng m ASCII. Dng yu cu GET /somedir/page.html HTTP/1.0 (Lnh GET, POST, User-agent: Mozilla/4.0 HEAD) Accept: text/html, image/gif,image/jpeg Cc dng header Accept-language:fr CR,LF: Kt thc thng ip
(CR,LF)

2: Tng ng dng

15

nh dng Thng ip Yu cu HTTP

2: Tng ng dng

16

nh dng Thng ip Tr li HTTP


Dng trng thi (m trng thi)

Cc dng tiu

HTTP/1.0 200 OK Date: 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 ...

D liu (chng hn file html c yu cu)

2: Tng ng dng

17

M trng thi trong Thng ip Tr li


c ghi dng u tin trong thng ip Server tr li Client Mt s m thng gp:

200 OK
o

Yu cu thnh cng, cc i tng c yu cu phn thn thng ip. i tng yu cu c chuyn v a ch mi ca i tng c t trong trng Location: Server khng hiu c Thng ip yu cu i tng c yu cu khng c trong server Server khng h tr phin bn giao thc HTTP.

301 Moved Permanently


o

400 Bad Request


o o o

404 Not Found 505 HTTP Version Not Supported


2: Tng ng dng 18

Th kim nghim HTTP (pha Client)


1. Telnet ti Web server:
telnet www.eurecom.fr 80

To kt ni TCP ti cng 80 (cng mc nh cho HTTP server) a ch www.eurecom.fr

2. Lnh GET trong thng ip HTTP request:


GET /~ross/index.html HTTP/1.0

Gi thng ip yu cu ly tp index.html trong th mc ~ross cho client

3. Xem thng ip response do HTTP server gi v!


2: Tng ng dng 19

Tng tc User-Server: Kim chng


Mc tiu : kim sot quyn truy server cp ti i tng lu trn server. client usual http request msg Phng php : s dng Tn truy cp v Mt khu 401: authorization req. WWW authenticate: Khng trng thi : mi ln yu cu, client phi chng t mnh c quyn Kim chng : usual http request msg
Tiu authorization: trong mi yu cu gi i. o Nu khng c quyn : server t chi truy cp v gi yu cu c trng tiu WWW authenticate:
o

+ Authorization:line usual http response msg usual http request msg + Authorization:line usual http response msg

Thng thng, trnh duyt cache username/pass ngi dng khng phi g li trong mi truy cp

2: Tng ng dng

20

Lu li trng thi nh Cookie


server Do Server to ra, lu li client s dng v sau: usual http request msg o Thm nh quyn usual http response + Set-cookie: # o Ghi nh cc s thch, hot ng ca ngi dng. usual http request msg cookieServer gi cookie ti cookie: # spectific client trong thng ip usual http response msg action response. Set-cookie: 1678453 usual http request msg Client gi km cookie cookiecookie: # trong nhng ln yu cu spectific sau. usual http response msg action cookie: 1678453
2: Tng ng dng 21

GET c iu kin : caching bn client


Mc ch : khng gi li nu Client client c bn mi nht ca http request msg i tng trong cache. If-modified-since: <date> Client: ch ra ngy ly i tng v trong thng ip http response HTTP request. HTTP/1.0 304 Not Modified If-modified-since: <date> Server: Thng ip tr v s khng km theo i tng http request msg nu i tng cha b thay If-modified-since: i trn server: <date>
HTTP/1.0 304 Not modified
http response
HTTP/1.1 200 OK

Server
i tng cha thay i

thay i

<data>
2: Tng ng dng 22

Web Caches (Proxy Server)


Mc ch : p ng yu cu t client m khng cn ti server tht s cha i tng (server gc)
Ngi dng cu hnh browser truy nhp Web thng qua Web Cache Client gi tt c cc yu cu HTTP request ti Web Cache
o

Server g c

Nu c i tng, Web Cache gi i tng v cho client. Nu khng c, Web Cache yu cu i tng t server thc, sau gi i tng cho client

Proxy HT st TP e u req server req H u P e st client TTP nse TT o H p res res pon P se TT H st e u eq r P nse T o HT esp r TP T H
client Server g c
2: Tng ng dng 23

Ti sao s dng Web Caching ?


Gi nh rng : cache gn client hn (c th trong cng mng LAN) Gim thi gian client phi i Gim ti Mng o ng kt ni ra ngoi mng ni b thng xy ra hin tng tht nt c chai.
Server gc
public Internet

ng ra ngoi 1.5 Mbps Mng trong C quan

10 Mbps LAN

Cache ti C quan
2: Tng ng dng 24

Giao thc Truyn file FTP


Giao din FTP ngi client dng Ngi s dng H thng file Truyn file FTP server H thng file trn my tnh khc

L giao thc trao i file vi my tnh xa (remote host). S dng m hnh client/server o client: khi to kt ni. o server: my tnh xa (remote host) FTP c c t trong RFC 959 FTP server: port 21
2: Tng ng dng 25

Hai knh kt ni FTP : Kim sot v D liu


FTP client kt ni vi FTP server qua cng 21. Hai kt ni TCP ng thi c to: o Kim sot : trao i lnh, phn hi gia client v server. out of band control o D liu : kt ni ti file t client n server hay t server v client. FTP server lu li trng thi : th mc hin thi, ln truy nhp gn y nht

TCP control connection port 21

FTP client

TCP data connection port 20

FTP server

2: Tng ng dng

26

Cc Lnh v Tr li thng gp
Cc lnh thng gp: c m ho bng m ASCII USER username PASS password LIST tr v danh sch cc file v th mc trong th mc hin thi. RETR filename ly file t th mc hin thi. STOR filename Ti file vo th mc hin thi trn my tnh xa Cc m tr v thng gp Tng t HTTP 331 chp nhn username, yu cu password 125 kt ni d liu c thit lp, chun b truyn d liu. 425 Khng th thit lp kt ni d liu 452 Li ghi file.

2: Tng ng dng

27

Th in T
Gm 3 thnh phn chnh: user agent mail server Simple Mail Transfer Protocol: SMTP
user agent mail server

outgoing message queue user mailbox

user agent

SMTP

mail server

SMTP User Agent Cn gi l mail reader mail Son tho v c th server V d: Eudora, Outlook, elm, Netscape Messenger Cc thng ip outgoing, user agent incoming c lu trn server

user agent

SMTP

user agent

user agent

2: Tng ng dng

28

Th in t : Mail Server
Mail Server Hp th lu li cc th in t (c th cha c c) ca ngi s dng. Hng i cha cc th s c gi i. Giao thc SMTP l giao thc cc mail server trao i email. o L client khi gi th. o L server khi nhn th.
user agent mail server user agent

SMTP SMTP SMTP


mail server user agent user agent

mail server

user agent

user agent

2: Tng ng dng

29

Th in t : Mail Server [RFC 821]


S dng dch v TCP, truyn email tin cy t SMTP client ti SMTP server qua cng 25 Truyn trc tip : server gi ti server nhn. Truyn qua ba giai on : o Bt tay o Truyn cc thng ip (Th) o ng kt ni. Tng tc: Lnh (client => server) v Tr li (Server => Client) o Lnh : m bng bng m ASCII. o Tr li : m trng thi v c th c thm gii thch Cc thng ip phi c m bng bng m ASCII 7 bit
2: Tng ng dng 30

Mt s tng tc SMTP
S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <alice@crepes.fr> 250 alice@crepes.fr... Sender ok RCPT TO: <bob@hamburger.edu> 250 bob@hamburger.edu ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection
2: Tng ng dng 31

T th nghim tng tc bng SMTP


telnet servername 25 Nhn c hi p c m 220 t server. nh cc lnh HELO, MAIL FROM, RCPT TO, DATA, QUIT. Cc lnh trn cho php bn gi th m khng cn dng n email client (reader)

2: Tng ng dng

32

SMTP : Kt thc
Giao thc SMTP s dng kt ni bn vng. SMTP i hi thng ip (header & body) phi c nh dng bng m ASCII 7bit. Nhng xu k t c bit (v d CRLF.CRLF) khng c php ghi vo thng ip (do chui k t ny phi c m ha) SMTP server s dng CRLF.CRLF nh du kt thc thng ip. So snh vi HTTP: HTTP: giao thc kiu ko (ko thng tin t server v) Email :l giao thc kiu y (y thng tin ln server) C hai u tng tc gi lnh (m ASCII)/ tr li (m trng thi). HTTP : Mi i tng nm trong mt thng ip ring. SMTP: nhiu i tng nm trong cng mt thng ip
2: Tng ng dng 33

nh dng Thng ip eMail


SMTP : Giao thc trao i email. RFC 822 : chun nh dng thng ip email: Tiu Thng ip : o To: o From: o Subject: rt khc so vi lnh ca SMTP ! Thn thng ip o Ch bao gm cc k t kiu ASCII

Tiu

Dng trng

Thn Thng ip

2: Tng ng dng

34

nh dng thng ip m rng a phng tin


MIME : Multimedia Mail Extension, RFC 2045, 2056 B sung thm mt dng trong phn tiu ca thng ip m t kiu MIME. MIME version Phng thc m ho d liu Khai bo kiu d liu Multimedia, kiu ph D liu m ho
2: Tng ng dng 35

From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data

Kiu MIME
Content-Type: type/subtype; parameters

Text Kiu : plain, html Image Kiu : jpeg, gif Audio Kiu : basic (loi c quy lut ho 8-bit), 32kadpcm (m ha 32 kbps)

Video Kiu : mpeg, quicktime Application Cc loi d liu khc phi c x l bng chng trnh c tng ng mi c th c, xem c. V d cc kiu: msword, octet-stream
2: Tng ng dng 36

Kiu cha nhiu loi i tng


From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-2: Tng ng dng 37

Cc giao thc truy nhp Mail


SMTP
user agent Mail server GI Mail server NHN

SMTP

POP3 or IMAP

user agent

SMTP: Gi th ti Server cha th ca ngi nhn Giao thc c th : ly th t server o POP : Post Office Protocol [RFC 1939] Kim chng (agent <-->server) v ti th v o IMAP: Internet Mail Access Protocol [RFC 1730] Phc tp hn do c nhiu c tnh hn. Thao tc trn cc th lu trn server. o HTTP : Hotmail , Yahoo! Mail, Gmail,
2: Tng ng dng 38

Giao thc POP3


Giai on kim chng Cc lnh Client gi: o user: username o pass: password Server tr li o +OK o -ERR Giai on x l,cp nht : list: in ra danh sch cc th(c nh s ID). retr: ly th c ID l s nhp vo dele: xo th quit

S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S:

+OK POP3 server ready user alice +OK pass hungry +OK user successfully logged list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off
2: Tng ng dng

on

39

You might also like