Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 3 Distributed Hash Table Bảng băm phân tán DHTs Distributed_File_Systems Hệ thống file phân tán Peer-to-Pee
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN
Nguyễn Tuấn Anh
NGHIÊN CỨU MỘT SỐ CƠ CHẾ BẢNG BĂM
PHÂN TÁN TRONG MẠNG NGANG HÀNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2010
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN
Nguyễn Tuấn Anh
NGHIÊN CỨU MỘT SỐ CƠ CHẾ BẢNG BĂM
PHÂN TÁN TRONG MẠNG NGANG HÀNG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Phạm Việt Bình
Thái Nguyên - 2010
Trang 3
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
Cộng hoà xã hội chủ nghĩa Việt Nam Độc lập – Tự do – Hạnh phúc
***
LỜI CAM ĐOAN Luận văn thạc sỹ này do tôi nghiên cứu và thực hiện dưới sự hướng dẫn của
Thầy giáo TS Phạm Việt Bình Để hoàn thành bản luận văn này, ngoài các tài liệu
tham khảo đã liệt kê, tôi cam đoan không sao chép các công trình nghiên cứu của
người khác
Thái Nguyên, ngày 13 tháng 10 năm 2010
Người cam đoan
Nguyễn Tuấn Anh
Trang 4Tôi xin chân thành cảm ơn Ban lãnh đạo Khoa Công nghệ thông tin, tập thể các
thầy, cô giáo trong Khoa cùng toàn thể bạn bè đã đóng góp ý kiến cho bản luận văn của tôi
Thái Nguyên, ngày 13 tháng 10 năm 2010
Trang 5
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trang 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
1
Mục lục
Danh mục thuật ngữ, từ viết tắt 3
Danh mục thuật ngữ, t ừ viết tắt 3
Danh mục hình vẽ 3
Danh mục bảng 6
Danh mục thuật toán 6
Lời mở đầu 7
Chương 1 Khái quát về mạng ngang hàng và bảng băm 8
1.1 Khái quát về mạng ngang hàng 8
1.1.1 Khái niệm mạng ngang hàng 8
1.1.2 Quá trình phát triển của các hệ thống mạng ngang hàng 10
1.1.3 Phân loại các mô hình mạng ngang hàng 14
a) Hệ thống mạng ngang hàng tập trung (Centralized) 15
b) Các mạng ngang hàng thuần túy (Pure) 17
c) Các mạng ngang hàng lai (Hybrid) 17
d) Mạng ngang hàng có cấu trúc 18
1.1.4 Các lĩnh vực ứng dụng của mạng ngang hàng 20
a) Giao tiếp (communication) 20
b) Chia sẻ Files (File sharing) 20
c) Băng thông (Bandwidth 22
d) Không gian lưu trữ (Storage Space) 22
e) Các chu trình xử lý (Processor Cycles) 25
1.1.5 Các phương pháp đánh giá mạng ngang hàng 25
a) Phương pháp phân tích 25
b) Phương pháp thử nghiệm 26
c) Phương pháp mô phỏng 26
1.1.6 Các vấn đề đối với mạng mạng ngang hàng hiện nay 27
Trang 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2
1.2 Bảng băm 28
1.2.1 Bảng băm (Hash table) 28
1.2.2 Bảng băm phân tán - Distributed Hash Table (DHTs) 28
Chương 2 Một số dạng bảng băm trong mạng ngang hàng 31
2.1 Kademlia 32
2.2 Tapestry 34
2.3 Kelips 39
2.4 Chord 41
Chương 3 Chương trình thử nghiệm 51
3.1 Bài toán thực tế 51
3.2 Khảo sát các simulator mô phỏng mạng overlay 52
3.3 Phần mềm mô phỏng P2PSim 54
3.3.1 Các bước mô phỏng với phần mềm P2PSim 56
3.3.2 Kịch bản mô phỏng 58
3.3.3 Đánh giá hiệu năng giao thức Chord trong mạng ngang hàng thông qua các kết quả mô phỏng 58
a) Kết quả mô phỏng ảnh hưởng của Churn rate đến tỷ lệ tìm kiếm lỗi 58 b) Kết quả mô phỏng ảnh hưởng của số lượng Node đến tỷ lệ tìm kiếm lỗi 62
c) Kết quả mô phỏng ảnh hưởng của RTT đến tỷ lệ tìm kiếm lỗi 65
d) Kết quả mô phỏng các tham số của Chord đối với tỷ lệ tìm kiếm lỗi 68 Kết luận 71
Tài liệu tham khảo 73
Trang 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3
Distributed Hash Table Bảng băm phân tán DHTs
Distributed_File_Systems Hệ thống file phân tán
Peer-to-Peer file sharing Hệ thống chia sẻ file ngang hàng
Content Distribution Systems Hệ thống nội dung phân tán
Peer Đồng đẳng trong mạng ngang hàng
Node Một thiết bị nối mạng (một peer)
Structured Có cấu trúc
Overlay Mạng được xây dựng trên các mạng khác
Join Gia nhập (mạng ngang hàng)
Leave Rời khỏi (mạng ngang hàng)
Churn rate Số lượng peer rời khỏi/gia nhập mạng
trong một khoảng thời gian
Danh mục hình vẽ
Hình 1.1 (a) Mô hình Client/Server 9 Hình 1.1 (b) Mô hình P2P 9
Trang 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
4
Hình 1.2 Overlay Network Diagram 10
Hình 1.3 Mô hình centralized directory 11
Hình 1.4 Mô hình flooding request 12
Hình 1.5 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster 15
Hình 1.6 Mô hình mạng ngang hàng lai (Hybrid) 18
Hình 1.7 Chord Protocol 19
Hình 1.8 Ba cấu hình cho các giải pháp Direct Attached Storage 23
Hình 1.9 Sơ đồ một hệ thống NAS 24
Hình 1.10 Sơ đồ một Storage Area Network 25
Hình 1.11 Distributed Hash Table 30
Hình 2.1 Con trỏ của node 3 (0011) trong Kademlia 32
Hình 2.2 Minh họa cách chọn bảng định tuyến của một node Tapestry 35
Hình 2.3 Đường đi của thông điệp từ node 5230 tới node 42AD 37
Hình 2.4 Ví dụ về Tapestry node publish item 38
Hình 2.5 Ví dụ về Tapestry node tìm kiếm item 39
Hình 2.6 Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng thái tại một node cụ thể 40
Hình 2.7 (a) Một mạng Chord với 6 node, 5 item và N=16 43
Hình 2.7 (b) Nguyên tắc chung của bảng routing table 43
Hình 2.7 (c) Bảng routing table của node 3 và node 11 43
Hình 2.8 Quá trình một node join vào mạng 48
Hình 2.9 (a) Bảng finger và vị trí của key sau khi node 6 join 49
Hình 2.9 (b)Bảng finger và vị trí trí của key sau kho node leave 49
Hình 3.1 (a) Kết quả mô phỏng 100Node khoảng thời gian vào/ra mạng là 10s 59
Hình 3.1 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 10s 59
Hình 3.2 (a) Kết quả mô phỏng 100Node khoảng thời gian vào/ra mạng là 60s 60
Hình 3.2 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 60s 60
Trang 10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
5
Hình 3.3 (a) Kết quả mô phỏng 100Node khoảng thời gian vào/ra mạng là 120s 60
Hình 3.3 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 120s 60
Hình 3.4 (a) Kết quả mô phỏng 100Node khoảng thời gian vào/ra mạng là 300s 61
Hình 3.4 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 300s 61
Hình 3.5 (a) Kết quả mô phỏng 100Node khoảng thời gian vào/ra mạng là 600s 61
Hình 3.5 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 600s 61
Hình 3.6 (a) Kết quả mô phỏng tổng hợp với 100 node 62
Hình 3.6 (b) Kết quả mô phỏng tổng hợp với 1000 node 62
Hình 3.7 (a) Kết quả mô phỏng 100 node, khoảng thời gian vào/ra mạng là 300s 63
Hình 3.7 (b) Kết quả mô phỏng 100 node, khoảng thời gian vào/ra mạng là 600s 63
Hình 3.8 (a) Kết quả mô phỏng 250 node, khoảng thời gian vào/ra mạng là 300s 64
Hình 3.8 (b) Kết quả mô phỏng 250 node, khoảng thời gian vào/ra mạng là 600s 64
Hình 3.9 (a) Kết quả mô phỏng 500 node, khoảng thời gian vào/ra mạng là 300s 64
Hình 3.9 (b) Kết quả mô phỏng 500 node, khoảng thời gian vào/ra mạng là 600s 64
Hình 3.10 (a) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 300s 64
Hình 3.10 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 600s 64
Hình 3.11 (a) Kết quả mô phỏng tổng hợp khoảng thời gian vào/ra mạng là 300s 65
Hình 3.11 (b) Kết quả mô phỏng tổng hợp khoảng thời gian vào/ra mạng là 600s 65
Hình 3.12 (a) Kết quả mô phỏng RTT = 0,5s khoảng thời gian vào/ra mạng là 300s 66
Hình 3.12 (b) Kết quả mô phỏng RTT = 0,5s khoảng thời gian vào/ra mạng là 600s 66
Hình 3.13 (a) Kết quả mô phỏng RTT = 1s khoảng thời gian vào/ra mạng là 300s 66
Hình 3.13 (b) Kết quả mô phỏng RTT = 1s khoảng thời gian vào/ra mạng là 600s 66
Hình 3.14 (a) Kết quả mô phỏng RTT = 2s khoảng thời gian vào/ra mạng là 300s 67
Hình 3.14 (b) Kết quả mô phỏng RTT = 2s khoảng thời gian vào/ra mạng là 600s 67
Hình 3.15 (a) Kết quả mô phỏng RTT = 3s khoảng thời gian vào/ra mạng là 300s 67
Hình 3.15 (b) Kết quả mô phỏng RTT = 3s khoảng thời gian vào/ra mạng là 600s 67
Trang 11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
6
Hình 3.16 (a) Kết quả mô phỏng tổng hợp khoảng thời gian vào/ra mạng là 300s 68
Hình 3.16 (b) Kết quả mô phỏng tổng hợp khoảng thời gian vào/ra mạng là 600s 68
Hình 3.17 (a) Kết quả mô phỏng 100 node, khoảng thời gian vào/ra mạng là 300s 69
Hình 3.17 (b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 300s 69
Hình 3.18 (a) Kết quả mô phỏng 100 node, khoảng thời gian vào/ra mạng là 600s 69
Hình 3.18 b) Kết quả mô phỏng 1000 node, khoảng thời gian vào/ra mạng là 600s 69
Hình 3.19 (a) Kết quả mô phỏng tổng hợp 100 node 70
Hình 3.19 (b) Kết quả mô phỏng tổng hợp 1000 node 70
Danh mục bảng Bảng 1.1 So sánh ưu, nhược điểm của hệ thống P2P và Client/Server 14
Bảng 1.2 Các mô hình P2P 15
Bảng 3.1 Trạng thái phát triển của các simulator 53
Bảng 3.2 Đặc điểm của các simulator 54
Bảng 3.3 Các kịch bản mô phỏng 58
Bảng 3.4 Các tham số của Chord 58
Danh mục thuật toán Thuật toán 2.1 Giả mã tìm node successor của ID n 45
Thuật toán 2.2 Giả mã cho hoạt động join vào mạng của một node 46
Thuật toán 2.3 Giả mã cho quá trình stabilization 47
Trang 12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Lời mở đầu
Khoảng mười năm trở lại đây, thế giới đã chứng kiến sự bùng nổ của Internet băng thông rộng, cùng với nó là sự phát triển mạnh mẽ của các ứng dụng peer-to-peer Với nhiều ưu điểm hứa hẹn như tính hiệu quả, linh hoạt và khả năng mở rộng cao, các mạng peer-to-peer overlay đã và đang thu hút được nhiều sự quan tâm từ cộng đồng nghiên cứu Các mạng peer-to-peer overlay đã phát triển qua ba thế hệ, thế hệ hiện nay
là mạng structured overlay dựa trên khả năng lưu trữ và tìm kiếm dữ liệu hiệu quả của
cơ chế bảng băm phân tán (Distributed Hash Table - DHTs)
DHTs là cơ sở để xây dựng các hệ thống ứng dụng phân tán như distributed file systems, peer-to-peer file sharing và content distribution systems Bên cạnh đó là các hệ thống web caching, multicast, anycast, domain name services, và instant messaging Các
hệ thống ứng dụng sử dụng DHTs đáng chú ý có BitTorrent, eDonkey
Các DHTs được thiết kế để làm trong môi trường tương đối ổn định với các peer là máy tính Tuy nhiên, vài năm gần đây, các thiết bị nối mạng ngày càng phong phú, đa dạng như tivi hay các thiết bị wireless như điện thoại, PDA, … Các thiết bị này kết nối
và rời khỏi mạng sau một thời gian ngắn (churn rate cao) khiến cho thông tin về các peer trên mạng liên tục thay đổi dẫn đến hiệu năng của các DHTs giảm sút rõ rệt Đánh giá và cải thiện hiệu năng của các DHTs trong điều kiện mạng churn rate cao là bài toán đang rất được quan tâm hiện nay
Luận văn bao gồm ba phần Phần thứ nhất tóm tắt lý thuyết chung về mạng peer-to-peer Phần thứ hai, luận văn tìm hiểu cơ chế DHTs thông qua một số DHTs nổi tiếng như Chord, Kademlia, Tapestry, Kelips Phần thứ ba luận văn văn tiến hành phân tích, đánh giá hiệu năng của một DHTs cụ thể (Chord DHTs) và căn cứ vào các kết quả phân tích đó mở ra hướng khắc phục các hạn chế của các DHTs
Trang 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
8
1.1 Mạng ngang hàng
1.1.1 Khái niệm mạng ngang hàng
Mạng ngang hàng (Peer – to – Peer, P2P) bắt đầu xuất hiện từ 1999 và đã thu hút
sự quan tâm của giới CNTT trong những năm gần đây Đặc biệt việc áp dụng các mô hình P2P trong việc xây dựng những ứng dụng chia sẻ file (file sharing), điện thoại trên nền Internet (Internet-based telephony) đã đạt được nhiều thành công
Hiện nay các ứng dụng P2P chiếm khoảng 50% (thậm chí 75%) băng thông trên Internet
Cũng giống như các xu hướng đang trong quá trình phát triển khác, hiện nay chưa có một định nghĩa chính xác về mạng P2P Dưới đây là một số định nghĩa về P2P:
Theo Oram:
- P2P là một lớp các ứng dụng tận dụng các tài nguyên như bộ nhớ, năng lực xử
lý, nội dung, … tại các điểm cuối trong mạng Internet Bởi vì truy cập vào các tài nguyên phân tán này cũng có nghĩa là hoạt động trong một môi trường liên kết không
ổn định và với địa chỉ IP có thể thay đổi, các node P2P phải hoạt động ngoài hệ thống DNS và có quyền tự trị cao hoặc hoàn toàn tự trị
- Mạng P2P không có khái niệm máy trạm (client) hay máy chủ (server), mà chỉ
có khái niệm các nốt (peers) đóng vai trò như cả client và server
Trang 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
9
Hình 1.1 (a) Mô hình Client/Server Hình 1.1 (b) Mô hình P2P
Theo Miller: P2P là một kiến trúc trong đó các máy tính có vai trò và trách
nhiệm như nhau Mô hình này đối lập với mô hình client/server truyền thống, trong đó một số máy tính được dành riêng để phục vụ các máy tính khác P2P có năm đặc điểm:
- Việc truyền dữ liệu và thông tin giữa các peer trong mạng dễ dàng
- Các peer vừa có thể hoạt động như client vừa có thể hoạt động như server
- Nội dung chính trong mạng được cung cấp bởi các peer
- Mạng trao quyền điều khiển và tự trị cho các peer
- Mạng hỗ trợ các peer không kết nối thường xuyên và các peer không có địa chỉ
IP cố định
Theo P2P Working Group: P2P computing là sự chia sẻ tài nguyên và dịch vụ
bằng cách trao đổi trực tiếp giữa các hệ thống Tài nguyên và dịch vụ ở đây bao gồm 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 tính toán của các máy tính cá nhân và kết nối mạng, cho phép doanh nghiệp tận dụng sức mạnh tổng hợp của các client
Các định nghĩa về P2P thống nhất ở một số khái niệm: chia sẻ tài nguyên, tự trị/phân tán, địa chỉ IP động, vai trò vừa là client vừa là server
Overlay network:
+ Là mạng máy tính được xây dựng trên nền của một mạng khác Các nodes
trong mạng overlay được xem là nối với nhau bằng liên kết ảo (logical links), mỗi liên
Trang 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
10
kết ảo có thể bao gồm rất nhiều các liên kết vật lí của mạng nền
+ Rất nhiều các mạng P2P được gọi là overlay networks vì nó được xây dựng và hoạt động trên nền của Internet VD: Gnutella, Freenet, DHTs …
+ Dial-up Internet cũng là một overlay network trên nền telephone network
Hình 1.2 Overlay Network Diagram
1.1.2 Quá trình phát triển của các hệ thống mạng ngang hàng
Peer-to-Peer là thuật ngữ tương đối mới trong lĩnh vực mạng và các hệ thống phân tán Theo Oram, P2P computing bắt đầu trở thành đề tài được nhiều người quan tâm từ giữa những năm 2000 Trong khoảng thời gian từ đó đến nay, P2P trải qua vài thế hệ, mỗi thế hệ được phát triển với những động cơ, mục đích của mình
Thế hệ thứ nhất
Thế hệ P2P đầu tiên bắt đầu với sự xuất hiện của ứng dụng chia sẻ file Napster Napster và các ứng dụng khác trong thế hệ thứ nhất sử dụng mô hình centralized directory Đây là mô hình hybrid P2P trong đó hầu hết các peer trong hệ thống có vai
Trang 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
11
trò như nhau, một số peer có vai trò lớn hơn và được gọi là các server
Hình 1.1 cho thấy một ví dụ về mô hình centralized directory Trong mô hình này, các peer muốn chia sẻ file với các peer khác sẽ thông báo với server về các file này Khi một peer muốn tìm một file nào đó, nó sẽ gửi yêu cầu đến server, dựa trên các thông tin đã thu thập được, server sẽ tìm ra các peer chứa file đó và trả kết quả tìm kiếm cho peer yêu cầu Kết quả trả về là peer phù hợp dựa trên một số thông số như tốc
độ kết nối, kích thước file, … Sau khi nhận được kết quả, peer tìm kiếm sẽ trao đổi file trực tiếp với peer chứa file mà không thông qua server nữa
Hình 1.3 Mô hình centralized directory
Đóng góp chính của thế hệ thứ nhất là đã đưa ra kiến trúc mạng không xem các máy tính như client và server mà xem chúng như các máy cung cấp và sử dụng tài nguyên với vai trò tương đương nhau Mô hình centralized directory cho phép tìm kiếm thông tin trong không gian lưu trữ một cách nhanh chóng, tuy nhiên, điểm yếu của của
mô hình này là tính khả mở vì tải trên index server sẽ tăng tuyến tính với số lượng peer Đồng thời các hệ thống sử dụng mô hình này, điển hình là Napster còn gặp vấn đề về bản quyền các tài nguyên
Thế hệ thứ hai
Thế hệ thứ hai bắt đầu với các ứng dụng như Gnutella, Freenet làm việc mô
Trang 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
12
hình flooded requests Mô hình này không có bất kỳ server nào, các peer bình đẳng như nhau Các hệ thống peer to peer thế hệ thứ hai là các hệ thống peer to peer thuần túy Không giống thế hệ thứ nhất, các peer không thông báo về các nội dung chúng chia sẻ, khi một peer muốn tìm kiếm một file, nó gửi yêu cầu tới các peer kết nối trực tiếp với nó, nếu các peer đó không tìm thấy file, mỗi peer sẽ gửi yêu cầu tìm kiếm đến các peer kết nối trực tiếp với nó, quá trình cứ diễn ra như vậy cho đến khi yêu cầu bị
từ chối Quá trình gửi yêu cầu tìm kiếm đi như vậy gọi là flooding Hình 1.2 biểu diễn một mô hình flooding request
Hình 1.4 Mô hình flooding request
Thế hệ thứ hai xóa bỏ được một số điểm xử lý tập trung trong mạng nhưng tính khả
mở còn kém hơn do mạng sử dụng thuật toán flooding sinh ra quá nhiều traffic Thêm nữa, các mạng làm việc theo mô hình này không đảm bảo sẽ tìm được dữ liệu có trên mạng do phạm vi tìm kiếm bị giới hạn Một số mạng trong thế hệ thứ hai đưa ra một số cải tiến Freenet đưa ra mô hình document routing, trong đó dữ liệu được lưu trên trên node có id tương tự với id của dữ liệu và các query được chuyển tiếp dựa trên
id của dữ liệu tìm kiếm Kazza, Gnutella sử dụng khái niệm super peer trong đó một số node hoạt động như directory service, giảm lượng flooding trong mạng
Thế hệ thứ ba
Trang 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
13
Sự đơn giản trong giải pháp và khả năng xóa bỏ điểm tập trung, chuyển trách nhiệm pháp lý về phía người sử dụng cũng như hạn chế về tính khả mở do lưu lượng quá lớn đã thu hút cộng đồng nghiên cứu về mạng và các hệ thống mở Bài toán đặt ra cho cộng đồng nghiên cứu là xây dựng một mạng P2P overlay khả mở không có điểm điều khiển tập trung Nỗ lực giải quyết bài toán này là sự xuất hiện của “structured P2P overlay networks”
Thế hệ thứ ba được khởi đầu với các dự án nghiên cứu như Chord, CAN, Pastry, Tapestry và P-Grid Các dự án này đưa ra khái niệm Distributed Hash Table (DHTs) Mỗi peer trong hệ thống có một ID thu được từ việc băm các đặc thuộc tính đặc trưng của peer đó như địa chỉ IP hay public key Mỗi data item cũng có một ID thu được
theo cách tương tự với các peer Hash table lưu data dưới dạng cặp key-value Như vậy, node ID và cặp key-value được băm vào cùng một không gian ID Các node sau đó được nối với nhau theo một topology nào đó Quá trình tìm kiếm dữ liệu trở thành quá trình định tuyến với kích thước bảng định tuyến nhỏ và chiều dài đường đi cực đại Thế hệ thứ ba đảm bảo xác xuất tìm thấy thông tin cao
Các DHTs được xây dựng nhằm mục đích cho phép các peer hoạt động như một cấu trúc dữ liệu phân tán với hai hàm chính Put (key,value) và Get (Key) Hàm Put lưu
dữ liệu tại một peer nào đó sao cho bất kỳ peer nào cũng có thể tìm được bằng hàm Get
Các hàm này hoàn thành sau khi đi qua một số nhỏ các chặng Giải pháp DHTs đảm bảo cho mạng có tính khả mở và khả năng tìm thấy thông tin cao trong khi vẫn hoàn toàn phân tán DHT đang được xem như là cách tiếp cận hợp lý cho vấn đề định
vị và định tuyến trong các hệ thống P2P Cộng đồng nghiên cứu đã đưa ra nhiều DHT khác nhau Mỗi DHT hoạt động theo nguyên lý chung và có ưu điểm riêng, Chord với thiết kế đơn giản, Tapestry và Pastry giải quyết được vấn đề proximity routing, …
Trang 19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
14
- Một mạng ngang hàng cho phép các
node (PCs) đóng góp, chia sẻ nguồn tài
nguyên với nhau Tài nguyên riêng rẽ
của các node (ổ cứng, CD-ROM, máy
in … Các nguồn tài nguyên này có thể
được truy cập từ bất cứ node nào trong
- Khi một máy client yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định
ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu
+ Ƣu điểm:
- Không cần server riêng, các client
chia sẻ tài nguyên Khi mạng càng
được mở rộng thì khả năng hoạt
- Đáng tin cậy hơn (có server riêng)
Bảng 1.1 So sánh ưu, nhược điểm của hệ thống P2P và Client/Server
1.1.3 Phân loại các mô hình mạng ngang hàng
Mạng ngang hàng có thể được phân loại theo mục đích sử dụng như: Chia sẻ file (file sharing), Điện thoại VoIP (telephony), Đa phương tiện media streaming (audio, video),
Trang 20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
15
Diễn đàn thảo luận (Discussion forums)… Mạng ngang hàng cũng có thể được phân loại theo mức độ tập trung của mạng (đối với P2P overlay networks) Hiện nay các hệ thống mạng ngang hàng có thể được phân loại thành một số nhóm sau:
Bảng 1.2 Các mô hình P2P
a) Hệ thống mạng ngang hàng tập trung (Centralized)
Hệ thống mạng ngang hàng tập trung có đặc điểm là vẫn còn dựa trên một máy chủ tìm kiếm trung tâm (centralized Peer-to-Peer networks) Cấu trúc Overlay của mạng ngang hàng tập trung có thể được môtả như một mạng hình sao
Hình 1.5 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster
File download
Query
Trang 21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
16
Nguyên tắc hoạt động:
- Mỗi client lưu trữ files định chia sẻ với các node khác trong mạng
- Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address, connection
bandwidth ….)
- Một bảng liệt kê danh sách các files mà mỗi người dùng định chia sẻ (tên file,
dung lượng, thời gian tạo file …….)
- Mọi máy tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các
yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau mà không cần quan máy chủ trung tâm
- Cần quản trị (central server)
Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệ thứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu tố về luật pháp Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX
Với Napster, việc tìm kiếm file bị thất bại khi bảng tìm kiếm trên máy chủ vì lý do nào đó không thực hiện được Chỉ có các file truy vấn và việc lưu trữ được phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai Khả năng tính toán và lưu trữ của máy
Trang 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
17
chủ tìm kiếm phải tương xứng với số nút mạng trong hệ thống, do đó khả năng mở rộng mạng bị hạn chế rất nhiều
b) Các mạng ngang hàng thuần túy (Pure)
Mạng ngang hàng thuần túy là một dạng khác của thế hệ thứ nhất trong hệ thống các mạng ngang hàng Không còn máy chủ tìm kiếm tập trung như trong mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung Tuy nhiên vấn đề tìm kiếm trong mạng ngang hàng thuần túy lại sử dụng cơ chế Flooding, yêu cầu tìm kiếm được gửi cho tất cả các node mạng là láng giềng với nó, điều này làm tăng đáng kể lưu lượng trong mạng Đây là một yếu điểm của các mạng ngang hàng thuần túy Các phần mềm tiêu biểu cho mạng ngang hàng dạng này là Gnutella 4.0, FreeNet
Ưu điểm:
- Dễ xây dựng
- Đảm bảo tính phân tán hoàn toàn cho các node tham gia mạng, các node tham
giavà rời khỏi mạng một cách tùy ý mà không ảnh hưởng đến cấu trúc của mạng
Nhược điểm:
- Tốn băng thông
- Phức tạp trong tìm kiếm
- Các node có khả năng khác nhau (CPU power, bandwidth, storage) đều có thể
phải chịu tải (load) như nhau
c) Các mạng ngang hàng lai (Hybrid)
Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình mang ngang hàng mới được phát triển với tên gọi là mạng ngang hàng lai Đây được gọi là mạng ngang hàng thế hệ 2 Phần mềm tiêu biểu cho mạng ngang hàng kiểu này là
Trang 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
18
Gnutella 0.6 và JXTA (Juxtapose) JXTA được bắt đầu phát triển bởi SUN từ 2001 (Đây là giao thức P2P mã nguồn mở) JXTA được sử dụng cho PCs, mainframes, cell phones, PDAs – để giao tiếp theo cách không tập trung Skype cũng được xây dựng dựa trên cấu trúc này
Hình 1.6 Mô hình mạng ngang hàng lai (Hybrid)
Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc định nghĩa các Super Peers Các SupperPeer tạo thành một mạng không cấu trúc, có sự khác nhau giữa SupperPeers và ClientPeers trong mạng, mỗi SupperPeer có nhiều kết nối đến các ClientPeers Mỗi SupperPeer chứa một danh sách các file được cung cấp bởi các ClientPeer và địa chỉ IP của chúng vì vậy nó có thể trả lời ngay lập tức các yêu cầu truy vấn từ các ClientPeer gửi tới
Ưu điểm:
- Hạn chế việc Flooding các query, làm giảm lưu lượng trong mạng, nhưng vẫn
tránh được hiện tượng nút cổ chai (do có nhiều SuperPeers)
- Khắc phục được nhược điểm về sự khác nhau về CPU power, bandwidth …, ở
mạng ngang hàng thuần túy, các SuperPeer sẽ chịu tải chính, các node khác chịu tải nhẹ
d) Mạng ngang hàng có cấu trúc (Structured)
Trang 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
19
Trong các mô hình mạng ngang hàng có cấu trúc, Topo mạng được kiểm soát chặt chẽ, Files (hoặc con trỏ trỏ tới files) được đặt ở một vị trí xác định Điều quan trọng đối với những hệ thống có cấu trúc là cung cấp sự liên kết (mapping) giữa nội dung (ví dụ: id của file) và vị trí node (ví dụ: địa chỉ node) Việc này thường dựa trên một cấu trúc dữ liệu bảng băm phân tán
Dựa trên cấu trúc bảng băm phân tán đã có nhiều nghiên cứu và đề xuất ra các mô hình mạng ngang hàng có cấu trúc, điển hình là cấu trúc dạng vòng (như trong hình
vẽ mô tả): Chord, Pastry…, và cấu trúc không gian đa chiều: CAN, Viceroy
Hình 1.7 Chord Protocol
Ưu điểm: Khả năng mở rộng hệ thống mạng trong mô hình không cấu trúc thường bị hạn chế bởi các kỳ thuật trong việc xây dựng mạng chẳng hạn như: Mô hình tập trung dẫn tới việc thắt nút cổ chai khi mở rộng, kỹ thuật Flooding dẫn tới việc tăng
lưu lượng mạng khi mở rộng mạng T rong khi đó khả năng mở rộng với mô hình mạng có cấu trúc được nâng cao rõ rệt
Nhược điểm:
- Việc quản lí cấu trúc của topo mạng gặp khó khăn, đặc biệt trong trong trường hợp
tỷ lệ vào/ra mạng của các nodes cao
Trang 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
băng thông (bandwidth), vấn đề lưu trữ (storage), các chu trình xử lí (processor cycles)
a) Giao tiếp (communication)
- Đóng một vai trò quan trọng trong các ứng dụng mạng ngang hàng
- Là nhân tố quyết định trong các mạng ngang hàng vì nó cung cấp thông tin về các
Peers và các nguồn tài nguyên nào là sẵn sàng trên mạng
- Tạo ra khả năng cho các Peer kết nối trực tiếp với các Peer khác và yêu cầu
các nguồn tài nguyên
- Một ví dụ điển hình về ứng dụng mạng ngang hàng trong giao tiếp là hệ thống
chuyển tin nhắn trực tiếp (instant messaging)
Instant messaging:
- Thông thường, server trung tâm lưu trữ thông tin và danh sách người dùng đăng kí
- Khi có sự giao tiếp giữa các node, việc tìm kiếm người dùng (node khác) được
thực hiện trên server
- Trong trường hợp người dùng không online, hệ thống sẽ phải lưu trữ các tin
nhắn cho đến khi người dùng này online
- Các dịch vụ điển hình: Napster, ICQ, Jabber
b) Chia sẻ Files (File sharing)
- Có thể nói ứng dụng được sử dụng nhiều nhất của mạng ngang hàng đó là chia sẻ
Trang 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
21
file
- Theo ước tính khoảng 70% lưu lượng mạng trên Internet được cho là để trao
đổi các file đặc biệt là các file âm nhạc (hơn 1 tỷ các file âm nhạc được download mỗi tuần)
- Đặc điểm của vấn đề chia sẻ file là các Peer có các file được download với vai trò
là một Client làm cho chúng luôn sẵn sàng với các Peer khác trong vai trò của một Server
- Vấn đề chủ yếu cho mạng ngang hàng nói chung và cho vấn đề chia sẻ file nó
riêng là vấn đề tìm kiếm Trong ngữ cảnh của hệ thống chia sẻ file, có ba mô hình khác
nhau được phát triển: mô hình flooded request, mô hình thư mục trung tâm và mô hình hướng tài liệu Các mô hình này được minh hoạ qua các ứng dụng thực của mạng ngang
hàng sau: Gnutella, Naspter và FreeNet:
+) Trong hệ thống Gnutella, không có sự tập trung hoá, các file được lưu trữ trên các Peer của hệ thống, khi có yêu cầu tìm kiếm một file máy tính sẽ gửi yêu cầu này tới tất cả các peer là láng giềng của nó cho tới khi tìm thấy máy chứa file cần tìm Tiếp theo là quá trình trao đổi file trực tiếp giữa hai máy tính trong mạng
+) Trong hệ thống Naspter, có sự tập trung hoá Khi một máy tham gia vào mạng, danh mục các file sẽ được đăng ký và lưu trữ trên Server trung tâm, khi có yêu cầu tìm kiếm, máy tính sẽ hỏi Server trung tâm về vị trí của file Sau đó việc trao đổi file được thực hiện giữa hai máy tính với nhau
+) Trong hệ thống Freenet, trong file không được lưu trữ trên đĩa cứng của các peer cung cấp chúng mà được lưu trữ ở các vị trí khác trong mạng Mục đích của việc phát triển mạng Freenet là làm cho thông tin được lưu trữ và truy cập mà không cần biết định danh Với các tổ chức như vậy, chủ sở hữu của một node mạng cũng không biết
được tài liệu gì được lưu trữ trên đĩa cứng của máy anh ta Vì lý do này mà các Peer và các file được cung cấp các số định danh khác nhau Khi một file được tạo, nó được truyền qua các peer láng riêng tới các peer có số định danh gần với số định danh của
Trang 27Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
22
file nhất và được lưu trữ ở đó
c) Băng thông (Bandwidth)
Do yêu cầu về khả năng truyền dẫn của các mạng ngày càng đòi hỏi cao đặc biệt
là khi một số lượng lớn dữ liệu đa phương tiện tăng nhanh, hiệu quả của việc sử dụng băng thông ngày càng trở nên quan trọng Hiện nay, hướng tiếp cận tập trung trong đó các file được lưu trữ trên một Server và được truyền từ đó tới máy khách yêu cầu đang được sử dụng chủ yếu Trong trường hợp này khi số lượng các yêu cầu tăng nhanh
sẽ dẫn tới tình trạng nút cổ chai Với hướng tiếp cận theo mạng ngang hàng vấn đề cân bằng tải sẽ đạt được sự tối ưu nhất vì nó tận dùng tối đa được các hướng truyền dẫn
trong hệ thống mạng
Tăng cường khả năng cân bằng tải trong mạng: Khác với kiến trúc
Client/Server các mạng ngang hàng lai có thể nhận được sự cân bằng tải tốt hơn Với
mô hình Client/Server thì cả yêu cầu truy vấn thông tin và việc truyền dữ liệu đều được thực hiện giữa máy chủ và máy khách, sẽ làm mất sự cân bằng tải khi có nhiều yêu cầu kết nối tới máy chủ Trong mô hình mạng ngang hàng, chỉ có yêu cầu truy vấn được thực hiện giữa máy tính tham gia mạng với máy chủ, còn vấn đề truyền file được thực hiện giữa hai máy tính tham gia mạng với nhau, điều này dẫn đến việc phân bố tải đều trên hệ thống mạng
Chia sẻ việc sử dụng băng thông: Mạng ngang hàng có thể làm tăng khả năng
download và truyền các file do cơ chế tận dụng đường truyền tới các peer tham gia mạng Một file dữ liệu lớn được chia thành các khối dữ liệu nhỏ độc lập nhau, các khối
dữ liệu này được chuyển đồng thời đến các peer khác nhau và cuối cùng đến peer yêu cầu chúng Tại peer yêu cầu các khối dữ liệu được ghép lại thành file dữ liệu ban đâu Các phần mềm điền hình của việc chia sẻ băng thông đó là các phần mềm download file, chẳng hạn như: BitTorrent, FlashGet…
d) Không gian lưu trữ (Storage Space)
Trang 28Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
23
Hiện nay với các hệ thống cần có yêu cầu về mặt lưu trữ dữ liệu cao người ta thường lựa chọn các giải pháp lưu trữ như:
+ DAS (Direct Attached Storage): Đ â y là những gì mà hầu hết mọi người thường
đề cập đến khi nghĩ về các thiết bị lưu trữ Kiểu kiến trúc này gồm có những thành phần như các ổ cứng bên trong, ổ cứng ngoài, USB Về cơ bản DAS ám chỉ bất cứ thứ gì được gắn trực tiếp với một máy tính (hoặc máy chủ) chứ không phải một thành phần mạng nào
đó (giống như switch) giữa chúng
Hình 1.8 Ba cấu hình cho các giải pháp Direct Attached Storage
Một thiết bị DAS có thể cho phép nhiều người dùng truy cập dữ liệu một cách đồng thời nếu thiết bị có các cổng kết nối và có khả năng hỗ trợ đa người dùng đồng thời Các cấu hình DAS cũng được sử dụng trong các mạng lớn khi chúng được gắn với máy chủ cho phép nhiều người dùng truy cập các thiết bị DAS Nhưng DAS sẽ không cho phép có
sự hiện diện của một thiết bị mang giữa thiết bị lưu trữ và máy tính
Network Attached Storage (NAS): Các thiết bị NAS cung cấp cho việc đặt một cách tập trung các thiết bị lưu trữ, mặc dù không cần định vị với các máy tính Tính năng này thuận tiện cho nhiều người dùng gia đình muốn đặt các thiết bị lưu trữ của họ ở một
vị trí nào đó và sử dụng chung cho tất cả các máy tính hay laptop trong nhà Tính năng này cũng lôi cuốn các doanh nghiệp nhỏ, nơi không thích hợp cho việc đầu tư các thiết bị lưu trữ lớn Cấu hình DAS cũng có thể cung cấp tính năng này, tuy nhiên không dễ dàng thực thi trong các tình huống nhỏ
Trang 29Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
24
Hình 1.9 Sơ đồ một hệ thống NAS
Thiết bị NAS về cơ bản là một máy tính đã được lược bớt Mặc dù không có màn hình, bàn phím, nhưng chúng có hệ điều hành có thể cấu hình được Việc kết nối đến thiết bị thông qua trình duyệt web từ một máy tính trong mạng Các hệ điều hành NAS là các phiên bản hệ điều hành UNIX đơn giản, như FreeNAS FreeNAS hỗ trợ nhiều định dạng file: CIFS, FTP, NFS, TFTP, AFP, RSYNC và iSCSI
Các thiết bị NAS tự quản lý các chức năng hệ thống file nên chúng không cần đến máy chủ để thực hiện chức năng này Các mạng sử dụng các thiết bị DAS được gắn với máy chủ sẽ yêu cầu máy chủ quản lý các chức năng hệ thống file Đây là một điểm mạnh của NAS so với DAS NAS sẽ giải phóng máy chủ để thể thực hiện một số nhiệm vụ xử
lý quan trọng khác vì thiết bị NAS được kết nối trực tiếp với mạng và quản lý tất cả các hoạt động của file Điều này cũng có nghĩa rằng thiết bị NAS sẽ đơn giản hơn trong việc cấu hình và bảo trì cho các môi trường thực thi nhỏ vì chúng không yêu cầu máy chủ chuyên dụng
Các hệ thống NAS thường sử dụng các cấu hình RAID để cung cấp cho người dùng một giải pháp lưu trữ mạnh mẽ Trong trường hợp này, các thiết bị NAS được sử dụng giống như các thiết bị DAS (để backup dữ liệu) Sự khác biệt lớn nhất và quan trọng nhất giữa các hệ thống NAS và DAS là các hệ thống NAS phải gồm có tối thiểu
một thiết bị mạng giữa người dùng và thiết bị NAS
Storage Area Networks (SAN): Sự khác biệt lớn nhất giữa hệ thống NAS và hệ thống SAN là thiết bị NAS quản lý các chức năng hệ thống file của hệ điều hành còn hệ thống SAN chỉ cung cấp các dịch vụ lưu trữ theo khối và để các chức năng hệ thống file
Trang 30Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
25
được thực hiện bởi máy tính khách Trong thực tế, các mạng lớn thường sử dụng SAN với NAS để đáp ứng các nhu cầu cần thiết cho người dùng
Hình 1.10 Sơ đồ một Storage Area Network
e) Các chu trình xử lý (Processor Cycles)
Có thể nhận thấy rằng trong các ứng dụng đòi hỏi cần phải có sức mạnh tính toán người ta thường tìm cách xây dựng các máy tính mạnh, đắt tiền chứ chưa chú trọng vào việc tận dụng khả năng tính toán của các máy tính được nối mạng Ngày nay do những yêu cầu đòi hỏi tính toán hiệu năng cao như các thao tác tính toán trong tin sinh học, trong tài chính, trong đo lường mà nhiều nghiên cứu ứng dụng mạng ngang hàng vào xử lý tính toán đã được đưa ra Bằng việc sử dụng các ứng dụng mạng ngang hàng
để bó cụm các chu trình xử lý có thể nhận được khả năng tính toán ngang bằng với một siêu máy tính đắt tiền Trong một mạng mỗi máy tính là trong suốt với các máy tính khác
và tất cả các node được kết nối mạng sẽ tạo thành một máy tính logic
1.1.5 Các phương pháp đánh giá mạng ngang hàng
Cộng đồng nghiên cứu peer to peer nói chung sử dụng ba phương pháp để đánh giá, kiểm nghiệm các kết quả nghiên cứu về mô hình mạng ngang hàng đó là phương pháp phân tích, phương pháp thực nghiệm và phương pháp mô phỏng
a) Phương pháp phân tích
Trang 31Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
26
Người ta tổ chức phân bố các máy trong mạng theo một quy luật toán học nhất định Căn cứ vào các phép biến đổi toán học, các định lý, tính chất để phân tích mạng Phương pháp này thu được độ chính xác rất cao khi đánh giá các tham số của mạng Tuy vậy nó chỉ thích hợp với mô hình có topo mạng đơn giản, tuân theo quy luật sắp xếp Nói chung trong thực tế thì mạng rất phức tạp, các điểm trong mạng sắp xếp một cách ngẫu nhiên và mạng thì thường rất lớn Lúc đó phương pháp phân tích không thể đưa ra kết quả chính xác được Khi dùng phương pháp phân tích thì nhiều tham số phức tạp của mạng bị bỏ qua Đây là phương pháp được sử dung trong nghiên cứu đánh giá những tham số đơn giản
b) Phương pháp thử nghiệm
Sử dụng phương pháp phân tích tỏ ra khá phức tạp, một giải pháp được đặt ra là chạy thử nghiệm với hệ thống thực Nhưng hệ thống P2P có thể gồm có một số lớn các node bất kỳ sự thử nghiệm nào trên thậm chí một quy mô tương đối nhỏ khoảng vài nghìn node là không thực tế thậm chí không thực hiện được Khi đưa những thay đổi vào thử nghiệm như thay đổi giao thức đang chạy trên các node và tôpô của mạng thì sẽ rất khó
và thời gian thử nghiệm chắc chắn sẽ lớn Vì vậy phương pháp này cũng chỉ được thực hiện tại các cơ quan, tổ chức khi cần những kết quả đánh giá một mạng mới Ví dụ như
tổ chức PlanetLab đã cung cấp 753 node tại 363 site để kiểm tra mạng Các mạng P2P thường có số lượng các node tham gia rất lớn nên phương pháp thử nghiệm gặp rất nhiều
khó khăn và ít được dùng
c) Phương pháp mô phỏng
Đây là phương pháp có thể giải quyết những khó khăn của các phương pháp trên và trong thực tế hay sử dụng Người ta xây dựng các phần mềm để mô phỏng mạng, với các tham số đưa vào phần mềm sẽ xử lý đưa ra các kết quả Căn cứ vào các kết quả đó ta có thể đánh giá chất lượng của một mạng P2P, độ tối ưu của một thuật toán trong mạng Tuy vậy phương pháp mô phỏng vẫn còn tồn tại những hạn chế, do đó nên kết hợp với các phương pháp trên để đánh giá mạng có hiệu quả Hiện nay có nhiều phần mềm mô
Trang 32Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
27
phỏng để đánh giá mạng P2P Mỗi phần mềm mô phỏng có những đặc điểm riêng và phương thức mô phỏng riêng, tuỳ vào từng trường hợp và mục đích cụ thể mà ta sử dụng các phần mềm trên để mô phỏng
Bài luận này sẽ sử dụng phương pháp mô phỏng để nghiên cứu và đánh giá hiệu năng của DHT Chord trong mạng ngang hàng
1.1.6 Các vấn đề đối với mạng mạng ngang hàng hiện nay
Các hệ thống P2P có nhiều ưu điểm so với các hệ thống client-server truyền thống như tính khả mở, khả năng chịu lỗi, hiệu năng Tuy nhiên các hệ thống P2P đang phải đối mặt với một số vấn đề:
Bảo mật (security): các cài đặt phân tán phát sinh thêm một số vấn đề bảo
mật so với kiến trúc client-server truyền thống Bởi vì trong hệ thống P2P các peer là động và không tin tưởng lẫn nhau nên để đạt được mức bảo mật cao trong các hệ thống P2P sẽ khó hơn trong các hệ thống client-server Các cơ chế bảo mật truyền thống để bảo
vệ dữ liệu và hệ thống khỏi tấn công, xâm nhập như firewall không thể bảo vệ thống P2P bởi vì các hệ thống này phân tán và các cơ chế bảo mật có thể ngăn chặn, hạn chế quá trình truyền thông P2P Do đó cần đưa ra các khái niệm bảo mật mới cho phép tương tác và xử lý phân tán trong các hệ thống P2P
Tính tin cậy (reliability): một hệ thống tin cậy là một hệ thống có khả năng hồi
phục sau khi xuất hiện lỗi Các cơ chế đảm bảo độ tin cậy trong mạng P2P bao gồm nhân bản dữ liệu, phát hiện và khôi phục node bị lỗi, xây dựng nhiều cơ chế đảm bảo thông tin định vị, tránh “single point of failure” và đảm bảo nhiều đường đi tới dữ liệu
Tính linh hoạt (flexibility): một trong những tính chất quan trọng nhất trong các
hệ thống P2P là các peer tự chủ, chúng có thể join/leave bất kỳ lúc nào Các hệ thống P2P gần đây có quy mô lớn, điều khiển phân tán và hoạt động trong môi trường động
Để giải quyết vấn đề quy mô và tính động của các hệ thống P2P, khi xây dựng các hệ thống P2P cần chú ý đến khả năng điều chỉnh và tự tổ chức
Cân bằng tải (load balancing): vấn đề phân tán dữ liệu và tính toán rất quan
Trang 33Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
28
trọng đối với hiệu quả hoạt động của các mạng P2P Một trong những giải pháp cho vấn đề phân tán này là distributed hash table (DHT) Trong cách tiếp cận này, cân bằng tải được xem xét trên hai khía cạnh: cân bằng không gian địa chỉ tức là cân bằng phân phối của không gian key address trên các node và cân bằng item trong trường hợp phân phối của các item trong không gian địa chỉ không thể là ngẫu nhiên Cân bằng tải giữa các node tính toán trong hệ thống P2P cũng có thể được cài đặt sử dụng mô hình tự tổ chức dựa trên agent
1.2 Bảng băm
1.2.1 Bảng băm (Hash table)
Một hash table là một cấu trúc dữ liệu ánh xạ giữa key và value Tức là tương ứng với một key, hash table sẽ trả về một value Để thực hiện việc ánh xạ, hash table sử dụng hash function tính toán vị trí lưu value dựa trên key Hash function phải đảm bảo: tránh xung đột và dễ dàng thực hiện Tránh xung đột nghĩa là ánh xạ giữa không gian key và không gian địa chỉ phải đều và ngẫu nhiên đến mức có thể
1.2.2 Bảng băm phân tán - Distributed Hash Table (DHTs)
Distributed Hash Table (DHTs) là thuật toán được sử dụng trong các ứng dụng P2P, DHTs cho phép quản lý mạng P2P theo đúng nghĩa với độ tin cậy cao, khả mở, hiệu quả và có khả năng chịu lỗi
DHTs là một hash table được cài đặt như một hệ thống phân tán Cũng như một hash table thông thường, DHTs cung cấp ánh xạ từ key đến value Nhưng không giống như hash table thông thường, các value trong một DHTs được lưu trên các node khác nhau trong mạng chứ không phải lưu trong một cấu trúc dữ liệu cục bộ Thông qua một key, value tương ứng được lưu tại một node phù hợp trên mạng hoặc được lấy về từ node tương ứng trên mạng
Trong một DHTs, key được tính ra từ value Tất cả các key đều nằm trên cùng một không gian địa chỉ Các ứng dụng file sharing thường sử dụng không gian địa chỉ
Trang 34Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
29
160 bit Để xác định node nào lưu value nào, mỗi node phải có một ID trong không gian địa chỉ giống như không gian địa chỉ của key Các DHTs đưa ra khái niệm khoảng cách giữa hai ID (một key có thể xem như ID của value) Khi đó value được lưu trên node có ID gần với ID của value nhất
Để lưu một value trên mạng, một node gửi thông điệp yêu cầu lưu dữ liệu tới một contact phù hợp được chọn ra từ bảng routing table, trong bảng routing table, contact này có ID gần với ID của dữ liệu cần lưu nhất Quá trình cứ tiếp tục như vậy, thông điệp được chuyển tiếp trên mạng cho đến khi nó gặp node có ID gần với ID của
dữ liệu nhất và value được lưu trên node này
Để tìm một value, thủ tục cũng tương tự, node cần tìm dữ liệu sẽ gửi đi thông điệp tìm kiếm dữ liệu Sau quá trình chuyển tiếp thông điệp giống như quá trình chuyển tiếp thông điệp lưu dữ liệu, node lưu dữ liệu sẽ được tìm ra và node này sẽ trả
dữ liệu cho node tìm kiếm
Distributed Hash Tables có các ưu điểm khác biệt so với dịch vụ hướng Client - Server truyền thống:
- DHTs cho phép hoạt động phân tán, không cần duy trì một server trung tâm để
điều khiển hoạt động của mạng P2P Cũng vì vậy, các ứng dụng P2P sử dụng DHTs
là các ứng dụng P2P thuần túy
- Hệ thống có tính khả mở, nghĩa là hệ thống vẫn hoạt động tốt ngay cả với số
lượng node và lưu lượng trên mạng lớn
- Tải được cân bằng giữa các peer trong mạng
- Hệ thống dựa trên giả định rằng mạng không tĩnh và các thay đổi xuất hiện
thường xuyên với các node join vào mạng và leave khỏi mạng (còn gọi là churn)
- Việc định tuyến và lấy dữ liệu nhanh và có thể hoàn thành trong thời gian tỷ lệ
loga
- Hệ thống mạnh mẽ, nghĩa là nó có thể đứng vững ngay cả khi bị tấn công trên
diện rộng DHTs cung cấp dịch vụ lưu trữ, tìm kiếm dữ liệu thông qua hai hàm insert và
Trang 35Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
30
lookup
Hình 1.11 Distributed Hash Table
Trang 36Luận văn thạc sỹ KHMT Chương 2 Các cơ chế bảng băm phân tán trong mạng ngang hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
31
Trong phần này luận văn đi sâu vào tìm hiểu mốt số DHTs chính như Chord, Kelips, Tapestry, Kademlia và phân tích các DHT này dựa trên một số khía cạnh sau:
Sơ đồ mạng overla (Overlay Graph): đây là tiêu chuẩn chính để phân biệt các hệ
thống với nhau Đối với mỗi overlay graph, chúng ta sẽ xem xét graph và bảng định tuyến của mỗi node trong graph
Anh xạ giữa item và node (Mapping Items Onto Nodes): đối với mỗi overlay
graph, vấ n đề cầ n quan tâm đến l à mối quan hệ giữa ID của node và ID của các item lưu trên node đó, tức là một item cụ thể sẽ được lưu trên node nào
Tiến trình tìm kiếm (Lookup process): tiến trình tìm kiếm trên một mạng diễn ra
như thế nào và hiệu năng của quá trình tìm kiếm liên quan chặt chẽ đến loại overlay graph của mạng đó
Gia nhập, rời khỏi mạng và duy trì (Joins, Leaves và Maintenance): xem xét một
node mới được thêm vào graph như thế nào và một node rời graph như thế nào Do các node trong mạng thường xuyên join, leave nên cần có một số tiến trình maintenance để
xử lý các thay đổi trong mạng, chúng ta quan tâm đến các tiến trình này diễn ra như thế nào và chi phí thực hiện các tiến trình này
Nhân bản và chịu lỗi (Replication và fault tolerance): bên cạnh các node rời
khỏi mạng có báo trước, một số node có thể đột ngột rời khỏi mạng do một số nguyên nhân như mất điện, đường truyền hỏng, …, trường hợp này khó xử lý hơn trường hợp các node thông báo đến các node khác trước khi rời khỏi mạng Replication là một giải pháp cho trường hợp các node rời khỏi mạng mà không báo trước
Ứng dụng và dịch vụ bên trên (Upper services và applications): một số ứng dụng
và dịch vụ đã được phát triển sử dụng DHTs
Cài đặt (Implementation): liệt kê một số cài đặt của các DHTs
Trang 37Luận văn thạc sỹ KHMT Chương 2 Các cơ chế bảng băm phân tán trong mạng ngang hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
32
2.1 Kademlia
Overlay graph
Kademlia graph tổ chức các ID trong không gian vòng tròn trong đó ID của các node
là lá của cây nhị phân, vị trí của các node được xác định bằng prefix của ID Các ID trong Kademlia được biểu diễn theo cơ sở nhị phân Mỗi node chia cây nhị phân thành các cây nhị phân con liên tiếp mà không chứa ID của node và lưu ít nhất một contact trong mỗi cây con này Ví dụ, một node với ID là 3 có biểu diễn nhị phân 0011 trong không gian ID N=16 Do prefix với độ dài 1 là 0 nên nó cần biết một node với chữ số đầu tiên là 1 Tương tự như vậy, do prefix với độ dài 2 là 00 nên node cần biết một node với prefix là 01 Prefix với độ dài 3 là 001, node cần biết một node khác với prefix 000 Cuối cùng, do prefix với độ dài bằng 4 là 0011 nên nó cần biết node có prefix là 0010 Quy tắc này được minh họa trong Hình 2.5 dưới đây:
Hình 2.1 Con trỏ của node 3 (0011) trong Kademlia
Kademlia không lưu một danh sách các node gần với nó trong không gian ID như successor list của Chord Tuy nhiên với mỗi cây con trong không gian ID, node lưu tới
k contact thay vì một contact nếu có thể và gọi một nhóm không nhiều hơn k contact trong một cây con là subtree
Trang 38Luận văn thạc sỹ KHMT Chương 2 Các cơ chế bảng băm phân tán trong mạng ngang hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
33
Mapping items onto nodes
Kademlia định nghĩa khái niệm khoảng cách giữa hai ID là kết quả XOR của hai ID Một item được lưu trên node mà khoảng cách giữa hai ID là nhỏ nhất
Khi một node muốn chèn một item mới nào đó, nó sẽ lưu item tại k node gần nhất với ID Do sử dụng so khớp prefix nên một lookup sẽ được thực hiện trong O(log(N)) chặng
Joins, leave and maintenance
Một node tìm thấy node gần nó nhất thông qua bất kỳ contact ban đầu nào và khởi tạo bảng định tuyến của nó bằng cách yêu cầu node đó tìm kiếm các node trong các cây con khác nhau
Nếu một k-bucket được bổ xung quá nhiều node từ một cây con nào đó, quy tắc thay thế least-recently-used sẽ được áp dụng
Tuy nhiên Kademlia sử dụng một thống kê từ các nghiên cứu về peer-to-peer cho rằng một node nếu đã kết nối trong một khoảng thời gian dài nhiều khả năng sẽ tiếp tục ở lại mạng trong một thời gian dài nữa Do đó, Kademlia có thể bỏ qua thông tin
về các node mới nếu nó đã biết nhiều node ổn định trong cây con đó
Việc maintenance bảng định tuyến sau khi node join/leave được thực hiện nhờ sử dụng lưu lượng lookup, kỹ thuật này khác với kỹ thuật stabilization của Chord XOR
Trang 39Luận văn thạc sỹ KHMT Chương 2 Các cơ chế bảng băm phân tán trong mạng ngang hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
34
metric dẫn đến mọi node nhận được truy vấn từ node chứa trong bảng định tuyến của nó
Do đó, nhận được một thông điệp từ một node nào đó trong cây con chính là một cập nhật k-bucket của cây con đó Cách tiếp cận này rõ ràng là tối thiểu hóa chi phí bảo trì
Một nhiệm vụ bảo trì khác là dựa vào việc nhận được nhiều truy vấn từ một cây con, Kademlia cập nhật latency của các node trong một k-bucket cụ thể Việc này cải thiện
sự lựa chọn node cho quá trình tìm kiếm và có thể nói rằng Kademlia cũng chú ý đến độ trễ và tính vị trí của các node
Replication and Fault Tolerance
Khả năng chịu lỗi của Kademlia phụ thuộc chủ yếu vào liên kết bền vững trong bucket bởi vì Kademlia lưu k contact cho mỗi cây con, điều này giúp cho khả năng graph bị đứt liên kết thấp
k-Kademlia lưu k phiên bản của một item trên k node gần id của item nhất, các node này được republish định kỳ Chính sách cho việc republish này là bất kỳ node nào thấy nó gần với item ID hơn các node khác mà nó biết sẽ báo cho k-1 node còn lại biết
Applications and Implementation
Kademlia được chấp nhận rộng rãi thông qua hai ứng dụng chia sẻ file là Overnet và Emule
2.2 Tapestry
Overlay graph
Tapestry cũng tổ chức các ID trong không gian vòng tròn N Các ID được biểu diễn theo base β