Professional Documents
Culture Documents
MMT - 02-3
MMT - 02-3
2.1 Cc nguyn l ca tng ng dng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t
2.6 ng dng P2P 2.7 Lp trnh Socket vi TCP 2.8 Lp trnh Socket vi UDP
2.5 DNS
my ch khng lun lun m nhiu my u cui khc nhau giao tip trc tip vi nhau cc bn kt ni khng lin tc v thay i a ch IP Ba ch :
Phn phi tp tin Tm kim thng tin Tnh hung nghin cu: Skype
peer-peer
ln ca my ch
u1 d1
u2
us dN uN
xung ca mi khch
Mng(bng thng rng)
ch ln lt gi N bn sao:
NF/us s
my ch
F
us dN uN
u1 d1 u2
d2
Thi gian phn phi F ti N khch s dng = d = max { NF/u , F/min(d ) } cs s i m hnh khch/ch i
Trng i Hc Bch Khoa Tp.HCM Khoa Khoa Hc v K Thut My Tnh 2011 MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 6
my ch phi gi mt phn sao: F/us vtg khch i cn F/di t/g ti v NF bit phi c ti v
my ch
F
us dN uN
d2
Sui) }
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 7
Khch-ch so vi P2P: v d
tc ti ln ca n/d = u, F/u = 1 hour, us = 10u, dmin us
3.5 P2P Client-Server
10
15
20
25
30
35
my ch (tracker): theo di cc
c nhn tham gia vo torrent
torrent: nhm cc c
nhn chia s nhng on tp
trao i cc on tp
peer
BitTorrent (1)
ko c on no, nhng s tch ly chng theo t/g ng k vi tracker ly danh sch thnh vin, lin kt ti mt nhm nh thnh vin (hng xm)
trong khi ti v, ngi ti ng thi chia s on tp cho nhng ngi khc. c nhn c th tham gia hoc t b torrent mt khi n/d ti xong tp, h c th ri mng torrent hoc li chia s cho ngi khc
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 10
BitTorrent (2)
Ko cc on tp Gi cc on tp: tit-for-tat Alice gi cc on cho 4 ti bt k thi im no, cc hng xm m ang gi thnh vin khc nhau s c on cho c ta vn tc nhng on khc nhau ca cao nht mt tp nh gi li tp 4 sau mt cch nh k, mt thnh mi 10 s vin (Alice) s yu cu t sau mi 30 s: chn ngu cc hng xm danh sch nhin mt thnh vin khc, cc on m h c. v gi on cho n Alice gi yu cu ti cc thnh vin mi ny c on m c ta thiu th vo tp 4
BitTorrent: Tit-for-tat
(1) Alice khai thng mt cch lc quan cho Bob (2) Alice tr thnh 1 trong tp 4 nh cung cp ca Bob; Bob tr n (3) Bob tr thnh 1 trong tp 4 nh cung cp ca Alice
kha: s CMND; gi tr: tn ngi kha: loi ni dung; gi tr: /c IP CSDL tr li gi tr m c kha trng hp
nh danh DHT
Yu cu mi kha cng l mt s nguyn trong cng khong trn. to ra kha s nguyn ta bm kha nguyn thy.
Vn trng tm:
Qui lut: gn kha cho thnh vin m c ID gn nht. Qui c n gin: gn nht l s ng ngay sau ca kha. Vd: n=4; thnh vin: 1,3,4,5,8,10,12,14;
kha = 13, thnh vin gn nht = 14 key = 15, thnh vin gn nht = 1
12 10
5 8
Mi thnh vin ch nm thng tin ca ngi ng ngay trc hoc ngay sau n. Mng bao ph
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 16
0001
Ti
0011
1110
1111
1110 1110
0100
1110
1100
1110
0101
nh ngha gn nht l ngi lin sau gn nht Trng i Hc Bch Khoa Tp.HCM
Khoa Khoa Hc v K Thut My Tnh 2011
1110
1010
1000
0001
Ti
0011
1110
1111
1110 1110
0100
1110 1110
1100
nh ngha gn nht l ngi lin sau gn nht
Trng i Hc Bch Khoa Tp.HCM Khoa Khoa Hc v K Thut My Tnh 2011
1110
0101
1010
1000
3
15
4 12 10
Mi thnh vin lu du ca a ch IP ca ngi lin trc, lin sau v vi lin kt tt. Gim t 6 xung cn 2 thng ip. C th thit k lin kt tt sao cho c O(log N) hng xm, O(log N) thng ip cho mi truy vn
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 19
Peer Churn
1 3 4
x l peer churn, yu cu mi t/vin phi bit a ch ca 2 ngi lin sau n. Mi t/vin theo nh k ping 2 ngi lin k n xem h cn trn mng ko.
15
12 10
8 Thnh vin 4 nhn ra; nhn 8 lm ngi lin sau chnh thc; hi 8 ai l ngi lin sau chnh thc ca n; nhn ngi lin sau chnh thc ca 8 lm ngi lin sau th 2. Chuyn g xy ra nu 13 mun gia nhp?
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 20
c tnh cht P2P: cc cp n/dng lin lc vi nhau. My ch ng nhp Skype giao thc tng ng dng s hu h thng bao ph phn cp vi Supernode (SN) Ch mc nh x tn ngi dng vi a ch IP; phn tn thng qua SN
Supernode (SN)
NAT ngn cn nhng t/vin bn ngoi khi u cuc gi vo t/vin bn trong S dng SN ca Alice v Bob, Ch chuyn tip c chn Mi thnh vin khi u phin lm vic vi SN chuyn tip. Cc t/vin c th lin lc xuyn qua NAT bng trm chuyn tip
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 22
Gii php:
2.1 Cc nguyn l ca tng ng dng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t
2.6 ng dng P2P 2.7 Lp trnh Socket vi TCP 2.8 Lp trnh Socket vi UDP
2.5 DNS
Lp trnh hc kt ni
Mc tiu: hc cch xy dng ng dng khch/ch s dng hc kt ni (HKN - socket)
Giao din lp trnh ng dng (gdltd - API) HKN
hkn
mt giao din trn my cc b, to bi ng dng, iu khin bi OS (mt cnh ca) thng qua tin trnh ng dng c th va gi v nhn tin nhn ti/t mt tin trnh ng dng khc
c gii thiu trong BSD4.1 UNIX, 1981 c khi to, s dng, v gii phng bi cc ng dng m hnh khch/ch hai loi dch v truyn ti thng qua gdltd hkn: khng tin cy tin cy, hng kt ni
tin trnh
internet
my c nhn hoc my ch
Trng i Hc Bch Khoa Tp.HCM Khoa Khoa Hc v K Thut My Tnh 2011
my c nhn hoc my ch
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 25
Khi c lin h bi khch, my ch TCP to mt socket mi tin hnh lin lc vi khch cho php ch c th ni chuyn vi nhiu khch s cng ngun c dng phn bit ngi dng
t gc nhn ca /d
TCP cung cp dch v truyn ti tin cy, theo th t ca cc byte gia khch v ch
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 26
Khch
to socket, cng=x, cho cc truy vn ti: welcomeSocket = ServerSocket() ch cc yu cu thit khi to kt ni connectionSocket = welcomeSocket.accept()
TCP lp kt ni
c yu cu t connectionSocket
vit phn hi vo connectionSocket ng connectionSocket
Trng i Hc Bch Khoa Tp.HCM Khoa Khoa Hc v K Thut My Tnh 2011
Mt lung l mt chui cc k t chy (i) vo hoc ra t mt tin trnh. Mt lung u vo c gn vo ngun u vo no ca tin trnh, vd: bn phm hoc socket Mt lung u ra c gn vo mt ngun u ra, vd: mn hnh hoc socket.
keyboard
monitor
input stream
inFromUser
output stream
inFromServer
outToServer
input stream
TCP socket
from network
Gi dng ti ch c dng t ch
V d: ch Java (TCP)
import java.io.*; import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
MNG MY TNH CN BN Bi ging 3 - Chng 2: Tng ng dng 32
To Socket n khch ti cng 6789 Ch khch ti lin h ti Socket To lung u vo, gn vi socket
Trng i Hc Bch Khoa Tp.HCM Khoa Khoa Hc v K Thut My Tnh 2011
V d: my ch Java (TCP), tt
To lung u ra, gn vo socket c vo 1 dng t socket Vit mt dng ra socket }
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence); } on cui vng lp while, quay tr li v ch kt ni ca khch khc
2.1 Cc nguyn l ca tng ng dng 2.2 Web v HTTP 2.3 FTP 2.4 Th in t
2.6 ng dng P2P 2.7 Lp trnh Socket vi TCP 2.8 Lp trnh Socket vi UDP
2.5 DNS
t gc nhn ca /d
UDP cung cp s truyn ti khng tin cy ca mt nhm byte (datagrams) gia khch v ch
Khch
to socket, clientSocket = DatagramSocket() to gi tin vi IP my ch v port=x; gi gi tin thng qua clientSocket
c gi tin t serverSocket
vit phn hi ti serverSocket ch r a ch, s cng ca khch
input stream
inFromUser
u vo: nhn gi
receivePacket
sendPacket
UDP packet
UDP socket
from network
Gi gi tin ti my ch
c gi tin t my ch
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } }
V d: my ch Java (UDP)
import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) {
V d: My ch Java (UDP), tt
String sentence = new String(receivePacket.getData());
Ly a ch IP s cng, ca ngi gi
InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes();
serverSocket.send(sendPacket);
}
Chng 2: Tng kt
Kt thc tm hiu v cc ng dng mng!
cc yu cu dch v ca ng dng:
lp trnh hc kt ni
Chng 2: Tng kt
Quan trng nht: hiu v cc giao thc
Cc ch quan trng:
khch yu cu thng tin hoc dch v my ch phn hi vi d liu, m trng thi mo u: cc trng mang thng tin v d liu d liu: thng tin c trao i
cc nh dng t/ip:
t/ip iu khin vs. d liu ni tuyn, ngoi tuyn tp trung vs. phn tn ko trng thi vs. c trng thi truyn ti t/ip tin cy vs. ko tin cy