Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
388,51 KB
Nội dung
Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia MỤC LỤC Chương 1: TỔNG QUAN VỀ PEER-TO-PEER (P2P) 1.1 Lịch sử hình thành 1.2 Mạng máy tính P2P 1.3 Phân loại P2P 1.3.1 Phân loại ứng dụng 1.3.2 Môi trường P2P hường tới .8 1.4 Các thành phần thuật toán mạng P2P .9 1.4.1 Các thành phần sở .9 1.4.2 Các thuật toán 12 1.4.2.1 Mơ hình thư mục trung tâm 12 1.4.2.2 Mơ hình tràn yêu cầu 13 1.4.2.3 Mơ hình định tuyến thư mục 14 1.5 Một số tính chất mạng P2P .18 1.5.1 Phân tán quyền .18 1.5.2 Khả co giãn 19 1.5.3 Khả giấu thông tin .21 1.5.4 Tự tổ chức 23 1.5.5 Chi phí sở hữu .24 1.5.6 Kết nối khơng dự tính 24 1.5.7 Tính thực thi 25 1.5.8 Bảo mật 27 Chương 2: Kademlia 28 2.1 Giới thiệu 28 2.1.1 Chord 29 2.1.1.1 Kiến trúc hệ thống Chord 29 2.1.1.2 Điểm yếu hệ thống Chord .32 2.1.2 Ý tưởng hệ thống Kademlia 34 2.2 Mô tả hệ thống 35 2.3 Trạng thái node 36 2.4 Định tuyến 38 2.4.1 Bảng định tuyến 38 2.4.2 Thuật tốn tìm kiếm .40 2.5 Giao thức Kademlia 42 Chương 3: Xây dựng ứng dụng P2PKad 45 3.1 Mục đích 45 3.2 Kiến trúc P2PKad .45 3.2.1 Các phiên làm việc peer 46 3.2.2 Giao thức overnet 49 Hồng Tuấn Anh – Lớp Cơng Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia 3.2.3 Xử lý thiết lập 50 3.2.3.1 Tìm kiếm Metadata .50 3.2.3.2 Tìm kiếm nguồn 51 3.2.4 Xử lý tìm kiếm .53 3.2.4.1 Tìm kiếm từ khóa 53 3.2.4.2 Tìm kiếm nguồn 54 3.2.5 Tham số OVERNET_SEARCH 56 3.2.6 Opcode OVERNET_PEER_NOTFOUND (33, 0x21) 57 3.2.7 Kiến trúc kiểu gói tin hệ thống Kademlia 57 Hoàng Tuấn Anh – Lớp Công Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia Chương 1: TỔNG QUAN VỀ PEER-TO-PEER (P2P) 1.1 Lịch sử hình thành Mạng Internet thiết kế ban đầu hệ thống peer-to-peer (P2P) Trải qua thời gian, nhu cầu sử dụng internet phát triển mạnh mẽ khiến cho mơ hình P2P dần chuyển đổi phát triển thành mơ hình client/server Vào đầu năm 1960, Internet đời phát triển cách nhanh chóng Số lượng máy client truy nhập internet gia tăng cách chóng mặt khiến cho khơn gian địa IP khơng cịn đủ để đáp ứng nhu cầu truy cập mạng người sử dụng Bên cạnh đó, phát triển internet kéo theo yêu cầu vấn đề bảo mật Đó ngăn cản khiến cho mơ hình P2P khó xây dựng phát huy sức mạnh thực Mơ hình client/server đời giải pháp cho vấn đề Dường mơ hình client/server thể lựa chọn gia tăng nhu cầu sử dụng internet cách mạnh mẽ khiến nhà phát triển phải xem xét lại vấn đề Số lượng gói tin truyền mạng nhiều gây tải băng thông, số lượng thông tin không gian lưu trữ tài nguyên vấn đề gặp phải nhà quản lý, cung cấp dịch vụ mạng Vì vậy, chi phí cho hệ thống server cao Và toán cho vấn đề đưa nhà phát triển mạng quay lại với mơ hình mạng P2P ngun thủy 1.2 Mạng máy tính P2P Mạng máy tính P2P xây dựng dựa băng thông hiệu máy tính cá nhân mạng khơng dựa tập chung số lượng nhỏ máy server Các mạng P2P sử dụng để kết nối node theo kết nối ad_hoc (không dự tính) hữu dụng cho số mục đích như: chia sẻ file nội dung, tìm kiếm tài nguyên, … Một mạng P2P túy khơng có khái niệm khách/chủ (clients/servers) mà node (peer) ngang có chức client server node khác mạng Mơ hình khơng giống với mơ hình client-server, kết nối khơng thường xun phải thơng qua server trung tâm Một ví dụ Hồng Tuấn Anh – Lớp Cơng Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia tiêu biểu cho chia sẻ file P2P server FTP, chương trình client server khơng giống nhau, máy client thiết lập yêu cầu download/upload máy server gửi trả lời cho u cầu Hình 1.2.1: Minh họa khác P2P Client/Server Khơng có ranh giới rõ ràng mơ hình P2P hơ hình clientserver Cả hai mơ hình tích hợp mạng với mục đích sử dụng khác Một vài mạng như: Napster, OpenNAP IRC@find sử dụng cấu trúc client-server cho vài mục đích tìm kiếm sử dụng cấu trúc P2P cho mục đích khác Các mạng khác Gnutella hay Freenet sử dụng cấu trúc P2P cho mục đích mạng hồn tồn P2P Hình 1.2.1: Hệ thống phân tán Hồng Tuấn Anh – Lớp Công Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia Kiến trúc P2P khái niệm quan trọng Internet, đưa với đời Internet vào khoảng năm 1960 Ngày nay, khái niệm thừa nhận tích hữu dụng đem lại kiến trúc trao đổi file đa phương tiện (multimedia) 1.3 Phân loại P2P Phân loại hệ thống máy tính biểu diễn sau: Hình 1.3.1: Phân loại hệ thống máy tính theo cấu trúc Tất hệ thống máy tính phân thành loại: Phân tán Tập chung Hệ thống phân tán phân thành mơ hình: client-server P2P Trong mơ hình client-server tất máy client liên lạc với máy server đơn, hoăc phân cấp để phát triển khả co giãn Trong mơ hình phân cấp, server cấp đóng vai trị client cấp cao Mơ hình P2P phân thành loại: pure P2P (thuần P2P) hybrid P2P (lai P2P) Trong mơ hình P2P khơng tồn server trung tâm, peer đóng vai trị server client Gnutella Freenet ví dụ điển hình cho mơ hình P2P Trong mơ hình lai P2P, server sử dụng để lưu thông tin thông tin nhận dạng peer để kiểm tra tính bảo mật ủy quyền Hồng Tuấn Anh – Lớp Cơng Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia Hình 1.3.2: Mơ hình lai P2P Hình 1.3.2 ví dụ mơ hình lai P2P Để kết nối vào mạng P2P, peer khởi tạo liên lạc với server (1) để lưu giữ vị trí đặc điểm nhân dạng peer, sau peer liên lạc trực tiếp với (2) Một vài ví dụ điển hình cho mơ hình lai P2P bao gồm: Napster, Groover, Aimster, Magi, Softwax iMesh… Có vài hệ thồng mạng kết hợp mơ hình P2P lai P2P để phát triển dự án cá nhân như: Skype, KaZaa Giải pháp đưa bên cạnh việc sử dụng server trung tâm để xác nhân thông tin đăng nhập peer cịn sử dụng peer có public IP làm SuperPeer (SuperNode) Các SuperPeer lưu trữ vài thông tin không, peer khác tìm kiếm thơng tin SuperPeer Tùy thuộc vào mục đích phát triển dự án mà sử dung mơ hình P2P kết hợp vài án nêu Ngồi ta đưa nguyên tắc phân loại hệ thống P2P sau: Hình 1.3.3: Nguyên tắc phân loại hệ thống P2P theo chức Các hệ thống P2P phân thành loại sau: Tính tốn phân tán: SETI@home, Avaki, Entropia Chia sẻ file: Napster, Gnutella, Free Haven, Publius Hồng Tuấn Anh – Lớp Cơng Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia Cộng tác: Magi, Groove, Jabber Platform: JXTA, NET My Services Dựa nguyên tắc trên, ta có phân loại hệ thống P2P sau: Hình 1.3.3: Phân loại hệ thống P2P theo chức Hình 1.3.3 cho thấy hệ thống P2P khác biệt theo chức (tính tốn, lưu trữ, liên lac) Trong đó, platform hỗ trợ cho tất phân loại chức khác 1.3.1 Phân loại ứng dụng Có phân loại cho ứng dụng P2P bao gồm: Thực thi song song, quản lý nội dung file, cộng tác Hình 1.3.1.1: Phân loại ứng dụng P2P Hoàng Tuấn Anh – Lớp Công Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia Thực thi song song Các ứng dụng P2P có khả thực thi song song cách chia sẻ cơng việc có quy mơ lớn thành nhiều thành phần nhỏ, thành phần thực thi song song node(peer) độc lập Hầu hết thực thi mơ hình hướng vào ứng dụng có độ tính tốn cao, phức tạp chuyên sâu Ý tưởng ứng dụng P2P loại tận dụng nhàn rỗi máy tính kết nối vào mạng để giải khó khăn tính tốn đặc biệt phức tạp Các công việc giống thực thi peer sử dụng thiết lập khác cho tham số chuyền vào Ứng dụng thực thi song song lĩnh vưc bao gồm: tìm kiếm sống trái đất (SETI@home), code breaking, định giá đầu tư, tính tốn mức độ nguy hiểm, ước lượng thị trường tài chính, phân tích tiếng nói … Các ứng dụng thành phần chưa thừa nhận P2P Mặc dù vậy, mường tượng ứng dụng tích hợp từ nhiều thành phần mà thành phần thực thi song song nhiều node Cũng giống ứng dụng tính tốn phức tạp chạy cơng việc nhiều peer, ứng dụng thành phần chạy thành phần khác peer Ví dụ ứng dụng: Workflow, JavaBean, Web Services … Quản lý nội dung file Các ứng dụng P2P quản lý nội dung file hướng vào việc lưu trữ thông tin gửi trả thông tin từ nhiều peer mạng Mơ hình phổ biến cho lớp ứng dụng mơ hình truyền đổi nội dung Các ứng dụng Napster Gnutella cho phép peer tìm kiếm tải file, chủ yếu file nhạc, từ peer khác Các ứng dụng không hướng nhiều vào khả cấp việc phục hồi trả file tải bị lỗi Chúng hướng tới việc tận dụng số lượng lớn không gian lưu trữ không sử dụng server cho người dùng Các ứng dụng đảm bảo độ tin cậy vịệc sử dụng nhiều công nghệ lưu trữ tryền thống để tái tạo liệu Một số dự án nghiên cứu khảo sát móng hệ thống file P2P dẫn tới đời ứng dụng sàng lọc khai phá OpenCOLA JXTA Search Thay hướng vào thông tin chia sẻ, ứng dụng hướng tới cơng nghệ sàng lọc cộng tác tích hợp khả Hồng Tuấn Anh – Lớp Cơng Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia tìm kiếm số mạng peer Cơng nghệ JXTA Search kết hợp với ứng dụng Gnutella để tăng hiệu tìm kiếm diện rộng hơn, nội dung bị phân tán lớn Cộng tác Các ứng dụng P2P cộng tác cho phép người dùng cộng tác với thời gian thực mà không cần thông qua server trung tâm để thu thập xếp thông tin Instant messaging dạng lớp ứng dụng Các dich vụ Yahoo!, AOL, Jabber instant messaging trở nên phổ biến người sử dụng Tương tự vậy, ứng dụng chia sẻ cho phép người (ví dụ: đồng nghiệp,…) tương tác với xem sửa đổi thông tin Buzzpad Distributed Power Point ví dụ tiêu biểu cho lớp ứng dụng Game dạng khác lớp ứng dụng P2P cộng tác Các game P2P tổ chức tất peer cập nhật phân tán tới tất peer mà không cần gửi yêu cầu tới server trung tâm Ví dụ game: NetZ1.0, Scour Exchange, Descent, Cybiko,… 1.3.2 Môi trường P2P hường tới Những môi trường hướng tới cho P2P gồm có: Internet, Intranets ad-hoc networks Các hệ thống P2P kết nối với mạng Internet đường dial up, băng thông rộng (DSL), ….Kiến trúc dựa máy tính cá nhân, máy để bàn, máy sách tay, thiết bị cầm tay, … Môi trường thường xun máy tính cá nhân có kết nối Internet Do đó, hệ thống P2P ngày chủ yếu hướng vào lĩnh vực chia sẻ nội dung Tính tốn phân tán kiến trúc P2P bắt đầu máy để bàn có kết nối Internet dự án SETI@home đạt thành công định mạng Intranet dự án DataSynapse Đối với mạng ad-hoc thiết bị cầm tay phát triển ứng dụng cộng tác Trong tương lai, môi trường cho hệ thống P2P có khả mở rộng triển khai nhiều loại ứng dụng mơi trường khác Thêm Hồng Tuấn Anh – Lớp Công Nghệ Phần Mềm A – K46 Trang Đồ án tốt nghiệp Tìm hiểu xây dựng ứng dụng P2P theo kién trúc Kademlia vào đó, Internet2 đưa hỗ trợ tốt cho hệ thống P2P ứng dụng P2P 1.4 Các thành phần thuật toán mạng P2P 1.4.1 Các thành phần sở Hệ thống P2P gồm nhiều thành phần sở phân theo lớp sau: Hình 1.4.1.1: Kiến trúc hệ thống P2P khơng thức Liên lạc Mơ hình P2P hội tụ nhiều kiểu liên lạc Từ máy tính để bàn kết nối Internet tốc độ cao ổn định thiết bị không dây nhỏ gọn máy PDA thiết bị cảm biến kết nối kiểu adhoc theo dạng khơng dây tốc độ trung bình Khó khăn chủ yếu liên lạc cộng đồng P2P khắc phục vấn đề peer động Cả nhóm peer cố định (ví dụ người dùng tắt máy) nhóm peer khơng cố định (ví dụ lỗi đường kết nối mạng, đường dial up) thường xuyên thay đổi Và để trì kết nối với lớp ứng dụng môi trường khó khăn lớn nhà phát triển P2P Hoàng Tuấn Anh – Lớp Công Nghệ Phần Mềm A – K46 Trang 10