Tải bản đầy đủ (.pdf) (48 trang)

Hiệu năng Thuật toán Giải pháp Cải tiến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.85 MB, 48 trang )

NGÔ HOÀNG GIANG

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC

LUẬN VĂN THẠC SĨ KHOA HỌC

NGÀNH: CÔNG NGHỆ THÔNG TIN

NGÀNH: CÔNG NGHỆ THÔNG TIN
3898
CÔNG NGHỆ THÔNG TIN

ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ
ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ
THUẬT TOÁN BẢNG BĂM PHÂN TÁN DHT
VÀ ĐƯA RA GIẢI PHÁP CẢI TIẾN HIỆU

BẢNG BĂM PHÂN TÁN DHT VÀ ĐƯA RA GIẢI
PHÁP CẢI TIẾN HIỆU NĂNG CỦA
THUẬT TOÁN CHORD

NĂNG CỦA THUẬT TOÁN CHORD
NGÔ HOÀNG GIANG



2006 - 2008
Hà Nội
2008

NGÔ HOÀNG GIANG

HÀ NỘI 2008

Người hướng dẫn khoa học: TS. NGUYỄN CHẤN HÙNG

HÀ NỘI 2008


Luận văn tốt nghiệp

Ngô Hoàng Giang

BỘ GIÁO DỤC ĐÀO TẠO

Luận văn tốt nghiệp

Cộng hoà xã hội chủ nghĩa Việt Nam

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
***

Ngô Hoàng Giang

LỜI CẢM ƠN


Độc lập – Tự do – Hạnh phúc
Trước hết tôi vô cùng biết ơn sâu sắc đến Thầy giáo TS. Nguyễn Chấn
Hùng – người đã trực tiếp dành nhiều thời gian tận tình hướng dẫn, cung cấp

LỜI CAM ĐOAN

những thông tin quý báu giúp đỡ tôi hoàn thành bản luận văn này.

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. Nguyễn Chấn Hùng. Để 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

Tôi xin chân thành cảm ơn Ban lãnh đạo Trung tâm mạng thông tin –
Trường Đại học Bách khoa Hà Nội, nơi 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

hoặc thiết kế tốt nghiệp của người khác.

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 28 tháng 10 năm 2008
Hà Nội, ngày 28 tháng 10 năm 2008
(Ký và ghi rõ họ tên)

Ngô Hoàng Giang

Ngô Hoàng Giang


1

2


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Chương 2.

Mục lục
U

U

U

U

U

U

1.2.

U


1.2.1.
U

1.3.
U

U

1.3.1.
U

U

U

U

U

U

Tài liệu tham khảo ..........................................................................................................93
U

U

U

U


Các phương pháp đánh giá, thử nghiệm mạng P2P ........................................40
U

U

1.4.1.
U

Khảo sát các simulator mô phỏng mạng overlay .....................................41

U

1.4.2.
U

U

Cơ chế làm việc........................................................................................87
U

Kelips .......................................................................................................38

U

1.4.

U

U


1.3.4.

U

U

Kết luận ..........................................................................................................................92
U

U

Tapestry....................................................................................................33

U

Mục tiêu ...................................................................................................87

U

3.5.2.
U

Kademlia ..................................................................................................30

U

1.3.3.
U

U


3.5.1.

U

1.3.2.

U

U

U

U

Chord........................................................................................................21

U

U

Cơ chế làm việc........................................................................................79
U

Giải pháp dùng nhân bản đối xứng cải tiến .....................................................87

U

U


U

U

3.5.
U

U

U

U

U

Giới thiệu một số DHT ....................................................................................20

U

Mục tiêu ...................................................................................................79

U

3.4.2.

Distributed Hash Table ............................................................................18

U

U


U

U

1.2.2.

U

U

3.4.1.

Hash Table (bảng băm) ............................................................................18

U

U

U

U

U

U

Cơ chế làm việc........................................................................................69

U


U

U

U

Giải pháp caching proxy..................................................................................79

U

Lý thuyết về Distributed Hash Table (DHT) ..................................................18

U

Mục tiêu ...................................................................................................69
U

3.3.2.
U

U

Các vấn đề đối với mạng p2p hiện nay ....................................................16

U

U

3.4.


U

1.1.4.
U

U

U

U

U

Giải pháp duy trì vòng dùng cơ chế lock ........................................................69

U

3.3.1.

Ứng dụng p2p ..........................................................................................16

U

U

U

Quá trình phát triển của các hệ thống P2P ...............................................12


U

1.1.3.
U

Giải pháp cải tiến giao thức Chord..................................................................68
U

3.3.
U

U

1.1.2.

U

U

U

Khái niệm mạng P2P ...............................................................................11

U

U

U

U


U

U

3.2.

U

1.1.1.

Cải tiến hiệu năng của Chord ...................................................................68
U

Hạn chế của giao thức Chord ..........................................................................68

U

Lý thuyết chung về về mạng P2P ....................................................................11

U

U

U

3.1.
U

Lý thuyết tổng quan .................................................................................11


U

Đánh giá ảnh hưởng của các tham số thiết kế đến hiệu năng các DHT ..63
U

Chương 3.

U

U

U

U

U

Lời mở đầu .....................................................................................................................10

U

U

So sánh hiệu năng của các DHT ..............................................................53
U

2.2.5.
U


U

1.1.

U

U

U

Danh mục bảng ................................................................................................................9

U

Xác định ngưỡng churn rate các DHT làm việc tốt .................................47

U

U

Danh mục thuật toán ........................................................................................................8

Chương 1.

U

2.2.4.

U


U

Quá trình thực nghiệm và phương pháp đánh giá hiệu năng ...................45
U

2.2.3.
U

Danh mục hình vẽ ............................................................................................................6

U

U

U

U

U

U

Mục tiêu và cơ sở lý luận .........................................................................44
U

2.2.2.

U

U


U

U

Danh mục thuật ngữ .........................................................................................................5
U

Đánh giá hiệu năng một số DHT .....................................................................44

U

U

Mục lục.............................................................................................................................3
U

U

2.2.1.

U

U

U

U

2.2.


U

LỜI CẢM ƠN ..................................................................................................................2
U

U

Bài toán thực tế................................................................................................43

U

LỜI CAM ĐOAN ............................................................................................................1
U

Đánh giá hiệu năng một số DHT .............................................................43

U

2.1.
U

Ngô Hoàng Giang

U

U

U


P2PSim .....................................................................................................42
U

U

3

4


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Danh mục thuật ngữ

Ngô Hoàng Giang

Danh mục hình vẽ
Hình 1.1. Mô hình centralized directory .......................................................................13

Tiếng Anh

Tiếng Việt

Peer-to-peer

Mạng ngang hàng


Peer

Đồng đẳng trong mạng ngang hàng

Node

Một thiết bị nối mạng (một peer)

Item

Một đơn vị dữ liệu

Structured

Có cấu trúc

Overlay

Mạng được xây dựng trên các mạng khác

Hash table

Bảng băm

Distributed hash table

Bảng băm phân tán

Join


Gia nhập (mạng ngang hàng)

Leave

Rời khỏi (mạng ngang hàng)

Failure

Lỗi

Churn rate

Số lượng peer rời khỏi/gia nhập mạng trong một

U

U

Hình 1.2. Mô hình flooding request ...............................................................................14
U

U

Hình 1.3. Distributed Hash Table ..................................................................................20
U

U

Hình 1.4. (a) Một mạng Chord với 6 node, 5 item và N=16. (b) Nguyên tắc chung của

U

bảng routing table. (c) Bảng routing table của node 3 và node 11 ................................23
U

Hình 1.5. Quá trình một node join vào mạng.................................................................28
U

U

Hình 1.6. (a) Bảng finger và vị trí của key sau khi node 6 join. (b)Bảng finger và vị trí
U

của key sau khi node 3 leave. .........................................................................................29
U

Hình 1.7.Con trỏ của node 3 (0011) trong Kademlia....................................................31
U

U

Hình 1.8. Minh họa cách chọn bảng định tuyến của một node Tapestry .......................34
U

U

Hình 1.9. Đường đi của thông điệp từ node 5230 tới node 42AD .................................36
U

U


Hình 1.10. Ví dụ về Tapestry node publish item ...........................................................37
U

U

Hình 1.11. Ví dụ về Tapestry node tìm kiếm item .........................................................37
U

U

Hình 1.12. Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng

khoảng thời gian.
U

thái tại một node cụ thể ..................................................................................................39
U

Hình 2.1. Node join/leave với interval=600 s trong mạng Chord 100 node ..................46
U

U

Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate ............................................48
U

U

Hình 2.3. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công (fration of successful lookups)

U

theo băng thông trung bình một node sử dụng (average live bandwidth) trong mạng
Kademlia 100 node (trái) và 1000 node (phải). .............................................................49
U

Hình 2.4. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một
U

node sử dụng trong mạng Chord 100 node (trái) và 1000 node (phải). .........................50
U

Hình 2.5. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một
U

node sử dụng trong mạng Kelips 100 node (trái) và 1000 node (phải). ........................51
U

5

6


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Hình 2.6. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một


Ngô Hoàng Giang

Danh mục thuật toán

U

node sử dụng trong mạng Tapestry 100 node (trái) và 1000 node (phải). ...................52
U

U

node sử dụng trong mạng Chord với interval=5s (trái) và interval=10s (phải). ............55
U

Hình 2.8. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một
U

node sử dụng của Kelisp và Tapestry với RTT=1s, 10s và node join/leave với
U

interval=5s (trái) và 10s (phải). ......................................................................................56
U

Hình 2.9. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một
U

node sử dụng trong mạng Chord 1000 node với interval=120s (trái) và interval=600s
U


(phải). .............................................................................................................................59
U

Hình 2.10. Tác động của churn rate đối với tỷ lệ tìm kiếm thất bại (hình trên) và độ trễ
U

tìm kiếm trung bình (hình dưới) trong các mạng có kích thước khác nhau. ..................60
U

Thuật toán 1.1. Giả mã tìm node successor của ID n.....................................................25

Hình 2.7. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công theo băng thông trung bình một

U

U

Thuật toán 1.2. Giả mã cho hoạt động join vào mạng của một node.............................26
U

U

Thuật toán 1.3. Giả mã cho quá trình stabilization ........................................................27
U

U

Thuật toán 3.1. Thuật toán join tối ưu hóa .....................................................................73
U


Thuật toán 3.2. Thuật toán leave tối ưu hóa...................................................................76
U

U

Thuật toán 3.3. Quá trình stabilization định kỳ để xử lý failure ....................................78
U

U

Thuật toán 3.4. Quá trình caching ..................................................................................81
U

Thuật toán 3.5. Đồng bộ hóa vòng proxy và vòng node Chord thông thường ..............85
U

U

Thuật toán 3.6. Xử lý thay đổi trong vòng proxy ..........................................................86
U

U

Thuật toán 3.7. Quá trình tìm kiếm và chèn trong giải pháp nhân bản đối xứng ..........89
U

U

Hình 2.11. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công (hình trên) và độ trễ tìm kiếm
trung bình (hình dưới) theo băng thông trung bình một node sử dụng trong các mạng có

U

kích thước khác nhau với các node join/leave với interval=600s ..................................62
U

Thuật toán 3.8. Join và leave trong trường hợp nhân bản đối xứng ..............................90
U

U

U

Thuật toán 3.9. Xử lý failure trong nhân bản đối xứng..................................................90
U

Thuật toán 3.10. Thuật toán bulk owner operation ........................................................91
U

U

Hình 2.12. Ảnh hưởng của tham số “base” đối với hiệu năng của Tapestry (trái) và
U

tham số “gossip interval” đối với hiệu năng của mạng Kelips trong mạng 1000 nodes
khi các node join/leave với interval=600s .....................................................................65
U

Hình 2.13. Biểu diễn convex hull của successor stabilization interval (trái) và finger
U


stabilization interval (phải ) trong mạng Chord 1000 node khi các node join/leave với
interval=600s ..................................................................................................................66
U

Hình 3.1. Biểu đồ chuyển đổi trạng thái của node Chord ..............................................70
U

U

Hình 3.2. Biểu đồ thời gian biểu diễn quá trình một node jon vào mạng thành công ...71
U

U

Hình 3.3. Biểu đồ thời gian biểu diễn quá trình một node rời khỏi mạng .....................74
U

U

Hình 3.4. Kiến trúc của giải pháp caching proxy...........................................................80
U

U

Hình 3.5. Biểu đồ thời gian biểu diễn quá trình caching thành công.............................81
U

U

7


8


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Danh mục bảng

Ngô Hoàng Giang

Lời mở đầu

Bảng 1.1. Trạng thái phát triển của các simulator .........................................................41
U

U

Bảng 1.2. Đặc điểm của các simulator ...........................................................................42

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 2.1. Bảng tham số của Kademlia ..........................................................................49

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.

Bảng 2.2. Bảng tham số của Chord ................................................................................50


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

U

U

U

U

U

U

Bảng 2.3. Bảng tham số của Kelips ...............................................................................51

mạng peer-to-peer overlay đã và đang thu hút được nhiều sự quan tâm từ cộng đồng

Bảng 2.4. Bảng tham số của Tapestry ............................................................................52

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

Bảng 2.5. Giá trị churn rate để các DHT đạt được tỷ lệ tìm kiếm thành công 90% trong

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

mạng 100 và 1000 node .................................................................................................53

cơ chế bảng băm phân tán (Distributed Hash Table hay DHT).


U

U

U

U

U

U

Bảng 2.6. Điều kiện mô phỏng.......................................................................................54

Các DHT được thiết kế để làm trong môi trường tương đối ổn định với các peer

Bảng 2.7. Giá trị tham số của Chord ..............................................................................54

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ú,

U

U

U

U

Bảng 2.8. Giá trị tham số của Tapestry ..........................................................................54


đ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

Bảng 2.9. Giá trị tham số của Kelips .............................................................................55

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ề

Bảng 2.10. So sánh giữa Chord, Kelips và Tapestry .....................................................56

các peer trên mạng liên tục thay đổi dẫn đến hiệu năng của các DHT giảm sút rõ rệt.

Bảng 2.11. Giá trị tham số của Chord ...........................................................................57

Đánh giá và cải thiện hiệu năng của các DHT trong điều kiện mạng churn rate cao là

Bảng 2.12. Giá trị tham số của Kelips ...........................................................................58

bài toán đang rất được quan tâm hiện nay.

U

U

U

U

U

U


U

U

U

U

Bảng 2.13. Giá trị tham số của Tapestry ........................................................................58

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

Bảng 2.14. Bảng tóm tắt kết quả ....................................................................................63

peer-to-peer. Phần thứ hai, luận văn phân tích, đánh giá hiệu năng của một số DHT nổi

Bảng 2.15. Giá trị tham số của Chord ............................................................................64

tiếng như Chord, Kademlia, Tapestry, Kelips trong điều kiện mạng churn rate cao. Dựa

Bảng 2.16. Giá trị tham số của Kelips ...........................................................................64

trên kết quả đạt được, luận văn phân tích hạn chế của giao thức Chord và đưa ra giải

Bảng 2.17. Giá trị tham số của Tapestry ........................................................................65

pháp cải tiến hiệu năng của giao thức này trong điều kiện churn rate cao.

U


U

U

U

U

U

U

U

U

U

Các kết quả nghiên cứu trong luận văn đã được công bố trên một số bài báo
quốc tế và trong nước [15, 16, 17, 18].

9

10


Luận văn tốt nghiệp

Chương 1.


Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

thông tin, chu kỳ xử lý, không gian lưu trữ. Peer-to-peer computing tận dụng sức mạnh

Lý thuyết tổng quan
0B

tính 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

1.1. Lý thuyết chung về về mạng P2P

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ự

1.1.1. Khái niệm mạng P2P

trị/phân tán, địa chỉ IP động, vai trò vừa là client vừa là server.

Trong khoảng 10 năm trở lại đây, lĩnh vực P2P nhận được sự quan tâm của rất
nhiều nhóm nghiên cứu, của các công ty, trường đại học và đã có những bước phát

1.1.2. Quá trình phát triển của các hệ thống P2P
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

triển mạnh mẽ. Ngày nay các ứng dụng peer-to-peer được sử dụng rộng rãi cho nhiều


phân tán. Theo Oram, P2P computing bắt đầu trở thành đề tài được nhiều người quan

mục đích khác nhau như chia sẻ tài nguyên và nội dung, chat, chơi game, …
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:

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.

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

Thế hệ thứ nhất

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

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.

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ệ

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

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:

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
X

X

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

− Việc truyền dữ liệu và thông tin giữa các peer trong mạng dễ dàng

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

− Các peer vừa có thể hoạt động như client vừa có thể hoạt động như server

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

− Nội dung chính trong mạng được cung cấp bởi các peer

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

− Mạng trao quyền điều khiển và tự trị cho các peer

độ 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

− 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ỉ

trực tiếp với peer chứa file mà không thông qua server nữa.

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


11

12


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

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. Hình 1.2 biểu diễn
X

X

một mô hình flooding request.

Hình 1.1. 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.

Hình 1.2. 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ế 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ô
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

13

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.

14


Luận văn tốt nghiệp

Ngô Hoàng Giang


Luận văn tốt nghiệp

Thế hệ thứ ba

Ngô Hoàng Giang

1.1.3. Ứng dụng p2p

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

Các ứng dụng p2p có thể chia vào bốn nhóm:

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

Chia sẻ file (file sharing): lưu trữ và chia sẻ nội dung là ứng dụng thành cô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

nhất của công nghệ p2p. Các ứng dụng chia sẻ file tập trung vào việc lưu trữ thông tin

cho cộng đồng nghiên cứu là xây dựng một mạng P2P overlay khả mở không có điểm

trên các peer khác nhau trên mạng và lấy thông tin từ các peer đó. Các ứng dụng thuộc

đ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

nhóm này bao gồm Napster, Gnutella, Freenet, Kazaa, Chord, ….

overlay networks”.


Tính toán phân tán (distributed computing): các ứng dụng thuộc nhóm này sử

Thế hệ thứ ba được khởi đầu với các dự án nghiên cứu như Chord, CAN, Pastry,

dụng tài nguyên từ các máy tính được nối mạng. Ý tưởng chính của các ứng dụng tính

Tapestry và P-Grid. Các dự án này đưa ra khái niệm Distributed Hash

toán phân tán là các chu kỳ xử lý nhàn rỗi trên bất kỳ máy tính nối mạng nào đều có

Table (DHT). Mỗi peer trong hệ thống có một ID thu được từ việc băm các đặc thuộc

thể được sử dụng cho việc giải quyết bài toán trên các máy yêu cầu nhiều năng lực tính

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

toán. SETI (Search for Ex-traterrestrial Intelligence) là một dự án nghiên cứu khoa học

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ằm mục đích xây dựng một máy tính ảo khổng lồ từ sức mạnh của các máy tính nối

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

mạng trong chù kỳ nhàn rỗi của chúng.

sau đó được nối với nhau theo một topology nào đó. Quá trình tìm kiếm dữ liệu trở

Cộng tác (collaboration): các ứng dụng cộng tác p2p cho phép người sử dụng


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ộng tác với nhau ở mức ứng dụng. Các ứng dụng này rất đa dạng, từ instant

cực đại. Thế hệ thứ ba đảm bảo xác xuất tìm thấy thông tin cao.

messaging, chat đến game online hay các ứng dụng chia sẻ sử dụng trong thương mại,

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

giáo dục hay môi trường gia đình.

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

Platform (nền): các platform p2p cung cấp hạ tầng hỗ trợ các ứng dụng sử dụng

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ơ chế p2p. Các thành phần p2p được sử dụng bao gồm naming, discovery,

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

communication, security và resource aggregation. JXTA là một p2p platform cung cấp

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

hạ tầng tính toán và lập trình mạng.

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

1.1.4. Các vấn đề đối với mạng p2p 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

kế đơn giản, Tapestry và Pastry giải quyết được vấn đề proximity routing, …

phải đối mặt với một số vấn đề:

15

16


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

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

Ngô Hoàng Giang

1.2. Lý thuyết về Distributed Hash Table (DHT)

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


1.2.1. Hash Table (bảng băm)

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ệ

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

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

ứng với một key, hash table sẽ trả về một value. Để thực hiện việc ánh xạ, hash table

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á

sử dụng hash function tính toán vị trí lưu value dựa trên key. Hash function phải đảm

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

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

tác và xử lý phân tán trong các hệ thống p2p.

gian key và không gian địa chỉ phải đều và ngẫu nhiên đến mức có thể.

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ệ

1.2.2. Distributed Hash Table
Distributed Hash Table (DHT) là thuật toán được sử dụng trong các ứng dụng
p2p, DHT 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.
DHT 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, DHT 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 DHT đượ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

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

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 DHT, 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ỉ
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 DHT đư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.

chức dựa trên agent.


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

17

18


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

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 ClientServer truyền thống:
− DHT cho phép hoạt động phân tán, không cần duy trì một server trung tâm để

Hình 1.3. Distributed Hash Table

đ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


1.3. Giới thiệu một số DHT

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.

Trong phần này chúng ta sẽ xem xét một số well-known DHT như Chord, Kelips,
Tapestry, Kademlia. Ta phân tích các DHT này dựa trên một số khía cạnh như sau:

− Tải được cân bằng giữa các peer trong mạng

Overlay Graph (sơ đồ mạng overlay): đây là tiêu chuẩn chính để phân biệt các hệ

− 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ệ

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.
Mapping Items Onto Nodes (ánh xạ giữa item và node): đối với mỗi overlay
graph, chúng ta quan tâm đến mối quan hệ giữa ID của node và ID của các item lưu

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

trên node đó, tức là một item cụ thể sẽ được lưu trên node nào.
Lookup process (tiến trình tìm kiếm): tiến trình tìm kiếm trên một mạng diễn ra

diện rộng


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

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.

Joins, Leaves và Maintenance (gia nhập, rời khỏi mạng và duy trì) : chúng ta sẽ
xem 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

19

20


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

maintenance để xử lý các thay đổi trong mạng, chúng ta quan tâm đến các tiến trình

dựng bảng finger table được thể hiện trong Hình 1.4(b) . Node n chọn các finger của nó

này diễn ra như thế nào và chi phí thực hiện các tiến trình này.

bằng cách xem nó như là điểm khởi đầu của không gian ID, rồi chọn finger là


X

X

Replication và fault tolerance (nhân bản và chịu lỗi): bên cạnh các node rời

successor của các ID n + 20, n + 21, n + 22, và n + 23. ID cuối cùng n + 23 chia không

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

gian ID thành hai phần bằng nhau, ID trước đó n + 22 chia nửa thứ nhất thành hai phầ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

bằng nhau, ID n + 21 chia phần tư đầu tiên thành hai phần bằng nhau, tương tự ID n +

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

20 chia phần tám thứ nhất thành hai phần bằng nhau. Tuy nhiên, có thể không có node

pháp cho trường hợp các node rời khỏi mạng mà không báo trước.

có ID giống với ID tại điểm chia, khi đó successor của ID tại điểm chia được chọn làm

Upper services và applications (ứng dụng và dịch vụ bên trên): một số ứng dụng

finger. Hình 1.4(c) cho thấy bảng định tuyến của node 3 và node 11.
X


X

và dịch vụ đã được phát triển sử dụng DHT.
Implementation (cài đặt): liệt kê một số cài đặt của các DHT.

1.3.1. Chord
Overlay graph
Chord sử dụng một không gian ID vòng tròn kích thước N. 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.
Bên cạnh đó, 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, tong 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, …
Hình 1.4 cho thấy một mạng với không gian ID N = 16, mỗi node có
X

X

M=log2(N)= 4 finger. Mạng có các node với ID lần lượt là 0, 3, 5, 9, 11, 12. Cách xây

21

22


Luận văn tốt nghiệp


Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

Mapping Items Onto Nodes.
Như chúng ta thấy trên Hình 1.4, một item được lưu trên node đầu tiên mà theo
X

X

sau nó theo chiều kim đồng hồ trong không gian ID. Các item với ID tương ứng 2, 3, 6,
10,13 được lưu trong các node trên mạng như sau: {2,3} được lưu tại node 3; {6} được
lưu tại node 9; {10} được lưu tại node 11; và {13} được lưu tại node 0
Lookup Process
Quá trình tìm kiếm là kết quả tự nhiên của cách chia không gian ID. Cả việc
chèn và tìm kiếm dữ liệu đều dựa trên việc tìm ID successor của một ID.
Ví dụ, khi node 11 muốn chèn một item mới với ID là 8, lookup được chuyển tiếp tới
node 3 là node đứng trước gần node 8 nhất trong bảng finger của node 11. Node lại
thực hiện quá trình tương tự, nó chuyển tiếp yêu cầu tới node 5 là node đứng trước gần
8 nhất trong bảng finger của nó. Node 5 thấy rằng 8 nằm giữa nó và successor của nó
(node 9), do đó nó trả về kết quả 9 theo đường đi ngược lại. Sau khi nhận được câu trả
lời, tầng ứng dụng trên node 11 sẽ liên lạc với tầng ứng dụng trên node 9 và yêu cầu
lưu một số giá trị với key là 8. Bất kỳ node nào muốn tìm kiếm key 8 đều thực hiện quá
trình tương tự và trong không quá M chặng, một node sẽ tìm ra node lưu các dữ liệu
ứng với key 8. Nói chung, trong điều kiện thông thường, một tìm kiếm sẽ hoàn thành
trong O(log2(N)) chặng.
Joins, Leaves and Maintenance

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ố
Hình 1.4. (a) Một mạng Chord với 6 node, 5 item và N=16. (b) Nguyên tắc chung của

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ỳ. Bảng định tuyến

bảng routing table. (c) Bảng routing table của node 3 và node 11

của n được khởi tạo bằng cách copy bảng định tuyến của s hoặc 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

23

24


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

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.
Giả mã của các quá trình tìm kiếm successor của node n, khởi tạo bảng định
tuyến của n, cập nhật bảng finger của các node liên quan và quá trình stabilization như
sau:
//yêu cầu node n tìm successor của id
n.find_successor(id);

n’=find_predecessor(id);
return n’.successor;
// yêu cầu node n tìm predecessor của id
n.find_predecessor(id);
n’=n;
while (id ∉ (n’, n’.successor])
n’=n’.closest_preceding_finger(id);
return n’;

Ngô Hoàng Giang

predecessor = n ;
// khởi tạo bảng finger table của node
// n’ là một node bất kỳ trên mạng
n.init_finger_table(n’)
finger[1].node = n’.fin_successor(finger[1].start);
predecessor = successor.predecessor;
successor.predecessor = n;
for i = 1 to m-1
if (finger[i+1].start ∈ [n, finger[i].node))
finger[i+1].node = finger[i].node;
else
finger[i+1].node
=
n’.find_successor(finger[i+1].start);
// cập nhật n vào các node có finger table that đổi
n.update_others()
for i = 1 to m
//tìm node p cuối cùng có finger thứ i là n
p = find_predecessor(n-2i-1);

p.update_finger_table(n.,i);

// trả về finger gần nhất đứng trước id
n.closest_preceding_finger(id);
for i = m downto 1
if (finger[i].node ∈ (n; id))
return finger[i].node;
return n;

//nếu s là finger thứ i của n, cập nhật s vào bảng finger của n
n.update_finger_table(s,i)
if (s ∈ [n, finger[i].node))
finger[i].node = s;
p = predecessor; // lấy node đầu tiên đứng trước n
p.update_finger_table(s,i);

Thuật toán 1.1. Giả mã tìm node successor của ID n

Thuật toán 1.2. Giả mã cho hoạt động join vào mạng của một node

#define successor finger[1].node

n.join(n’)
predecessor = nil;
successor = n’.find_successor(n);

// node n join vào mạng;
// n’ là một node tùy ý trong mạng
n.join(n’)
if (n’)

init_finger_table(n’);
update_others();
// chuyển key trong khoảng (predecessor,n] từ successor
else // n là node duy nhất trên mạng
for i = 1 to m
finger[i].node = n;

// định kỳ kiểm tra successor đứng ngay n và báo cho successor
//biết về n
n.stabilize()
x = successor.predecessor;
if ( x ∈ (n, successor))
successor = x;
successor.notify(n);

25

26


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

// n’ nghĩ n’ là predecessor của n
n.notify(n’)

if (predecessor is nil or n’ ∈ (predecessor,n))
predecessor = n’ ;
// định kỳ cập nhật các finger trong bảng finger table
n.fix_finger()
i = random index > 1 into finger []
finger[i].node = find_successor(finger[i].start);
Thuật toán 1.3. Giả mã cho quá trình stabilization
Hình 1.5 cho chúng ta thấy một ví dụ về quá trình join vào mạng của một node.
X

X

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

Hình 1.5. Quá trình một node join vào mạng

trỏ predecessor vào node 21

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.6 dưới đây cho chúng ta một ví dụ về bảng định tuyến của các node khi

X

X

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ẽ.

27

28


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

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.

Ngô Hoàng Giang

Upper Services and Applications
Một số ứng dụng như cooperative file-system [14], một ứng dụng đọc/ghi hệ
thống file và một DNS đã được xây dựng dựa trên Chord. Đồng thời, một thuật toán
broadcast cũng được phát triển cho Chord
Implementation
Cài đặt chính của Chord được thực hiện bằng nghôn ngữ C++. Thêm nữa, một

C++ discrete-event simulator cũng đã được xây dựng. Naanou là một cài đặt C# của
Chord với một ứng dụng chia sẻ file được xây dựng dựa trên nó.

1.3.2. Kademlia

Hình 1.6. (a) Bảng finger và vị trí của key sau khi node 6 join. (b)Bảng finger và vị trí

Overlay graph
Kademlia graph tổ chức các ID trong không gian vòng tròn trong đó ID của các

của key sau khi node 3 leave.

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

Replication and Fault Tolerance
Các node rời khỏi mạng đột ngột có hai tác động tiêu cực. Thứ nhất là dẫn đế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

mất dữ liệu lưu trên các node này, thứ hai một phần của vòng bị mấtl liên kết dẫn đến

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

một số ID sẽ không được tìm thấy. Có thể xảy ra tình huống một dãy các node liền

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

nhau cùng rời khỏi mạng đột ngột. Chord giải quyết vấn đề này bằng cách cho mỗ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

node lưu một danh sách log2(N) node theo sau nó trong không gian ID. Danh sách này

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

có hai mục đích, thứ nhất là nếu một node phát hiện successor của nó không hoạt động,

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ó

nó sẽ thay thế bằng node ngay cạnh trong successor list, thứ hai, mọi dữ liệu được lưu

prefix là 0010. Quy tắc này được minh họa trong Hình 1.7 dưới đây:
X

X

trên một node nào đó cũng được lưu trên các node trong successor list. Dữ liệu chỉ bị
mất hay vòng chỉ bị đứt khi có log2(N) + 1 node liên tiếp fail đồng thời.

29

30


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp


Ngô Hoàng Giang

trả về, node lại chọn α node ngẫu nhiên và lặp lại quá trình tương tự cho đến khi ID
được tìm thấy.
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.

Hình 1.7.Con trỏ của node 3 (0011) trong Kademlia

Nếu một k-bucket được bổ xung quá nhiều node từ một cây con nào đó, quy tắc
Kademlia không lưu một danh sách các node gần với nó trong không gian ID

thay thế least-recently-used sẽ được áp dụng.

như successor list của Chord. Tuy nhiên với mỗi cây con trong không gian ID, node

Tuy nhiên Kademlia sử dụng một thống kê từ các nghiên cứu về peer-to-peer

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

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ẽ

contact trong một cây con là subtree.


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ờ

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

sử dụng lưu lượng lookup, kỹ thuật này khác với kỹ thuật stabilization của Chord.

ID. Một item được lưu trên node mà khoảng cách giữa hai ID là nhỏ nhất.

XOR metric dẫn đến mọi node nhận được truy vấn từ node chứa trong bảng định tuyến

Lookup process

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

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à
Để tăng cường khả năng tìm kiếm và giảm thời gian phản hồi, Kademlia thực

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

hiện các lookup đồng thời và theo phương pháp lặp.
Khi một node tìm kiếm một ID, nó sẽ kiểm tra cây con nào chứa ID và chuyển

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

yêu cầu lookup đến α node ngẫu nhiên từ được lựa chọn từ k-bucket của cây con đó.


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ú ý

Mỗi node lại trả về một k-bucket của cây con nhỏ hơn gần hơn với ID. Từ bucket được

đến độ trễ và tính vị trí của các node.

31

32


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

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
k-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.
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.


1.3.3. 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 β.

Hình 1.8. Minh họa cách chọn bảng định tuyến của một node Tapestry

Hàng thứ nhất trong bảng định tuyến của một node chứa các node có ID khác
với ID của node đó ở chữ số thứ nhất. Tương tự như vậy, hàng thứ hai trong bảng định

33

34


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

tuyến chứa các node có ID giống với ID của node đó ở chữ số thứ nhất nhưng khác ở

Ngô Hoàng Giang

Quá trình định tuyến được minh họa trong Hình 1.9
X

chữ số thứ hai. Các hàng còn lại của bảng định tuyến được tổ chức tương tự như vậy.
Hình 1.8 minh họa cách chia không gian ID của Tapestry .

X

X

Để tăng tính dự phòng, ở mỗi mức, mỗi contact lại được dự phòng bởi c contact
cùng nhóm. Một node Tapestry có bảng định tuyến với logβN mức, mỗi mức có c × β
contact. Như vậy bảng định tuyến của Tapestry có kích thước c × β × logβN.
Mapping items onto nodes
Tapestry ánh xạ ID của item tới một node duy nhất gọi là root của ID. Nếu tồn
tại node N có ID bằng với ID của item thì node được gọi là root của item đó. Nếu
không tồn tại node có ID bằng với ID của item thì item được ánh xạ vào node có ID
gần ID của nó nhất. Tapestry không chuyển item đến node nào đó trên mạng mà chỉ
thiết lập con trỏ trên các node nằm trên đường đi từ node chứa item tới node root của

Hình 1.9. Đường đi của thông điệp từ node 5230 tới node 42AD

item trỏ tới item.
Để thông báo về sự tồn tại của một item I, node n lưu item định kỳ gửi thông
Lookup process

điệp đến root của item đó. Mỗi node dọc đường đi của thông điệp sẽ lưu một con trỏ

Quá trình định tuyến của Tapestry diễn ra như sau. Để tìm một node gần với

ánh xạ (I,n) thay vì lưu lại bản thân item. Khi có vài bản sao của một item trên một số

một ID x nhất, node sẽ dùng bảng định tuyến kiểm tra từ trên xuống dưới xem x rơi

node, mỗi node sẽ thông báo về bản sao nó lưu. Một node nhận được nhiều thông báo


vào khoảng ID nào. Nếu x rơi vào khoảng ID khác với khoảng ID của node, node sẽ

về một item, nó sẽ lưu ánh xạ theo thứ tự latency.

chuyển tiếp truy vấn tới contact của nó nằm trong khoảng ID đó. Quá trình cứ diễn ra

Quá trình publishing được minh họa trong Hình 1.10
X

như vậy cho đến khi đến node root của x. Nếu trong bảng định tuyến của node không
tồn tại contact như vậy, node sẽ chuyển tiếp truy vấn tới node có ID gần với x nhất.

35

36


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

Join/leave and maintenance
Chèn một node N vào mạng bắt đầu bằng việc tìm kiếm node gốc S (có chung
prefix độ dài p) của N. Node S sau đó gửi thông điệp tới các node cùng chung prefix,
các node này sau khi nhận được thông điệp sẽ chèn N vào trong bảng định tuyến của
chúng và chuyển các ánh xạ tham chiếu vị trí nếu cần thiết.

Quá trình khởi tạo bảng định tuyến của N diễn ra như sau. N tìm kiếm các
neighbour gần nhất bắt đầu với mức định tuyến p, điền các neighbour này vào bảng
định tuyến ở mức p dùng k node gần nhất. Sau đó N giảm p và tiếp tục quá trình như
vậy cho đến khi các mức trong bảng định tuyến được điền đầy.
Hình 1.10. Ví dụ về Tapestry node publish item

Một node muốn truy vấn một item nào đó, nó sẽ gửi truy vấn đến root của item.
Mỗi node trên đường đi sẽ kiểm tra xem nó có ánh xạ vị trí của item đó không, nếu có
nó sẽ chuyển truy vấn theo hướng đến node lưu item, nếu không có nó sẽ chuyển tiếp
truy vấn theo hướng đến root của item.

Overlay graph
Kelisp băm không gian ID vào k nhóm sử dụng consistent hashing, đánh số từ 0
đến k-1. Do sử dụng thuật toán consistent hashing nên Kelips đảm bảo rằng số node

Quá trình truy vấn item được minh họa trong Hình 1.11 dưới đây
X

1.3.4. Kelips

X

trong mỗi nhóm là n/k với xác xuất cao.
Bảng định tuyến của một Kelips node bao gồm ba phần:
− Affinity group view: thông tin về một tập các node nằm trong cùng nhóm.
− Contact: đối với mỗi nhóm, Kelips lưu thông tin về một tập nhỏ các node trong
nhóm đó.
− Filetuples: một tập các bộ, mỗi bộ lưu thông tin về một file và node chứa file đó.
Một node chỉ lưu thông tin về các file chứa trong các node nằm cùng nhóm với
node đó.

Hình 1.12 minh họa bảng định tuyến của một node trong hệ thống có 10 nhóm:
X

X

Hình 1.11. Ví dụ về Tapestry node tìm kiếm item

37

38


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

truy vấn đến nhiều contact, hoặc node contact sẽ gửi yêu cầu truy vấn tới các node
khác cùng nhóm với nó, hoặc node truy vấn có thể yêu cầu một node khác cùng nhóm
với nó thực hiện truy vấn item.
Một node muốn chèn một item mới sẽ sử dụng consistent hashing xem item đó
được ánh xạ vào nhóm nào. Sau đó node sẽ gửi yêu cầu chèn dữ liệu tới một contact
thuộc nhóm đó, node contact sẽ chọn ngẫu nhiên một node bất kỳ trong nhóm và gửi
yêu cầu chèn dữ liệu. Node này sẽ trở thành node lưu item. Nếu yêu cầu chèn dữ liệu
không thực hiện được, quá trình gửi lại yêu cầu chèn dữ liệu diễn ra như quá trình gửi
lại yêu cầu truy vấn.


1.4. Các phương pháp đánh giá, thử nghiệm mạng P2P
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 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.
Hình 1.12. 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ể

Trong phương pháp phân tích, người ta đánh giá mô hình toán học của hệ thống.
Tuy nhiên phương pháp này chỉ hiệu quả đối với các mô hình đơn giản trong khi các
mô hình p2p thực tế thường phức tạp.
Trong phương pháp thực nghiệm, người ta tiến hành thử nghiệm trên hệ thống

Mapping items onto nodes
Một item được băm vào một trong các nhóm của hệ thống sử dụng cùng thuật
toán consistent hashing được dùng để băm các node và được lưu trên một node bất kỳ
trong nhóm này.

thật, tuy nhiên các hệ thống p2p có số lượng node rất lớn, nếu thực nghiệm trên hệ
thống có quy mô nhỏ thì kết quả sẽ không có ý nghĩa. Đồng thời các thay đổi như thay
đổi topology mạng hay thay đổi trong protocol trên các node sẽ khó và tốn nhiều thời
gian.
Phương pháp mô phỏng cũng có những hạn chế, tuy nhiên nó khắc phục được

Lookup process
Khi một node muốn truy vấn một item, nó sẽ dùng consistent hashing xem item
được ánh xạ vào nhóm nào và gửi truy vấn đến contact gần nhất trong nhóm đó. Nếu
trong các bộ của node contact có item cần tìm, node sẽ trả kết quả về cho node truy vấn,
nếu node contact không có thông tin về item cần tìm, node truy vấn có thể gửi yêu cầu

39


những hạn chế của phương pháp phân tích và phương pháp thực nghiệm. Tại thời điểm
này, phương pháp mô phỏng không hoàn toàn độc lập với hai phương pháp trên. Nếu
có thể, nên sử dụng phương pháp phân tích và chứng minh bằng phương pháp mô
phỏng. Tương tự, các kết quả mô phỏng nên được chứng minh bằng thực nghiệm trên

40


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

các hệ thống thật. Hiện nay, hầu hết các nghiên cứu về p2p được thực hiện sử dụng
phương pháp mô phỏng.
PlanetSim

1.4.1. Khảo sát các simulator mô phỏng mạng overlay
Cộng đồng nghiên cứu sử dụng khá nhiều simulator khác nhau, có simulator

Neurogrid

đang được phát triển, có simulator không được phát triển tiếp.
Simulator
P2PSim
PeerSim
Query-Cycle
Simulator

Narses
Neurogrid
GPS

Ngôn ngữ
C++
Java
Java

Trạng thái
Active
Active
Inactive

License
GPL
LGPL
Apache

Java
Java
Java

Inactive
Inactive
Inactive

Overlay Weaver
DHTSim
PlanetSim


Java
Java
Java

Active
Active
Active

GPL-like
GPL
Open-Source, No
License
Apache
GPL
LGPL

Simulator
P2PSim
PeerSim
Narses
Overlay Weaver
PlanetSim
Neurogrid

Ngô Hoàng Giang

một số giải thuật
cho
structured

overlay
Mô phỏng discreteevent, sử dụng API
chung.
Discrete-event cho
mạng không có cấu
trúc, có thể chỉnh
sửa để sử dụng cho
mạng có cấu trúc

mã nguồn tốt
Có tài liệu về thiết 100 000 node
kế và API
Có tài liệu mở rộng 300 000 node
trên web

Thống kê
Cung cấp một lượng hữu hạn
thống kê.
Có thể cài đặt các component
để thống kê dữ liệu
Có hỗ trợ nhưng phải cài đặt
Không thể thu thập thống kê
Không có cơ chế thu thập thống
kê nhưng có thể xem trực quan
Cần sửa mã nguồn

Underlying network
end-to-end time graph, G2 graph,
GT-ITM, random, và Euclidean
Không được mô hình hóa

Một số topology
Không được mô hình hóa
Một số ít topology
Không được mô hình hóa

Bảng 1.1. Trạng thái phát triển của các simulator
Bảng 1.2. Đặc điểm của các simulator

Đặc điểm của các simulator như sau:
Simulator

Kiến trúc

Tính dễ dùng

P2PSim

Discrete-event cho
mạng P2P có cấu
trúc
Query-Cycle hoặc
Discrete-event cho
mạng không cấu
trúc. Có thể mô
phỏng node joining,
departing và failing.
Discrete-event,
flow-based topology
có thể điều chỉnh
Giả lập phân tán và


Rất ít tài liệu

PeerSim

Narses
Overlay Weaver

Tính khả mở (max
nodes)
3000 nodes

1.4.2. P2PSim
P2PSim là phần mềm mã nguồn mở, đa tiến trình, discrete event để mô phỏng
mạng overlay có cấu trúc do một nhóm nghiên cứu mạng p2p tại MIT phát triển.
P2PSim được nhiều nhóm nghiên cứu sử dụng để nghiên cứu DHT.

Chỉ có mô phỏng 106 node
Query-Cycle là có
tài liệu

P2PSim hỗ trợ đến mô phỏng mạng với số node tối đa là 3000, với nhiều
topology khác nhau như end-to-end time graph, G2 graph, GT-ITM, random, và
Euclidean. Tuy nhiên tài liệu về P2PSim rất hạn chế.
Luận văn này sử dụng P2PSim để mô phỏng và đánh giá, so sánh hiệu năng

600 node, tùy thuộc 600 node
vào topology bên
dưới
Tài liệu về API và 4000 node


giữa các DHT.
Địa chỉ web site của P2PSim : />HU

41

U

42


Luận văn tốt nghiệp

Chương 2.

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn này đánh giá, so sánh hiệu năng của một số well-known DHT, đặc biệt

Đánh giá hiệu năng một số DHT
1B

là trong môi trường churn rate cao. Từ kết quả này kết hợp với phân tích lý thuyết, luận

2.1. Bài toán thực tế


văn đưa ra giải pháp cải tiến hiệu năng cho một DHT tiềm năng (Chord) trong điều
kiện churn rate cao.

Hầu hết các DHT được thiết kế để hoạt động với các peer là máy tính. Đây là môi
trường có độ ổn định khá cao, tức là khoảng thời gian từ lúc một node gia nhập cho đến
khi rời khỏi mạng tương đối dài. Trong môi trường này, các DHT hoạt động với hiệu
năng tương đối cao.

2.2. Đánh giá hiệu năng một số DHT
2.2.1. Mục tiêu và cơ sở lý luận
Phần này của luận văn phân tích, đánh giá hiệu năng của các DHT nhằm tạo cơ

Hiệu năng của một DHT được đánh giá thông qua hai tham số chính là tỷ lệ tìm
kiếm dữ liệu thành công khi dữ liệu có trên mạng và độ trễ tìm kiếm.

sở cho việc đưa ra các giải pháp cải tiến hiệu năng của chúng đồng thời giúp các ứng
dụng lựa chọn, sử dụng các DHT hiệu quả hơn.

Vài năm trở lại đây các sản phẩm cho người sử dụng có thể nối mạng phát triển

Đánh giá hiệu năng của các DHT bao gồm nhiều khía cạnh:

hết sức mạnh mẽ và đa dạng, các sản phầm không chỉ có máy tính mà còn có các thiết

− Xác định ngưỡng churn rate mà các DHT hoạt động tốt

bị như điện thoại, PDA, tivi, …. Cũng giống như người sử dụng máy tính, người sử

− Phân tích ảnh hưởng của tham số thiết kế đến hiệu năng của DHT


dụng các thiết bị này cũng có nhu cầu chia sẻ, khai thác nguồn tài nguyên hết sức

− So sánh hiệu năng của các DHT khác nhau

phong phú trên mạng p2p, đặc biệt là các tài nguyên như video, audio. Tuy nhiên thời
gian kết nối mạng của các thiết bị này thường rất ngắn, thậm chí có thể tính bằng giây,
dẫn đến sự bất ổn định của mạng. Các DHT vốn được thiết kế để hoạt động với các
peer là máy tính lúc này không đáp ứng được yêu cầu về hiệu năng do khoảng thời gian
các peer ở trên mạng quá ngắn. Một mạng như vậy người ta gọi là mạng có churn rate
cao.
Một bài toán mới đặt ra cho cộng đồng nghiên cứu p2p là xây dựng các mạng p2p
thích nghi được với môi trường churn rate cao. Một trong những giải pháp được nhiều
người quan tâm là cải tiến các DHT hiện có để chúng hoạt động hiệu quả ngay cả trong
môi trường có churn rate cao. Việc đưa ra được giải pháp cải tiến hiệu năng cần căn cứ
vào một số cơ sở, một trong những cơ sở quan trọng là việc đánh giá hiệu năng của
các DHT trong môi trường mới.

− Đánh giá tính khả mở của các DHT.
Các đánh giá được thực hiện trong dải churn rate rộng từ cao đến thấp, đặc biệt
chú trọng đến trường hợp churn rate cao.
Khi churn rate càng cao, độ ổn định của mạng càng thấp thì hiệu năng của các
DHT càng giảm. Do đó một trong những nhiệm vụ đầu tiên của phần đánh giá hiệu
năng là xác định ngưỡng churn rate mà các DHT hoạt động với hiệu năng cao.
Đánh giá ảnh hưởng của các tham số thiết kế đến hiệu năng một DHT cho phép
xác định các tham số quan trọng đối với hiệu năng của DHT và xác định khoảng giá trị
của các tham số trong đó DHT làm việc tốt.
So sánh hiệu năng của các DHT khác nhau trong các điều kiện khác nhau cho
thấy trong từng điều kiện cụ thê, DHT nào làm việc tốt hơn và tốt hơn ở những khía
cạnh nào.


43

44


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

Đánh giá ảnh hưởng của các tham số thiết kế và so sánh hiệu năng của các DHT

Việc đánh giá hiệu năng của một DHT, so sánh hiệu năng giữa các DHT dựa

khác nhau không những có ích trong việc nghiên cứu và cải tiến DHT mà còn cho phép

trên đường convex hull. Đường convex hull là đường bao nhỏ nhất của một hợp điểm.

các ứng dụng lựa chọn DHT phù hợp với điều kiện môi trường, điều chỉnh các tham số

Ở đây chúng ta chỉ quan tâm đến đoạn gần với hai trục từ điểm có hoành độ cao nhất

cần thiết để đạt được hiệu quả tối ưu.

đến điểm có tung độ cao nhất. Khi trục đứng là tỷ lệ tìm kiếm thất bại hoặc là độ trễ

Tính khả mở là một đặc tính quan trọng của DHT, một DHT hiệu quả phải có

tính khả mở cao. Kết quả đánh giá tính khả mở của các DHT có thể làm cơ sở để lựa
chọn, sử dụng DHT.

tìm kiếm thì đường này chính là sự kết hợp tối ưu giữa hiệu năng và chi phí.
Có hai loại đường convex hull, đường overall convex hull và đường parameter
convex hull. Đường overall convex hull là đường convex hull của tất cả các điểm ứng
với tất cả các bộ tham số. P2PSim còn cho phép chỉ biểu diễn các điểm ứng với một

2.2.2. Quá trình thực nghiệm và phương pháp đánh giá hiệu năng

giá trị nào đó của một tham số trên đồ thị. Khi đó, đường convex hull của tập điểm này

Các DHT được mô phỏng với nhiều bộ tham số khác nhau sử dụng phần mềm

gọi là đường parameter convex hull ứng với tham số đó. Đường overall convex hull

mô phỏng P2PSim. Quá trình mô phỏng được thực hiện trong nhiều tháng với số lượng

được sử dụng để đánh giá hiệu năng tổng quát trong khi đường parameter convex hull

mô phỏng lên đến hơn 20 000 để đảm bảo kết quả mô phỏng ổn định.

được dùng để phân tích ảnh hưởng của các tham số đến hiệu năng của DHT.

Ứng với mỗi bộ tham số, kết quả mô phỏng DHT thống kê các thông số hiệu
năng của DHT như tỷ lệ tìm kiếm thành công (hoặc tỷ lệ tìm kiếm thất bại), độ trễ tìm
kiếm, băng thông trung bình mỗi node sử dụng,….
Các mô phỏng này được biểu diễn trên độ thị hai chiều với trục đứng biểu diễn
tỷ lệ tìm kiếm thành công/thất bại, hoặc độ trễ tìm kiếm và trục ngang là băng thông
trung bình mỗi node sử dụng. Nói cách khác, trục đứng biểu diễn các thông số hiệu

năng và trục ngang biểu diễn chi phí phải bỏ ra để đạt được hiệu năng đó. Rõ ràng, một
DHT tốt nếu có tỷ lệ tìm kiếm thành công cao, độ trễ tìm kiếm thấp và băng thông mỗi
node sử dụng trung bình thấp.
Kết quả mô phỏng DHT với một bộ tham số đầu vào tương ứng với một điểm trên
đồ thị. Khi mô phỏng DHT với nhiều bộ tham số khác nhau, ta có nhiều điểm trên
đồ thị.
Hình 2.1 là một đồ thị biểu diễn kết quả mô phỏng giao thức Chord với trục
X

đứng là tỷ lệ tìm kiếm thất bại và trục ngang là băng thông trung bình mỗi node sử

Hình 2.1. Node join/leave với interval=600 s trong mạng Chord 100 node

dụng.

45

46


Luận văn tốt nghiệp

Ngô Hoàng Giang

Luận văn tốt nghiệp

Ngô Hoàng Giang

2.2.3. Xác định ngưỡng churn rate các DHT làm việc tốt
2.2.3.1.

Mục tiêu
Xác định ngưỡng churn rate mà từng DHT còn làm việc với hiệu quả cao, cụ thể là:
4B

− Xác định churn rate mà tỷ lệ tìm kiếm dữ liệu thành công của DHT đạt 90% trở lên
cho một số trường hợp tốt.
− Xác định khoảng giá trị của các tham số của DHT trong những trường hợp này
Phương pháp xác định ngưỡng
2.2.3.2.
Quá trình tìm ra churn rate cho tỷ lệ tìm kiếm thành công trên 90% trong các trường
5B

hợp tốt bao gồm hai quá trình đan xen: quá trình chọn ra churn rate cho hiệu năng cao
và quá trình chọn ra dải giá trị tốt của từng tham số.
Việc chọn các trường hợp tốt được thực hiện bằng cách mô phỏng với các tham
số nhận giá trị biến thiên trong một dải rộng. Dựa trên các kết quả đạt được, chúng tôi
chọn ra các dải giá trị tham số cho kết quả tốt, các giải giá trị này hẹp hơn giải giá trị
trong mô phỏng đầu tiên. DHT lại được mô phỏng với giải giá trị này.
Quá trình chọn churn rate bắt đầu bằng mô phỏng DHT với churn rate cao, hiệu
năng của DHT trong trường hợp này thấp, tỷ lệ tìm kiếm thành công < 90 % kể cả
những trường hợp tốt. Sau đó, DHT lại được mô phỏng với churn rate rất thấp, hiệu

Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate

năng của DHT trong trường hợp này tốt hơn cả yêu cầu, tỷ lệ tìm kiếm thành công >
churn rate nằm giữa hai churn rate trên và thực hiện mô phỏng. Quá trình chọn churn

2.2.3.3.
Kịch bản mô phỏng
Kịch bản mô phỏng như sau


rate diễn ra như vậy cho đến khi chọn được churn rate cho kết quả > 90 % trong các

− DHT được mô phỏng: Chord, Kademlia, Tapestry, Kelips

90 % cho hầu hết nhiều trường hợp. Dựa trên hai mô phỏng trên, chúng tôi chọn ra

6B

− Topology của mạng: Euclidean

trường hợp tốt.

− Số node trong mạng: 100, 1000 node

Quá trình lựa chọn trên được biểu diễn trong đồ thị

− Round Trip Time trung bình giữa các node trong mạng: 2s
− Tốc độ sinh tìm kiếm trung bình: 10s/lookup/node

47

48


×