Professional Documents
Culture Documents
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
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
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
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
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:
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
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)
clients, servers Tin trnh client client: tin trnh khi to lin lc Tin trnh server: tin trnh ch i c lin lc
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
Internet
link physical
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
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
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
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
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
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.
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
Web v HTTP
n li
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
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
10
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!
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
Cc kt ni HTTP
HTTP khng bn vng
HTTP bn vng
11
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
phn hi cha file html, hin th html. Phn tch c php file html, tm ra cc i tng jpeg c tham chiu
time
12
Khi to kt ni TCP RTT yu cu file RTT file c nhn Thi gian Thi gian thi gian truyn file
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
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
14
web page thng bao gm form input d liu nhp c ti ln s server trong t n phn thn i tng HTML
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
Cc phng thc
HTTP/1.0:
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
15
cc dng header
200 OK
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
16
17
server
usual http request msg usual http response
file cookie
ebay 8734 amazon 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
cookie: 1678
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
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
Thng thng cache c ci t bi ISP (trng i hc, cng ty, ISP ring)
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)
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
origin servers
Kt qu:
Mng t chc
1 Gbps LAN
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
20
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 Gbps LAN
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
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!)
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 response
HTTP/1.0 304 Not Modified
HTTP response
HTTP/1.0 200 OK
<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
22
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
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
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
Gi vn bn ASCII trn knh iu khin USER username PASS password LIST tr v danh
V d m tr v
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
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
24
Th in t
Ba thnh phn chnh:
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
mail server
user agent
user agent
user agent
Tng Application 2-50
25
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
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
user agent
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
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)
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
header
dng trng
body
Khc vi cc lnh
Body: thng ip
Ch c cc k t ASCII
28
SMTP
SMTP
giao thc
user
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
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
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
30
C s d liu p phn tn
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?
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
B danh mail server Cn bng ti Cc bn sao cho web server: nhi hiu a ch h IP tng ng cho 1 tn
31
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
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)
32
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
33
DNS server gc
3 4 5
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
gaia.cs.umass.edu
Tng Application 2-67
DNS server gc
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
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
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.
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
msg header
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
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
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
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
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
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
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
file, size F
server uN dN
us
d1
u2
d2
us di network ui
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
39
Server: ch cn ti ln t nht
mt bn sao
Thi gian gi mt bn sao:
F/us
us di network ui
Tc upload ti a (khng ch tc ti v ti a) l 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
10
15
20
25
30
35
N
Tng Application 2-80
40
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
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
41
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 xit cc yu cu t cc peer khc (s khng nhn c khi t Alice) nh gi li top 4 mi 10 giy
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
42
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
43
Bng Hash
thun tin hn lu tr v tm kim
Value John Washington Diana Louise Jones Xiaoming Liu Rakesh Gopal p Linda Cohen . Lisa Kobayashi
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
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
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
overlay network
45
1 12
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
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
Internet
link physical
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
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
49
client
create socket: clientSocket = socket(AF_INET,SOCK_DGRAM) create datagram with serverIP and port=x; send datagram via clientSocket
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
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)
Tin trnh server phi c chy trc server phi to socket (ca) mi client n lin lc
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)
51
client
setup
serverPort = 12000 clientSocket = socket(AF_INET, SOCK_STREAM) clientSocket.connect((serverName,serverPort)) sentence = raw_input(Input lowercase sentence:)
52
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
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