Ứng dụng P2P
Chia 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!
P2P: 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
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
Gnutella: protocol
Query
QueryHit
Query
Q
u
e
r
y
QueryHit
Q
u
tính khác?
u
s
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
client i mất F/d
i
ñể
download
Tỉ lệ tuyến tính với N
(với N lớn)
= d
cs
= max
{
NF/u
s
, F/min(d
i
)
}
i
Thời gian gửi tới
N
clients
P2P: thời gian chia sẻ file
u
s
u
2
d
1
d
2
u
i
i=1,N
d
P2P
= max
{
F/u
s
, F/min(d
i
)
, NF/(u
s
+
Σ
u
i)
}
i
i=1,N
0
0.5
1
1.5
2
2.5
3
3.5
0 5 10 15 20 25 30 35
N
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
P2P Case study: Skype
P2P (pc-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)