Thứ hai, luận văn đi sâu vào một kiến trúc, kỹ thuật để áp dụng các thuật toán lưu trữ và tìm kiếm dữ liệu trên mạng ngang hàng đó là Kỹ thuật bảng băm phân tán DHT.. Đây là đề tài khoa
Trang 1BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Để 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 toàn văn các công trình hoặc thiết kế tốt nghiệp của người khác
Hà Nội, ngày 25 tháng 02 năm 2012
Lê Văn Hòa
Trang 2LỜI CẢM ƠN
Trước hết tôi vô cùng biết ơn sâu sắc đến Thầy giáo hướng dẫn TS Nguyễn Khanh Văn - người đã trực tiếp dành nhiều thời gian tận tình hướng dẫn cho tôi những định hướng khoa học sâu sắc giúp tôi hoàn thành bản luận văn này
Tôi xin chân thành cảm ơn Ban lãnh đạo Công ty viễn thông viettel, nơi tôi đang công tác đã tạo nhiều điều kiện động viên khích lệ để tôi có thể hoàn thành bản luận văn này
Sau cùng tôi xin bày tỏ lòng biết ơn đến người thân cùng bạn bè đồng nghiệp, những người luôn cổ vũ động viên tôi hoàn thiện bản luận văn này
Hà Nội, ngày 25 tháng 02 năm 2012
Lê Văn Hòa
Trang 3MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7
MỞ ĐẦU 9
1 Lý do chọn đề tài 9
2 Lịch sử nghiên cứu 10
3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu 12
4 Tóm tắt các luận điểm cơ bản và đóng góp mới của tác giả 12
5 Phương pháp nghiên cứu 14
CHƯƠNG I: TỔNG QUAN 15
1.1 Lý thuyết chung về mạng P2P 15
1.1.1 Mạng ngang hàng P2P là gì? 15
1.1.2 Phân loại các mô hình mạng ngang hàng P2P 17
1.1.2.1 Mạng ngang hàng P2P không cấu trúc 18
1.1.2.2 Mạng ngang hàng có cấu trúc 22
1.1.3 Phân loại các lĩnh vực ứng dụng trên mạng ngang hàng 23
1.1.3.1 Giao tiếp 23
1.1.3.2 Chia sẻ file 24
1.1.3.3 Băng thông 25
1.1.3.4 Không gian lưu trữ 26
1.1.3.5 Các chu trình xử lý 27
1.1.4 Phần mềm ứng dụng mạng ngang hàng P2P 27
Trang 41.2.1 Bảng băm 28
1.2.2 Bảng băm phân tán DHT là gì? 28
1.2.3 Một số đặc điểm chính của DHT 33
1.2.3.1 Không gian địa chỉ 33
1.2.3.2 Quản lý dữ liệu 34
1.2.3.3 Cơ chế quản lý 34
1.2.4 Các giao thức và cài đặt DHT 35
1.2.4.1 Chord 36
1.2.4.2 Tapestry 42
1.3 Nền tảng ứng dụng p2p trong môi trường di động 46
1.3.1 Kiến trúc Mobile P2P 47
1.3.2 Đánh giá khả năng các thiết bị di động 50
1.3.3 Các giao thức P2P trên di động 52
CHƯƠNG II: BAMBOODHT VÀ OPENDHT 54
2.1 Bamboo DHT 54
2.1.1 Giới thiệu chung về Bamboo 54
2.1.2 Quá trình Lookup 55
2.1.4 Cơ chế quản lý 58
2.1.5 Ưu điểm của BambooDHT 61
2.2 OpenDHT 62
2.2.1 Tổng quan về Thiết kế 65
2.2.2 Các giao diện 67
2.2.3 Phân bổ lưu trữ 74
2.2.4 Đánh giá 75
CHƯƠNG III: XÂY DỰNG ỨNG DỤNG 81
3.1 Ứng dụng chia sẻ file 81
3.1.1 Chức năng của chương trình 81
3.1.2 Thiết kế UML 82
3.1.3 Thiết kế hệ thống 84
Trang 53.1.4 Cài đặt chương trình 86
3.2 Ứng dụng chat conference 88
3.2.1 Thiết kế 89
3.2.2 Cài đặt chương trình 91
KẾT LUẬN 93
TÀI LIỆU THAM KHẢO 95
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Peer-to-peer Mạng ngang hàng
Node Một thiết bị nối mạng (một peer)
Overlay Mạng được xây dựng trên các mạng khác
Distributed hash table Bảng băm phân tán
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 CÁC BẢNG
Bảng 1: Giao diện put/get, H(x) là hàm SHA-1 của x 70 Bảng 2: Giao diện lookup được hỗ trợ bởi thư viện ReDiR 72 Bảng 3: Thời gian đứng trong hàng đợi khi thực hiện put của các client 77
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Mô hình Client/Server và mô hình P2P 16
Hình 1.2: Mô hình overlay network 17
Hình 1.3: Sơ đồ phân loại các mô hình mạng ngang hàng P2P 18
Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) 20
Hình 1.5: Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) 21
Hình 1.6: Mạng ngang hàng lai 22
Hình 1.7: Một ví dụ bảng băm 29
Hình 1.8: Ví dụ bảng băm phân tán 30
Hình 1.9: Ví dụ về một DHT để ánh xạ filenames các URL, mà đại diện hiện tại vị trí của files 31
Hình 1.10: Kiến trúc của một ứng dụng trên DHT 32
Hình 1.11: Ví dụ không gian địa chỉ của DHT 33
Hình 1.12: Lưu trữ dữ liệu thông qua địa chỉ IP 34
Hình 1.13: Một không gian định danh Chord 6-bit Các dòng chấm chỉ ra các key của các node Các dòng đen diễn tả các finger của node N8 37
Hình 1.14: Quá trình một node join vào mạng 39
Hình 1.15 (a): Bảng finger và vị trí của key sau khi node 6 join 40
Hình 1.15 (b): Bảng finger và vị trí của key sau khi node 3 leave 41
Hình 1.16: Minh họa cách chọn bảng định tuyến của một node Tapestry 43
Hình 1.17: Đường đi của thông điệp từ node 5230 tới node 42AD 44
Hình 1.18: Ví dụ về Tapestry node publish item 45
Hình 1.20: Ví dụ về Tapestry node tìm kiếm item 46
Hình 1.21: Kiến trúc mobile peer to peer 48
Hình 1.22: Kiến trúc Pure P2P và Hybrid P2P 48
Hình 1.23: Kiến trúc mobile proxy 51
Hình 1.24: Giao thức tổng quan 52
Trang 8Hình 2.2: Việc lookup trong Bamboo 57
Hình 2.3: Ví dụ cơ chế quản lý mạng bamboo 59
Hình 2.4: Kiến trúc của OpenDHT 63
Hình 2.5: Một ví dụ cây ReDiR với nhân tố nhánh b=2 (mỗi cây có 2 cây con) 73
Hình 2.6: Biểu đồ phân bổ công bằng khi thực hiện test 79
Hình 3.1: Biểu đồ Use Case 82
Hình 3.2: Biểu đồ Activity ứng với chức năng Upload 83
Hình 3.3: Biểu đồ Activity ứng với chức năng Search, download và remove 83
Hình 3.4: Kiến trúc hệ thống 84
Hình 3.5 : Cấu trúc lưu trữ file trên OpenDHT 85
Hình 3.6: Giao diện chọn file để upload lên OpenDHT 86
Hình 3.7: Giao diện download file từ OpenDHT 87
Hình 3.8: Giao diện Play file video trước khi upload lên OpenDHT 88
Hình 3.9: Loại thông điệp truyền giữa các node 90
Hình 3.10: Demo ứng dụng chat conference với 7 node 92
Trang 9cố định, dẫn đến việc hệ thống không có khả năng cung cấp dịch vụ cho các máy khách thêm vào Do đó, một hệ thống có thể khắc phục được các vấn đề trên thường
là một hệ thống xử lý phân tán, có một cơ chế quản lý tài nguyên thông minh Công nghệ mạng ngang hàng P2P ra đời sẽ giải quyết được các vấn đề trên
Mạng ngang hàng là một kiến trúc mà các thành phần trong mạng có chức năng và khả năng như nhau Tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán Do đó khi càng nhiều máy tham gia thì khả năng tổng thể của hệ thống mạng càng lớn Tính chất phân tán của mạng ngang hàng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố Sự tiến hóa về cấu trúc mạng đã làm cho mạng ngang hàng ngày càng trở lên mạnh mẽ Một trong những cấu trúc đó là kỹ thuật Bảng băm phân tán (Distributed Hash Table) Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với
Trang 10liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả
Từ các vấn đề trên nên tôi chọn đề tài: “Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng” làm luận văn tốt nghiệp thạc sỹ khoa học
của tôi với mục đich làm chủ các biện pháp kỹ thuật p2p tiên tiến chưa được biết đến ở việt nam và phát triển các ứng dụng có khả năng ứng dụng cao
2 Lịch sử nghiên cứu
Được ra đời từ năm 1999, 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 ngang hàng peer-to-peer đã và đang thu hút được nhiều sự quan tâm từ cộng đồng nghiên cứu Các mạng ngang hàng peer-to-peer đã phát triển qua ba 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ệ 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 mạng tập chung Trong đó, hầu hết các peer trong hệ thống có vai trò như nhau, một số peer có vai trò lớn hơn và được gọi là các server 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 Đó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 mạng tập chung cho phép tìm kiếm thông tin trong không
Trang 11gian 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
Thế hệ thứ hai bắt đầu với các ứng dụng như Gnutella, Freenet làm việc mô 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 p2p thế hệ thứ hai là 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 request bị timeout Quá trình gửi yêu cầu tìm kiếm đi như vậy gọi là flooding 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
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 (DHT) Mỗi peer trong hệ thống có một ID thu được từ việc băm các thuộc tính đặc
trưng của peer đó như địa chỉ IP hay public key DHT lưu data dưới dạng cặp value Như vậy, node ID và cặp key-value được băm vào cùng một không gian ID
key-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 DHT đượ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 là 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 DHT đả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
Trang 12đị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
3 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu
Mục đích của luận văn là nghiên cứu về mạng ngang hàng (các đặc điểm, kiến trúc và ứng dụng của mạng ngang hàng) và về kỹ thuật bảng băm phân tán trên mạng ngang hàng Sau đó, luận văn tìm hiểu cách xây dựng ứng dụng trên OpenDHT để đánh giá tính khả thi Và sâu hơn nữa, người viết luận văn mong muốn làm chủ các biện pháp kỹ thuật p2p tiên tiến chưa được biết đến ở việt nam và phát triển các ứng dụng có khả năng ứng dung rộng dãi
Trong khuôn khổ luận văn này, người viết luận văn sẽ giới thiệu bao gồm lý thuyết chung về mạng ngang hàng, kỹ thuật bảng băm phân tán trên mạng ngang hàng Sau đó sẽ tìm hiểu các bước, các công cụ để phát triển một ứng dụng trên mạng ngang hàng
Với nội dung lý thuyết chung về mạng ngang hàng và kỹ thuật bảng băm trên mạng ngang hàng Chỉ đi vào tìm hiểu một cách tổng quan các khái niệm trên mạng
ngang hàng phục cho trả lời câu hỏi “mạng ngang hàng là gì?”, “kỹ thuật bảng băm trên mạng ngang hàng là gì?”, “kiến trúc chung của nó như thế nào?”, “ưu nhược điểm của nó so với các kiến trúc khác?”
Ứng dụng minh họa là ứng dụng dựa trên kiến trúc vừa trình bày Nó phải tận dụng được những ưu điểm của kiến trúc đó để minh họa khả năng triển khai và
áp dụng vào thực tế kiến trúc đó
4 Tóm tắt các luận điểm cơ bản và đóng góp mới của tác giả
Nội dung của luận văn đi từ lý thuyết tổng quan của mạng ngang hàng, kỹ thuật bảng băm phân tán trên mạng ngang hàng, đến bài toán thực tế, các ứng dụng
Trang 13mạng ngang hàng và cách triển khai một ứng dụng mạng ngang hàng trên OpenDHT Trong đó nó được chia thành ba chương chính:
Chương 1: Tổng quan các cơ sở khoa học của luận văn, bao gồm ba phần chủ đạo:
Đầu tiên, luận văn mô tả lý thuyết chung về mạng ngang hàng, các mô hình mạng ngang hàng và các lĩnh vực ứng dụng của nó Từ các ứng dụng thực tế, có thể tìm ra các kiến trúc, giải pháp để phát triển ứng dụng trong phần sau của luận văn
Thứ hai, luận văn đi sâu vào một kiến trúc, kỹ thuật để áp dụng các thuật toán lưu trữ và tìm kiếm dữ liệu trên mạng ngang hàng đó là Kỹ thuật bảng băm phân tán (DHT) Phần này giới thiệu tổng quan về một bảng băm phân tán và cách thức làm việc của nó bao gồm quản lý dữ liệu, định tuyến để tìm kiếm dữ liệu trên mạng ngang hàng Sâu hơn nữa, phần này đi sâu tìm hiểu cách thức làm việc của hai DHT khá phổ biến và đã được áp dụng để xây dựng khá nhiều ứng dụng trên mạng ngang hàng là Chord và Tapestry
Phần cuối cùng trong chương 1 là đi sâu tìm hiểu những nền tảng cơ sở để phát triển các ứng dụng mạng ngang hàng trên môi trường di động Từ đó có thể làm chủ đề nghiên cứu cho nhiều công trình nghiên cứu lĩnh vực ứng dụng mạng ngang hàng trên môi trường di động sau này
Chương 2: Trong chương này, luận văn đi sâu vào một DHT mà sẽ được áp
dụng chủ yêu để xây dựng ứng dụng trong phần sau đó là BambooDHT Tìm hiểu BambooDHT, luận văn tập chung vào tìm hiểu cơ chế làm việc, sức mạnh và những
ưu điểm của nó Sau đó luận văn giới thiệu về OpenDHT, cách xây dựng một hệ thống OpenDHT dựa trên BambooDHT Phần này đi sâu tìm hiểu các giao diện thiết kế, các API để phát triển ứng dụng trên OpenDHT Phần này là nội dung chính
Trang 14của luận văn và cũng là tiền đề để phát triển các ứng dụng mạng ngang hàng sau này
Chương 3: Xây dựng ứng dụng dựa trên OpenDHT Chương này chình là
yếu tố để đánh giá kết quả nghiên cứu của luận văn Ứng dụng mà ta xây dựng ở đây là ứng dụng chia sẻ file và ứng dụng chat conference Trong đó trình bày việc thiết kế, triển khai một hệ thống OpenDHT trên mạng Lan và chạy ứng dụng trên
đó Mục đích là đánh giá khả năng triển khai thực tế một ứng dụng OpenDHT, tìm hiểu xâu hơn các API để sử dung khi xây dựng một ứng dụng OpenDHT
5 Phương pháp nghiên cứu
Đề tài của luận văn là: “Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng” Đây là đề tài khoa học mang tính ứng dụng thực tiễn cao
nên trong quá trình nghiên cứu, người viết luận văn chủ yếu dựa vào các phương pháp sau để giải quyết các vấn đề đặt ra: Đó là thu thập, tìm kiếm tài liệu từ nhiều nguồn trên internet, sách, báo, tạp chí, … về các chủ đề kỹ thuật bảng băm phân tán DHT, mạng ngang hàng P2P, phân tích từ nhu cầu bài toán thực tế của xã hội để tìm
ra các kiến trúc giải pháp mới làm nền tảng để phát triển những ứng dụng mạng ngang hàng có khả năng ứng dụng cao
Trang 15CHƯƠNG I: TỔNG QUAN 1.1 Lý thuyết chung về mạng P2P
1.1.1 Mạng ngang hàng P2P là gì?
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
Mạng ngang hàng P2P là một kiểu mạng được thiết kế cho các thiết bị trong
đó có chức năng và khả năng của các thiết bị đó là như nhau Trong 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 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ị
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
Trang 16− 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
Hình 1.1: Mô hình Client/Server và mô hình P2P
Overlay network:
Trang 17Là 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 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: Mô hình overlay network
1.1.2 Phân loại các mô hình mạng ngang hàng P2P
Mạng ngang hàng có thể được phân loại theo mức độ tập trung của mạng
Bao gồm mạng ngang hàng không có cấu trúc và mạng ngang hàng có cấu trúc
Trang 18Hình 1.3: Sơ đồ phân loại các mô hình mạng ngang hàng P2P
1.1.2.1 Mạng ngang hàng P2P không cấu trúc
Mạng ngang hàng p2p không cấu trúc có đặc điểm nơi lưu trữ nội dung (files) hoàn toàn không liên quan gì đến overlay topology (cấu trúc hình học của mạng) Kĩ thuật tìm kiếm chủ yếu là sử dụng flooding với các giải thuật tìm kiếm
ưu tiên theo chiều rộng (breadth – first), hoặc ưu tiên theo chiều sâu (depth-first) cho đến khi nội dung được tìm thấy Các kĩ thuật khác phức tạp hơn gồm bước nhảy ngẫu nhiên (random walk) và chỉ số routing (routing indices) Do vậy các hệ thống không cấu trúc thường phù hợp trong trường hợp các node ra vào mạng thường xuyên, tùy ý
Các mạng ngang hàng không cấu trúc điển hình gồm mạng ngang hang tập trung, mạng ngang hàng thuần túy, mạng ngang hàng lai
a/ Hệ thống mạng ngang hàng tập trung (Centralized)
Là mạng ngang hàng thế hệ thứ nhất, đặc điểm là vẫn còn dựa trên một máy chủ tìm kiếm trung tâm, chính vì vậy nó còn được gọi là mang ngang hàng tập
P2P
Lai (Hybrid)
DHT Base Thuần túy (Pure)
Tập trung
Trang 19trung 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
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
Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng tập trung 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
Trang 20Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster)
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 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
Trang 21cá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
Hình 1.5: Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet)
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à 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
Trang 221.1.2.2 Mạng ngang hàng có cấu trúc
Mô hình mạng ngang hàng có cấu trúc (Structure P2P) 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
Trang 23(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 (Distributed Hash Table) 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
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 Trong 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
1.1.3 Phân loại các lĩnh vực ứng dụng trên mạng ngang hàng
Sự ra đời của mạng ngang hàng đã tạo ra cách thức quản lý mới cho hàng loạt các lĩnh vực ứng dụng Trong phần này đưa ra một cách nhìn tổng quát cho vấn
đề các lĩnh vực ứng dụng của mạng ngang hàng bao gồm bốn nhóm: Giao tiếp
(communication), Chia sẻ file (file sharing), Tính toán phân tán (distributed computing), Platform (nền)
1.1.3.1 Giao tiếp
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
Trang 24tài nguyên Các ứng dụng này rất đa dạng, từ instant messaging, chat đến game online hay các ứng dụng chia sẻ sử dụng trong thương mại, giáo dục hay môi trường gia đình
1.1.3.2 Chia sẻ file
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ẻ file (file sharing) 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ói 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ó
Trang 25yê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 file nhất và được lưu trữ ở đó
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 đề
Trang 26truyề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…
1.1.3.4 Không gian lưu trữ
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ư: Direct Attached Storage (DAS), Network Attached Storage (NAS) hay Storage Area Networks (SAN)
Bên cạnh những ưu điểm các giải pháp đó cũng tồn tại một số nhược điểm như:
+ Kém hiệu quả trong việc sử dụng hệ thống lưu trữ sẵn có
+ Phải tăng cường việc sao lưu dữ liệu
+ Tăng tải trong mạng của công ty
Tuy nhiên, băng thông mạng ngày càng được cải thiện cao, tính kết nối liên thông ngày một dễ dàng đã cho phép thay đổi cách thức quản lý vấn đề lưu trữ
dữ liệu, giải quyết một cách hiệu quả vấn đề lưu trữ và không đỏi hỏi nhiều về vấn
đề quản trị hệ thống Với mạng lưu trữ ngang hàng nói chung nó được giả thiết rằng chỉ có một phần không gian sẵn có trên máy tính PC được sử dụng Mạng lưu trữ ngang hàng là một cụm các máy tính được xây dựng trên một nền mạng máy tính tồn tại, chia sẻ tất cả các lưu trữ sẵn có trên mạng
Trang 271.1.3.5 Các chu trình xử lý
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.4 Phần mềm ứng dụng mạng ngang hàng P2P
Các phần mềm ứng dụng P2P cần đạt được 7 tiêu chí căn bản sau:
1) Giao diện người dùng không nằm trong trình duyệt (web browser)
2) Các máy tính trong hệ thống có thể đóng vai trò như cả máy trạm và máy chủ
3) Phần mềm dễ sử dụng và được tích hợp nhiều tính năng tốt
4) Ứng dụng hỗ trợ người dùng tạo nội dung và thêm chức năng
5) Ứng dụng cho phép tạo kết nối đến người dùng khác
6) Ứng dụng có nét “mới” và “thú vị”
7) Phần mềm ứng dụng hỗ trợ đa giao thức trên mạng
Một số phần mềm ứng dụng P2P nổi tiếng hiện nay bao gồm: Kazza, eMule, Bittorent, Limewire …
Trang 281.2 Lý thuyết chung về Bảng băm phân tán (DHT)
Trang 29Hình 1.7: Một ví dụ bảng băm
Các đại diện của các cặp giá trị key/value có thể được tùy biến Ví dụ, key có thể là một chuỗi ký tự hay một đối tượng Tương tự như vậy, values có thể là một chuỗi ký tự, một số, hoặc một số nhị phân đại diện của một đối tượng bất kỳ Các đại diện trên thực tế sẽ phụ thuộc vào các ứng dụng cụ thể
Một điều quan trọng trong tính chất của DHTs là hiệu quả xử lý với số lượng lớn bản ghi Hơn nữa, số lượng các nodes có thể rất lớn, từ một vài nodes đến nhiều ngàn hoặc hàng triệu nodes Vì không giới hạn lưu trữ/bộ nhớ và khả năng chi phí của insert và update các bản ghi, việc định vị lưu trữ các bản ghi trong mỗi node là rất mềm dẻo Vì vậy, mỗi node có trách nhiệm lưu trữ một số lượng bản ghi nhất định, đó gọi là lưu trữ cục bộ
Trang 30các key Hình 1.9 Minh họa một DHT là sự ánh xạ các URL hiện thời đại diện cho
vị trí của file
Trang 31Hình 1.9: Ví dụ về một DHT để ánh xạ filenames các URL, mà đại diện hiện tại vị
Để 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 thỏa mãn nhất (Theo một tiêu trí nào đó) 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 thỏa mãn nhất với ID của dữ liệu nhất và value được lưu trên node này
Trang 32Để 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
DHT cung cấp dịch vụ lưu trữ, tìm kiếm dữ liệu thông qua hai hàm insert và lookup
Hình 1.10: Kiến trúc của một ứng dụng trên DHT
Bảng băm phân tán có các ưu điểm khác biệt so với dịch vụ hướng Server truyền thống:
Client DHT 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 DHT 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)
Trang 33- 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
1.2.3 Một số đặc điểm chính của DHT
1.2.3.1 Không gian địa chỉ
Không gian địa chỉ của DHT là một tập gồm nhiều số nguyên, ví dụ: từ 0 …
23-1, 0 … 2160-1, v.v….Các Node và dữ liệu (data items) được ánh xạ vào cùng một không gian địa chỉ Sử dụng hàm băm bảo mật SHA-1 (sinh ra một số 160 bit) Đầu vào của hàm băm gồm: Địa chỉ IP của một Node, Tên các files dữ liệu hoặc nội dung của dữ liệu
Hình 1.11: Ví dụ không gian địa chỉ của DHT
Trang 34Trong hình 1.11 không gian địa chỉ: 0…65535 (216 -1) được phân hoạch cho
8 Node
1.2.3.2 Quản lý dữ liệu
- Địa chỉ IP của một node được băm để xác định vị trí của nó trong bảng băm
+ NodeID = SHA-1(Node IP Address)
- Mỗi file dữ liệu được gán một số định danh (Key)
+ Key = SHA-1(tên file) hoặc SHA-1(nội dung file)
+ Key là giá trị duy nhất trong không gian địa chỉ
- Mỗi node quản lý một khoảng giá trị trong không gian địa chỉ
- Dữ liệu được lưu trữ ở node và được quản lý khoá của dữ liệu
- Dữ liệu có thể được lưu trữ trực tiếp hoặc gián tiếp thông qua địa chỉ IP
-
(a) Lưu trữ trực tiếp (b) Lưu trữ gián tiếp
Hình 1.12: Lưu trữ dữ liệu thông qua địa chỉ IP
1.2.3.3 Cơ chế quản lý
Trang 35Mỗi thao tác ra nhập (join)/ rời bỏ (leave) hệ thống của một node trung bình đòi hỏi phải phân phối lại d/n bản ghi, trong d là số lượng các bản ghi trong DHT,
và n là số nodes DHTs tự quản lý các bản ghi và thông tin định tuyến khi:
- Nodes join, thông tin định tuyến được cập nhật vào các nodes tạo mới, và các bản ghi trong routing table được phân phối lại Một node ra nhập (Join) hệ thống được quản lý 4 bước:
+ Bước 1: liên lạc với một node tồn tại trong DHT
+ Bước 2: xác định khoảng địa chỉ mà nó quản lý
+ Bước 3: cập nhật lại thông tin phục vụ cho việc tìm kiếm + Bước 4: chuyển tất cả các cặp (Key, Value) thuộc quyền quản
lý từ node trước về nó
- Nodes leave, thông tin định tuyến được cập nhật lại, và các bản ghi trong routing table được phân phối lại trước khi node đó rời khỏi hệ thống Một node rời bỏ (leave) hệ thống được quản lý 2 bước:
+ Bước 1: chuyển các cặp (Key, Value) của nó về node trước nó + Bước 2: cập nhật lại thông tin phục vụ cho việc tìm kiếm
- Nodes fail Các nodes fail được tìm ra và thông tin định tuyến được cập nhật
để ghi nhận chúng Routing table sẽ tự động khôi phục
1.2.4 Các giao thức và cài đặt DHT
Về cơ bản, các hệ thống DHT đều dựa trên ý tưởng giống nhau nhưng khác nhau đa dang trong tổ chức không gian định danh và chú ý đến hiệu năng định tuyến Dựa trên các đặc thù, tính chất khác nhau, các hệ thống DHT có thể ứng dụng vào những kịch bản ứng dụng khác nhau Trong phần này của luận văn sẽ giới thiệu một số DHT đã nhận được nhiều sự chú ý của giới nghiên cứu trong vài năm gần đây như: Chord, Tapestry
Trang 361.2.4.1 Chord
Thuật toán Chord được đưa ra năm 2001 bởi Stoica et al Xuất phát từ sự đơn giản của DHT, các key của DHT là l-bit định danh (các số nguyên trong khoảng [0, 2l−1]) Chúng tạo thành một vòng tròn định danh một chiều modulo 2l, bao quanh khoảng từ 2l-1 đến 0
Không gian định danh
Chord sử dụng một không gian định danh dạng vòng tròn Một không gian định danh m-bit sẽ có 2m định danh Mỗi data item và node được liên kết với một địa chỉ Một địa chỉ của một data item được gọi là một khóa (key), một node coi như một ID Các cặp (key, value) hay viết tăt (k, v) được lưu ở node đầu tiên có
định danh lớn hơn hoặc bằng key trong không gian định danh Node như vậy được
gọi là successor k, được ký hiệu là successor(k) Một node Chord với ID là u có một con trỏ tới node đầu tiên đứng sau nó trong không gian ID theo chiều kim đồng hồ,
ký hiệu là Succ(u) và một con trỏ tới node đứng trước nó trong không gian ID, ký hiệu là Pred(u) Các node tạo thành một danh sách liên kết hai chiều
Hình minh họa một khởi tạo vòng tròn định danh với l=6, 26 = 64 định danh,
10 node và 7 data items Successor của key k5, tức là node kế tiếp của nó theo chiều kim đồng hồ là node N8 mà k5 ở trên đó Successor của k43 là N43 như là các định danh của chúng bằng nhau Cấu trúc vòng tròn modulo 26 = 64 cho kết quả k61trên N8
Trang 37Hình 1.13: Một không gian định danh Chord 6-bit Các dòng chấm chỉ ra các key
của các node Các dòng đen diễn tả các finger của node N8
Định tuyến
Một node Chord lưu M = log2(N) con trỏ gọi là các finger Tập các finger của node Chord u được xác định như sau Fu = {(u, Succ(u + 2i-1))}, 1 ≤ i ≤ M Với cách lựa chọn finger thế này, trong mạng Chord, các node quan sát không gian ID vòng như là không gian này bắt đầu từ ID của chúng Đồng thời với cách lựa chọn finger của Chord, không gian ID sẽ được chia đôi, nửa thứ nhất cũng được chia đôi, rồi phần tư thứ nhất lại được chia đôi
Tổ chức mạng
Join vào mạng : Khi node n muốn join vào mạng, nó phải tìm ID của mình
thông qua một số contact trong mạng và chèn bản thân nó vào vòng giữa successor
s của nó và predecessor của s sử dụng một thuật toán stabilization chạy định kỳ
Trang 38yêu cầu s tìm các finger của n Tập các node cần điều chỉnh bảng định tuyến sau khi
n join vào mạng nhờ các node này đều chạy thuật toán stabilization định kỳ Nhiệm
vụ cuối cùng là chuyển một phần các item đang lưu trên node s có ID nhỏ hơn hoặc bằng n sao node n Việc di chuyển dữ liệu này được thực hiện bởi tầng ứng dụng của n và s
Hình 1.14 cho chúng ta thấy một ví dụ về quá trình join vào mạng của một node Giả sử node 21 có successor là node 32, trên node 32 đang lưu các key 24 và
30 Node 26 join vào mạng, sau quá trình tìm kiếm, node 26 biết node 32 là successor của mình, nó trỏ con trỏ successor của mình vào node 32 và báo cho node
32 biết Node 32 sau khi được báo thì trỏ con trỏ predecessor vào node 26 Node 26 copy các key tương ứng với nó (key 24) từ node 32 Đến định kỳ, N21 chạy quá trình stabilize, lúc này con trỏ successor vẫn trỏ vào node 32 Node 21 hỏi node 32
về predecessor của node 32, lúc này predecessor của 32 là 26 Sau khi nhận được câu trả lời, N21 trỏ con trỏ successor vào node 26 và báo cho node 26 biết nó là predecessor của node 26 Node 26 trỏ con trỏ predecessor vào node 21
Trang 39Hình 1.14: Quá trình một node join vào mạng
Leaves khỏi mạng: Quá trình rời khỏi mạng có báo trược được thực hiện
như sau: node sắp rời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báo cho các node predecessor và successor Bảng định tuyến của các node liên quan sẽ được cập nhật khi các node này chạy thuật toán stabilization Hình 1.13 dưới đây cho chúng ta một ví dụ về bảng định tuyến của các node khi có sự join/leave Ban đầu mạng có 3 node với ID là 0, 1, 3, bảng định tuyến của chúng được cho thấy trên hình vẽ
Trang 40Sau đó node 6 join vào mạng rồi node 3 rời khỏi mạng, bảng định tuyến của các node và sự thây đổi bảng định tuyến được thể hiện trong hình vẽ với những phần thay đổi có màu đen, những phần không đổi có màu xám
Hình 1.15 (a): Bảng finger và vị trí của key sau khi node 6 join