Bài giảng Mạng máy tính - Chương 7.3: Ứng dụng P2P - Ngô Hồng Sơn

 User khởi tạo Skype Skype login server  SC đăng ký với SN  Danh sch SNs  SC đăng nhập  Call: SC lin lạc với SN, gửi ID người được gọi  SN lin lạc với SNs khc để tìm ID của người kia, sau đĩ trả lại cho SC  SC lin lạc trực tiếp với nhau, qua TCP

pdf15 trang | Chia sẻ: huongthu9 | Lượt xem: 509 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Mạng máy tính - Chương 7.3: Ứng dụng P2P - Ngô Hồng Sơn, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Ứ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 Máy chủ chứa thư mục tập trung peers A B 1 1 1 12 3 P2P: 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 Query 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 Gnutella: protocol Query QueryHit Query Query QueryHit Q u e r y Query Q u e r y H i t File transfer: HTTPr Thông ñiệp yêu cầu ñược quảng bá trên tất cả các cạnh r Thông ñiệp ñược chuyển tiếp r QueryHit sẽ ñược gửi trả về theo ñường ngược lại Tính mở rộng: Flooding có giới hạn 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 u2d1 d2 u1 uN dN Server Mạng (dư thừa băng thông) File, kích thước F us: băng thông upload của server ui: băng thông upload của client/peer i di: băng thông upload của client/peer i Client-server: thời gian chia sẻ file us u2d1 d2 u1 uN dN 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 P2P: thời gian chia sẻ file us u2d1 d2 u1 uN dN 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 + Σuii=1,N dP2P = max { F/us, F/min(di) , NF/(us + Σui) }i i=1,N 00.5 1 1.5 2 2.5 3 3.5 0 5 10 15 20 25 30 35 N M i n i m u m D i s t r i b u t i o n T i m e P2P Client-Server So sánh kiến trúc Client-server, P2P P2P 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 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ẻ ☺ BitTorrent (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 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) Skype login server Skype: 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

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_mang_may_tinh_chuong_7_3_ung_dung_p2p_ngo_hong_son.pdf