Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,85 MB
Nội dung
NGƠ HỒNG GIANG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LUẬN VĂN THẠC SĨ KHOA HỌC LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN NGÀNH: CÔNG NGHỆ THÔNG TIN 3898 CÔNG NGHỆ THÔNG TIN ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ THUẬT TOÁN BẢNG BĂM PHÂN TÁN DHT VÀ ĐƯA RA GIẢI PHÁP CẢI TIẾN HIỆU BẢNG BĂM PHÂN TÁN DHT VÀ ĐƯA RA GIẢI PHÁP CẢI TIẾN HIỆU NĂNG CỦA THUẬT TỐN CHORD NĂNG CỦA THUẬT TỐN CHORD NGƠ HỒNG GIANG 2006 - 2008 Hà Nội 2008 NGƠ HỒNG GIANG HÀ NỘI 2008 Người hướng dẫn khoa học: TS NGUYỄN CHẤN HÙNG HÀ NỘI 2008 Luận văn tốt nghiệp Ngô Hoàng Giang BỘ GIÁO DỤC ĐÀO TẠO Luận văn tốt nghiệp Cộng hoà xã hội chủ nghĩa Việt Nam TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI *** Ngơ Hồng Giang LỜI CẢM ƠN Độc lập – Tự – Hạnh phúc Trước hết vô biết ơn sâu sắc đến Thầy giáo TS Nguyễn Chấn Hùng – người trực tiếp dành nhiều thời gian tận tình hướng dẫn, cung cấp LỜI CAM ĐOAN thông tin quý báu giúp đỡ tơi hồn thành luận văn Luận văn thạc sỹ nghiên cứu thực hướng dẫn Thầy giáo TS Nguyễn Chấn Hùng Để hoàn thành luận văn này, tài liệu tham khảo liệt kê, cam đoan khơng chép cơng trình Tơi xin chân thành cảm ơn Ban lãnh đạo Trung tâm mạng thông tin – Trường Đại học Bách khoa Hà Nội, nơi công tác tạo nhiều điều kiện động viên khích lệ để tơi hồn thành luận văn Sau tơi xin bày tỏ lịng biết ơn đến người thân bạn bè đồng thiết kế tốt nghiệp người khác nghiệp, người ln cổ vũ động viên tơi hồn thiện luận văn Hà Nội, ngày 28 tháng 10 năm 2008 Hà Nội, ngày 28 tháng 10 năm 2008 (Ký ghi rõ họ tên) Ngơ Hồng Giang Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Chương Mục lục U U U U U U 1.2 U 1.2.1 U 1.3 U U 1.3.1 U U U U U U Tài liệu tham khảo 93 U U U U Các phương pháp đánh giá, thử nghiệm mạng P2P 40 U U 1.4.1 U Khảo sát simulator mô mạng overlay .41 U 1.4.2 U U Cơ chế làm việc 87 U Kelips .38 U 1.4 U U 1.3.4 U U Kết luận 92 U U Tapestry 33 U Mục tiêu 87 U 3.5.2 U Kademlia 30 U 1.3.3 U U 3.5.1 U 1.3.2 U U U U Chord 21 U U Cơ chế làm việc 79 U Giải pháp dùng nhân đối xứng cải tiến .87 U U U U 3.5 U U U U U Giới thiệu số DHT 20 U Mục tiêu 79 U 3.4.2 Distributed Hash Table 18 U U U U 1.2.2 U U 3.4.1 Hash Table (bảng băm) 18 U U U U U U Cơ chế làm việc 69 U U U U Giải pháp caching proxy 79 U Lý thuyết Distributed Hash Table (DHT) 18 U Mục tiêu 69 U 3.3.2 U U Các vấn đề mạng p2p 16 U U 3.4 U 1.1.4 U U U U U Giải pháp trì vịng dùng chế lock 69 U 3.3.1 Ứng dụng p2p 16 U U U Quá trình phát triển hệ thống P2P .12 U 1.1.3 U Giải pháp cải tiến giao thức Chord 68 U 3.3 U U 1.1.2 U U U Khái niệm mạng P2P .11 U U U U U U 3.2 U 1.1.1 Cải tiến hiệu Chord 68 U Hạn chế giao thức Chord 68 U Lý thuyết chung về mạng P2P 11 U U U 3.1 U Lý thuyết tổng quan 11 U Đánh giá ảnh hưởng tham số thiết hiệu DHT 63 U Chương U U U U U Lời mở đầu .10 U U So sánh hiệu DHT 53 U 2.2.5 U U 1.1 U U U Danh mục bảng U Xác định ngưỡng churn rate DHT làm việc tốt 47 U U Danh mục thuật toán Chương U 2.2.4 U U Quá trình thực nghiệm phương pháp đánh giá hiệu 45 U 2.2.3 U Danh mục hình vẽ U U U U U U Mục tiêu sở lý luận 44 U 2.2.2 U U U U Danh mục thuật ngữ U Đánh giá hiệu số DHT .44 U U Mục lục U U 2.2.1 U U U U 2.2 U LỜI CẢM ƠN U U Bài toán thực tế 43 U LỜI CAM ĐOAN U Đánh giá hiệu số DHT .43 U 2.1 U Ngơ Hồng Giang U U U P2PSim .42 U U Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Danh mục thuật ngữ Ngơ Hồng Giang Danh mục hình vẽ Hình 1.1 Mơ hình centralized directory .13 Tiếng Anh Tiếng Việt Peer-to-peer Mạng ngang hàng Peer Đồng đẳng mạng ngang hàng Node Một thiết bị nối mạng (một peer) Item Một đơn vị liệu Structured Có cấu trúc Overlay Mạng xây dựng mạng khác Hash table Bảng băm Distributed hash table Bảng băm phân tán Join Gia nhập (mạng ngang hàng) Leave Rời khỏi (mạng ngang hàng) Failure Lỗi Churn rate Số lượng peer rời khỏi/gia nhập mạng U U Hình 1.2 Mơ hình flooding request .14 U U Hình 1.3 Distributed Hash Table 20 U U Hình 1.4 (a) Một mạng Chord với node, item N=16 (b) Nguyên tắc chung U bảng routing table (c) Bảng routing table node node 11 23 U Hình 1.5 Quá trình node join vào mạng .28 U U Hình 1.6 (a) Bảng finger vị trí key sau node join (b)Bảng finger vị trí U key sau node leave .29 U Hình 1.7.Con trỏ node (0011) Kademlia 31 U U Hình 1.8 Minh họa cách chọn bảng định tuyến node Tapestry .34 U U Hình 1.9 Đường thông điệp từ node 5230 tới node 42AD 36 U U Hình 1.10 Ví dụ Tapestry node publish item 37 U U Hình 1.11 Ví dụ Tapestry node tìm kiếm item 37 U U Hình 1.12 Mạng Kelips node phân tán 10 nhóm affinity trạng khoảng thời gian U thái node cụ thể 39 U Hình 2.1 Node join/leave với interval=600 s mạng Chord 100 node 46 U U Hình 2.2 Lưu đồ thuật tốn q trình xác định churn rate 48 U U Hình 2.3 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng (fration of successful lookups) U theo băng thơng trung bình node sử dụng (average live bandwidth) mạng Kademlia 100 node (trái) 1000 node (phải) 49 U Hình 2.4 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình U node sử dụng mạng Chord 100 node (trái) 1000 node (phải) .50 U Hình 2.5 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình U node sử dụng mạng Kelips 100 node (trái) 1000 node (phải) 51 U Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Hình 2.6 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình Ngơ Hồng Giang Danh mục thuật tốn U node sử dụng mạng Tapestry 100 node (trái) 1000 node (phải) .52 U U node sử dụng mạng Chord với interval=5s (trái) interval=10s (phải) 55 U Hình 2.8 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình U node sử dụng Kelisp Tapestry với RTT=1s, 10s node join/leave với U interval=5s (trái) 10s (phải) 56 U Hình 2.9 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình U node sử dụng mạng Chord 1000 node với interval=120s (trái) interval=600s U (phải) 59 U Hình 2.10 Tác động churn rate tỷ lệ tìm kiếm thất bại (hình trên) độ trễ U tìm kiếm trung bình (hình dưới) mạng có kích thước khác 60 U Thuật tốn 1.1 Giả mã tìm node successor ID n 25 Hình 2.7 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng theo băng thơng trung bình U U Thuật toán 1.2 Giả mã cho hoạt động join vào mạng node 26 U U Thuật tốn 1.3 Giả mã cho q trình stabilization 27 U U Thuật tốn 3.1 Thuật tốn join tối ưu hóa .73 U Thuật tốn 3.2 Thuật tốn leave tối ưu hóa 76 U U Thuật tốn 3.3 Q trình stabilization định kỳ để xử lý failure 78 U U Thuật tốn 3.4 Q trình caching 81 U Thuật toán 3.5 Đồng hóa vịng proxy vịng node Chord thơng thường 85 U U Thuật toán 3.6 Xử lý thay đổi vòng proxy 86 U U Thuật tốn 3.7 Q trình tìm kiếm chèn giải pháp nhân đối xứng 89 U U Hình 2.11 Đồ thị biểu diễn tỷ lệ tìm kiếm thành cơng (hình trên) độ trễ tìm kiếm trung bình (hình dưới) theo băng thơng trung bình node sử dụng mạng có U kích thước khác với node join/leave với interval=600s 62 U Thuật toán 3.8 Join leave trường hợp nhân đối xứng 90 U U U Thuật toán 3.9 Xử lý failure nhân đối xứng 90 U Thuật toán 3.10 Thuật toán bulk owner operation 91 U U Hình 2.12 Ảnh hưởng tham số “base” hiệu Tapestry (trái) U tham số “gossip interval” hiệu mạng Kelips mạng 1000 nodes node join/leave với interval=600s .65 U Hình 2.13 Biểu diễn convex hull successor stabilization interval (trái) finger U stabilization interval (phải ) mạng Chord 1000 node node join/leave với interval=600s 66 U Hình 3.1 Biểu đồ chuyển đổi trạng thái node Chord 70 U U Hình 3.2 Biểu đồ thời gian biểu diễn trình node jon vào mạng thành cơng 71 U U Hình 3.3 Biểu đồ thời gian biểu diễn trình node rời khỏi mạng .74 U U Hình 3.4 Kiến trúc giải pháp caching proxy 80 U U Hình 3.5 Biểu đồ thời gian biểu diễn q trình caching thành cơng 81 U U Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Danh mục bảng Ngơ Hồng Giang Lời mở đầu Bảng 1.1 Trạng thái phát triển simulator 41 U U Bảng 1.2 Đặc điểm simulator 42 Khoảng mười năm trở lại đây, giới chứng kiến bùng nổ Internet Bảng 2.1 Bảng tham số Kademlia 49 băng thông rộng, với phát triển mạnh mẽ ứng dụng peer-to-peer Bảng 2.2 Bảng tham số Chord 50 Với nhiều ưu điểm hứa hẹn tính hiệu quả, linh hoạt khả mở rộng cao, U U U U U U Bảng 2.3 Bảng tham số Kelips .51 mạng peer-to-peer overlay thu hút nhiều quan tâm từ cộng đồng Bảng 2.4 Bảng tham số Tapestry 52 nghiên cứu Các mạng peer-to-peer overlay phát triển qua ba hệ, hệ Bảng 2.5 Giá trị churn rate để DHT đạt tỷ lệ tìm kiếm thành cơng 90% mạng structured overlay dựa khả lưu trữ tìm kiếm liệu hiệu mạng 100 1000 node 53 chế bảng băm phân tán (Distributed Hash Table hay DHT) U U U U U U Bảng 2.6 Điều kiện mô .54 Các DHT thiết kế để làm môi trường tương đối ổn định với peer Bảng 2.7 Giá trị tham số Chord 54 máy tính Tuy nhiên, vài năm gần đây, thiết bị nối mạng ngày phong phú, U U U U Bảng 2.8 Giá trị tham số Tapestry 54 đa dạng tivi hay thiết bị wireless điện thoại, PDA, … Các thiết bị kết Bảng 2.9 Giá trị tham số Kelips .55 nối rời khỏi mạng sau thời gian ngắn (churn rate cao) khiến cho thông tin Bảng 2.10 So sánh Chord, Kelips Tapestry .56 peer mạng liên tục thay đổi dẫn đến hiệu DHT giảm sút rõ rệt Bảng 2.11 Giá trị tham số Chord 57 Đánh giá cải thiện hiệu DHT điều kiện mạng churn rate cao Bảng 2.12 Giá trị tham số Kelips 58 toán quan tâm U U U U U U U U U U Bảng 2.13 Giá trị tham số Tapestry 58 Luận văn bao gồm ba phần Phần thứ tóm tắt lý thuyết chung mạng Bảng 2.14 Bảng tóm tắt kết 63 peer-to-peer Phần thứ hai, luận văn phân tích, đánh giá hiệu số DHT Bảng 2.15 Giá trị tham số Chord 64 tiếng Chord, Kademlia, Tapestry, Kelips điều kiện mạng churn rate cao Dựa Bảng 2.16 Giá trị tham số Kelips 64 kết đạt được, luận văn phân tích hạn chế giao thức Chord đưa giải Bảng 2.17 Giá trị tham số Tapestry 65 pháp cải tiến hiệu giao thức điều kiện churn rate cao U U U U U U U U U U Các kết nghiên cứu luận văn công bố số báo quốc tế nước [15, 16, 17, 18] 10 Luận văn tốt nghiệp Chương Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang thơng tin, chu kỳ xử lý, không gian lưu trữ Peer-to-peer computing tận dụng sức mạnh Lý thuyết tổng quan 0B tính tốn máy tính cá nhân kết nối mạng, cho phép doanh nghiệp tận dụng 1.1 Lý thuyết chung về mạng P2P sức mạnh tổng hợp client Các định nghĩa P2P thống số khái niệm: chia sẻ tài nguyên, tự 1.1.1 Khái niệm mạng P2P trị/phân tán, địa IP động, vai trò vừa client vừa server Trong khoảng 10 năm trở lại đây, lĩnh vực P2P nhận quan tâm nhiều nhóm nghiên cứu, cơng ty, trường đại học có bước phát 1.1.2 Quá trình phát triển hệ thống P2P Peer-to-Peer thuật ngữ tương đối lĩnh vực mạng hệ thống triển mạnh mẽ Ngày ứng dụng peer-to-peer sử dụng rộng rãi cho nhiều phân tán Theo Oram, P2P computing bắt đầu trở thành đề tài nhiều người quan mục đích khác chia sẻ tài nguyên nội dung, chat, chơi game, … Cũng giống xu hướng q trình phát triển khác, chưa có định nghĩa xác mạng P2P Dưới số định nghĩa P2P: tâm từ năm 2000 Trong khoảng thời gian từ đến nay, P2P trải qua vài hệ, hệ phát triển với động cơ, mục đích Theo Oram, P2P lớp ứng dụng tận dụng tài nguyên nhớ, lực xử lý, nội dung, … điểm cuối mạng Internet Bởi truy cập vào Thế hệ thứ tài nguyên phân tán có nghĩa hoạt động môi trường liên kết Thế hệ P2P bắt đầu với xuất ứng dụng chia sẻ file Napster không ổn định với địa IP thay đổi, node P2P phải hoạt động hệ Napster ứng dụng khác hệ thứ sử dụng mô hình centralized directory Đây mơ hình hybrid P2P hầu hết peer hệ thống có vai thống DNS có quyền tự trị cao hồn toàn tự trị Theo Miller, P2P kiến trúc máy tính có vai trị trách nhiệm Mơ hình đối lập với mơ hình client/server truyền thống, số máy tính dành riêng để phục vụ máy tính khác P2P có năm đặc điểm: trị nhau, số peer có vai trị lớn gọi server Hình 1.1 cho thấy ví dụ mơ hình centralized directory Trong mơ hình X X này, peer muốn chia sẻ file với peer khác thông báo với server file − Việc truyền liệu thông tin peer mạng dễ dàng Khi peer muốn tìm file đó, gửi yêu cầu đến server, dựa − Các peer vừa hoạt động client vừa hoạt động server thơng tin thu thập được, server tìm peer chứa file trả kết tìm − Nội dung mạng cung cấp peer kiếm cho peer yêu cầu Kết trả peer phù hợp dựa số thông số tốc − Mạng trao quyền điều khiển tự trị cho peer độ kết nối, kích thước file, … Sau nhận kết quả, peer tìm kiếm trao đổi file − Mạng hỗ trợ peer không kết nối thường xuyên peer địa trực tiếp với peer chứa file mà không thông qua server IP cố định Theo P2P Working Group: P2P computing chia sẻ tài nguyên dịch vụ cách trao đổi trực tiếp hệ thống Tài nguyên dịch vụ bao gồm 11 12 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang peer kết nối trực tiếp với nó, q trình diễn request bị timeout Quá trình gửi yêu cầu tìm kiếm gọi flooding Hình 1.2 biểu diễn X X mơ hình flooding request Hình 1.1 Mơ hình centralized directory Đóng góp hệ thứ đưa kiến trúc mạng khơng xem máy tính client server mà xem chúng máy cung cấp sử dụng tài nguyên với vai trò tương đương Mơ hình centralized directory cho phép tìm kiếm thông tin không gian lưu trữ cách nhanh chóng, nhiên, điểm yếu của mơ hình tính khả mở tải index server tăng tuyến tính với số lượng peer Đồng thời hệ thống sử dụng mơ hình này, điển hình Napster gặp vấn đề quyền tài ngun Hình 1.2 Mơ hình flooding request Thế hệ thứ hai xóa bỏ số điểm xử lý tập trung mạng tính khả mở cịn mạng sử dụng thuật toán flooding sinh nhiều traffic Thế hệ thứ hai Thế hệ thứ hai bắt đầu với ứng dụng Gnutella, Freenet làm việc mơ hình flooded requests Mơ hình khơng có server nào, peer bình đẳng Các hệ thống peer to peer hệ thứ hai hệ thống peer to peer túy Không giống hệ thứ nhất, peer không thông báo nội dung chúng chia sẻ, peer muốn tìm kiếm file, gửi u cầu tới peer kết nối trực tiếp với nó, peer khơng tìm thấy file, peer gửi yêu cầu tìm kiếm đến 13 Thêm nữa, mạng làm việc theo mơ hình khơng đảm bảo tìm liệu có mạng phạm vi tìm kiếm bị giới hạn Một số mạng hệ thứ hai đưa số cải tiến Freenet đưa mơ hình document routing, liệu lưu trên node có id tương tự với id liệu query chuyển tiếp dựa id liệu tìm kiếm Kazza, Gnutella sử dụng khái niệm super peer số node hoạt động directory service, giảm lượng flooding mạng 14 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Thế hệ thứ ba Ngơ Hồng Giang 1.1.3 Ứng dụng p2p Sự đơn giản giải pháp khả xóa bỏ điểm tập trung, chuyển trách Các ứng dụng p2p chia vào bốn nhóm: nhiệm pháp lý phía người sử dụng hạn chế tính khả mở lưu lượng Chia sẻ file (file sharing): lưu trữ chia sẻ nội dung ứng dụng thành công lớn thu hút cộng đồng nghiên cứu mạng hệ thống mở Bài tốn đặt cơng nghệ p2p Các ứng dụng chia sẻ file tập trung vào việc lưu trữ thông tin cho cộng đồng nghiên cứu xây dựng mạng P2P overlay khả mở điểm peer khác mạng lấy thơng tin từ peer Các ứng dụng thuộc điều khiển tập trung Nỗ lực giải tốn xuất “structured P2P nhóm bao gồm Napster, Gnutella, Freenet, Kazaa, Chord, … overlay networks” Tính tốn phân tán (distributed computing): ứng dụng thuộc nhóm sử Thế hệ thứ ba khởi đầu với dự án nghiên cứu Chord, CAN, Pastry, dụng tài nguyên từ máy tính nối mạng Ý tưởng ứng dụng tính Tapestry P-Grid Các dự án đưa khái niệm Distributed Hash toán phân tán chu kỳ xử lý nhàn rỗi máy tính nối mạng có Table (DHT) Mỗi peer hệ thống có ID thu từ việc băm đặc thuộc thể sử dụng cho việc giải tốn máy u cầu nhiều lực tính tính đặc trưng peer địa IP hay public key Mỗi data item có ID toán SETI (Search for Ex-traterrestrial Intelligence) dự án nghiên cứu khoa học thu theo cách tương tự với peer Hash table lưu data dạng cặp key-value nhằm mục đích xây dựng máy tính ảo khổng lồ từ sức mạnh máy tính nối Như vậy, node ID cặp key-value băm vào không gian ID Các node mạng chù kỳ nhàn rỗi chúng sau nối với theo topology Q trình tìm kiếm liệu trở Cộng tác (collaboration): ứng dụng cộng tác p2p cho phép người sử dụng thành trình định tuyến với kích thước bảng định tuyến nhỏ chiều dài đường cộng tác với mức ứng dụng Các ứng dụng đa dạng, từ instant cực đại Thế hệ thứ ba đảm bảo xác xuất tìm thấy thơng tin cao messaging, chat đến game online hay ứng dụng chia sẻ sử dụng thương mại, Các DHT xây dựng nhằm mục đích cho phép peer hoạt động giáo dục hay mơi trường gia đình cấu trúc liệu phân tán với hai hàm Put(key,value) Get(Key) Hàm Put lưu Platform (nền): platform p2p cung cấp hạ tầng hỗ trợ ứng dụng sử dụng liệu peer cho peer tìm hàm Get chế p2p Các thành phần p2p sử dụng bao gồm naming, discovery, Các hàm hoàn thành sau qua số nhỏ chặng Giải pháp DHT đảm communication, security resource aggregation JXTA p2p platform cung cấp bảo cho mạng có tính khả mở khả tìm thấy thơng tin cao hồn hạ tầng tính tốn lập trình mạng tồn phân tán DHT xem cách tiếp cận hợp lý cho vấn đề định vị định tuyến hệ thống P2P Cộng đồng nghiên cứu đưa nhiều DHT khác Mỗi DHT hoạt động theo nguyên lý chung có ưu điểm riêng, Chord với thiết 1.1.4 Các vấn đề mạng p2p Các hệ thống p2p có nhiều ưu điểm so với hệ thống client-server truyền thống tính khả mở, khả chịu lỗi, hiệu Tuy nhiên hệ thống p2p kế đơn giản, Tapestry Pastry giải vấn đề proximity routing, … phải đối mặt với số vấn đề: 15 16 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Bảo mật (security): cài đặt phân tán phát sinh thêm số vấn đề bảo mật Ngơ Hồng Giang 1.2 Lý thuyết Distributed Hash Table (DHT) so với kiến trúc client-server truyền thống Bởi hệ thống p2p peer động không tin tưởng lẫn nên để đạt mức bảo mật cao hệ thống p2p 1.2.1 Hash Table (bảng băm) khó hệ thống client-server Các chế bảo mật truyền thống để bảo vệ Một hash table cấu trúc liệu ánh xạ key value Tức tương liệu hệ thống khỏi công, xâm nhập firewall bảo vệ thống p2p ứng với key, hash table trả value Để thực việc ánh xạ, hash table hệ thống phân tán chế bảo mật ngăn chặn, hạn chế q sử dụng hash function tính tốn vị trí lưu value dựa key Hash function phải đảm trình truyền thơng p2p Do cần đưa khái niệm bảo mật cho phép tương bảo: tránh xung đột dễ dàng thực Tránh xung đột nghĩa ánh xạ không tác xử lý phân tán hệ thống p2p gian key không gian địa phải ngẫu nhiên đến mức Tính tin cậy (reliability): hệ thống tin cậy hệ thống có khả hồi phục sau xuất lỗi Các chế đảm bảo độ tin cậy mạng p2p bao gồm nhân liệu, phát khôi phục node bị lỗi, xây dựng nhiều chế đảm bảo thông tin định vị, tránh “single point of failure” đảm bảo nhiều đường tới liệu Tính linh hoạt (flexibility): tính chất quan trọng hệ thống p2p peer tự chủ, chúng join/leave lúc Các hệ thống p2p gần có quy mơ lớn, điều khiển phân tán hoạt động môi trường động Để giải vấn đề quy mơ tính động hệ thống p2p, xây dựng hệ 1.2.2 Distributed Hash Table Distributed Hash Table (DHT) thuật toán sử dụng ứng dụng p2p, DHT cho phép quản lý mạng p2p theo nghĩa với độ tin cậy cao, khả mở, hiệu có khả chịu lỗi DHT hash table cài đặt hệ thống phân tán Cũng hash table thông thường, DHT cung cấp ánh xạ từ key đến value Nhưng không giống hash table thông thường, value DHT lưu node khác mạng lưu cấu trúc liệu cục Thông qua thống p2p cần ý đến khả điều chỉnh tự tổ chức Cân tải (load balancing) : vấn đề phân tán liệu tính tốn quan trọng hiệu hoạt động mạng p2p Một giải pháp cho vấn đề phân tán distributed hash table (DHT) Trong cách tiếp cận này, cân tải xem xét hai khía cạnh: cân khơng gian địa tức cân phân phối không gian key address node cân item trường hợp phân phối item không gian địa ngẫu nhiên Cân tải node tính tốn hệ thống p2p cài đặt sử dụng mơ hình tự tổ key, value tương ứng lưu node phù hợp mạng lấy từ node tương ứng mạng Trong DHT, key tính từ value Tất key nằm không gian địa Các ứng dụng file sharing thường sử dụng không gian địa 160 bit Để xác định node lưu value nào, node phải có ID không gian địa giống không gian địa key Các DHT đưa khái niệm khoảng cách hai ID (một key xem ID value) Khi value lưu node có ID gần với ID value chức dựa agent Để lưu value mạng, node gửi thông điệp yêu cầu lưu liệu tới contact phù hợp chọn từ bảng routing table, bảng routing table, 17 18 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang Bảng giá trị tham số Tapestry Tham số Base Giá trị 2,4,8, 16,32, 64,128 Stabilization interval (sec) Number of backup nodes 1, 3, 6, 9, 18, 36, 72, 144 2,3,4 Number of nodes contacted during repair 1,3,5,10 Bảng 2.17 Giá trị tham số Tapestry 2.2.5.3 Kết phân tích Hình 2.13 Biểu diễn convex hull successor stabilization interval (trái) finger 12B stabilization interval (phải ) mạng Chord 1000 node node join/leave với interval=600s Hình 2.12 Hình 2.13 biểu diễn đường overall convex hull giao thức X X X X Chord, Kelips Tapestry đồ thị với đường convex hull tham số quan trọng Tham số coi quan trọng thay đổi giá trị chúng ảnh hưởng nhiều đến thay đổi hiệu DHT Các kết mô cho thấy base tham số quan trọng Hình 2.12 Ảnh hưởng tham số “base” hiệu Tapestry (trái) tham số “gossip interval” hiệu mạng Kelips mạng 1000 nodes Tapestry, tham số khác có ảnh hưởng Hình 2.12 (trái) cho thấy đường convex node join/leave với interval=600s hull ứng với tham số base = thấp đường convex hull khác nằm sát với X X đường overall convex hull đồ thị biểu diễn độ trễ tìm kiếm trung bình theo băng thơng trung bình node sinh Điều chứng tỏ giá trị tốt tham số base Tương tự vậy, mô chứng tỏ thay đổi tham số gossip_interval ảnh hưởng lớn đến thay đổi Kelips tham số khác ảnh hưởng khơng nhiều Hình 2.12 (phải) cho thấy đường convex hull ứng với tham số gossip_interval = X X 144s thấp đường convex hull khác nằm sát với đường overall convex hull đồ thị biểu diễn độ trễ tìm kiếm trung bình theo băng thơng trung bình node 65 66 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp sinh Trong điều kiện churn rate cao, ta nên điều chỉnh tham số gossip_interval đến Chương Ngô Hoàng Giang Cải tiến hiệu Chord 2B xấp xỉ 144s để Kelips đạt hiệu suất cao Đối với Chord, basictimer pnstimer tham số quan trọng Khơng giống với Kelips Tapestry, Hình 2.13 cho thấy khơng có giá trị tốt cho hai tham X X số Các đường convex hull ứng với basictimer nhận giá trị 3s, 9s, 18s, 36s tạo nên đường overall convex hull Chord Đối với tham số pnstimer, kết tương tự Kết mô cho thấy, số DHT Kelips hay Tapestry, ứng dụng thiết lập số tham số đến xấp xỉ giá trị định để DHT đạt hiệu tối ưu Trong đó, số DHT cần phải điều chỉnh vài tham số để đạt hiệu tối ưu Mô phỏng, đánh giá hiệu DHT điều kiện churn rate cao cho thấy, nhìn chung DHT làm việc với hiệu thấp điều kiện churn rate cao Mục tiêu luận văn cải tiến hiệu DHT Trong Chord giao thức cải tiến Chord cải tiến Chord giao thức đơn giản, có tính chất kinh điển 3.1 Hạn chế giao thức Chord Các mô cho thấy hiệu Chord thấp điều kiện churn rate cao (5-600s), đặc biệt churn rate cao, tỷ lệ thành cơng việc tìm kiếm liệu Chord 0% Đó thiết kế Chord Độ xác tìm kiếm Chord phụ thuộc vào bảng successor list Trong điều kiện churn rate cao, node join/leave liên tục, bảng successor list Chord bị sai lần cập nhật (chạy giao thức stabilization) 3.2 Giải pháp cải tiến giao thức Chord Căn vào nhược điểm Chord điều kiện churn rate cao, luận văn trình bày ba giải pháp cải tiến hiệu Chord Giải pháp thứ sử dụng chế lock để quản lý vịng Chord nhằm nâng cao độ xác bảng successor list Chord từ nâng cao tỷ lệ tìm kiếm liệu thành cơng Giải pháp thứ hai sử dụng chế caching proxy nhằm giảm độ trễ tìm kiếm liệu 67 68 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hoàng Giang Giải pháp cuối sử dụng chế nhân để nâng cao tính dự phịng liệu, qua nâng cao tỷ lệ tìm kiếm thành cơng giảm độ trễ tìm kiếm 3.3 Giải pháp trì vịng dùng chế lock 3.3.1 Mục tiêu Đảm bảo độ xác danh sách successor predecessor node điều kiện node join/leave với tốc độ cao đồng thời giảm sai sót trường hợp xảy lỗi 3.3.2 Cơ chế làm việc 3B Ý tưởng giải pháp sử dụng biến lock node để quản lý join/leave node node sau nó, đảm bảo vòng Chord cập nhật tức thời xảy join/leave trừ trường hợp lỗi Mỗi node có biến lock, muốn join/leave, node phải lấy lock lock node sau nó, lock node node sau thiết lập giá trị busy Ngay sau hoàn thành join/leave, lock node Hình 3.1 Biểu đồ chuyển đổi trạng thái node Chord thiết lập giá trị free Các trạng thái node, trình join/leave trình xử lý lỗi giao thức Chord trình bày phần cịn lại mục Cơ chế join vòng Chord 3.3.2.2 Cơ chế join vịng Chord biểu diễn Hình 3.2, giả sử node q join 14B X vào node p node r, trước node r successor node p Quá trình join Các trạng thái node 3.3.2.1 Các trạng thái node biểu diễn Hình 3.1 13B X X sau X Đầu tiên, node q lấy lock gửi thông điệp yêu cầu lock node r, node r bận, lock khơng khơng free q phải đợi Nếu lock node r free, thiếp lập lock = taken, gửi thông điệp thông báo predecessor q (node p) Nhận thông điệp, q trỏ trỏ pred vào p trỏ succ vào r gửi thông điệp báo cho node p biết để p cập nhật successor Nhận thông điệp p 69 70 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp trỏ trỏ succ vào p gửi thông điệp tới node r để r giải phóng lock Node r tiếp tục gửi thơng điệp để q giải phóng lock, đến q trình join kết thúc Ngơ Hồng Giang status := joinreq sendto e.JoinReq(n) end if end event event n.JoinReq(d) from m if JoinForward and m = oldpred then sendto pred.JoinReq(d) ⊲ Join Forwarding else if LeaveForward then sendto succ.JoinReq(d) ⊲ Leave Forwarding else if pred 6= nil and d (n, pred] then sendto succ.JoinReq(d) else if lock 6= free or pred = nil then sendto m.RetryJoin() else JoinForward := true lock := taken sendto m.JoinPoint(pred) oldpred := pred pred := m end if end if end event event n.JoinPoint(p) from m status :=joining pred := p succ := m sendto pred.NewSucc() end event Hình 3.2 Biểu đồ thời gian biểu diễn trình node jon vào mạng thành cơng Mã giả q trình xử lý node join vào mạng trình bày Thuật tốn 3.1 : X event n.NewSucc() from m sendto succ.NewSuccAck(m) succ := m end event X event n.Join(e) from app if e = nil then lock := free pred := n succ := n else lock := taken pred := nil succ := nil event n.NewSuccAck(q) from m lock := free JoinForward := false sendto q.JoinDone() end event 71 72 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang event n.JoinDone() from m lock := free status := inside end event Thuật toán 3.1 Thuật toán join tối ưu hóa Q trình rời mạng node 3.3.2.3 Cơ chế leave node khỏi vòng Chord biểu diễn Hình 3.3, giả 15B X X sử node q muốn rời khỏi mạng, node q successor p predecessor r Quá trình leave sau: Khi node q muốn rời khỏi mạng, phải lấy lock thân, lock q trạng thái taken q phải đợi đến lock chuyển sang trạng thái free Khi lock q trạng thái free, lấy lock gửi thơng điệp yêu cầu rời khỏi mạng đến node r Nếu lock r khơng free node q phải đợi, lock r free, r gửi thông điệp cho phép q rời khỏi mạng Lúc Hình 3.3 Biểu đồ thời gian biểu diễn trình node rời khỏi mạng 73 74 Luận văn tốt nghiệp Ngô Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang end event event n.UpdateSuccAck() from m event n.Leave() from app if lock 6= free then ⊲ Application should try again later else if succ = pred and succ = n then ⊲ Last node, can quit sendto succ.LeaveDone() ⊲ Leave the system end event event n.LeaveDone() from m lock := free status := inside end event else status := leavereq lock := true sendto succ.LeaveReq() end if end event Thuật toán 3.2 Thuật tốn leave tối ưu hóa event n.LeaveReq() from m if lock = free then lock := taken sendto m.GrantLeave() state :=predleavereq else if lock 6= free then sendto m.RetryLeave() end if end event 3.3.2.4 Xử lý trường hợp node bị lỗi 16B − Các hàm FixSucc, FixPred (chạy định kỳ) chế timer sử dụng để xử lý trường hợp node bị lỗi Periodic stabilization có hai mục đích: gộp node vào vịng xóa node lỗi khỏi vịng + Cơ chế timer Mỗi lock node i chuyển sang trạng thái busy, node khởi tạo timer Timer event n.RetryLeave() from m status := inside tắt lock node chuyển sang trạng thái free Nếu thời gian định trước lock := free ⊲ Retry leaving later end event (timeout), lock chưa chuyển sang trạng thái free, node chuyển trạng thái lock sang free thiết lập biến JoinForward LeaveForward sang false event n.GrantLeave() from m LeaveForward := true status := leaving sendto m.LeavePoint(pred) end event Nếu timeout xuất node join vào mạng, có trường hợp xảy Nếu succ = nil, khởi động lại q trình join lấy trỏ successor Nếu succ ≠ nil, lock giải phóng trình stabilization đưa node vào vịng event n.LeavePoint(q) from m status :=predleaving pred := q sendto pred.UpdateSucc() end event Nếu timeout xảy node rời khỏi mạng, node rời khỏi hệ thống khơng đưa thông báo event n.UpdateSucc() from m sendto succ.UpdateSuccAck() succ := m 75 76 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Nếu timeout xảy successor node trình gia nhập rời khỏi mạng, node thiết lập biến lock sang trạng thái free khởi tạo q trình stabilization Nếu predecessor thực bị fail, trình stabilization tự động khôi phục hệ thống lock tương ứng giải phóng, hệ thống trở trạng thái FixSucc, FixPred tương tự thuật toán manintenance Chord Hai chế đảm bảo p.succ.pred = p node p Cơ chế FixSucc định kỳ chuyển trỏ successor node tới node mạng gần theo chiều kim đồng hồ Nếu node phát successor khơng cịn tồn nữa, node thay successor node f mạng successor list Ngay f kơng phải successor node có chế FixSucc cập nhật trỏ succ trỏ đến successor gần Cơ chế FixPred định kỳ chuyển trỏ predecessor node tới node gần mạng theo hướng ngược chiều kim đồng hồ thiết lập trỏ pred thành nil phát node predecessor khơng cịn tồn mạng Điều kiện thủ tục Notify đổi lại để trỏ pred ln cập nhật có giá trị nil Successor-list node trì định kỳ Mỗi node định kỳ cập nhật successor-list cách copy successor-list successor, đặt successor vào đầu successor-list chặt successor-list tới kích thước cố định Thuật toán join xửa để successor node trình join vào mạng gửi successor-list với thơng điệp JoinPont, node khởi Ngơ Hồng Giang end if end procedure procedure n.Stabilize() // Locally called periodically try p := succ.GetPredecessor() if p=nil and p ∈ (n, succ] then succ := p end if slist := succ.GetSuccList() succlist := succ + slist //Prepend succ to slist succlist := trunc(succlist, k) //Right-truncate //to fixed size k succ.Notify(n) end try catch(RemoteException) succ := getFirstAliveNode(succlist) //Get closest alive //node end catch end procedure procedure n.GetPredecessor() return pred end procedure procedure n.GetSuccList() return succlist end procedure procedure n.Notify(p) if pred = nil or p ∈ (pred, n] then pred := p end if end procedure Thuật toán 3.3 Quá trình stabilization định kỳ để xử lý failure tạo successor list procedure n.CheckPredecessor(p) //Locally called periodically if IsAlive(pred) = false then pred := nil 77 78 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp 3.3.2.5 Bảng finger Bảng finger xây dựng thuật tốn Chord Ngơ Hồng Giang Normal proxy 17B Main proxy Q trình lookup 3.3.2.6 Có thể tìm kiếm sử dụng proxy, dựa q trình tìm kiếm thơng thường 18B Chord sử dụng tìm kiếm song song (phần nhân bản) 3.4 Giải pháp caching proxy 3.4.1 Mục tiêu Giải pháp caching proxy nhằm làm giảm độ trễ tìm kiếm góp phần cải tiến chế replication Normal node ring Proxy ring 3.4.2 Cơ chế làm việc Hình 3.4 Kiến trúc giải pháp caching proxy 3.4.2.1 Sơ đồ mạng overlay Mạng peer-to-peer chia thành hai vòng Chord, vòng nút mạng 19B thơng thường, vịng bao gồm proxies Khơng gian ID hai vòng giống Các proxy chia thành hai loại: main proxy normal proxy: Mỗi main proxy chịu trách nhiệm cho normal proxy theo sau main proxy đứng trước Mỗi normal proxy chịu trách nhiệm cho node có ID đứng trước ID đứng sau ID proxy trước 3.4.2.2 Q trình caching Xét ví dụ sau, node A tìm kiếm liệu K, liệu K lưu node 20B C Node B nằm trước node C Khi nhận yêu cầu tìm liệu K từ node A, node B trả kết tìm kiếm node C cho node A đồng thời trả kết (keyed, nodeid, ipaddress) cho main proxy chịu trách nhiệm cho node C Main proxy chuyển tiếp thông tin node C tới normal proxy chịu trách nhiệm cho node C Normal proxy cache lại thông tin event n.CacheReq sendto p.cache () end event event p.cache from n forwardto pi.cache() end event 79 80 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp event pi.cache from p if KeyID exists in cache then if associated nodeid is in cache then 3.4.2.3 Quá trình tìm kiếm Khi node tìm kiếm key, gửi đồng thời hai request, request thứ 21B ⊲ Ignore request else if associated nodeid is in replication groups then tới main proxy tương ứng, request thứ hai gửi tới node đứng trước gần key bảng finger thuật toán Chord Request gửi tới main proxy chuyển tới proxy chịu trách nhiệm cho ⊲Add to cache else key cần tìm Nếu thơng tin key cache, proxy gửi thông tin tới ⊲Replicate associated nodeID in cache end if node tìm kiếm node tìm kiếm bỏ qua thơng điệp từ q trình tìm kiếm khác Nếu key chưa cache, proxy trả hệ số replication key Trong else ⊲Add to cache end if end event trường hợp này, node tìm kiếm key node có ID tính từ hệ số replication Request gửi tới node bảng finger xử lý thuật toán Chord Thuật toán 3.4 Q trình caching Normal proxy Ngơ Hồng Giang 3.4.2.4 Node A Main proxy Quá trình trì 2B Duy trì vịng proxy Proxy khơng phải node Chord thông thường mạng, chúng keyid, nodeid, nodeip server dành riêng làm nhiệm vụ proxy Các server có tính sẵn sang cao, tần nodeid, nodeip suất gia nhập, rời khỏi mạng hay lỗi server thấp Cấu trúc overlay, trình trì (join/leave/failure) tương tự với vịng Chord {Add to cache} Các proxy có chung danh sách main proxy Nếu proxy join vào vòng proxy main proxy, thơng báo với proxy khác cập nhật danh sách main proxy Nếu main proxy leave khỏi mạng, Hình 3.5 Biểu đồ thời gian biểu diễn q trình caching thành cơng thơng báo với proxy khác để proxy xóa khỏi danh sách main proxy Nếu main proxy bị fail, successor predecessor thơng báo với proxy khác để cập nhật danh sách main proxy 81 82 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Nếu node join leave normal proxy, thơng báo với main proxy tương ứng để main proxy cập nhật danh sách proxy Nếu normal proxy bị fail, successor predecessor thông báo với main proxy để cập nhật danh sách proxy Sao lưu: proxy lưu cache k proxy liên tiếp sau Khi Ngơ Hoàng Giang event p.NotifyLeave from n sendto pi.NotifyLeave() end event event pi.NotifyLeave from p If n is not in cache then ⊲Ignore leaving node else proxy phát successor bị fail, thay proxy proxy If succ(n) is in cache then ⊲Merge cache of n to cache of succ(n) online danh sách proxy else ⊲Add succ(n) to cache end if Đồng vòng proxy vòng node thông thường endif end event Đồng node thông thường thay đổi Khi node join vào mạng, lấy danh sách main proxy từ successor Khi node leave khỏi mạng, thơng báo với caching proxy tương ứng với gửi successor tới proxy Proxy kiểm tra xem node leave khỏi mạng có cache khơng Nếu node cache, proxy chuyển key mà node chịu trách nhiệm sang successor node xóa node khỏi danh sách cache Khi node join vào mạng, gửi thơng tin successor tới proxy event n.Join from app sendto p.NotifyJoin() end event event p.NotifyJoin from n sendto pi.NotifyJoin() end event event pi NotifyJoin from p If succ(n) is not in cache then ⊲Ignore joining node else tương ứng Proxy kiểm tra xem successor cache chưa Nếu successor If some cached keys of succ(n) belong to n then cache, key có ID < ID node join vào mạng chuyển tới node else ⊲Add n to cache and move keys to n ⊲Ignore joining node Khi node phát successor bị fail, thông báo với proxy tương ứng Nếu node cache proxy, proxy xóa node khỏi cache end if end if end event event p.NotifyFailure from successor of n sendto p.NotifyFailure() end event event n.Leave from app sendto p.NotifyLeave() end event event pi.NotifyFailure from p sendto p.NotifyFailure() 83 84 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang end event successor predecessor thơng báo với proxy khác node thông event pi.NotifyFailure if n is not in cache then thường cập nhật lại danh sách main proxy Để cập nhật danh sách main proxy node thông thường, proxy ⊲Ignore failure node thông báo danh sách main proxy cho node mà cache Node thông else ⊲Remove n from cache (or replicate by associate node) end if end event thường thông báo danh sách main proxy cho successor predecessor node vịng có danh sách main proxy (version giống nhau) Một node dừng việc thông báo danh sách main proxy cho successor Thuật tốn 3.5 Đồng hóa vịng proxy vịng node Chord thơng thường predecessor danh sách main proxy giống với danh sách main proxy nhận từ successor predecessor Quá trình cập nhật trình lan tỏa Đồng vòng proxy thay đổi nên kết thúc nhanh Khi proxy join vào mạng, successor proxy chuyển key tương Quá trình xử lý join/leave/failure proxy tương tự node Chord thông ứng với proxy join vào mạng sang cho proxy Nếu proxy join vào mạng thường normal proxy, thơng báo với main proxy tương ứng cập nhật lại danh sách Giả mã xử lý thay đổi vòng proxy proxy Nếu node join vào mạng main proxy, thơng báo với main proxy đứng trước để lấy danh sách proxy list cập nhật danh sách main proxy tất proxy Main proxy thông báo cập nhật danh sách main proxy node cache Khi proxy leave khỏi hệ thống, successor proxy chịu trách nhiệm cho key cache proxy leave Nếu proxy leave normal proxy, thơng báo với main proxy tương ứng để cập nhật danh sách proxy Nếu proxy event p.MainProxyListChanged for node n in cache sendto n.NotifyMainProxyListChanged() end for end event event Notify MainProxyListChanged from p If is less than received from proxy or predecessor then # vn: version number of proxy list ⊲Replace its proxy list leave main proxy, chuyển danh sách proxy sang main proxy sau ⊲Forward proxy list to it successor and predecessor thông báo với proxy cập nhật lại danh sách main proxy Các proxy thông else báo với node thông thường để node cập nhật lại danh sách main proxy Khi proxy phát successor fail, thay proxy proxy cịn hoạt động danh sách successor Nếu proxy fail normal proxy, successor hoạt predecessor thơng báo với main proxy tương ứng để main proxy cập nhật lại proxy list Nếu proxy bị fail main proxy, 85 ⊲Ignore received proxy list end if end event Thuật tốn 3.6 Xử lý thay đổi vịng proxy 86 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang nhân số lớp khác Đối với node nhân them nhân 3.5 Giải pháp dùng nhân đối xứng cải tiến không đối xứng, node không nhân item node lớp 3.5.1 Mục tiêu nhân bổ xung Nhân đối xứng nhằm tăng cường tính sẵn sàng liệu tránh bottle-neck Các node lớp liên kết với ID i xác định sau: fk: 3.5.2 Cơ chế làm việc rk(i, x) = i ⊕ (x − 1) + N/f + (k-1).N/f Với N/f < N/k or f > k Giải pháp dựa chế nhân đối xứng Nhân đối xứng 3.5.2.1 Ý tưởng nhân đối xứng ID i hệ thống cần có liên kết 23B với ID f khác Nếu ID i liên kết với ID f node chịu trách nhiệm cho item i chịu trách nhiệm cho item i item j Tương tự, node chịu trách nhiệm cho item j chịu trách nhiệm cho item i k = mức nhân sở k > nhân bổ xung k tính từ proxy dựa tần suất tìm kiếm Q trình trì Thuật tốn join Khi node n join vào hệ thống, kích hoạt kiện JoinReplication, Mỗi ID hệ thống liên kết với tập f ID khác thỏa mãn: ID i liên kết với tập ID r1, ,rf , ID rx, với ≤ x ≤ f , liên kết với ID r1, ,rf kiện gửi thông điệp RetrieveItems tới successor để lấy item n cần lưu Thông điệp bao gồm thông tin item nằm giải (pred,n], pred Nói cách khác, khơng gian ID chia thành N/f lớp tương cho ID lớp liên kết với Để đơn giản, người ta thường sử dụng lớp với module m với m = N/f với N kích thước khơng gian ID ID predecessor n ID Khi successor nhận thơng điệp RetrieveItems, khởi tạo mạng hai chiều rỗng ( f , N) Sau đó, item liên kết với ID giải xác định từ Cho F = {1, , f }, ID i liên kết với ID f xác định công thức r : I x F → I: bảng HashTable cục tới mảng vừa tạo gửi trở lại thông điệp Replicate tới node vừa join vào mạng Khi nhận thông điệp Replicate, node join vào r(i, x) = i ⊕ (x − 1) + N/f mạng item mảng vào bảng HashTable cục Node lúc sẵn sàng nhận truy vấn tìm kiếm từ node khác hệ thống Cơ chế nhân đối xứng cải tiến 3.5.2.2 Ý tưởng cải tiến key tìm kiếm với tần suất khác 24B Thuật toán leave Thuật toán leave làm việc tương tự thuật toán join Khi node muốn leave khỏi hệ thống, kích hoạt kiện LeaveReplication, kiện sử nhân với hệ số nhân khác Các item hệ thống nhân mức khác Mọi node hệ thống nhân với hệ số (giống nhân đối xứng) Các node tìm kiếm nhiều nhân với hệ số bổ xung, node 87 dụng kiện RetrieveItems để item mà chịu trách nhiệm gửi chúng thơng điệp Replicate tới node successor Thuật tốn chèn 88 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Để chèn item, node muốn chèn thực trình chèn song song tới node chịu trách nhiệm cho item end for end event procedure n.AddItem(key, value, r) localHashTable[key][r] := value end procedure event n.JoinReplication() from m sendto succ.RetrieveItems(pred, n, n) end event event n.LookupItem(key, r) from app replicaKey := key ⊕ (r − 1)Nf Lookup(replicaKey,GetItem(replicaKey, r)) end event event n.LeaveReplication() from m sendto n.RetrieveItems(pred, n, succ) end event procedure n.GetItem(key, r) return localHashTable[r][key] end procedure event n.RetrieveItems(start, end, p) from m for r := to f items[r] := Ỉ i := start while i 6= end i := i ⊕ items[r][i] := localHashTable[r][i] end while end for sendto p.Replicate(items, start, end) end event Thuật toán 3.8 Join leave trường hợp nhân đối xứng Thuật toán xử lý failure event n.FailureReplication( f ailed, predFailed, r) from m s := predFailed ⊕ (r − 1)Nf e := f ailed ⊕ (r − 1)Nf sendto n.StartBulkOwn((s, e], RetrieveItems(s, e, succ)) end event event n.Replicate(items, start, end) from m for r := to f i := start while i 6= end i := i ⊕ localHashTable[r][i] := items[r][i] end while end for end event Thuật toán 3.9 Xử lý failure nhân đối xứng event n.StartBulkOwn(I, msg) from m Thuật tốn 3.7 Q trình tìm kiếm chèn giải pháp nhân đối xứng event n.InsertItem(key, value) from app for r := to f replicaKey := key ⊕ (r − 1)Nf n.Lookup(replicaKey,AddItem(replicaKey, r)) Ngơ Hồng Giang sendto n.BulkOwn(I, I, n, msg) ⊲ Local message to itself end event event n.BulkOwn(I, R, next, msg) from m value, MS := R ∩ (u(M), n] ⊲ u(M) is same as pred if MS 6= Ỉ then Deliver(msg, MS) ⊲ App is responsible for ids in MS 89 90 Luận văn tốt nghiệp Ngơ Hồng Giang Luận văn tốt nghiệp Ngơ Hồng Giang Kết luận end if limit := n lnext := next sentsucc :=false Sự phát triển mạnh mẽ đa dạng thiết bị truy cập mạng điện thoại, for i := M downto ⊲ Node has M unique pointers J := (u(i), limit] if I ∩ J 6= Ỉ then K := (u(i − 1), u(i)] sendto u(i).BulkOwn(I ∩ J, I ∩ K, lnext, msg) PDA, TV,… thách thức mạng structured overlay Với xuất thiết bị này, mạng trở nên bất ổn kéo theo sụt giảm nghiêm trọng hiệu mạng Cải tiến hiệu mạng điều kiện làm việc I := I − J ⊲ Same as I := I − (I ∩ J) limit := u(i) lnext := u(i) if i = then sentsucc :=true end if end if end for J := (n, u(1)] if I ∩ J 6= Ỉ and sentsucc = false and next 6= u(1) then sendto u(1).BulkOwn(Ỉ, I ∩ J, limit, msg) end if end event toán đặt cho cộng đồng nghiên cứu peer-to-peer Sau tóm tắt lý thuyết tổng quan peer-to-peer, luận văn đánh giá, phân tích so sánh hiệu DHT Chord, Kademlia, Kelips Tapestry điều kiện churn rate cao sử dụng phương pháp mô Dựa chế hoạt động Chord, kết hợp với kết mô phỏng, luận văn hạn chế giao thức Chord điều kiện churn rate cao đưa giải pháp nâng cao hiệu giao thức Trong giai đoạn tiếp theo, tác giả cài đặt giải pháp nâng cao hiệu Chord đánh giá kết đạt được, sở tác giả tiếp tục cải tiến Thuật toán 3.10 Thuật toán bulk owner operation giải pháp để Chord đạt hiệu suất cao môi trường truyền thơng khơng dây Trong q trình nghiên cứu, số kết nghiên cứu công bố báo quốc tế nước [ 15, 16, 17, 18] 91 92 Luận văn tốt nghiệp Ngô Hoàng Giang Luận văn tốt nghiệp Tài liệu tham khảo [1] Jinyang Li, Jeremy Stribling, Robert Morris, M Frans Kaashoek and Thomer M Gil “A performance vs cost framework for evaluating DHT design tradeoffs under churn” [2] Ion Stoica, Robert Morris, David Karger, Frans Kaashoek, and Hari Balakrishnan “Chord: A scalable Peer-To-Peer lookup service for internet applications” In Proceedings of the 2001 ACM SIGCOMM Conference, pages 149–160, 2001 [3] Ali Ghodsi “Distributed k-ary System: Algorithms for Distributed Hash Tables”, PhD dissertation, KTH-Royal Institute of Technology, October 2006 [4] Ali Ghodsi, Luc Onana Alima, Seif Haridi Symmetric Replication for Structured Peer-to-Peer Systems, DBISP2P2005, The 3rd International Workshop on Databases, Information Systems and Peer-to-Peer Computing, August 28-29, 2005, Trondheim, Norway [4] Ruud van Kessel “Peer-to-peer storage: a survey on the common used techniques”, 2006 [5] S Rhea, D Geels, T Roscoe, and J Kubiatowicz, “Handling churn in a DHT,” in roceedings of the 2004 USENIX Technical Conference, June 2004 [6] J Li, J Stribling, T Gil, R Morris, and M F Kaashoek, “Comparing the performance of distributed hash tables under churn,” in Proceedings of the 3rd International Workshop on Peer-toPeer Systems, Feb 2004 [7] P Maymounkov and D Mazieres, “Kademlia: A peer-to-peer information system based on the XOR metric,” in Proceedings of the 1st IPTPS, Mar 2002 [8] I Gupta, K Birman, P Linga, A Demers, and R van Renesse, “Kelips: Building an efficient and stable P2P DHT through increased memory and background overhead,” in Proceedings of the 2nd IPTPS, 2003 [9] B Y Zhao, L Huang, J Stribling, S C Rhea, A D Joseph, and J D Kubiatowicz, “Tapestry: A resilient global-scale overlay for service deployment,” IEEE Journal on Selected Areas in Communications, vol 22, no 1, pp 41–53, Jan 2004 [10] K.P.Gummadi, R.Gummadi, S.Gribble, S.Ratnasamy , S.Shenker, and I Stoica, “The impact of DHT routing geometry on resilience and proximity,” in Proceedings of the 2003 ACM SIGCOMM, Aug 2003 [11] F Dabek, M F Kaashoek, J Li, R Morris, J Robertson, and E Sit, “Designing a DHT for low latency and high throughput,” in Proceedings of the 1st NSDI, March 2004 [12] A Gupta, B Liskov, and R Rodrigues, “Efficient routing for peer-to-peer overlays,” in Proceedings of the 1st NSDI, Mar 2004 [13] Eng Keong Lua, Jon Crowcroft, Marcelo Pias, Ravi Sharma and Steven Lim, “A Survey and Comparison of Peer-to-Peer Overlay Network Schemes” IEEE COMMUNICATIONS SURVEY AND TUTORIAL, MARCH 2004 [14] P2PSIM home page, http://pdos.csail.mit.edu/p2psim/ [15] Giang Ngo Hoang, Hung Nguyen Chan, Thang Le Quang, “Performance study of distributed hash table mechanisms on p2p overlay network under extreme conditions”, International Symposium on Electrical-Electronics Engineering – ISEE 2007, Hochiminh, Vietnam HU Ngơ Hồng Giang [16] Nguyen Chan Hung, Ngo Hoang Giang, Le Quang Thang, “Comparative study on Distributed Hash Table algorithms of P2P network”, Proceeding NOC2007 12th European Conference on Networks & Optical Communications [17] “Performance Evaluation of Distributed Hash Table (DHT) Chord algorithm”, MCSE 2007, Proceeding of Modeling of Complex System and Environment MCSE 2007 by ISSAT (IEEE International Society of Science and Applied Technologies Conference), Hochiminh, Vietnam [18] Hung Nguyen Chan, Giang Ngo Hoang, Thang Le Quang, Tan Pek Yew, “Performance study of Chord, Kelips and Tapestry protocols on structured Peer-to-Peer Overlay networks”, in press, Special issues of Post & Telecommunications & Information Technology Journal, 2008 U 93 94