You are on page 1of 15

Ứng dụng P2P

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chia sẻ file ngang hàng
Ví dụ  A chọn một máy trong số
 A chạy một ứng dụng chia ñó, B.
sẻ file trên máy tính  File ñược truyền từ máy B
 kết nối vào Internet ñến máy A: HTTP
 tìm kiếm bài hát “Hello”  khi A ñang load file, các
 Ứng dụng hiển thị các máy máy khác có thể copy từ
(peer) có chứa một copy A
của bài hát ñó.  A vừa là client, vừa là
server.
Tất cả các máy có thể là
server = Tính mở rộng
cao!

CuuDuongThanCong.com https://fb.com/tailieudientucntt
P2P: Thư mục tập trung
Phiên bản gốc thiết kế kiểu
B
“Napster” Máy chủ chứa
thư mục tập trung
1) Khi một máy kết nối vào, 1
nó sẽ khai báo: peers
1
 IP address
 nội dung 1 3

2) A tìm kiếm “Hello” 2 1

3) A yêu cầu file từ B

CuuDuongThanCong.com https://fb.com/tailieudientucntt
P2P: Hạn chế của thư mục tập trung
 Tính chịu lỗi Chia sẻ file là phân
 Hiệu năng tán song thông tin
 Bản quyền: sẽ bị truy tố về nội dung là tập
trung

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Query flooding: Gnutella
 hoàn toàn phân tán overlay network: ðồ thị
 không có máy chủ tập  X và Y có một cạnh
trung
nếu giữa chúng có một
 giao thức public
liên kết TCP
 có nhiều phiên bản
 Các máy ñang hoạt
client Gnutella cùng cài
ñặt giao thức này ñộng và các cạnh tạo
nên ñồ thị
 cạnh: liên kết logic

 thông thường có ít hơn


10 liên kết cho mỗi
peer
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Gnutella: protocol
File transfer:
❒ Thông ñiệp yêu cầu ñược quảng bá HTTP
trên tất cả các cạnh
❒ Thông ñiệp ñược chuyển tiếp
Query
❒ QueryHit QueryHit
sẽ ñược gửi trả về theo ñường ngược lại
ery Qu
u it ery
Q H
ery
Q u

Query
QueryHit

Qu
Tính mở rộng: er
y
Flooding có giới hạn

CuuDuongThanCong.com https://fb.com/tailieudientucntt
So sánh kiến trúc client-server và P2P
Vấn ñề : Thời gian ñể gửi một file tới N máy
tính khác?
us: băng thông upload
của server
Server
ui: băng thông upload
của client/peer i
u1 d1 u2
us d2
di: băng thông upload
File, kích của client/peer i
thước F
dN
Mạng
uN (dư thừa băng thông)

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Client-server: thời gian chia sẻ file
Server

 server lần lượt gửi F u1 d1 u2


us d2
N copies:
 NF/us dN Network (with
abundant bandwidth)
 client i mất F/di ñể uN

download

Thời gian gửi tới N clients = dcs = max { NF/us, F/min(di) }


i

Tỉ lệ tuyến tính với N


(với N lớn)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
P2P: thời gian chia sẻ file
Server
 server gửi một copy:
F u1 d1 u2
F/us time us d2
 client i mất F/di ñể tải
xuống dN Mạng
(Giả sử không bị tắc)
 NF bits phải ñược tải uN
xuống (tổng cộng)
 tốc ñộ upload cao nhất có thể (giả sử
tất cả các nút gửi cùng các ñoạn file tới
cùng một máy): us + Σui
i=1,N

dP2P = max { F/us, F/min(di) , NF/(us + Σui) }


i i=1,N

CuuDuongThanCong.com https://fb.com/tailieudientucntt
So sánh kiến trúc Client-server, P2P

3.5
Minimum Distribution Time P2P
3
Client-Server
2.5

1.5

0.5

0
0 5 10 15 20 25 30 35

CuuDuongThanCong.com https://fb.com/tailieudientucntt
P2P Case Study: BitTorrent
 Chia sẻ file P2P
tracker: tìm tất cả các máy torrent: nhóm các máy
trong torrent chia sẻ cùng một nhóm
file

lấy danh
sách máy

trao ñổi file

peer

CuuDuongThanCong.com https://fb.com/tailieudientucntt
BitTorrent (1)

 file ñược chia thành 256KB (chunks).


 một máy tham gia vào torrent:
 không có chunks, nhưng sẽ tích lũy dần theo thời gian

 ñăng ký với tracker ñể lấy danh sách các máy và connect


ñến các máy bên cánh
 khi download sẽ ñồng thời upload ñến các máy khác .
 các máy có thể gia nhập/rời bỏ mạng
 Khi máy lấy file xong, nó có thể rời mạng  hoặc tiếp tục
tham gia chia sẻ ☺

CuuDuongThanCong.com https://fb.com/tailieudientucntt
BitTorrent (2)
Lấy chunks Gửi chunks: “Bánh ít- bánh quy”
 Tại mỗi thời ñiểm, các máy  A gửi các ñoạn file tới top 4
khác nhau sẽ có các ñoạn máy ñã cho A với tốc ñộ cao
file khác nhau nhất
 thường xuyên hỏi các máy  ðánh giá lại top 4, cứ 10
bên cạnh. secs
 A tìm các ñoạn còn thiếu  Khoảng 30 secs: chọn ngẫu

 rarest first nhiên 1 máy khác và gửi


ñoạn file
 cho phép các máy mới
tham gia vào top 4

CuuDuongThanCong.com https://fb.com/tailieudientucntt
P2P Case study: Skype
 P2P (pc-to-pc, pc- Skype clients (SC)

to-phone, phone-to-
pc) Voice-Over-IP
Skype
(VoIP) login server Supernode
 IM (SN)

 Giao thức ứng dụng


riêng
 Mô hình phân cấp

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Skype: thiết lập cuộc gọi
 User khởi tạo Skype
 SC ñăng ký với SN
 Danh sách SNs Skype
login server
 SC ñăng nhập

 Call: SC liên lạc với SN,


gửi ID người ñược gọi
 SN liên lạc với SNs khác
ñể tìm ID của người kia,
sau ñó trả lại cho SC
 SC liên lạc trực tiếp với nhau, qua TCP

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like