Chia s ẻ file ngang hàngVí dụ A chạy một ứng dụng chia sẻ file trên máy tính kết nối vào Internet tìm kiếm bài hát “Hello” Ứng dụng hiển thị các máy peer có chứa một copy của bài hát
Trang 1Ứ ng d ụ ng P2P
Trang 2Chia s ẻ file ngang hàng
Ví dụ
A chạy một ứng dụng chia
sẻ file trên máy tính
kết nối vào Internet
tìm kiếm bài hát “Hello”
Ứng dụng hiển thị các máy
(peer) có chứa một copy
của bài hát ñó
A chọn một máy trong số
ñó, B
File ñược truyền từ máy B
ñến máy A: HTTP
khi A ñang load file, các máy khác có thể copy từ
A
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!
Trang 3P2P: Th ư m ụ c t ậ p trung
Phiên b ả n g ố c thi ế t k ế ki ể u
“Napster”
1) Khi m ộ t máy k ế t n ố i vào,
nó s ẽ khai báo:
IP address
nội dung
2) A tìm ki ế m “Hello”
3) A yêu c ầ u file t ừ B
Máy chủ chứa thư mục tập trung
peers
A
B
1 1
1 1 2
3
Trang 4P2P: H ạ n ch ế c ủ a th ư m ụ c t ậ p trung
Tính ch ị u l ỗ i
Hi ệ u n ă ng
B ả n quy ề n: s ẽ b ị truy t ố
Chia s ẻ file là phân tán song thông tin
v ề n ộ i dung là t ậ p trung
Trang 5Query flooding: Gnutella
hoàn toàn phân tán
không có máy chủ tập
trung
giao th ứ c public
có nhi ề u phiên b ả n
client Gnutella cùng cài
ñặ t giao th ứ c này
overlay network: ðồ th ị
X và Y có m ộ t c ạ nh
n ế u gi ữ a chúng có m ộ t liên k ế t TCP
Các máy ñ ang ho ạ t
ñộ 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
Trang 6Gnutella: protocol
Query QueryHit
Query
Qu ery
QueryHit
Que ry
Qu ery
Que
ryHi t
File transfer: HTTP
trên tất cả các cạnh
sẽ ñược gửi trả về theo ñường ngược lại
Tính mở rộng:
Flooding có giới hạn
Trang 7So 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
u 2
d 1
d 2
u 1
u N
d N
Server
Mạng (dư thừa băng thông)
File, kích
thước F
u s : b ă ng thông upload
c ủ a server
u i : b ă ng thông upload
c ủ a client/peer i
d i : b ă ng thông upload
c ủ a client/peer i
Trang 8Client-server: th ờ i gian chia s ẻ file
us
u 2
d 1
d 2
u 1
u N
d N
Server
Network (with abundant bandwidth)
F
server l ầ n l ượ t g ử i
N copies:
NF/us
client i m ấ t F/di ñể
download
Tỉ lệ tuyến tính với N (với N lớn)
= dcs = max { NF/us, F/min(di) }
i
Thời gian gửi tới N clients
Trang 9P2P: th ờ i gian chia s ẻ file
us
u 2
d 1
d 2
u 1
u N
d N
Server
Mạng (Giả sử không bị tắc)
F
server g ử i m ộ t copy:
F/us time
client i m ấ t F/di ñể t ả i
xu ố ng
NF bits ph ả i ñượ c t ả i
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
Trang 100 0.5 1 1.5 2 2.5 3 3.5
N
Client-Server
Trang 11P2P Case Study: BitTorrent
tracker: tìm tất cả các máy trong torrent
torrent: nhóm các máy chia sẻ cùng một nhóm file
lấy danh
sách máy
trao ñổi file
peer
Chia s ẻ file P2P
Trang 12BitTorrent (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ẻ ☺
Trang 13BitTorrent (2)
Lấy chunks
Tại mỗi thời ựiểm, các máy
khác nhau sẽ có các ựoạn
file khác nhau
thường xuyên hỏi các máy
bên cạnh
A tìm các ựoạn còn thiếu
rarest first
Gửi chunks: ỘBánh ắt- bánh quyỢ
A gửi các ựoạn file tới top 4 máy ựã cho A với tốc ựộ cao
nhất
đánh giá lại top 4, cứ 10 secs
Khoảng 30 secs: chọn ngẫu 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
Trang 14P2P Case study: Skype
P2P (to-pc,
pc-to-phone,
phone-to-pc) Voice-Over-IP
(VoIP)
IM
Giao th ứ c ứ ng d ụ ng
riêng
Mô hình phân c ấ p
Skype clients (SC)
Supernode (SN)
Skype login server
Trang 15Skype: thi ế t l ậ p cu ộ c g ọ i
User kh ở i t ạ o Skype
Skype login server
SC ñă ng ký v ớ i SN
Danh sách SNs
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