1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng

96 521 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 96
Dung lượng 2,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

BỘ 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 2

LỜ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 3

MỤ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 4

1.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 5

3.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 6

DANH 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 7

DANH 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 8

Hì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 9

cố đị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 10

liệ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 11

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

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 13

mạ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 14

củ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 15

CHƯƠ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 17

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 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 18

Hì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 19

trung 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 20

Hì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 21

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

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 22

1.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 24

tà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 25

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 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 26

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…

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 27

1.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 28

1.2 Lý thuyết chung về Bảng băm phân tán (DHT)

Trang 29

Hì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 30

cá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 31

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ị

Để 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 34

Trong 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 35

Mỗ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 36

1.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 37

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

Đị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 38

yê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 39

Hì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 40

Sau đó 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

Ngày đăng: 23/11/2016, 04:10

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] A. Gupta, B. Liskov, and R. Rodrigues, “Efficient routing for peer-to-peer overlays” Sách, tạp chí
Tiêu đề: Efficient routing for peer-to-peer overlays
[2] Ali Ghodsi, PhD dissertation, KTH-Royal Institute of Technology, October 2006, “Distributed k-ary System: Algorithms for Distributed Hash Tables” Sách, tạp chí
Tiêu đề: Distributed k-ary System: Algorithms for Distributed Hash Tables
[3] A. Rowstron and P. Druschel, “Pastry: Scalable, distributed object location and routing for large scale peer-to-peer systems” Sách, tạp chí
Tiêu đề: Pastry: Scalable, distributed object location and routing for large scale peer-to-peer systems
[6] Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph, and John D. Kubiatowicz, “Tapestry: A resilient global-scale overlay for service deployment” Sách, tạp chí
Tiêu đề: “Tapestry: A resilient global-scale overlay for service deployment
[7] F. Dabek, J. Li, E. Sit, J. Robertson, M. F. Kaashoek, and R. Morris, “Designing a DHT for low latency and high throughput” Sách, tạp chí
Tiêu đề: Designing a DHT for low latency and high throughput
[8] Frank Dabek, A Distributed Hash Table [9] Gnutella http://www.gnutella.com Sách, tạp chí
Tiêu đề: A Distributed Hash Table
[10] Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, and Sonesh Surana, ”Internet indirection infrastructure” Sách, tạp chí
Tiêu đề: Internet indirection infrastructure
[17] Petar Maymounkov and David Mazieres, “Kademlia: A peer-to-peer information system based on the XOR metric” Sách, tạp chí
Tiêu đề: Kademlia: A peer-to-peer information system based on the XOR metric
[18] Ralf Steinmetz, Klaus Wehrel (Eds.) (2005), Peer-to-Peer Systems and Applications, pp. 1-468 Sách, tạp chí
Tiêu đề: Peer-to-Peer Systems and Applications
Tác giả: Ralf Steinmetz, Klaus Wehrel (Eds.)
Năm: 2005
[20] Takeshi Kato, Norihiro Ishikawa, Hiromitsu Sumino, “A Platform and Applications for Mobile Peer-to-Peer Communications” Sách, tạp chí
Tiêu đề: “A Platform and Applications for Mobile Peer-to-Peer Communications
[12] John F. Buford, Heather Yu, and Eng Lua, P2P Networking and Applications Khác
[13] Ming Xie. Computer Science, University of Ottawa, September 26, 2003 P2P SystemsBased on Distributed Hash Table Khác
[19] S. Rhea, B. Godfrey, B. Karp, J. Kubiatowicz, S. Ratnasamy, S. Shenker, I. Stoica, and H. Yu. OpenDHT: a public DHT service and its uses Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.3: Sơ đồ phân loại các mô hình mạng ngang hàng P2P - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.3 Sơ đồ phân loại các mô hình mạng ngang hàng P2P (Trang 18)
Hình 1.4:  Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.4 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) (Trang 20)
Hình 1.5:  Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.5 Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) (Trang 21)
Hình 1.6:  Mạng ngang hàng lai - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.6 Mạng ngang hàng lai (Trang 22)
Hình 1.7: Một ví dụ bảng băm - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.7 Một ví dụ bảng băm (Trang 29)
Hình 1.8: Ví dụ bảng băm phân tán - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.8 Ví dụ bảng băm phân tán (Trang 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ị - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
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ị (Trang 31)
Hình 1.14: Quá trình một node join vào mạng - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.14 Quá trình một node join vào mạng (Trang 39)
Hình 1.15 (b): Bảng finger và vị trí của key sau khi node 3 leave. - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.15 (b): Bảng finger và vị trí của key sau khi node 3 leave (Trang 41)
Hình 1.16: Minh họa cách chọn bảng định tuyến của một node Tapestry - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.16 Minh họa cách chọn bảng định tuyến của một node Tapestry (Trang 43)
Hình 1.21: Kiến trúc mobile peer to peer - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.21 Kiến trúc mobile peer to peer (Trang 48)
Hình 1.23: Kiến trúc mobile proxy - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 1.23 Kiến trúc mobile proxy (Trang 51)
Hình 3.6: Giao diện chọn file để upload lên OpenDHT - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 3.6 Giao diện chọn file để upload lên OpenDHT (Trang 86)
Hình 3.8: Giao diện Play file video trước khi upload lên OpenDHT - Kỹ thuật bảng băm phân tán và phát triển ứng dụng mạng ngang hàng
Hình 3.8 Giao diện Play file video trước khi upload lên OpenDHT (Trang 88)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm