You are on page 1of 54

Chng 2 Tng ng dng (Application layer)

A note on the use of these ppt slides:


Were making these slides freely available to all (faculty, students, readers). Theyre in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., (e g in a class) that you mention their source (after all, wed like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved Tng Application 2-1

Computer Networking: A Top Down Approach

6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in th 2.5 DNS 2.6 Cc ng dng P2P 2.7 2 7 Lp trnh socket vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-2

Chng 2: tng ng dng


Mc tiu: Khi nim, cc phng din p dng ca cc giao thc ng dng mng Cc m hnh dch v tng transport M hnh clientserver M hnh h h peer-tot peer

Tm hiu v cc giao thc thng qua vic xem xt cc giao thc ph bin ca tng ng dng
HTTP FTP SMTP / POP3 / IMAP DNS

Lp trnh ng dng mng socket API

Tng Application 2-3

Mt s ng dng mng

e-mail w web Nhn tin ng nhp t xa Chia s file P2P Tr chi trc tuyn vi nhiu ngi cng tham gia Truyn hnh trc tuyn (streaming stored video Vd: YouTube, Hulu, Netflix)

m thoi trn mng yp IP (Vd: Skype) Hi tho video thi gian thc Mng x hi Tm kim

Tng Application 2-4

To mt ng dng mng
Vit chng trnh : Chy trn cc h thng u cui (khc nhau) Lin Li lc qua mng V du: phn mm web server giao tip vi trnh duyt Khng cn vit phn mm cho cc thit b trong li ca mng Cc thit b trong li mng kh ch khng hy cc ng dng ca ngi dng Cc ng dng trn cc h thng u cui cho php pht trin ng dng v qung b nhanh chng

application transport network data link physical

application transport network data link physical

application transport network data link physical

Tng Application 2-5

Cc kin trc ng dng


Kin trc ph hp ca cc ng dng: client-server peer-to-peer (P2P) (Mng ngang hng)

Tng Application 2-6

Kin trc Client-server


server:

My lun lun hot ng a ch h IP P c nh h T chc thnh cc trung tm d liu m rng quy m Giao tip vi server C th kt ni khng lin tc C th thay i a ch IP Khng giao tip trc tip vi cc client khc
Tng Application 2-7

client/server

clients:

Kin trc P2P (ngang hng)


khng c server lun lun hot ng Cc h thng g u cui bt k truyn thng trc tip vi nhau Cc peer yu cu dch v t cc peer khc v cung cp dch v ngc li cho cc peer khc C kh nng t m rng cc peer mi cung cp thm dch h v mi, i cng nh h c thm nhu cu mi v dch v Cc peer c kt ni khng lin tc v c th thay i a ch IP Qun l phc tp

peer-peer

Tng Application 2-8

Cc tin trnh lin lc


Tin trnh (process):

Trong cng mt my, hai tin trnh giao tip vi nhau bng cch s dng c ch truyn thng lin tin trnh (inter-process communication) (c nh ngha bi h iu hnh) Cc tin trnh trong cc host khc nhau truyn thng vi nhau bng cch trao i cc thng ip (message)

chng trnh ang chy trong mt my

clients, servers Tin trnh client client: tin trnh khi to lin lc Tin trnh server: tin trnh ch i c lin lc

Ch : cc ng dng vi kin trc P2P c c cc tin trnh client v server


Tng Application 2-9

Sockets

Tin trnh gi/nhn thng ip n/ t socket ca n socket tng t nh ca ra vo Tin trnh gi y thng g ip ra khi ca Tin trnh gi da trn h tng vn chuyn bn kia ca cnh ca phn phi thng ip n socket ti tin trnh nhn
application

process
transport network link physical

socket

application

process
transport network

c kim sot Bi nh pht trin ng dng c iu khin bi h iu hnh

Internet

link physical

Tng Application 2-10

Xc nh tin trnh

nhn thng ip, tin trnh phi c nh danh Thit b host device c a ch IP 32-bit duy nht Q: a ch IP ca host m trn tin trnh ang chy trn c xc nh tin trnh hay khng? A: khng, c nhiu tin trnh c th ang c chy trn cng mt host

inh danh (identifier)

bao gm c a ch IP v g (p (port numbers) ) s cng c lin kt vi tin trnh trn host. V d v s cng: gi thng ip HTTP n web server gaia.cs.umass.edu : Cn na
HTTP server: 80 Mail server: 25

IP address: 128.119.245.12 port number: 80

Tng Application 2-11

Giao thc tng ng dng nh ngha

Cc loi thng ip c trao i e.g., yu cu (request), ( ) p ng (response) C php thng ip: Cc trng trong thng ip v cch m cc trng c nh ngha Ng g ngh g a ca thng g ip ngha ca thng tin trong cc trng Cc quy tc (rules) khi no v cch m cc tin trnh gi v p ng cc thng ip

Cc giao thc m: c nh ngh g a trong g RFCs Cung cp kh nng tng tc cho cc ng dng thuc cc nh pht trin khc nhau Vd: HTTP, SMTP Cc giao thc c quyn: Vd: Skype

Tng Application 2-12

Dch v vn chuyn no m ng dng cn?


Ton vn d liu (data integrity) Mt s ng dng (v d truyn file, file web transactions) yu cu tin cy 100% khi truyn d liu Cc ng dng khc (v d audio) c th chu c mt s mt mt. nh h th h (timing) ( ) Mt s ng dng (v d, thoi Internet, game tng tc) yu cu tr thp t c hiu qu thc thi Thng lng (throughput) Mt s ng dng (vd: a phng tin) yu cu thng h lng ti thi hiu t c hiu qu thc thi Cc ng dng khc (ng dng mm do) c th dng bt k thng lng g c no cng An ninh M ha, ton vn d liu,
Tng Application 2-13

Cc yu cu dch v vn chuyn: cc ng dng ph bin


ng dng Truyn file e-mail Web documents audio/video thi gian thc audio/video lu Game tng tc nhn tin mt d liu khng khng khng chu li chu li chu li khng thng lng nhy thi gian

mm do khng mm do khng mm do khng audio: 5kbps-1Mbps c, 100s msec video:10kbps-5Mbps nh trn c, vi giy Trn mt vi kbps c, 100s msec m m d o c v khng

Tng Application 2-14

Cc dch v thuc giao thc vn chuyn trn Internet


Dch v TCP:

trnh gi v nhn iu khin lung thng tin (flow control): bn gi s khng gi vt kh nng bn nhn iu khin tc nghn (congestion control): iu tit bn gi khi mng qu ti Khng g h tr: nh th, , bo m thng lng ti thiu, bo mt Hng kt ni (connectionoriented): yu cu thit lp kt ni gia tin trnh client v server trc khi truyn

Truyn ti c m bo (reliable transport) gia tin

Dch v UDP:

Truyn d liu khng m bo (unreliable data transfer) gia tin trnh Khng h tr: tin cy,
gi v nhn

iu khin lung, iu khin tc nghn, nh th, bo m thng lng, bo mt, v thit lp kt ni.

Q: Ti sao phi quan tm? Ti sao c UDP?

Tng Application 2-15

ng dng Internet: Cc giao thc tng application, transport


application e-mail remote terminal access Web Truyn file streaming multimedia Thoi Internet Giao thc tng application SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, c quyn (e.g., Skype) Giao thc di tng transport TCP TCP TCP TCP TCP or UDP TCP or UDP

Tng Application 2-16

Bo mt TCP
SSL l giao thc tng TCP & UDP Application Khng g m m ha Cc ng dng dng th Mt m cha m ha vin SSL, thng qua c gi n socket ni chuyn vi TCP i qua Internet trong SSL socket API dng nguyn bn Mt m dng khng m SSL ha c gi vo trong H tr kt ni TCP socket v chuyn i qua c m ha Internet dng m Ton vn d liu ha Chng thc u cui Xem chng 7
Tng Application 2-17

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2.7 2 7 Lp trnh socket vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-18

Web v HTTP
n li

web page bao gm cc i tng (objects)

i tng c th l tp tin HTML, hnh nh JPEG, Java applet, tp tin audio, web page bao gm tp tin HTML bao gm mt s i tng c tham chiu Mi i tng c th c xc nh bi mt URL v d URL,
www.someschool.edu/someDept/pic.gif tn my ng dn
Tng Application 2-19

Tng quan HTTP


HTTP: hypertext transfer protocol

M hnh client/server client: trnh duyt gi yu cu, nhn phn hi (dng giao thc HTTP) v hin th cc i tng Web server: Web server gi (dng giao thc HTTP) cc i tng tr li yu cu

Giao thc tng Application ca Web

PC chy trnh duyt Firefox

server Chy web server Apache p

iphone chy trnh duyt Safari

Tng Application 2-20

10

Tng quan HTTP (tt)


dng TCP:

Client khi to kt ni TCP (to socket) n cng 80 server server chp nhn kt ni TCP t client Cc thng ip HTTP (thng ip thuc giao thc tng g application) pp ) c trao i gia trnh duyt (HTTP client) v web server (HTTP server) Kt ni TCP c ng

server khng duy tr thng tin v cc yu cu trc ca client ngoi l Cc giao thc no duy tr trng thi th phc tp!

HTTP khng lu trng thi

Lch s trc (trng thi) phi c duy tr Nu server/client b s c, cch nhn v trng thi ca n c th b mu thun, phi c iu chnh

Tng Application 2-21

Cc kt ni HTTP
HTTP khng bn vng

Ch ti a mt i tng c gi qua kt ni TCP Kt ni sau s b ng Ti nhiu i tng yu cu nhiu kt n i

HTTP bn vng

Nhiu i tng c th c gi qua mt kt ni TCP gia client v server

Tng Application 2-22

11

HTTP khng bn vng


Gi s ngi dng vo URL nh sau:
www.someSchool.edu/someDepartment/home.index (cha text, tham chiu n 10 hnh jpeg)

1a HTTP client khi to kt ni 1a. TCP n HTTP server (tin trnh) ti www.someSchool.edu trn port 80 2. HTTP client gi thng ip yu cu HTTP (cha URL) vo t trong socket k t kt ni TCP. TCP Thng ip ch ra rng client mun i tng someDepartment/home.index Thi gian

1b. HTTP server ti host www.someSchool.edu ch kt ni TCP ti port 80. chp nhn kt ni, thng bo cho client 3 HTTP server nhn thng 3. ip yu cu, to thng ip phn hi cha i tng c yu cu, v gi thng ip n socket ca n
Tng Application 2-23

HTTP khng bn vng(tt)


5. HTTP client nhn thng ip 4. HTTP server ng kt ni TCP.

phn hi cha file html, hin th html. Phn tch c php file html, tm ra cc i tng jpeg c tham chiu

time

6. Cc bc 1-5 c lp li cho mi i tng trong 10 i tng jpeg

Tng Application 2-24

12

HTTP khng bn vng: thi gian p ng


RTT (round-trip time): thi gian cho mt gi tin nh i t client n server v quay ngc li Thi gian p ng HTTP: Mt RTT khi to kt ni TCP Mt RTT cho yu cu HTTP v vi byte u tin ca p phn hi HTTP c tr v Thi gian truyn file Thi gian p ng HTTP khng bn vng = 2RTT+ thi gian truyn file

Khi to kt ni TCP RTT yu cu file RTT file c nhn Thi gian Thi gian thi gian truyn file

Tng Application 2-25

HTTP bn vng
Vn vi HTTP khng bn vng:

HTTP bn vng:

Yu 2 Y cu requires i RTTs cho mi i tng Tn ti nguyn khi H iu hnh x l mi kt ni TCP Cc trnh duyt thng m cc kt ni TCP song g song ly cc i tng c tham chiu

Server kt ni m sau khi gi ph hn hi Cc thng ip HTTP tip theo gia cng client/server c gi trn kt ni m trn Client gi cc yu cu ngay khi n gp mt i tng tham chiu Ch cn mt RTT cho tt c cc i tng c tham chiu
Tng Application 2-26

13

Thng ip yu cu HTTP

hai loi thng ip HTTP: yu cu (request), phn hi (response) p Thng ip yu cu HTTP:


ASCII (dng thc con ngi c th c c)
K t xung dng

K t v u dng Dng yu cu (cc lnh GET, POST, GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n HEAD)

Cc dng

header
k t xung dng, v u dng mi ch im cui cng ca thng ip

User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: Accept Language: en-us en us,en;q=0.5\r\n en;q=0 5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n

Tng Application 2-27

Thng ip yu cu HTTP: nh dng tng qut


method sp URL sp value l version cr lf f ~ ~ header field name cr ~ ~ lf entity body ~ ~ thn value cr lf cr lf h d fi header field ld name ~ ~ dng Yu cu cc dng header

Tng Application 2-28

14

Ti ln biu mu nhp liu


Phng thc POST:

web page thng bao gm form input d liu nhp c ti ln s server trong t n phn thn i tng HTML

Phng thc URL:


Dng phng thc GET d liu nhp c ti ln trong g trng g URL ca dng yu cu:
www.somesite.com/animalsearch?monkeys&banana

Tng Application 2-29

Cc phng thc
HTTP/1.0:

GET POST HEAD Yu cu server loi b i tng c yu cu ra khi thng ip phn hi

HTTP/1.1:

GET, GET POST, POST HEAD PUT Ti file trong thn thc th n ng dn c xc nh trong trng URL DELETE Xa X file f l c ch h nh trong trng URL

Tng Application 2-30

15

Thng ip phn hi HTTP


dng trng thi (giao thc m trng thi cm t trng thi) HTTP/1.1 / 200 OK\r\n \ \
Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO-88591\r\n \r\n data data data data data ...

cc dng header

D liu, v d, file HTML c yu cu

Tng Application 2-31

Cc m trng thi phn hi HTTP


M trng thi xut hin trong dng u tin trong thng ip p ng t server ti client Mt s m mu:

200 OK

301 Moved Permanently 400 Bad Request 404 Not Found

Yu cu thnh cng, i tng c yu cu sau trong thng ip ny i tng c yu cu c di chuyn, v tr mi c xc nh sau trong g thng g ip ny y (Location:) ( ) Server khng hiu thng ip yu cu Thng tin c yu cu khng tm thy trn server ny
Tng Application 2-32

505 HTTP Version Not Supported

16

Th kim tra HTTP (pha client)


1. Telnet n Web server yu thch ca bn:
telnet cis.poly.edu 80 M kt ni TCP port t 80 (port server HTTP mc nh) ti cis.poly.edu. Mi th nhp vo c gi n port 80 ti cis.poly.edu

2. Nhp vo yu cu trong lnh GET HTTP:


GET /~ross/ HTTP/1.1 H t cis.poly.edu Host: i l d Bng cch g nhng dng ny (enter 2 ln) n), bn gi yu cu GET ti thiu (nhng y ) n HTTP server

3. Xem thng ip phn hi c gi bi HTTP server!


(hoc dng Wireshark xem thng ip yu cu v phn hi ca HTTP c bt li)
Tng Application 2-33

Trng thi User-server: cookies


Nhiu Web site dng cookies V d: 4 thnh phn: Susan thng truy cp Internet t mt PC 1) cookie ki header h d line lin ca Vo trang thng mi thng ip phn hi in t ln u tin HTTP Khi yu cu khi to 2) cookie header line HTTP n trang web , trong thng ip yu th trang to: cu HTTP k tip ID duy nht 3) File cookie c lu tr trn my ngi Mt bn ghi trong c dng, c qun l bi s d liu cho ID trnh duyt ca ngi dng 4) C s d liu ti Web site

Tng Application 2-34

17

Cookies: lu tr trng thi (tt.)


client
ebay 8734

server
usual http request msg usual http response

file cookie
ebay 8734 amazon 1678

set-cookie: 1678 cookie: 1678

server Amazon to ID cho user 1678 create backend entry database cookiespecific action truy cp

usual http request msg usual http p response p msg g mt tun sau:
ebay 8734 amazon 1678

truy cp usual http request msg

cookie: 1678

usual http response msg

cookiespecific action
Tng Application 2-35

Cookies (tt)
Cookie c th c s dng cho:

cookies v s ring t:

ngoi ra

Lm th no giatrng thi:

Cp php Gi mua hng Cc khuyn co Trng thi phin lm vic ca user (Web email)

cookie cho php cc trang t bit nhi hiu hn v b n Bn c th cung cp tn v email cho cc trang

cc thi im kt thc th giao i thc: duy tr trng thi ti ngi gi/nhn thng qua nhiu giao dch cookies: cc thng ip http mang trng thi
Tng Application 2-36

18

Web caches (proxy server)


Mc tiu: tha mn yu cu ca client khng cn lin
quan n server ngun

user thit lp trnh duyt: truy cp Web thng qua cache Trnh duyt gi tt c yu cu HTTP n cache i tng c trong cache: cache tr v i tng Ngc li cache yu cu i tng t server gc, sau tr i tng cho client

proxy server
client Server gc

client

Server gc

Tng Application 2-37

Thng tin thm v Web caching

Cache hot ng nh l c client v server

Ti sao dng Web caching?


Thng thng cache c ci t bi ISP (trng i hc, cng ty, ISP ring)

server i vi client yu cu thng tin client i vi server cung cp

p ng g Gim thi g gian p cho h yu cu ca client li t Gim lu lng trn ng link truy cp ra Internet ca mt t chc Internet c rt nhiu caches: cho php nhng nh cung cp ni dung vi ng g ti nguyn g y ngho g l nn vn cung cp ni dung mt cch hiu qu (chia s file P2P cng vy)

Tng Application 2-38

19

V d Caching:
Gi s:

Kch thc trung bnh ca i tng: 100K bits S lng yu cu trung bnh t trnh duyt n server gc: 15/sec Tc truyn d liu trung bnh n trnh duyt: 1.50 Mbps RTT t b nh tuyn ca t chc n bt k server gc: 2 giy Tc link truy cp: 1.54 Mbps Vn ! kh dng ca LAN: 15% kh dng ca link truy cp = 99% Tng thi gian tr = tr Internet + tr truy cp + tr LAN = 2 giy + minutes + secs

Internet cng cng

origin servers

1.54 Mbps Link truy cp

Kt qu:

Mng t chc

1 Gbps LAN

Tng Application 2-39

V d Caching: ng link truy cp ln hn


Gi s: Kch thc trung bnh ca i tng: 100K bits tc trung bnh yu cu t trnh duyt n server = 15/s Tc trung bnh d liu n trnh duyt: 1.50 Mbps RTT t b nh tuyn ca t chc n bt k server gc: 2 giy 154 Mbps Tc link truy cp: 1.54 Mbps origin servers

Mng Internet

9.9% Kt qu: kh dng ca LAN = 15% Mng kh dng trn lin kt truy cp= 99% t chc Tng tr= tr Internet + tr truy cp + tr LAN = 2 sec + minutes + secs msecs

1.54 Mbps access link 154 Mbps 1 Gbps LAN

Chi ph: tc link truy cp c tng ln (khng r!)


Tng Application 2-40

20

V d Caching: thit lp cache


Gi s:

Kch thc trung bnh ca i tng: 100K bits tc trung t bnh b h yu cu t trnh t h duy d t n server = 15/s Tc trung bnh d liu n trnh duyt: 1.50 Mbps RTT t b nh tuyn ca t chc n bt k server gc: 2 giy Tc link truy cp: 1.54 Mbps Network kh dng g LAN: 15% t chc access link utilization = 100% ? total delay = ? Internet delay + access delay + LAN delay Lm cch no tnh = 2 sec + minutes + usecs

public Internet

origin servers

Kt qu:

1.54 Mbps access link

1 Gbps LAN

kh dng ng link, tr?

local web cache

Chi ph: web cache (r!)


Tng Application 2-41

V d Caching: thit lp cache


Tnh kh dng ca ng link truy cp, tr vi cache:

Gi s kh nng p ng ca cache l 04 0.4 hiu dng ca ng kt ni ra ngoi (access link):

40% yu cu c cache p ng, 60% yu cu c server gc p ng

Mng Internet

origin servers

Tc truyn d liu n trnh duyt trn access link = 0.6*1.50 Mbps = 0.9 Mb Mbps
kh dng = 0.9/1.54 = 0.58

60% yu cu dng access link

1.54 Mbps access link Mng t chc

1 Gbps LAN

Tng tr

= 0.6 * ( tr t server gc) +0.4 * ( tr khi c cache p ng) = 0.6 * (2.01) + 0.4 * (~msecs) = ~ 1.2 secs t hn vi link 154 Mbps (v cng r hn!)

local web cache

Tng Application 2-42

21

GET c iu kin

tng nu i tng trong cache c cp nht Khng c tr truyn d liu Mc s dng ng link thp hn cache: xc nh thi gian ca bn sao c cache trong thng ip yu cu HTTP If-modified-since: <date> server: p ng khng cha i tng nu bn sao trong cache c cp nht: HTTP/1.0 304 Not Modified

Mc tiu: khng gi i

client

server

HTTP request q msg g


If-modified-since: <date>

HTTP response
HTTP/1.0 304 Not Modified

i t ng khng c thay i trc <ngy>

HTTP request msg


If-modified-since: <date>

HTTP response
HTTP/1.0 200 OK

i tng c thay i sau <ngy>

<data>
Tng Application 2-43

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2.7 2 7 Lp trnh socket vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-44

22

FTP: giao thc truyn file


FTP user interface user ti host

truyn file
FTP client FTP server h thng file t xa

h thng file cc b

Truyn file n/t my xa M hnh client/server FTP: RFC 959 FTP server: port 21

client: pha khi to phin truyn (n/t my xa) server: my xa

Tng Application 2-45

FTP: kt ni iu khin v kt ni d liu ring bit


FTP client lin h vi FTP server ti port 21, dng TCP client li t c cp php h trn t kt ni iu khin client duyt th mc t xa, bng cch gi cc lnh trn kt ni iu khin Khi server nhn lnh truyn file, server m kt ni d l u TCP li P th h 2 ( truyn file) n client Sau khi truyn mt file, server ng kt ni d liu

Kt ni iu khin TCP, server port 21 Kt ni d liuTCP, TCP server port 20

FTP client

FTP server

server m kt ni d liu TCP khc truyn file khc Kt ni iu khin: out of band (ngoi tuyn) FTP server duy tr trng thi: th mc hin ti, xc thc trc
Tng Application 2-46

23

Cc lnh v phn hi FTP


Cc lnh mu:

Gi vn bn ASCII trn knh iu khin USER username PASS password LIST tr v danh

V d m tr v

sch file trn th mc hin ti

RETR filename fil m ly fil file STOR filename lu tr (t) file vo trong my xa

M trng thi v cm t m t (nh HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Cant open data connection ti 452 Error writing file

Tng Application 2-47

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2.7 2 7 Lp trnh socket vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-48

24

Th in t
Ba thnh phn chnh:

Hng i thng ip i user agent mail server Hp th user

user agents mail servers simple mail transfer protocol: SMTP

user agent

SMTP SMTP SMTP


mail server user agent

User Agent

mail server

user agent

Cn gi l mail reader Son tho, o sa i, i c cc thng ip email V d Outlook, Thunderbird, iPhone mail client Cc thng ip i v n c lu trn server

user agent

user agent
Tng Application 2-49

Th in t: mail servers
mail servers:

thng ip n user Hng thng ip (message queue) ca cc thng ip mail ra ngoi (chun b gi) Giao thc SMTP gia cc mail server gi cc thng th ip email il client: mail server gi server: mail server nhn

Hp th (mailbox) cha

user agent mail server user agent

SMTP SMTP SMTP


mail server user agent

mail server

user agent

user agent

user agent
Tng Application 2-50

25

Th in t: SMTP [RFC 2821]


S dng TCP truyn thng ip email mt cch tin cy t client n cng 25 server Truyn trc tip: server gi n server nhn 3 giai on truyn
bt tay (cho hi) truyn thng ip ng

Tng tc lnh/phn hi (nh HTTP, FTP) Thng ip phi dng m ASCII 7 bit
Tng Application 2-51

Lnh: vn bn ASCII Phn hi: m v cm trng thi

Tnh hung: Alice gi thng ip n Bob


1) Alice dng mt UA son tho thng ip gi n bob@someschool.edu 2) UA ca Alice gi thng ip n mail server ca c ta; thng ip c t trong hng i 3) Phn client ca SMTP server m kt ni TCP vi mail server ca Bob
1 user agent 2 mail server 3

4) Phn client ca SMTP server gi thng ip ca Alice trn kt ni TCP 5) Mail server ca Bob t thng ip trong hp th ca Bob 6) Bob kch hot user agent ca anh ta c thng ip

mail server 4 6 5 mail server ca Bob

user agent

mail server ca Alice

Tng Application 2-52

26

V d 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

Tng Application 2-53

Th nghim tng tc SMNP:


telnet servername 25 Xem tr li 220 t server Nhp cc lnh HELO, MAIL FROM, RCPT TO, DATA, QUIT

Lnh trn cho php bn gi email khng cn dng email client (reader)

Tng Application 2-54

27

SMTP: kt lun

SMTP dng kt ni bn vng SMTP yu cu thng ip (header & body) phi dng ASCII 7bit SMTP server dng uses CRLF.CRLF xc nh kt thc thng ip

So snh vi HTTP:

HTTP: pull (ko) SMTP: push (y) C hai u c tng tc lnh/phn hi, cc m trng thi dng ASCII HTTP: mi i tng c ng gi i trong thng h ip phn hi ca n SMTP: nhiu i tng c gi trong thng ip cha nhiu phn
Tng Application 2-55

nh dng thng ip Mail


SMTP: giao thc dng g ip cho trao i thng email l RFC 822: chun cho nh dng thng ip vn bn: Cc dng header, v d
To: From: Subject:

header

dng trng

body

Khc vi cc lnh

Body: thng ip

SMTP MAIL FROM, RCPT TO!


Tng Application 2-56

Ch c cc k t ASCII

28

Cc giao thc truy cp Mail


user agent

SMTP

SMTP

truy cp mail agent


(e.g., POP, IMAP)

giao thc

user

mail server ca ngi gi


mail server ca ngi nhn

SMTP: truyn dn/lu tr th vo server ca ngi nhn Giao thc truy cp mail: trch xut t server

POP: O Post ost Office Off ce Protocol rotoco [RFC [ F 1939]: 939] xc c thc, ti th v IMAP: Internet Mail Access Protocol [RFC 1730]: nhiu tnh nng hn, bao gm c cc thao tc thay i cc thng ip ang c lu trn server HTTP: gmail, Hotmail, Yahoo! Mail
Tng Application 2-57

Giao thc POP3


Giai on kim tra ng nhp (authorization)

Giai on g giao dch


client:

Cc lnh C h pha h client: li user: khai bo username pass: password p ng pha server +OK -ERR

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

+OK POP3 server ready user bob +OK pass hungry +OK user successfully logged list 1 498 2 912 . retr 1 <message 1 contents> . de dele e 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off

on

list: lit k cc s thng ip retr: trch xut thng ip theo s dele: xa quit

Tng Application 2-58

29

POP3 v IMAP
Tm hiu thm v POP3

V d trn s dng ch t ti xung v xa xa ca POP3 Bob khng th c li e-mail nu anh ta thay i client Ch ti xung-vgi ca POP3: sao chp cc thng ip trn cc client khc nhau POP3 khng gi trng thi ca cc phin lm vic

IMAP

Gi tt c cc thng ip mt ni: ti server Cho php ngi dng t chc, sp xp cc thng ip trong cc th mc Gi trng thi ca ngi dng trong sut phin lm vic: Cc tn ca cc th h mc v nh x gia cc ID ca thng ip v tn ca th mc
Tng Application 2-59

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2.7 2 7 Lp trnh socket vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-60

30

DNS: domain name system


Con ngi: nhiu cch
nhn dng: S an sinh i h x hi, i tn, s h chiu

Domain Name System:

C s d liu p phn tn

Internet hosts, routers:

c th hc hi h n theo h t chc phn cp ca nhiu

a ch IP (32 bit) c dng cho nh a ch gi tin tn, v d www.yahoo.com c dng bi con ngi Q: lm cch no nh x gia a ch IP v tn, v ngc li?

name server Giao thc tng application:


cc host, cc name server trao i phn gii tn (dch a ch tn)

Lu : chc nng trong phn li Internet, c thc hin nh l giao thc tng application S phc tp bin ca mng
Tng Application 2-61

DNS: cc dch v, cu trc


Cc dch v DNS

Ti sao khng tp trung ha DNS? Dch tn my ra a ch


IP B danh my

B danh mail server Cn bng ti Cc bn sao cho web server: nhi hiu a ch h IP tng ng cho 1 tn

Lu cc tn gc, b danh tng ng

Mt im chu li Lu lng C s d liu tp trung cch xa ni yu cu Bo tr

A: khng bin i c quy m!

Tng Application 2-62

31

DNS: c s d liu phn cp, phn tn


Server DNS gc

com DNS servers yahoo.com amazon.com DNS servers DNS servers

edu DNS servers poly.edu umass.edu DNS serversDNS servers

org DNS servers pbs.org DNS servers

client mun a ch IP ca www.amazon.com:


client truy vn server gc (root) tm DNS server qun l vng .com client truy vn DNS server .com tm DNS server qun l vng amazon.com client truy vn DNS server amazon.com ly a ch IP ca www.amazon.com
Tng Application 2-63

DNS: cc name server gc


c name server cc b lin lc hi khi khng th phn gii tn name server gc:

Lin Li lc vi name server c th hm quyn (authoritative th it ti name server) nu nh x tn khng xc nh Ly nh x Tr v nh x n name server cc b
c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) m. WIDE Tokyo (5 other sites)

e. NASA Mt View, CA f Internet f. I t t Software S ft C. C Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites)

13 name servers gc ton cu

Tng Application 2-64

32

TLD, server c thm quyn


Cc top-level domain (TLD) server :
Chu trch nhim cho tn min com com, org org, net net, edu, edu aero, jobs, museums, v tt c cc tn min cp cao nht ca quc gia, nh l: uk, fr, ca, jp Cng ty Network Solutions qun l my ch cha cc thng tin ca vng .com TLD T chc Educause qun l .edu TLD Cc t chc s hu cc DNS server ring nhm cung cp cc tn c cp php v nh x a ch IP cho cc host c t tn ca t chc C th c qun l bi t chc hoc nh cung cp dch v
Tng Application 2-65

Cc DNS server c thm q quy yn:

DNS name server cc b


Khng hon ton theo cu trc phn cp Mi ISP (ISP, (ISP cng ty, ty trng i hc) c mt server cc b nh vy Khi mt host to mt truy vn DNS, truy vn c gi n DNS server cc b ca n
Cn c gi l default name server

C b nh m (cache) cc b cha thng tin v cc cp tn-n-a ch gn y (nhng c th ht hn!) Hot ng nh mt proxy, chuyn truy vn vo trong h thng DNS phn cp

Tng Application 2-66

33

V d phn gii tn min DNS

DNS server gc

host ti cis.poly.edu mun a ch IP ca gaia.cs.umass.edu

3 4 5

.edu TLD DNS server

Truy vn tun t:

DNS server cc b
dns.poly.edu

Server c hi s tr li vi tn ca server q qun l vng g l quan lin ti khng bit tn ny, nhng hy hi thm thng tin t my ch ny

Host yu cu
cis.poly.edu

DNS server c thm quyn dns.cs.umass.edu

gaia.cs.umass.edu
Tng Application 2-67

V d phn gii tn DNS


Truy vn quy:
2

DNS server gc

3 7 6 .edu TLD DNS server

y trch nhim phn gii tn cho name server c hi Ti nng ti cc tng trn ca h th hng phn h cp?

DNS server cc b
dns.poly.edu

8
DNS server c thm quyn dns.cs.umass.edu

Host yu cu
cis.poly.edu

gaia.cs.umass.edu
Tng Application 2-68

34

DNS: caching, cp nht cc bn ghi

Mt khi name server bit v 1 nh x tn-a ch, n s lu tm nh x

Cc mc cache ht hn (s b xa) sau mt khong thi gian (TTL) Thng tin trong cc TLD servers thng c lu tm trong cc name server cc b
Do cc name server gc khng b truy cp thng xuyn

Cc mc c lu tm c th ht hn

C ch cp nht/thng bo c xut trong b chun IETF


RFC 2136

Nu cp thng tin tn tn-a ch IP thay i, i c th cc my khc trn Internet khng bit c cho n khi tt c TTL ht hn.

Tng Application 2-69

Cc bn ghi DNS
DNS: c s d liu phn tn lu tr cc bn ghi thng tin
(resource records - RR) nh dng RR: (name,
value, type, ttl)

type=A
name l tn host value l a ch IP

type=CNAME
name l b danh ca mt tn gc (tn thc) VD: www.ibm.com tn thc l
servereast.backup2.ibm.com

type=NS

Name l tn min (e.g., foo.com) value l tn host ca name server c thm quyn qun l tn min ny

value l tn gc

type=MX
value l tn ca mail server c lin kt vi name
Tng Application 2-70

35

Giao thc v cc thng ip DNS

Cc thng ip truy vn (query) v tr li (reply) u c cng nh dng thng ip


2 bytes 2 bytes

msg header

identification # questions # authority RRs

flags # answer RRs # additional RRs

identification: s 16 bit xc nh 1 truy vn, hoc tr li cho truy vn c cng s ny flags: Truy T vn ho h c tr t li Mong mun quy quy sn sng Tr li c thm quyn

questions (variable # of questions) answers (variable ( i bl # of f RR RRs) ) authority (variable # of RRs) additional info (variable # of RRs)
Tng Application 2-71

Giao thc v cc thng ip DNS


2 bytes 2 bytes

identification # questions # authority RRs

flags # answer RRs # additional RRs

Cc trng name, type cho mt truy vn Cc RRs tr li truy vn Cc bn ghi thng tin v cc server c thm quyn thng tin hu ch b sung c th s dng

questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs)
Tng Application 2-72

36

Thm cc bn ghi vo trong DNS


V d: khi to mi cng ty Network Utopia ng k tn min networkuptopia.com ti mt DNS registrar i t t ch hc nh hn ng k t tn mi in (nh l Network Solutions)
Cung cp tn, a ch IP ca name server c thm quyn qun l tn min ny (primary v secondary) T chc qun l tn min thm hai bn ghi vo trong server qun l vng .com:
( (networkutopia.com, p , dns1.networkutopia.com, p , NS) ) (dns1.networkutopia.com, 212.212.212.1, A)

To bn ghi type A trong server c thm quyn qun l networkuptopia.com cho www.networkuptopia.com; v bn ghi type MX cho mail server thuc networkutopia.com
Tng Application 2-73

Tn cng DNS
Tn cng DDoS y khi lng d liu ln ti cc server gc
Tn cng chuyn hng Man in middle Man-in-middle

y khi lng d liu ln ti TLD server


Nguy him hn

Khng thnh cng cho n nay Lc lu lng Cc DNS server cc b lu tm cc a ch IP ca TLD servers, v th khng cn truy cp server gc

u c DNS

Ngn chn cc truy vn Gi cc tr li gi to n cc DNS server, (s c cc server lu li)

Khai thc DNS cho tn cng DDoS Gi cc truy vn vi a ch ngun gi mo: a ch IP mc tiu Yu cu khuch i

Application Layer 2-74

37

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2 7 Lp trnh socket 2.7 vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-75

Kin trc P2P thun ty


Khng c server hot ng lin tc Cc h thng g u cui bt k giao tip trc tip vi nhau Cc my c kt ni khng lin tc v thay i a ch IP Phn phi file (BitTorrent) Streaming (KanKan) VoIP (Skype)
Tng Application 2-76

V d:

38

Phn phi tp tin: so snh gia m hnh client-server v P2P


Cu hi: mt bao lu phn phi file (kch thc F) t mt
server n N my? ng ti ln/t n/ti xu ung ca p peer r l t ti nguyn nguy n g gii Lu l h n
us: lu lng ti ln ca server u1 di: lu lng ti xung ca peer i di ui ui: lu lng ti ln peer i
Tng Application 2-77

file, size F

server uN dN

us

d1

u2

d2

network (vi bng thng ln)

Thi gian phn phi file: client-server

Server truyn: phi gi (ti


ln) tun t N bn sao file:
F/us
Thi gian gi mt bn sao: Thi gian gi N bn sao:
F

us di network ui

client: mi client phi ti xung bn sao ca file

NF/us

dmin = tc ti xung ca client ti chm nht Thi gian client ti chm nht ti x xong: n : F/dmin Thi gian phn phi tp tin F n N client dng phng php client-server

Dc-s > max{NF/us,,F/dmin}


Tng tuyn tnh trong N
Tng Application 2-78

39

Thi gian phn phi file: P2P

Server: ch cn ti ln t nht
mt bn sao
Thi gian gi mt bn sao:

mt client: client phi


download bn sao file

F/us

us di network ui

nhiu client: vi N my th tng dung lng ti v l NF bit

Thi gian ti thiu client ti xung: F/dmin

Tc upload ti a (khng ch tc ti v ti a) l us + ui

Thi gian phn phi F n N client dng phng php P2P

DP2P > max{F/us,,F/dmin,,NF/(us + ui)}

Tng tuyn tnh trong N nhng mi khi thm peer tham gia s dng dch v, Tng Application 2-79 chnh n li gia tng nng lc dch v

So snh Client-server vi P2P: v d


Tc client upload = u, F/u = 1 hour, us = 10u, dmin us
3.5 P2P Client-Server

Minim mum Distribution Time

3 2.5 2 1.5 1 0.5 0 0

10

15

20

25

30

35

N
Tng Application 2-80

40

Phn phi file P2P: BitTorrent


Tp tin c chia thnh cc khi 256Kb (chunks) Cc peer trong in torrent gi/nhn cc khi

tracker: theo di cc peers


tham gia trong torrent

torrent: nhm cc peer


trao i cc khi

Alice tham gia ly danh sch cc peer t tracker v bt u trao i cc khi vi cc peer trong torrent
Tng Application 2-81

Phn phi file P2P: BitTorrent

peer tham gia torrent: khng c cc khi, nhng s ln lt tch ly chng t cc peer khc ng k vi tracker ly danh sch cc peer khc, kt ni vi peer khc v c lng ging ca cc peer khc trong khi ti xung, peer ti cc khi d liu n c ti cc peer khc peer c th thay i cc peer m n ang trao i cc khi d liu peers c th tham gia hay ri b nhm phn phi Mt khi peer c ton b file, n c th (ch k) ri khi hoc (v tha) li trong nhm

Tng Application 2-82

41

BitTorrent: yu cu, gi cc khi


Yu cu cc khi:

ti bt k thi im no, cc peer khc kh nhau h c cc tp con khc nhau ca cc khi nh k, Alice yu cu mi peer cho danh sch cc khi m cc peer c Alice y yu cu cc khi ang thiu t cc peer, him trc

Gi cc khi: tit-for-tat

Alice gi cc khi cho bn peer no hi h n ti ang gi cc khi cho c tc cao nht

Mi 30 giy: chn ngu nhin mt peer khc, bt u gi cc khi


Khng xit cc yu cu ca peer ny Peer mi c chn c th tham gia v top 4

Alice xit cc yu cu t cc peer khc (s khng nhn c khi t Alice) nh gi li top 4 mi 10 giy

Tng Application 2-83

BitTorrent: tit-for-tat
(1) Alice cho Bob kt ni (2) Alice tr thnh mt trong bn nh cung cp hng u ca Bob; Bob p li (3) Bob tr thnh mt trong bn nh cung cp hng u ca Alice

khi ti ln nhanh hn: d tm c i tc tt hn, ly file nhanh hn!


Tng Application 2-84

42

Distributed Hash Table (DHT)

Bng Hash M hnh DHT Circular DHT and overlay networks Peer churn

C s d liu n gin
C s d liu phn tn (distributed P2P database) n gin vi cp (key, value): key: s an sinh x hi; value: tn ngi
Key 132-54-3570 761-55-3791 385-41-0902 441-89-1956 217-66-5609 177-23-0199 Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal Linda Cohen . Lisa Kobayashi

key: tn phim; value: a ch IP

43

Bng Hash
thun tin hn lu tr v tm kim

trn i din s ca key key = hash(original key)


Original Key 132-54-3570 761-55-3791 385-41-0902 441-89-1956 217-66-5609 177-23-0199 9290124 Key 8962458 7800356 1567109 2360012 5430938

Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal p Linda Cohen . Lisa Kobayashi

Distributed Hash Table (DHT)

Phn phi cc cp (key, value) qua hng triu cc peer Bt k peer no cng c th truy vn trn DHT bng cch dng key
Cc cp c phn b u trn cc peer

Mi peer ch bit mt s nh cc peer khc

C s d liu tr v gi tr trng key gii quyt truy vn, s lng nh cc thng ip c trao i gia cc peer

44

Ch nh cc cp key-value cho cc peer


Quy tc: ch nh cp key-value n peer m c ID gn nht (closest). Quy c: gn nht(closest) is s k tha ngay lp tc (immediate successor ) ca kha (key) . V d: khng gian ID {0,1,2,3,,63} Gi s 8 p peer: 1,12,13,25,32,40,48,60
Nu key = 51, th c ch nh cho peer 60 Nu key = 60, th c ch nh cho peer 60 Nu key = 61, th c ch nh cho peer 1

DHT vng trn (Circular DHT)


Mi peer ch nhn thc c ngi lp tc k nhim v ngi tin nhim
1 60 12 13 48 40 32 25

overlay network

45

Gii quyt mt truy vn


1 value 60 13 48 O(N) cc thng ip trung bnh gii quyt truy vn, khi c N peer 40 25 32 12
Gitr noc kthpvikey y53?

DHT vng trn vi ng tt


value 60 13 48 40

1 12

Gitr nocho key53

25 32

Mi peer theo di i ch IP ca ngi tin nhim, ngi k nhim, ng tt. Gim t 6 cn 3 thng ip. C th thit k cc ng tt vi O(log N) lng ging, O(log N) thng ip trong truy vn

46

peer c th tham gia v ri khi (churn) nhm Mi peer bit a ch ca hai 3 15 k nhim ca n Mi peer nh k ping hai k 4 nhim ca n kim tra s tn ti 12 5 Nu ngi va k nhim b i, th chn k nhim k tip 10 nh l ngi k nhim tc thi 8 V d: peer 5 t ngt ri khi mi 1

Peer churn

X l peer churn:
Cc

4 pht hin s ri khi ca peer 5; peer 8 tr thnh ngi k nhim ngay lp tc ca n 4 yu cu 8 l ngi k nhim tc thi ca n; ngi k nhim tc thi ca 8 tr thnh ngi k nhim th 2 ca 4.

peer c th tham gia v ri khi (churn) nhm Mi peer bit a ch ca hai 3 15 k nhim ca n Mi peer nh k ping hai k 4 nhim ca n kim tra s tn ti 12 Nu ngi va k nhim b i, th chn k nhim k tip 10 nh l ngi k nhim tc thi 8 V d: peer 5 t ngt ri khi mi 1
peer

Peer churn

X l peer churn:
Cc

47

Chng 2: Ni dung
2.1 Cc nguyn l ca cc ng dng mng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t 2.5 DNS 2.6 Cc ng dng P2P 2 7 Lp trnh socket 2.7 vi UDP v TCP

SMTP, POP3, IMAP

Tng Application 2-95

Lp trnh Socket
Mc tiu: tm hiu cch xy dng cc ng dng
client/server lin lc bng sockets socket: mt cnh ca gia tin trnh ng dng v giao i th hc vn chuy h n gi ia 2 u cui
application

process
transport k network link physical

socket

application

process
transport t k network

c iu khin bi Nh pht trin ng dng c iu khin bi h iu hnh

Internet

link physical

Tng Application 2-96

48

Lp trnh Socket
Hai loi socket cho hai dch v transport: UDP: chuyn gi tin khng m bo TCP: chuyn lung tin c m bo (stream(stream

oriented) ng dng v d: 1. Client nhn mt dng cc k t (d liu) t bn phm ca n v gi d liu n server. 2. Server nhn c d liu v chuyn i cc k t sang ch hoa. hoa 3. Server gi d liu c sa i cho client trn. 4. Client ny nhn c d liu b sa i v hin th dng ln mn hnh ca n.
Tng Application 2-97

Lp trnh Socket vi UDP


UDP: khng kt ni gia client v server

Khng bt tay trc khi gi d liu B gi ch Bn h r a ch h IP ch h v s port t cho h mi packet Bn nhn ly a ch IP v s port ca bn gi t packet nhn c

UDP: d liu c truyn c th b mt hoc c nhn khng ng th t Quan im ng dng:


UDP cung cp c ch truyn cc nhm bytes (datagrams) khng tin cy gia client v server
Tng Application 2-98

49

S tng tc socket Client/server: UDP


server (chy vi a ch serverIP)
create socket, k port= x: serverSocket = socket(AF_INET,SOCK_DGRAM) read datagram from serverSocket write reply to serverSocket specifying clientIP, port number

client
create socket: clientSocket = socket(AF_INET,SOCK_DGRAM) create datagram with serverIP and port=x; send datagram via clientSocket

read datagram from clientSocket close clientSocket


Application 2-99

ng dng v d: UDP client


Python UDPClient
Bao gm th vin socket ca Python

from socket import * serverName = hostname hostname serverPort = 12000

To socket UDP cho server Nhn thng ip t bn phm ngi dng nh km tn server, port n thng ip; gi vo socket c cc k t tr li t socket vo chui In ra chui c nhn v ng socket

clientSocket = socket(socket.AF_INET, socket.SOCK_DGRAM) message = raw_input(Input lowercase sentence:) clientSocket.sendto(message,(serverName, serverPort)) modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print modifiedMessage clientSocket.close()
Tng Application 2-100

50

ng dng v d : UDP server


Python UDPServer
from socket import * serverPort = 12000
To UDP socket Gn kt socket n s port cc b12000 Lp mi mi c t UDP socket vo message, g , ly a ch IP ca client (a ch IP client v port) Gi chui ch hoa tr li cho client ny

serverSocket = socket(AF_INET, SOCK_DGRAM) serverSocket.bind(('', serverPort)) print The server is ready to receive while 1:
message, clientAddress = serverSocket.recvfrom(2048) modifiedMessage = message.upper() serverSocket.sendto(modifiedMessage, clientAddress)

Tng Application 2-101

Lp trnh Socket vi TCP


client phi lin lc vi server

Tin trnh server phi c chy trc server phi to socket (ca) mi client n lin lc

client tip xc server bng:

To socket TCP, xc nh a ch IP, s port ca tin trnh server Khi client to socket: client Quan im ng dng: TCP thit lp kt ni n TCP cung cp vic truyn cc byte server TCP

Khi c client lin lc, server TCP to socket mi cho tin trnh server trao i vi client Cho php server ni chuyn vi nhiu client S source port c dng phn bit cc client (xem tip chng 3)

ng tin cy v theo th t gia client v server

Tng Application 2-102

51

Tng tc socket Client/server: TCP


server (chy trn hostid)
create socket, port=x, for incoming request: serverSocket = socket() wait for incoming TCP connection request connectionSocket = connection serverSocket.accept() read request from connectionSocket write reply to connectionSocket close connectionSocket create socket, connect to hostid, port=x clientSocket = socket() send request using clientSocket

client

setup

read reply from clientSocket close clientSocket


Tng Application 2-103

ng dng v d : TCP client


Python TCPClient
from socket import * serverName = servername servername
To TCP socket cho server, port 12000

serverPort = 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName,serverPort)) sentence = raw_input(Input lowercase sentence:)

Khng cn nh km tn server, port

clientSocket.send(sentence) modifiedSentence = clientSocket.recv(1024) print From Server:, modifiedSentence clientSocket.close()

Tng Application 2-104

52

V d ng dng: TCP server


Python TCPServer
To socket k t TCP cho h n

server bt u lng nghe cc yu cu TCP n Lp mi mi server i accept() cho yu cu n, socket mi c to tr v c cc byte t socket (nhng khng c a ch nh UDP) ng kt ni n client ny(nhng khng ng socket cho n)

from socket import * serverPort = 12000 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind((,serverPort)) serverSocket.listen(1) print The server is ready to receive while 1: connectionSocket, addr = serverSocket.accept() sentence = connectionSocket.recv(1024) capitalizedSentence = sentence.upper() connectionSocket.send(capitalizedSentence) connectionSocket.close()
Tng Application 2-105

Chng 2: tm tt

Cc kin trc ng dng client-server l P2P Cc yu cu v dch v ng dng: tin cy, bng thng, tr M hnh dch v vn chuyn Internet Kt ni nh hng, tin cy: TCP Khng tin cy, datagrams: UDP

Cc giao thc: HTTP FTP SMTP, POP, IMAP DNS P2P: BitTorrent, DHT Lp trnh socket : TCP, UDP sockets

Tng Application 2-106

53

Chng 2: tm tt
Quan trng: tm hiu v cc giao thc!

trao i thng ip yu cu /tr li in hnh: client yu cu thng tin hoc dch v server p ng vi d liu, m trng thi Cc nh dng g thng g ip: headers: cc trng cho bit thng tin v d liu data: thng tin truyn thng

Cc ch quan trng:

iu khin vi cc thng ip d liu in-band, out-of-band Tp trung v khng tp trung Khng trng thi v c trng thi Truyn tin cy v khng tin cy s phc tp ti mng bin
Tng Application 2-107

54

You might also like