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

Luận văn thạc sĩ 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.79 MB, 96 trang )

NGƠ HỒNG GIANG

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
NGÀNH: CÔNG NGHỆ THÔNG TIN

CÔNG NGHỆ THÔNG TIN

2006 - 2008
Hà Nội
2008

ĐÁ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
NĂNG CỦA THUẬT TỐN CHORD

NGƠ HỒNG GIANG

HÀ NỘI 2008


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
NGÀNH: CÔNG NGHỆ THÔNG TIN



3898

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

NGƠ HỒNG GIANG

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ơ Hồng Giang

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

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

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

Độc lập – Tự do – Hạnh phúc

LỜI CAM ĐOAN
Luận văn thạc sỹ này do tôi nghiên cứu và thực hiện dưới sự hướng dẫn

của Thầy giáo TS. Nguyễn Chấn Hùng. Để hoàn thành bản luận văn này, ngồ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
hoặc thiết kế tốt nghiệp của người khác.

Hà Nội, ngày 28 tháng 10 năm 2008
(Ký và ghi rõ họ tên)

Ngơ Hồng Giang

1


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

Ngơ Hồng Giang

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 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
những thơng tin q báu giúp đỡ tơi hồ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 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ể hồ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 ln cổ vũ động viên tơi hồn thiện bản luận văn này.

Hà Nội, ngày 28 tháng 10 năm 2008

Ngơ Hồng Giang


2


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

Ngơ Hồng Giang

Mục lục
LỜI CAM ĐOAN ............................................................................................................1
U

U

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

U

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

U

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

U

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


U

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

U

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

U

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

U

Chương 1.
U

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

U

1.1.
U

U


U

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

U

U

U

1.1.1.

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

1.1.2.

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

1.1.3.

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

1.1.4.

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

U

U


U

U

U

U

U

U

U

U

U

U

U

U

1.2.
U

U

U


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

U

U

U

1.2.1.

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

1.2.2.

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

U

U

U

U

U

U

1.3.

U

U

U

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

U

U

U

1.3.1.

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

1.3.2.

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

1.3.3.

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

1.3.4.

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


U

U

U

U

U

U

U

U

U

U

U

1.4.
U

U

U

U


U

U

U

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

U

1.4.1.

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

1.4.2.

P2PSim .....................................................................................................42

U

U

U

U

U


U

U

U

3


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

Chương 2.
U

Ngơ Hồng Giang

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

U

U

U

2.1.

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

2.2.


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

U

U

U

U

U

U

U

U

2.2.1.

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

2.2.2.

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

2.2.3.

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


2.2.4.

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

2.2.5.

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

Chương 3.

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

U

U

U

U

U

U

U

U

U


U

U

U

U

U

U

U

U

U

U

U

U

U

U

U


3.1.

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

3.2.

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

3.3.

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

U

U

U

U

U

U

U

U

U


U

U

U

3.3.1.

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

3.3.2.

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

U

U

U

U

U

U

3.4.
U

U


U

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

U

U

U

3.4.1.

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

3.4.2.

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

U

U

U

U

U

U


3.5.
U

U

U

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

U

U

U

3.5.1.

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

3.5.2.

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

U

U

U


U

U

U

U

U

U

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

U

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

4


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

Ngơ Hồng Giang

Danh mục thuật ngữ
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
khoảng thời gian.

5


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

Ngơ Hồng Giang

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

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
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 tốn q trình xác định churn rate ............................................48
U

U

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

theo băng thơng trung bình 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


6


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

Ngơ Hồng Giang

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
U

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

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

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

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
U

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ó
kích thước khác nhau với các node join/leave với interval=600s ..................................62
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

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

7


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


Ngơ Hồng Giang

Danh mục thuật tốn
Thuật tốn 1.1. Giả mã tìm node successor của ID n.....................................................25
U

U

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

U

Thuật tốn 1.3. Giả mã cho q trình stabilization ........................................................27
U

U

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

U

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

U

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

U

U

U

Thuật tốn 3.4. Q trình caching ..................................................................................81
U

Thuật tốn 3.5. Đồng bộ hóa vịng proxy và vịng node Chord thơng thường ..............85
U

U

U

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

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

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

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

U

U

U

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

8


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

Ngơ Hồng Giang

Danh mục bảng
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
U

U

Bảng 2.1. Bảng tham số của Kademlia ..........................................................................49
U


U

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

U

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

U

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

U

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
U

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

U

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

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


U

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

U

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

U

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

U

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

U

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

U

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


U

U

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

U

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

U

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

U

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

9


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

Ngơ Hồng Giang


Lời mở đầu
Khoảng mười năm trở lại đây, thế giới đã chứng kiến sự bùng nổ của Internet
băng thơng rộng, cùng với nó là sự phát triển mạnh mẽ của các ứng dụng peer-to-peer.
Với nhiều ưu điểm hứa hẹn như tính hiệu quả, linh hoạt và khả năng mở rộng cao, các
mạng peer-to-peer overlay đã và đang thu hút được nhiều sự quan tâm từ cộng đồng
nghiên cứu. Các mạng peer-to-peer overlay đã phát triển qua ba thế hệ, thế hệ hiện nay
là mạng structured overlay dựa trên khả năng lưu trữ và tìm kiếm dữ liệu hiệu quả của
cơ chế bảng băm phân tán (Distributed Hash Table hay DHT).
Các DHT được thiết kế để làm trong môi trường tương đối ổn định với các peer
là máy tính. Tuy nhiên, vài năm gần đây, các thiết bị nối mạng ngày càng phong phú,
đa dạng như tivi hay các thiết bị wireless như điện thoại, PDA, …. Các thiết bị này kết
nối và rời khỏi mạng sau một thời gian ngắn (churn rate cao) khiến cho thông tin về
các peer trên mạng liên tục thay đổi dẫn đến hiệu năng của các DHT giảm sút rõ rệt.
Đá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ài toán đang rất được quan tâm hiện nay.
Luận văn bao gồm ba phần. Phần thứ nhất tóm tắt lý thuyết chung về mạng
peer-to-peer. Phần thứ hai, luận văn phân tích, đánh giá hiệu năng của một số DHT nổi
tiếng như Chord, Kademlia, Tapestry, Kelips trong điều kiện mạng churn rate cao. Dựa
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
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.
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].

10


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

Chương 1.


Ngơ Hồng Giang

Lý thuyết tổng quan
0B

1.1. Lý thuyết chung về về mạng P2P
1.1.1. Khái niệm mạng P2P
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
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
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 q trình phát triển khác, hiện nay
chưa có một định nghĩa chính xác về mạng P2P. Dưới đây là một số định nghĩa về P2P:
Theo Oram, P2P là một lớp các ứng dụng tận dụng các tài nguyên như bộ nhớ,
năng lực xử lý, nội dung, … tại các điểm cuối trong mạng Internet. Bởi vì truy cập vào
các tài nguyên phân tán này cũng có nghĩa là hoạt động trong một môi trường liên kết
không ổn định và với địa chỉ IP có thể thay đổi, các node P2P phải hoạt động ngồ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
− Các peer vừa có thể hoạt động như client vừa có thể hoạt động như server
− Nội dung chính trong mạng được cung cấp bởi các peer
− Mạng trao quyền điều khiển và tự trị cho các peer
− Mạng hỗ trợ các peer không kết nối thường xuyên và các peer khơng có địa chỉ
IP cố định
Theo P2P Working Group: P2P computing là sự chia sẻ tài nguyên và dịch vụ
bằng cách trao đổi trực tiếp giữa các hệ thống. Tài nguyên và dịch vụ ở đây bao gồm


11


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

Ngơ Hồng Giang

thơng tin, chu kỳ xử lý, không gian lưu trữ. Peer-to-peer computing tận dụng sức mạnh
tính tố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.

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
phân tán. Theo Oram, P2P computing bắt đầu trở thành đề tài được nhiều người quan
tâm từ giữa những năm 2000. Trong khoảng thời gian từ đó đến nay, P2P trải qua vài
thế hệ, mỗi thế hệ được phát triển với những động cơ, mục đích của mình.
Thế hệ thứ nhất
Thế hệ P2P đầu tiên bắt đầu với sự xuất hiện của ứng dụng chia sẻ file Napster.
Napster và các ứng dụng khác trong thế hệ thứ nhất sử dụng mơ hình centralized
directory. Đây là mơ hình hybrid P2P trong đó hầu hết các peer trong hệ thống có vai
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
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.

12


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

Ngơ Hồng Giang

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



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

Ngơ Hồng Giang

các peer kết nối trực tiếp với nó, q 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.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ê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ơ Hồng Giang

Thế hệ thứ ba
Sự đơn giản trong giải pháp và khả năng xóa bỏ điểm tập trung, chuyển trách
nhiệm pháp lý về phía người sử dụng cũng như hạn chế về tính khả mở do lưu lượng
quá lớn đã thu hút cộng đồng nghiên cứu về mạng và các hệ thống mở. Bài toán đặt ra
cho cộng đồng nghiên cứu là xây dựng một mạng P2P overlay khả mở khơng có điểm
điều khiển tập trung. Nỗ lực giải quyết bài toán này là sự xuất hiện của “structured P2P
overlay networks”.
Thế hệ thứ ba được khởi đầu với các dự án nghiên cứu như Chord, CAN, Pastry,
Tapestry và P-Grid. Các dự án này đưa ra khái niệm Distributed Hash
Table (DHT). Mỗi peer trong hệ thống có một ID thu được từ việc băm các đặc thuộc
tính đặc trưng của peer đó như địa chỉ IP hay public key. Mỗi data item cũng có một ID
thu được theo cách tương tự với các peer. Hash table lưu data dưới dạng cặp key-value.
Như vậy, node ID và cặp key-value được băm vào cùng một không gian ID. Các node
sau đó được nối với nhau theo một topology nào đó. Q trình tìm kiếm dữ liệu trở
thành q 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 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 hoàn
toàn phân tán. DHT đang được xem như là cách tiếp cận hợp lý cho vấn đề định vị và
định tuyến trong các hệ thống P2P. Cộng đồng nghiên cứu đã đưa ra nhiều DHT khác
nhau. Mỗi DHT hoạt động theo nguyên lý chung và có ưu điểm riêng, Chord với thiết
kế đơn giản, Tapestry và Pastry giải quyết được vấn đề proximity routing, …

15



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

Ngơ Hồng Giang

1.1.3. Ứng dụng p2p
Các ứng dụng p2p có thể chia vào bốn nhóm:
Chia sẻ file (file sharing): lưu trữ và chia sẻ nội dung là ứng dụng thành công
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
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
nhóm này bao gồm Napster, Gnutella, Freenet, Kazaa, Chord, ….
Tính tốn phân tán (distributed computing): các ứng dụng thuộc nhóm này sử
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
tố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ó
thể được sử dụng cho việc giải quyết bài toán trên các máy u cầu nhiều năng lực tính
tốn. SETI (Search for Ex-traterrestrial Intelligence) là một dự án nghiên cứu khoa học
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
mạng trong chù kỳ nhàn rỗi của chúng.
Cộng tác (collaboration): các ứng dụng cộng tác p2p cho phép người sử dụng
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
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.
Platform (nền): các platform p2p cung cấp hạ tầng hỗ trợ các ứng dụng sử dụng
cơ chế p2p. Các thành phần p2p được sử dụng bao gồm naming, discovery,
communication, security và resource aggregation. JXTA là một p2p platform cung cấp
hạ tầng tính tốn và lập trình mạng.

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

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

16


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

Ngơ Hồng Giang

Bảo mật (security): các cài đặt phân tán phát sinh thêm một số vấn đề bảo mật
so với kiến trúc client-server truyền thống. Bởi vì trong hệ thống p2p các peer là động
và không tin tưởng lẫn nhau nên để đạt được mức bảo mật cao trong các hệ thống p2p
sẽ khó hơn trong các hệ thống client-server. Các cơ chế bảo mật truyền thống để bảo vệ
dữ liệu và hệ thống khỏi tấn công, xâm nhập như firewall không thể bảo vệ thống p2p
bởi vì các hệ thống này phân tán và các cơ chế bảo mật có thể ngăn chặn, hạn chế q
trình truyền thơng p2p. Do đó cần đưa ra các khái niệm bảo mật mới cho phép tương
tác và xử lý phân tán trong các hệ thống p2p.
Tính tin cậy (reliability): một hệ thống tin cậy là một hệ thống có khả năng hồi
phục sau khi xuất hiện lỗi. Các cơ chế đảm bảo độ tin cậy trong mạng p2p bao gồm
nhân bản dữ liệu, phát hiện và khôi phục node bị lỗi, xây dựng nhiều cơ chế đảm bảo
thông tin định vị, tránh “single point of failure” và đảm bảo nhiều đường đi tới dữ liệu.
Tính linh hoạt (flexibility): một trong những tính chất quan trọng nhất trong các
hệ thống p2p là các peer tự chủ, chúng có thể join/leave bất kỳ lúc nào. Các hệ thống
p2p gần đây có quy mô lớn, điều khiển phân tán và hoạt động trong môi trường động.
Để giải quyết vấn đề quy mô và tính động của các hệ thống p2p, khi xây dựng các hệ
thống p2p cần chú ý đến khả năng điều chỉnh và tự tổ chức.
Cân bằng tải (load balancing) : vấn đề phân tán dữ liệu và tính tố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 tốn trong hệ thống p2p cũng có thể được cài đặt sử dụng mơ hình tự tổ
chức dựa trên agent.

17


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

Ngơ Hồng Giang

1.2. Lý thuyết về Distributed Hash Table (DHT)
1.2.1. Hash Table (bảng băm)
Một hash table là một cấu trúc dữ liệu ánh xạ giữa key và value. Tức là tương
ứng với một key, hash table sẽ trả về một value. Để thực hiện việc ánh xạ, hash table
sử dụng hash function tính tốn vị trí lưu value dựa trên key. Hash function phải đảm
bảo: tránh xung đột và dễ dàng thực hiện. Tránh xung đột nghĩa là ánh xạ giữa không
gian key và không gian địa chỉ phải đều và ngẫu nhiên đến mức có thể.

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

18


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

Ngơ Hồ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 q trình chuyển tiếp thơng điệp giống như q 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 để
đ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)
− Việc định tuyến và lấy dữ liệu nhanh và có thể hồ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
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.

19


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

Ngơ Hồng Giang

Hình 1.3. Distributed Hash Table

1.3. Giới thiệu một số DHT
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:
Overlay Graph (sơ đồ mạng overlay): đây là tiêu chuẩn chính để phân biệt các hệ
thống với nhau. Đối với mỗi overlay graph, chúng ta sẽ xem xét graph và bảng định
tuyến của mỗi node trong graph.
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
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
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 đó.
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

20


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

Ngơ Hồ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
này diễn ra như thế nào và chi phí thực hiện các tiến trình này.
Replication và fault tolerance (nhân bản và chịu lỗi): bên cạnh các node rời
khỏi mạng có báo trước, một số node có thể đột ngột rời khỏi mạng do một số nguyên
nhân như mất điện, đường truyền hỏng, …, trường hợp này khó xử lý hơn trường hợp
các node thông báo đến các node khác trước khi rời khỏi mạng. Replication là một giải
pháp cho trường hợp các node rời khỏi mạng mà không báo trước.
Upper services và applications (ứng dụng và dịch vụ bên trên): một số ứng dụng
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


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

Ngơ Hồng Giang

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ó
X

X

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à
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
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
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 +
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
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
finger. Hình 1.4(c) cho thấy bảng định tuyến của node 3 và node 11.
X


X

22


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

Ngơ Hồng Giang

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
bảng routing table. (c) Bảng routing table của node 3 và node 11

23


×