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

Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc

70 620 1

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 1,84 MB

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

Nội dung

ĐỖ THỊ LUÂN ĐÁNH GIÁ CÁC PHƯƠNG PHÁP TÌM KIẾM THÔNG TIN TRONG HỆ THỐNG MẠNG NGANG HÀNG CÓ CẤU TRÖC Ngành: Công nghệ thông tin Chuyên ngành: Truyền dữ liệu và mạng máy tính Mã số: LU

Trang 2

ĐỖ THỊ LUÂN

ĐÁNH GIÁ CÁC PHƯƠNG PHÁP TÌM KIẾM THÔNG TIN TRONG HỆ THỐNG MẠNG

NGANG HÀNG CÓ CẤU TRÖC

Ngành: Công nghệ thông tin

Chuyên ngành: Truyền dữ liệu và mạng máy tính

Mã số:

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN HOÀI SƠN

HÀ NỘI - 2014

Trang 3

LỜI CAM ĐOAN

Tôi xin 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 TS Nguyễn Hoài Sơn Để 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ê trong luận văn, tôi cam đoan không sao chép các công trình hoặc đề tài tốt nghiệp của người khác

Nếu có điều gì không đúng, tôi xin hoàn toàn chịu trách nhiệm trước Nhà trường và pháp luật./

Hà Nội, ngày tháng năm 2014

Học viên

Đỗ Thị Luân

Trang 4

LỜI CẢM ƠN

Để có được kết quả luận văn đã hoàn thành, trước hết tôi xin bày tỏ lòng biết ơn

sâu sắc tới TS Nguyễn Hoài Sơn Thầy đã tận tình hướng dẫn, giúp đỡ tôi trong suốt

quá trình làm luận văn Đồng thời tôi xin được cảm ơn các thầy giáo, cô giáo trong trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã giúp tôi có được các kiến thức chuyên ngành về hệ thống mạng máy tính và là kiến thức cơ sở để hoàn thành luận văn này

Cuối cùng, tôi xin cảm ơn gia đình, người thân, đồng nghiệp và bạn bè đã giúp

đỡ, động viên trong suốt quá trình làm luận văn tốt nghiệp

Hà Nội, ngày tháng năm 2014

Học viên

Đỗ Thị Luân

Trang 5

MỤC LỤC

CHƯƠNG 1 TÌM HIỂU MẠNG NGANG HÀNG VÀ CÁC ỨNG DỤNG 8

1.1 TỔNG QUAN MẠNG NGANG HÀNG 8

1.1.1 Định nghĩa mạng ngang hàng: 8

1.1.2 So sánh mô hình mạng ngang hàng p2p với mô hình client/ server 9

1.1.3 Lịch sử phát triển của P2P 9

1.1.4 Ứng dụng trong P2P 10

1.1.4.1 Mạng máy tính trong gia đình: 10 1.1.4.2 Mạng máy tính chia sẻ tệp tin: 10 1.1.4.3 Phần mềm ứng dụng P2P 10 1.2 PHÂN LOẠI MẠNG NGANG HÀNG 12

1.2.1 Mạng ngang hàng không cấu trúc (unstructured) 12

1.2.1.1 Mạng ngang hàng tập trung (Centralized): 13 1.2.1.2 Mạng ngang hàng thuần túy (Pure): 13 1.2.1.3 Mạng ngang hàng lai (Hybrid) 14 1.2.2 Mạng ngang hàng có cấu trúc (Structured) 15

CHƯƠNG 2 TỔNG QUAN VỀ MẠNG NGANG HÀNG CÓ CẤU TRÖC 16 2.1 MẠNG NGANG HÀNG CÓ CẤU TRÖC 16

2.2 GIAO THỨC CHORD 17

2.2.1 Mô hình mạng Chord 17

2.2.2 Ánh xạ khóa vào một nút trong mạng Chord 19

2.2.3 Tìm kiếm trong mạng Chord 20

2.2.4 Nút tham gia và ổn định mạng 22

2.3 PHƯƠNG PHÁP TÌM KIẾM THÔNG TIN TRÊN MẠNG NGANG HÀNG 23

2.3.1 Tìm kiếm chính xác 23

2.3.2 Tìm kiếm theo thuộc tính – giá trị 24

2.3.3 Tìm kiếm theo khoảng 25

CHƯƠNG 3 MỘT SỐ GIẢI PHÁP TÌM KIẾM THÔNG TIN THEO GIÁ TRỊ THUỘC TÍNH TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÖC 27 3.1 GIẢI PHÁP INS/TWINE 27

3.1.1 Mô tả các tài nguyên 27

3.1.2 Tổng quan về kiến trúc hệ thống 28

3.1.3 Đánh giá 31

3.2 GIẢI PHÁP CDS (Content Discovery System) 31

3.2.1 Mô tả các tài nguyên 31

3.2.2 Kiến trúc hệ thống 32

3.2.3 Đăng ký tên tài nguyên 33

3.2.4 Xử lý truy vấn 34

3.2.5 Khả năng cân bằng tải 35

3.3 GIẢI PHÁP D-AVTree 38

3.3.1 Mô tả các tài nguyên 38

Trang 6

3.3.2 Kiến trúc hệ thống 38

3.3.3 Phân bổ tài nguyên 39

3.3.4 Truy vấn thông tin 40

3.3.5 Cải tiến hiệu năng của giải pháp 41

3.4 SO SÁNH 3 GIẢI PHÁP 42

CHƯƠNG 4 ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC GIẢI PHÁP 44 4.1 TỔNG QUAN VỀ ĐÁNH GIÁ HIỆU NĂNG MẠNG 44

4.1.1 Các phương pháp đánh giá hiệu năng mạng 44

4.1.2 Các tham số đánh giá hiệu năng mạng 46

4.2 MÔ PHÕNG ĐÁNH GIÁ HIỆU NĂNG CÁC GIẢI PHÁP 46

4.2.1 Tìm hiểu chương trình mô phỏng đã được xây dựng 46

4.2.2 Thực hiện mô phỏng đánh giá hiệu năng của các giải pháp 47 4.2.2.1 Đánh giá tính hiệu quả (System efficiency) 48 4.2.2.2 Đánh giá độ cân bằng tải (Load balancing): 51 4.2.2.3 Đánh giá tỷ lệ truy vấn thành công (query hit ratio) 56 4.2.2.4 Tổng hợp nhận xét kết quả mô phỏng 58 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TIẾP THEO 61

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.2 Mô hình mạng ngang hàng P2P 8 Hình 1.3 Mô hình mạng ứng dụng Kazaa 11 Hình 1.5 Phân loại mạng ngang hàng 12 Hình 1.6 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) 13 Hình 1.7 Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet) 14 Hình 1.8 Mạng ngang hàng lai (Hybird) 15

Hình 2.2 Mô hình mạng chord với 3 nút, không gian định danh m = 3 bit 18 Hình 2.3 Bảng mô tả các tham số trong bảng finger 19 Hình 2.4 Bảng Finger của các nút trong mạng Chord 19 Hình 2.5 Mô tả việc lưu giữ khóa k trong mạng Chord 20 Hình 2.6 Bảng Finger của các nút trong mạng Chord 21 Hình 2.7 Mô tả quá trình tìm kiếm nút có id 54 (p54) dựa trên các bảng Finger 21 Hình 2.8 Các bảng finger sau khi nút 6 tham gia vào mạng 22 Hình 2.9 Các bản finger sau khi nút 3 rời mạng 23 Hình 2.10 Mạng ngang hàng có cấu trúc Chord 24 Hình 2.11 Ví dụ một tài nguyên được biểu diễn dưới dạng cặp thuộc tính giá trị 25 Hình 2.12 Minh hoạ yêu cầu tìm kiếm theo khoảng 26 Hình 3.1 Biểu diễn tài nguyên và cây AVTree tương ứng 27 Hình 3.2 Kiến trúc hệ thống của INS/Twine 28 Hình 3.3 Tách cây AVTree mô tả tài nguyên thành các nhánh tương ứng 29

Hình 3.5 Kiến trúc của 1 nút trong mạng CDS 32 Hình 3.6 Ví dụ đăng ký và xử lý truy vấn với tập RP 34 Hình 3.7 Ma trận cân bằng tài LBM cho cặp {ai, vi} 36 Hình 3.8 Đăng ký với ma trận cân bằng tải 37 Hình 3.9 Khoảng các khóa phân bổ ứng với tên tài nguyên chứa {(A1, V1), (A2, V2)} 40 Hình 3.10 Số nút bị truy vấn (khi thay đổi hệ số h và α) 41

Hình 4.2 Biểu đồ số ban sao tài nguyên của mỗi tài nguyên 48 Hình 4.3 Biểu đồ số nút cần truy vấn để thực hiện một truy vấn 49 Hình 4.4 Biểu đồ độ trễ truy vấn khi zipf = 0,6 50 Hình 4.5 Biểu đồ độ trễ truy vấn khi zipf = 0,6 và 2 bộ tham số (h, 1/alpha) 50 Hình 4.6 Biểu đồ độ trễ truy vấn khi zipf = 1 và 2 bộ tham số (h, 1/alpha) 51 Hình 4.7 Biểu đồ số nút lưu trữ trên 0,4% tổng số tài nguyên 52 Hình 4.8 Biểu đồ tỷ lệ lưu trữ tài nguyên trên mỗi nút với bộ tham số (6, 25) 53 Hình 4.9 Biểu đồ tỷ lệ lưu trữ tài nguyên trên mỗi nút với bộ tham số (2, 128) 53 Hình 4.10 Biểu đồ tỷ lệ lưu trữ tài nguyên trên mỗi nút với 2 bộ tham số và zipf = 1 53 Hình 4.11 Biểu đồ tỷ lệ số truy vấn tối đa nút phải thực hiện 54 Hình 4.12 Biểu đồ tỷ lệ số nút không thực hiện truy vấn nào 54

Trang 8

Hình 4.13 Biểu đồ tỷ lệ số truy vấn mỗi nút phải thực hiện với zipf = 0,6 và (6, 25) 55 Hình 4.14 Biểu đồ tỷ lệ số truy vấn mỗi nút phải thực hiện với zipf = 0,6 55

Hình 4.15 Biểu đồ tỷ lệ số truy vấn mỗi nút phải thực hiện với zipf = 1 (2 bộ tham số) 56 Hình 4.16 Biểu đồ tỷ lệ số truy vấn thành công với zipf = 1 57 Hình 4.17 Biểu đồ tỷ lệ số truy vấn thành công với zipf = 0,6 57 Hình 4.18 Biểu đồ tỷ lệ số truy vấn thành công của Twine khi zipf thay đổi 58 Hình 4.19 Biểu đồ tỷ lệ số truy vấn thành công của CDS khi zipf thay đổi 58

Trang 9

LỜI MỞ ĐẦU

Mô hình mạng ngang hàng bắt đầu xuất hiện trên thế giới từ năm 1999 và được

sử dụng rộng rãi trong nhiều ứng dụng, đặc biệt như các ứng dụng chia sẻ file, video streaming, … Trong mô hình mạng ngang hàng, các node tham gia mạng có thể chia

sẻ tài nguyên như các file, dữ liệu cho nhau Điều đó làm tăng tài nguyên của mạng Tuy nhiên, do các tài nguyên này được lưu trữ một cách phân tán, việc tìm kiếm thông tin về tài nguyên một cách hiệu quả là một vấn đề hết sức quan trọng trong các mạng ngang hàng

Trong thời kỳ đầu mới phát triển, việc tìm kiếm trong mạng ngang hàng hoặc là

sử dụng máy chủ lưu trữ thông tin tài nguyên, hoặc được thực hiện theo kiểu phát tràn thông báo, gây tốn kém băng thông mạng Các ứng dụng sau này đã từng bước cải tiến giao thức định tuyến thông báo, làm mạng hoạt động hiệu quả hơn, nhưng vẫn chưa đảm bảo việc tìm kiếm thông tin sẽ thành công

Mạng ngang hàng có cấu trúc sử dụng giải thuật Bảng băm phân tán (Distributed Hash Table – DHT [10]) khắc phục nhược điểm trên bằng cách tổ chức các node mạng theo một cấu trúc không gian khóa nhất định như mạch vòng (giao thức Chord [6]) hay không gian n-chiều (giao thức CAN[5]) và định tuyến thông báo dựa trên cấu trúc này Tuy nhiên, mạng ngang hàng có cấu trúc chỉ hỗ trợ phương pháp tìm kiếm chính xác, tức là tìm kiếm các tài nguyên có tên trùng với từ khoá tìm kiếm

Tuy nhiên, trên thực tế người dùng thường không thể biết chính xác thông tin cần tìm kiếm mà chỉ biết một số thông tin cơ bản Vì vậy, việc tìm kiếm theo khoảng hoặc theo các cặp thuộc tính giá trị là hết sức cần thiết Luận văn này tập trung tìm hiểu các giải pháp tìm kiếm thông tin theo cặp thuộc tính - giá trị đã được đề xuất như INS/Twine [9], Contens Distribution System [8], D-AVTree [4], … và đánh giá hiệu năng tìm kiếm, khả năng cân bằng tải của các giải pháp này thông qua mô phỏng

Luận văn gồm có 4 chương, trong đó 2 chương đầu giới thiệu tổng quan về mạng ngang hàng, mạng ngang hàng có cấu trúc và các giải pháp tìm kiếm thông tin

cơ bản trong hệ thống mạng ngang hàng có cấu trúc Chương 3 đi sâu tìm hiểu các giải pháp tìm kiếm thông tin theo cặp thuộc tính - giá trị như INS/Twine, CDS, D-AVTree

và so sánh các giải pháp Chương cuối cùng, luận văn tập trung đánh giá mô phỏng các giải pháp tìm kiếm nêu trên, đưa ra những đánh giá chi tiết về hiệu năng của hệ thống, khả năng cân bằng tải, … của từng giải pháp và những đề xuất lựa chọn giải pháp tùy theo yêu cầu của hệ thống

Trang 10

CHƯƠNG 1 TÌM HIỂU MẠNG NGANG HÀNG VÀ CÁC ỨNG DỤNG

1.1 TỔNG QUAN MẠNG NGANG HÀNG

Chương này sẽ trình bày tổng quan về mạng ngang hàng, về khái niệm, phân loại và nêu rõ ưu, nhược điểm của mạng ngang hàng so với mạng dựa trên mô hình client/ server

1.1.1 Định nghĩa mạng ngang hàng:

Quá trình trao đổi thông tin giữa hai máy tính trên hệ thống mạng có thể diễn

ra theo 2 mô hình: mô hình khách hàng/ người phục vụ (client/ server) (hình 1.1.) hay mô hình mạng ngang hàng peer to peer (hình 1.2)

Hình 1.1 Mô hình Client/Server Mạng ngang hàng (còn gọi là mạng peer to peer, viết tắt là P2P) là mạng được tạo ra bởi 2 hay nhiều máy tính được kết nối với nhau và chia sẻ tài nguyên (như tệp tin, máy in, ) mà không phải thông qua một máy chủ riêng nào

Hình 1.2 Mô hình mạng ngang hàng P2P Trong hệ thống mạng ngang hàng, các máy tính có thể kết nối với nhau qua cổng USB để truyền tệp tin (file) (2 máy tính), cũng có thể kết nối nhiều máy tính trong một văn phòng nhỏ bằng cáp đồng, hoặc kết nối số lượng lớn máy tính với nhau bằng các giao thức, ứng dụng đặc biệt

Có thể hiểu, mạng ngang hàng là một kiểu mạng được thiết kế cho các thiết bị trong đó có chức năng và khả năng của các thiết bị đó là như nhau Mạng ngang hàng P2P không có khái niệm máy trạm (client) hay máy chủ (server), mà chỉ có khái niệm các nốt (peers) đóng vai trò như cả client và server

Trang 11

1.1.2 So sánh mô hình mạng ngang hàng p2p với mô hình client/ server

P2P Client/Server Đặc điểm: Một mạng ngang hàng cho

phép các node đóng góp, chia sẻ tài

nguyên với nhau Tài nguyên riêng rẽ

của các node như: ổ cứng, CD-ROM,

máy in … Các nguồn tài nguyên này có

thể được truy cập từ bất cứ node nào

trong mạng

Các node đóng vai trò như cả Client

(truy vấn thông tin) và Server (cung cấp

thông tin)

Đặc điểm: Dữ liệu được lưu trữ ở một

Server trung tâm, tốc độ cao (Tốc độ truy cập thường lớn hơn so với mạng P2P)

Khi một máy client yêu cầu lấy thông tin nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu

Ưu điểm: Không cần server riêng, các

client chia sẻ tài nguyên Khi mạng

càng được mở rộng thì khả năng hoạt

động của hệ thống càng tốt Rẻ Dễ cài

đặt và bảo trì; thuận lợi cho việc chia sẻ

tài nguyên như tệp tin, máy in,

CD-ROM v.v…

Ưu điểm: Tốc độ truy cập nhanh

Khả năng mở rộng cao Hoạt động với bất kì loại ứng dụng nào Sử dụng được với các ứng dụng chia sẻ CSDL Đáng tin cậy hơn (có server riêng) Mức độ an toàn cao nhất

Nhược điểm: Chậm Không tốt cho

các ứng dụng CSDL Kém tin cậy

Nhược điểm: Cần server riêng (nghẽn

cổ chai) Đắt Phức tạp trong việc bảo trì, duy trì hoạt động của mạng

1.1.3 Lịch sử phát triển của P2P

Lịch sử ra đời và phát triển của P2P gắn liền với phần mềm ứng dụng Napster Năm 1999, Shawn Fanning một sinh viên Đại học 18 tuổi đã rời bỏ trường Đại học để bắt đầu xây dựng phần mềm mang tên Napster (do bức xúc với việc rất khó khăn trong việc đưa và chia sẻ các file nhạc online trên Internet mặc dù mọi người đều có nguồn tài nguyên trong đĩa cứng của mình)

Napster được xây dựng thành công và trở thành cách chia sẻ file chính (miễn phí), nó đã làm thay đổi cách download file nhạc và dung lượng cũng lớn hơn nhiều

so với các chương trình chia sẻ file trước đó Download phần mềm, bạn có thể chia

sẻ files từ máy tính của mình với tất cả mọi người trên thế giới 60 triệu người trên thế giới đã sử dụng (1 triệu người Nhật) vào thời điểm đó Tuy nhiên, do có quá

Trang 12

đông người dùng và vấn đề bản quyền âm nhạc nên công ty Napster đã bị cấm hoạt động, phần mềm không còn được sử dụng nữa (2003)

Sau Napster, rất nhiều các chương trình khác như Gnutella, KaZaa and WinMP đã xuất hiện Và P2P đã chuyển sang việc chia sẻ file has moved beyond file-sharing, chia sẻ processor power rỗi của các nodes chứ không phải là chia sẻ các file âm nhạc MP3 nữa Sau sự ra đời của Napster, công nghệ P2P phát triển một cách nhanh chóng Hiện tại các ứng dụng P2P chiếm khoảng 50% (thậm chí 75%) băng thông trên Internet

1.1.4 Ứng dụng trong P2P

Mạng ngang hàng P2P được thiết lập để kết nối các máy tính trong khuôn viên nhỏ như trong gia đình, các bộ phận của các cơ quan, doanh nghiệp trong phạm vi nhỏ hoặc được thiết lập trên hệ thống mạng internet nhằm chia sẻ tài nguyên, kết nối, trao đổi thông tin giữa các máy tính trong hệ thống mạng

1.1.4.1 Mạng máy tính trong gia đình:

Hầu hết các mạng máy tính trong gia đình hiện nay đều là mạng P2P Người dùng cấu hình các máy tính theo workgroup cho phép các máy có thể chia sẻ files, máy in và các tài nguyên, thiết bị khác Cả mạng có dây và không dây trong gia đình đều có thể sử dụng để thiết lập mạng P2P Hệ thống mạng này cũng được áp dụng ở một số phòng, ban hoặc bộ phận nhỏ của các cơ quan, doanh nghiệp phục vụ chia sẻ file, tài nguyên như máy in, thiết bị khác

1.1.4.2 Mạng máy tính chia sẻ tệp tin:

Là mạng P2P phổ biến và nổi tiếng nhất trên Internet hiện nay Chức năng chủ yếu của mạng là cho phép tìm kiếm và truyền dữ liệu dựa trên giao thức IP (Internet Protocol) Để truy cập vào mạng P2P này, người dùng chỉ cần tải và cài đặt phần mềm ứng dụng phù hợp cho máy tính của mình Có nhiều mạng P2P và phần mềm ứng dụng P2P tồn tại hiện nay Một số phần mềm chỉ sử dụng được cho 1 mạng P2P nhất định, một số hoạt động được với nhiều mạng P2P khác nhau Một số mạng P2P nổi tiếng trên Internet gồm: eDonkey, BitTorent, Gnutella

1.1.4.3 Phần mềm ứng dụng P2P

Một số phần mềm ứng dụng P2P nổi tiếng hiện nay bao gồm: KazaA, eMule, Bittorent, …

Trang 13

KazaA: cho phép tìm kiếm và tải các tệp tin đã được chia sẻ bởi những nhà

cung cấp chuyên nghiệp và người dùng KazaA có sử dụng những kết nối nhanh với các SuperNodes: Mỗi SuperNode chứa danh sách các tệp tin chia sẻ bởi người dùng và nơi lưu trữ tệp tin

Hình 1.3 Mô hình mạng ứng dụng Kazaa

Emule: Một trong những phần mềm chia sẻ tệp tin trong hệ thống mạng P2P

lớn nhất giữa các người dùng trên Internet Có thể sử dụng eMule để chia sẻ và tải tất

cả các loại tệp tin trên Internet

Hình 1.4 Mô hình mạng ứng dụng Skype

Skype: Là phần mềm VoIP phát triển bởi những người đã làm KazaA trong hệ

thống mạng ngang hàng Skype cho phép người dùng đàm thoại và gửi message tới người dùng Skype khác Có 2 loại nút: Original Host (OH) và Super nodes (SN) OH

Trang 14

là một phần mềm ứng dụng cho phép sử dụng để đàm thoại và gửi message Những nút có địa chỉ IP tĩnh, CPU, memory, băng thông đủ mạnh thì có thể được xem xét chọn làm super node OH kết nối với một Super nodes SN và phải đăng kí với Skype

để đăng nhập thành công

1.2 PHÂN LOẠI MẠNG NGANG HÀNG

Mạng ngang hàng được phân loại theo mục đích sử dụng hoặc mức độ tập trung của mạng Phân loại mạng ngang hàng theo mục đích sử dụng, như: Chia sẻ file (file sharing), điện thoại VoIP (telephony), đa phương tiện media streaming (audio, video), diễn đàn thảo luận (Discussion forums)

Mạng ngang hàng cũng có thể phân loại theo mức độ tập trung của mạng, gồm 2 loại: Mạng ngang hàng không cấu trúc (unstructured) và Mạng ngang hàng có cấu trúc (structured)

Hình 1.5 Phân loại mạng ngang hàng

1.2.1 Mạng ngang hàng không cấu trúc (unstructured)

Mạng ngang hàng không có cấu trúc có đặc điểm: Nơi lưu trữ tài nguyên hoàn toàn không liên quan đến cấu trúc hình học của mạng Kỹ thuật tìm kiếm chủ yếu sử dụng flooding với các giải thuật tìm kiếm ưu tiên theo chiều rộng (breadth – first), hoặc ưu tiên theo chiều sâu (depth-first) cho đến khi tài nguyên được tìm thấy Các hệ thống không cấu trúc thường phù hợp trong trường hợp các node ra vào mạng thường xuyên, tùy ý Mạng ngang hàng không cấu trúc gồm 3 loại: mạng ngang hàng tập trung, mạng ngang hàng lai, mạng ngang hàng thuần túy

Mạng ngang hàng P2P

Mạng P2P có cấu trúc

Mạng P2P không

có cấu trúc

Mạng P2P thế hệ thứ nhất

Mạng P2P thế hệ thứ hai

Mạng P2P sử dụng DHT based

Mạng P2P

tập trung

Mạng P2P thuần túy

Mạng P2P lai

Trang 15

1.2.1.1 Mạng ngang hàng tập trung (Centralized):

Đây là mạng ngang hàng thế hệ thứ nhất, đặc điểm hệ thống này vẫn còn dựa trên một máy chủ tìm kiếm trung tâm, nên nó còn được gọi là mang ngang hàng tập trung (centralized Peer-to-Peer networks) Cấu trúc của mạng ngang hàng tập trung có thể được mô tả như một mạng hình sao như hình 2.3

Trong hệ thống mạng ngang hàng tập trung, mỗi người dùng lưu trữ tài nguyên định chia sẻ với các node khác trong mạng Có một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address, connection bandwidth ….), một bảng liệt kê danh sách các tài nguyên mà mỗi người dùng định chia sẻ (tên file, dung lượng, thời gian tạo file …….) Mọi máy tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết, máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau mà không cần quan máy chủ trung tâm

Hệ thống có ưu điểm chủ yếu là dễ xây dựng, tìm kiếm file nhanh và hiệu quả Tuy nhiên, nó dễ bị tấn công và cần có quản trị central server

Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế

hệ thứ nhất Hệ thống này được dùng cho việc chia sẻ tài nguyên giữa các người dùng Internet, được sử dụng rộng rãi Khái niệm và kiến trúc của Napster vẫn được

sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX Trong hệ thống mạng này, việc tìm kiếm tài nguyên bị thất bại khi bảng tìm kiếm trên máy chủ không thực hiện được Chỉ có các tài nguyên truy vấn và việc lưu trữ được phân tán Do đó, máy chủ đóng vai trò là một nút cổ chai Khả năng mở rộng mạng bị hạn chế rất nhiều do số nút mạng trong hệ thống phải tương xứng với khả năng tính toán và lưu trữ của máy chủ tìm kiếm

Hình 1.6 Mạng ngang hàng tập trung thế hệ thứ nhất (Napster)

1.2.1.2 Mạng ngang hàng thuần túy (Pure):

Mạng ngang hàng thuần túy là một dạng khác của thế hệ thứ nhất của hệ

query Files

download

Trang 16

thống mạng ngang hàng Không còn máy chủ tìm kiếm tập trung như trong mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung Tuy nhiên vấn đề tìm kiếm trong mạng ngang hàng thuần túy lại sử dụng cơ chế Flooding, tức

là yêu cầu tìm kiếm được gửi cho tất cả các node mạng là láng giềng với nó, điều này làm tăng đáng kể lưu lượng trong mạng Đây là một yếu điểm của các mạng ngang hàng thuần túy Các phần mềm tiêu biểu cho mạng ngang hàng dạng này là Gnutella 4.0, FreeNet

Hệ thống mạng ngang hàng thuần túy có ưu điểm là dễ xây dựng, đảm bảo tính phân tán hoàn toàn cho các node tham gia mạng, các node tham gia và rời khỏi mạng một cách tùy ý mà không ảnh hưởng đến cấu trúc của mạng Tuy nhiên, nó gây tốn băng thông (do sử dụng cơ chế flooding), tìm kiếm phức tạp, các node có khả năng khác nhau đều có thể phải chịu tải như nhau, điều này không tận dụng được khả năng của các node

Hình 1.7 Mạng ngang hàng thuần túy (Gnutella 4.0, FreeNet)

1.2.1.3 Mạng ngang hàng lai (Hybrid)

Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình mang ngang hàng mới được phát triển với tên gọi là mạng ngang hàng lai Đây được gọi là mạng ngang hàng thế hệ 2 Phần mềm tiêu biểu cho mạng ngang hàng kiểu này là Gnutella 0.6 và JXTA (Juxtapose) JXTA được bắt đầu phát triển bởi SUN từ 2001 JXTA được sử dụng cho các máy tính, các thiết bị cầm tay, … để giao tiếp theo cách không tập trung Skype cũng được xây dựng dựa trên cấu trúc này

Trong mô hình mạng ngang hàng lai có trật tự phân cấp bằng việc định nghĩa các Supper Peers Các Supper Peer tạo thành một mạng không cấu trúc, có sự khác nhau giữa Supper Peers và Client Peers trong mạng, mỗi Supper Peer có nhiều kết nối đến các Client Peers Mỗi Supper Peer chứa một danh sách các tài nguyên được cung cấp bởi các Client Peer và địa chỉ IP của chúng vì vậy nó có thể trả lời các yêu cầu truy vấn từ các Client Peer gửi tới

Trang 17

Hình 1.8 Mạng ngang hàng lai (Hybird)

Hệ thống này có ưu điểm là hạn chế việc Flooding các query, làm giảm lưu lượng trong mạng, tránh được hiện tượng nút cổ chai (do có nhiều SuperPeers) Hệ thống này cũng khắc phục được nhược điểm về việc các node có khả năng khác nhau nhưng chịu tải lại giống nhau ở mạng ngang hàng thuần túy, các SuperPeer sẽ chịu tải chính, các node khác chịu tải nhẹ

1.2.2 Mạng ngang hàng có cấu trúc (Structured)

Mạng ngang hàng không có cấu trúc với sự phân bố tự do của nút mạng và tài nguyên tồn tại nhược điểm là phương thức tìm kiếm gây tốn kém tài nguyên và không đảm bảo mỗi truy vấn sẽ luôn tìm được kết quả cho mình Khi số lượng nút trong mạng tăng thì nhược điểm này càng khó giải quyết Đây là lý do khiến mạng không cấu trúc không được áp dụng trong các hệ thống yêu cầu khả năng mở rộng cao Để khắc phục nhược điểm này ta sử dụng mạng ngang hàng có cấu trúc với kỹ thuật bảng băm phân tán DHT (Distributed hash tables)

Chương sau luận văn sẽ giới thiệu về mạng ngang hàng có cấu trúc

Trang 18

CHƯƠNG 2 TỔNG QUAN VỀ MẠNG NGANG HÀNG CÓ CẤU TRÖC

Chương này sẽ giới thiệu tổng quan về hệ thống mạng ngang hàng có cấu trúc

và một số phương pháp tìm kiếm thông tin trên hệ thống mạng ngang hàng có cấu trúc Tiếp đó sẽ đi sâu tìm hiểu về hệ thống mạng ngang hàng có cấu trúc tiêu biểu, phổ biến là mạng Chord (còn gọi là giao thức Chord)

2.1 MẠNG NGANG HÀNG CÓ CẤU TRÖC

Như đã trình bày ở Chương 1, các hệ thống mạng ngang hàng không cấu trúc phổ biến như Napster, Gnutella, Freenet,… đều đã sử dụng lợi thế của các tài nguyên phân tán trên mạng Internet với băng thông rộng để cung cấp một ứng dụng hữu ích là dịch vụ chia sẻ tài nguyên (còn gọi là chia sẻ files) Những hệ thống này khác nhau ở cách thức tìm dữ liệu mà các node quản lý Napster sử dụng một Server trung tâm: mỗi node khi tham gia vào mạng sẽ gửi một danh sách các file được lưu trữ ở máy lên cho Server, Server sẽ xử lý các truy vấn, tìm các file trong danh sách, rồi gửi đường dẫn tới node chứa các file cần tìm Thành phần trung tâm này tạo ra một điểm yếu trong hệ thống vì có thể bị tấn công Gnutella và những mạng tương tự chuyển sang sử dụng cơ chế truy vấn flooding, để thực hiện một truy vấn, một thông điệp được quảng bá tới tất cả các node có trong mạng Trong khi tránh điểm yếu của thành phần trung tâm như trên, thì phương pháp này lại kém hiệu quả hơn so với Napster vì cơ chế flooding làm tăng lưu lượng mạng khi mở rộng mạng Với Freenet, sử dụng cơ chế định tuyến dựa trên khóa, mỗi file được gán một khóa, các khóa gần giống nhau sẽ cùng được lưu ở một tập các node Các truy vấn sẽ được định tuyến đi trong mạng mà không phải ghé thăm tất cả các node có trên mạng Tuy nhiên, Freenet không đảm bảo dữ liệu sẽ được tìm thấy

Mạng ngang hàng có cấu trúc với kỹ thuật bảng băm phân tán DHT (Distributed hash tables) được xây dựng nhằm khắc phục các nhược điểm của

hệ thống mạng ngang hàng không có cấu trúc nêu trên DHT sử dụng cơ chế định tuyến dựa trên khóa có cấu trúc hơn để có thể đạt được tính không tập trung của Gnutella và Freenet, và tính hiệu quả và kết quả truy vấn đảm bảo của Napster Có một hạn chế đó là DHT chỉ hỗ trợ tìm kiếm chính xác chứ không hỗ trợ tìm kiếm theo từ khóa, hay tìm kiếm theo khoảng, tuy nhiên các chức năng này có thể triển khai trên nền DHT Các DHT đầu tiên có cấu trúc dạng vòng như Chord, Pastry [1], dạng không gian đa chiều như CAN

Các đặc điểm cơ bản của DHT bao gồm]: Sự không tập trung, Khả năng mở rộng và Khả năng chịu lỗi Cụ thể, DHT là một hệ thống phân tán, các node tham gia cấu thành hệ thống không có thành phần trung tâm làm điều phối mạng Hơn nữa, việc duy trì bảng ánh xạ giữa khóa và các giá trị được lưu phân tán trên các nút, do đó việc thay đổi của một số nút tham gia vào hệ thống sẽ chỉ ảnh hưởng đến một số nhỏ các

Trang 19

khóa liên quan Điều này giúp cho DHT có thể dễ dàng mở rộng với số lượng lớn nút tham gia, và cung cấp khả năng duy trì hệ thống khi có nút tham gia, rời khỏi mạng, hay bị lỗi

Hình 2.1 Bảng băm phân tán – DHT Với đặc điểm của bảng băm phân tán DHT, mạng ngang hàng có cấu trúc có đặc điểm là cấu trúc hình học không gian của mạng được kiểm soát chặt chẽ; tài nguyên được đặt ở một vị trí xác định dựa theo giá trị khóa; đặc biệt, hệ thống mạng ngang hàng có cấu trúc cung cấp sự liên kết (mapping) giữa tài nguyên (id của tài nguyên) và vị trí của node lưu trữ (địa chỉ node) Sự liên kết này dựa trên cấu trúc dữ liệu bảng băm phân tán (Distributed Hash Table)

Ngoài những ưu điểm nêu trên, hệ thống mạng ngang hàng có cấu trúc cũng có một số hạn chế Đó là vấn đề cân bằng tải trong mạng, việc quản lý cấu trúc hình học không gian mạng sẽ gặp khó khăn khi tỷ lệ vào/ ra mạng của các nút lớn

Phần tiếp theo, luận văn sẽ tìm hiểu về một giao thức tiêu biểu của mạng ngang hàng có cấu trúc là giao thức Chord [6]

2.2 GIAO THỨC CHORD

Phần này sẽ đi sâu tìm hiểu về giao thức Chord, một giao thức cơ sở để thực hiện tìm kiếm thông tin trên hệ thống mạng ngang hàng có cấu trúc

2.2.1 Mô hình mạng Chord

Chord được mô tả dưới dạng một vòng tròn và có không gian định danh m (là

số bit của không gian định danh) Mạng Chord có thể chứa tối đa 2m nút mạng Mỗi nút mạng có 1 định danh id Các id trong mạng Chord được sắp xếp thành vòng tròn

và tăng theo chiều kim đồng hồ Chord sử dụng một hàm băm để sinh định danh id cho mỗi nút hoặc tài liệu trong mạng Đầu ra của hàm băm là giá trị có m bit

Mỗi nút trong mạng Chord có id định danh và trỏ tới nút tiếp theo (là nút có id lớn hơn, được gọi là Successor của nút) và nút phía trước là nút có id nhỏ hơn (được

Trang 20

gọi là Predecessor của nút) Các nút liên kết với nhau dựa vào 2 nút Succ và Pred của mỗi nút

Khóa k được gắn với nút đầu tiên có id bằng hoặc là id tiếp theo k trong vòng tròn định danh Nút này được gọi là nút successor của k, ký hiệu là succ(k) Nếu k có

id thuộc khoảng từ 0 đến 2m – 1, thì succ(k) là nút đầu tiên từ k, tính theo chiều kim đồng hồ trong vòng tròn định danh

Hình 2.2 Mô hình mạng chord với 3 nút, không gian định danh m = 3 bit

Trong hình 2.2, trong vòng tròn định danh với m=3 Mạng có 3 nút: 0, 1 và 3 Succ (id=1) là nút 1 vì nút 1 thuộc khoảng [0; 23 – 1), succ (1) là nút đầu tiên tính từ id

=1, là nút 1 Do đó, khóa 1 được lưu ở nút 1 Tương tự, succ (2) là nút 3, nên khóa 2 được lưu ở nút 3, succ (6) là nút 0 nên khóa 6 được lưu ở nút 0

Mỗi nút gồm một bảng thông tin định tuyến, gọi là bảng Finger (hình 2.3) Thay

vì tìm kiếm tuyến tính, bảng định tuyến cho phép một nút định tuyến tới các nút ở xa Mỗi dòng trang bảng Finger sẽ lưu thông tin về một nút ở xa, gọi là 1 entry Entry thứ i của nút n sẽ lưu thông tin là nút succ của khóa có định danh là n + 2i-1 theo chiều kim đồng hồ trong không gian định danh

Bảng dưới đây định nghĩa các thông tin trong bảng Finger Mỗi bảng Finger có

m entry, với m là sốt bít trong không gian định danh của mạng Chord

Trang 21

Hình 2.3 Bảng mô tả các tham số trong bảng finger

Hình 2.4 Bảng Finger của các nút trong mạng Chord

Trong hình 2.4, bảng Finger của nút 1 sẽ trỏ tới các nút succ của các định danh (1 + 20) mod 23 = 2, (1 + 21) mod 23 = 3, (1 + 22) mod 23 = 5 Nút succ(2) là nút 3, vì là nút đầu tiên tiếp theo định danh 2, nút succ(3) là nút 3, vì là nút đầu tiên có id = 3, nút succ(5) là nút 0, vì 0 là nút đầu tiên tính từ định danh 5

2.2.2 Ánh xạ khóa vào một nút trong mạng Chord

Trong mạng Chord, sẽ ánh xạ các khóa vào các nút, thường là cặp khóa và giá trị (key và value hay còn gọi là thuộc tính, giá trị) Một giá trị có thể là 1 địa chỉ, 1 văn bản, 1 mục dữ liệu Trong mạng Chord sẽ thực hiện chức năng này bằng cách lưu các cặp khóa, giá trị ở các nút mà khóa được ánh xạ Một nút sẽ chịu trách nhiệm lưu giữ một khóa k nếu nút đó là nút có định danh id nhỏ nhất và lớn hơn hoặc bằng k Một nút lưu giữ khóa k còn được gọi là nút succ(k)

Trang 22

Hình 2.5 Mô tả việc lưu giữ khóa k trong mạng Chord

Các nút 1 lưu giữ khóa 1, nút 1 là succ (1) ; nút 3 lưu khóa 2, nút 3 là succ (2) ; nút 0 lưu khóa 6, nút 0 là succ (6)

2.2.3 Tìm kiếm trong mạng Chord

Một nút muốn tìm kiếm khóa có định danh trong mạng Chord, nút đó sẽ tìm nút chịu trách nhiệm lưu giữ khóa có id đó Nếu nút này ở xa so với vị trí của nút lưu giữ

id cần tìm kiếm, nút này sẽ nhờ vào thông tin định tuyến trong bảng Finger của mình

để tìm đến các nút xa hơn, từ đó dần dần sẽ tìm được nút lưu giữ khóa có id cần tìm

Cụ thể, nút n muốn tìm khóa k, nút n sẽ tìm đến nút có id gần k hơn, nút này sẽ có nhiều thông tin về khoảng định danh của k trong vòng tròn định danh hơn nút n Nút n

sẽ tìm đến bảng Finger của nó để tìm nút j có định danh ngay gần kề với k và hỏi j về nút mà có id gần với k Lặp lại quá trình này, nút n sẽ tìm ra nút có định danh gần với

k nhất, đó là nút succ (k) lưu giữ thông tin về khóa k

Trang 23

Hình 2.6 Bảng Finger của các nút trong mạng Chord Trong hình 2.9, giả sử nút 3 muốn tìm nút có khóa là 1 (coi là id=1), id 1 thuộc khoảng [7, 3), thuộc entry thứ 3 trong bảng Finger của nút 3 Nút 3 sẽ kiểm tra trong entry thứ 3 trong bảng Finger của nó và thấy nó trỏ đến nút 0 0 nằm trước 1 trong vòng tròn định danh, nút 3 sẽ hỏi nút 0 để tìm succ của 1 Tiếp tục, nút 0 sẽ rà soát bảng định tuyến của nó, trong entry thứ nhất của nó chỉ ra succ (1) là nút 1 Vậy, succ của định danh 1 là nút 1, tức nút 1 chứa khóa (id) 1 Nút 0 sẽ thông báo kết quả này cho nút 3

Hình 2.7 Mô tả quá trình tìm kiếm nút có id 54 (p54) dựa trên các bảng Finger

Trang 24

2.2.4 Nút tham gia và ổn định mạng

Trong 1 mạng động, các nút có thể tham gia hoặc rời mạng bất cứ lúc nào Nên

hệ thống cần phải xác định được vị trí của các khóa trong mạng Để làm việc này, mạng Chord cần thỏa mãn 2 điều kiện: Mỗi succ của một nút phải được duy trì chính xác và mỗi khóa k, nút succ(k) phải có trách nhiệm quản lý khóa k

Để tìm kiếm nhanh, bảng Finger cũng cần phải chính xác Khi nút n tham gia vào mạng, Chord sẽ thực hiện 3 nhiệm vụ: Khởi tạo nút pred (n) và bảng Finger của n; Cập nhật các bảng Finger và các pred của các nút trong mạng có bổ sung thông tin về

sự tham gia của nút n và Chuyển khóa k tới nút lưu trữ thông tin của khóa trong mạng

Trước tiên, nút n sẽ chọn định danh id của mình và báo cho các nút bên cạnh (pred và succ) biết sự tham gia của nó Các nút succ và pred cần cập nhật thông tin về nút mới Nút n cũng cần tạo bảng Finger của mình bằng cách tìm các nút mà succ của các id trong từng entry của bảng Finger

Để mạng vẫn định tuyến đúng sau khi n gia nhập, các nút cần thường xuyên chạy thuật toán ổn định mạng để cập nhật thông tin về các nút bên cạnh Một số nút sẽ

có thông tin về n trong bảng Finger, nên cần cập nhật một số entry của bảng Finger

Sau đó, nút Succ của n sẽ chuyển một phần khóa, giờ n là succ (khóa) cho n lưu giữ Việc này do tầng trên của ứng dụng thực hiện

Hình 2.8 Các bảng finger sau khi nút 6 tham gia vào mạng Khi 1 nút chuẩn bị rời khỏi mạng, nó phải thông báo tới các nút cạnh nó biết để

ổn định lại mạng Nút đó sẽ chuyển các khóa mà nó lưu giữ cho nút succ của nó

Trang 25

Hình 2.9 Các bản finger sau khi nút 3 rời mạng

2.3 PHƯƠNG PHÁP TÌM KIẾM THÔNG TIN TRÊN MẠNG NGANG HÀNG

Có nhiều phương pháp tìm kiếm thông tin trên hệ thống mạng ngang hàng, trong đó có 3 phương pháp cơ bản, bao gồm: tìm kiếm chính xác, tìm kiếm dựa theo cặp thuộc tính – giá trị và tìm kiếm theo khoảng Phần này sẽ tìm hiểu sơ bộ 3 phương pháp tìm kiếm cơ bản này, đánh giá những ưu, nhược điểm của các phương pháp

2.3.1 Tìm kiếm chính xác

Là phương pháp tìm kiếm thông tin theo định danh, định danh này có thể được tạo ra từ việc băm từ một từ khoá do người dùng nhập vào, băm tên tệp tin hoặc một phần nội dung của tệp tin Phương pháp này chỉ cho phép tìm kiếm chính xác thông tin người dùng yêu cầu mà không thể tìm kiếm một thông tin có kết quả gần giống với yêu cầu của người dùng Chẳng hạn, khi người dùng muốn tìm một quyển sách “Mạng ngang hàng có cấu trúc” nhưng người dùng chỉ nhập vào từ khoá “Mạng ngang hàng” thì thông tin tìm thấy chỉ là những thông tin có nội dung là “Mạng ngang hàng” mà không thể tìm thấy các thông tin như “Mạng ngang hàng không có cấu trúc”, “Mạng ngang hàng có cấu trúc”, Phương pháp tìm kiếm này thường dùng kết hợp với bảng băm phân tán Khi được kết hợp với bảng băm phân tán thì phương pháp tìm kiếm này

có ưu điểm là giảm số thông báo yêu cầu tìm kiếm và các thông báo gửi đi có định hướng

Trang 26

Hình 2.10 Mạng ngang hàng có cấu trúc Chord Các mạng ngang hàng có cấu trúc đều hỗ trợ phương pháp tìm kiếm này,

2.3.2 Tìm kiếm theo thuộc tính – giá trị

Đây là phương pháp được đề xuất dựa trên cách thức tìm kiếm thực tế của người dùng đó là các từ khóa người dùng hay sử dụng chủ yếu để tìm kiếm là các cặp thuộc tính – giá trị Phương pháp tìm kiếm này sử dụng các cặp thuộc tính – giá trị (attribute - value) để tìm kiếm thông tin Trong thực tế, chẳng hạn người dùng muốn tìm cuốn sách “Quản trị mạng” của nhà xuất bản “Giao thông vận tải”, thì ta có thể coi: “Tên sách - Quản trị mạng” và “Nhà xuất bản - Giao thông vận tải” là 2 cặp thuộc tính giá trị, trong đó, Tên sách và Nhà xuất bản là 2 thuộc tính và 2 giá trị tương ứng với nó là Quản trị mạng và Giao thông vận tải

Theo kết một số quả thống kê, một từ khoá tìm kiếm mà người dùng sử dụng trung bình gồm có 2,53 từ và có tới 71,5% các truy vấn tìm kiếm bao gồm hai hoặc nhiều hơn các từ khoá Do từ khoá tìm kiếm thường là cặp thuộc tính – giá trị nên tìm kiếm theo phương pháp này có thể tìm được hầu hết các thông tin mà người dùng mong muốn

Theo phương pháp tìm kiếm này, nội dung thông tin sẽ được biểu diễn thành một tập các cặp thuộc tính – giá trị Việc tìm kiếm thông tin cũng sẽ dựa trên các cặp cặp

Trang 27

thuộc tính – giá trị, trong yêu cầu tìm kiếm sẽ có chứa một tập các cặp thuộc tính – giá trị cần truy vấn Kết quả trả về sẽ chứa danh sách các bản ghi có các cặp thuộc tính – giá trị thoả mãn truy vấn Việc phân bổ thông tin có thể dựa vào một trong số các cặp thuộc tính để phân bổ hoặc với một thông tin có n cặp thuộc tính – giá trị có thể sẽ phải phân bổ thông tin này ra n nút để khi tìm kiếm có thể tìm được thông tin đã phân

bổ này

Hình 2.11 Ví dụ một tài nguyên được biểu diễn dưới dạng cặp thuộc tính giá trị Một số giải pháp tìm kiếm theo cặp thuộc tính - giá trị tiêu biểu như: D-AVTree, CDS (Content discovery System), INS/Twine

2.3.3 Tìm kiếm theo khoảng

Là phương pháp tìm kiếm mà giá trị của một thuộc tính dao động trong một khoảng nào đó Khi tìm kiếm thông tin, người dùng thường không biết chính xác thông tin hoặc chỉ biết một phần thông tin hoặc muốn tìm thông tin trong một giới hạn nào

đó Khi đó, sử dụng phương pháp tìm kiếm theo khoảng là phù hợp Ví dụ người dùng muốn tìm kiếm hàng ăn trong một vùng địa lý (các khu phố), tìm kiếm thông tin về một sự việc trong một khoảng thời gian hoặc tìm kiếm địa chỉ của một số cửa hàng bán hàng tạp hóa trong một vùng không gian địa lý

Như ở hình 2.15, minh hoạ một số yêu cầu tìm kiếm theo khoảng như yêu cầu tìm trong một khoảng giá trị thỏa mãn bất đẳng thức hoặc tìm kiếm trong một phạm vi như hình tròn, hình vuông Phương pháp này thực chất là tìm kiếm thông tin thoả mãn một hệ bất đẳng thức Một số nghiên cứu đã có về giải pháp tìm kiếm thông tin theo khoảng như [2], [3], [7]

Trang 28

Hình 2.12 Minh hoạ yêu cầu tìm kiếm theo khoảng Tìm kiếm theo khoảng trên các hệ thống tập trung rất đơn giản Hệ thống chỉ cần duyệt tất cả các bản ghi theo chỉ mục để lấy ra các bản ghi thoả mãn thuộc tính có giá trị theo khoảng yêu cầu

Tuy nhiên để tìm kiếm theo khoảng trên mạng ngang hàng có cấu trúc là khó vì mạng ngang hàng có cấu trúc chỉ hỗ trợ tìm kiếm chính xác Tức là chỉ có những thông tin chính xác thì mới có thể tìm được trên mạng ngang hàng có cấu trúc mà không thể tìm được các thông tin trong phạm vi 1 khoảng nào đó Vì vậy, cần có cách thức cải tiến vè lưu trữ và tìm kiếm dữ liệu để thực hiện việc tìm kiếm theo khoảng

Trang 29

CHƯƠNG 3 MỘT SỐ GIẢI PHÁP TÌM KIẾM THÔNG TIN THEO GIÁ TRỊ THUỘC TÍNH TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÖC

Trong Chương 2, luận văn đã trình mày một số phương pháp tìm kiếm thông tin trên mạng ngang hàng có cấu trúc như: tìm kiếm theo khoảng, tìm kiếm theo các thuộc tính/giá trị, tìm kiếm gần đúng, … Trong đó, tìm kiếm theo cặp thuộc tính - giá trị được sử dụng phổ biến trong việc tìm kiếm thông tin trên hệ thống mạng ngang hàng

có cấu trúc bởi tính thực tiễn của nó Hiện tại có nhiều giải pháp tìm kiếm thông tin sử dụng phương pháp tìm kiếm theo cặp thuộc tính - giá trị Trong chương này, luận văn

sẽ tập trung tìm hiểu các giải pháp tìm kiếm theo cặp thuộc tính/giá trị đã được đưa ra trong những năm gần đây như: INS/Twine [9], Content Discovery System (CDS) [8], D-AVTree [4], D-AVTree+, … Khi trình bày các giải pháp, luận văn thống nhất sử dụng các thuật ngữ như tên tài nguyên, truy vấn, thông điệp truy vấn, … để đảm bảo tính đồng bộ, thống nhất

Các giải pháp tìm kiếm thông tin được trình bày theo các nội dung như: mô tả tài nguyên, truy vấn, phân bổ tài nguyên, giải quyết truy vấn

3.1 GIẢI PHÁP INS/TWINE

3.1.1 Mô tả các tài nguyên

Tài nguyên trong hệ thống INS/Twine được mô tả bởi các cặp thuộc tính – giá trị phân cấp bằng một ngôn ngữ thích hợp, dưới dạng siêu dữ liệu, gọi là cây thuộc tính – giá trị (AVTree) Mỗi tài nguyên được mô tả sẽ trỏ tới một tên tài nguyên, nơi

có chứa thông tin về vị trí hiện tại trong mạng của tài nguyên đã được quảng bá

Trong hệ thống INS/Twine, một tài nguyên đáp ứng một truy vấn nếu cây AVTree được tạo nên bởi truy vấn này giống với cây AVTree được mô tả ban đầu với

0 hoặc nhiều cặp thuộc tính được cắt nhánh

Hình 3.1 Biểu diễn tài nguyên và cây AVTree tương ứng Hình 3.1 là một ví dụ về mô tả tài nguyên trong hệ thống INS/Twine Bên trái

là mô tả tài nguyên, bên phải là cây AVTree tương ứng của tài nguyên

Trang 30

Hệ thống INS/Twine hỗ trợ truy vấn từng phần, ngoài truy vấn toàn bộ có thể xác định chính xác mô tả tài nguyên được quảng bá Chẳng hạn, tài nguyên là một thiết bị có thể đáp ứng với truy vấn <res>camera<man>Acompany</man></res> hoặc

Khi tầng Resolver nhận được một thông điệp truy vấn 1 tên tài nguyên nào đó

từ ứng dụng của người dùng, nó sẽ lưu trữ thông tin này Tiếp đó, Resolver sẽ tách tên tài nguyên này thành các nhánh AV và gửi từng nhánh cho tầng StrandMapper (để kết nối các nhánh)

Hình 3.3 là một ví dụ về việc phân chia cây AVTree của mô tả tài nguyên thành các nhánh AV

Trang 31

Hình 3.3 Tách cây AVTree mô tả tài nguyên thành các nhánh tương ứng

Sau đó, tầng StrandMapper sẽ kết nối các nhánh thành một hoặc nhiếu khóa dạng số có m bit bằng cách sử dụng hàm băm Bước tiếp theo, nó sẽ gửi từng khóa cùng với toàn bộ tên tài nguyên tới tầng KeyRouter Khi nhận được khóa, tầng KeyRouter xác định bộ phân tích nào trên mạng sẽ nhận giá trị đáp ứng và chuyển tiếp thông tin tới peer được chọn

Tại trung tâm của tầng Resolver của hệ thống INS/Twine là thuật toán tách nhánh thành các đoạn trích từ mô tả Mục đích của thuật toán nhằm chia các mô tả thành các nhánh có nghĩa để các Resolver có thể xác định khoảng tập con của mô tả Cùng lúc đó, thuật toán sẽ duy trì cấu trúc mô tả và hỗ trợ các truy vấn thành phần

Thuật toán tách nhánh đơn giản sẽ tách mỗi cặp thuộc tính – giá trị từ cây AVTree, và chuyển riêng tứng cặp đó thành từng khóa Giải pháp Twine cho việc tách nhánh sẽ duy trì các cấu trúc mô tả và hỗ trợ truy vấn từng phần Nó sẽ bỏ qua các nhánh chỉ có duy nhất 1 thông tin về thuộc tính hoặc giá trị Các nhánh được tạo ra sau

đó sẽ được sử dụng để tạo từng khóa riêng biệt

Ví dụ: Nhánh được tách ra là: res-camera-man-Acompany, các khóa được tạo bởi các hàm băm tương ứng với từng nhánh là các khóa ứng với h1, h2 và h3

Với cây AVTree có độ cao là t, số cặp thuộc tính là a, thì số strand được tách ra được tính theo công thức: s = 2a –t Với lược đồ này, các truy vấn thành phần sẽ được thực hiện dễ dàng, vì mỗi cặp thuộc tính – giá trị sẽ được ánh xạ thành một khóa riêng, và gắn với một resolver đơn lẻ Yêu cầu lữu trữ Z của từng resolver được cho bởi công thức:

Trang 32

Trong đó:

- R là số nút trong hệ thống,

- S: là số nhánh trung bình cho mỗi đặc tả tài nguyên

- K: mức độ sao chép thông tin tài nguyên, K được chọn sao cho S*K<<N

- N: là số resolver trong mạng (có thể coi là số nút)

Một số nhánh có thể rất phổ biến trong các mô tả tài nguyên Các thông báo sẽ

có thể làm cho nút bị quá tải Để giải quyết vấn đề này, mỗi nút được thiết lập một ngưỡng (được xác định bởi khả năng của nút đó) dựa vào số lượng tối đa số tài nguyên cho mỗi khóa Khi ngưỡng này bị vượt quá, không có tài nguyên nào liên quan đến khóa được chấp nhận Nút này sẽ bắt đầu thay thế ngẫu nhiên một số entries với một vài thông báo mới Mỗi một bản ghi trong bảng dùng để lưu thông tin về các đặc tả tài nguyên tại mỗ node được coi là 1 entry

Một truy vấn chứa một vài nhánh AV sẽ được giải quyết bằng cách sử dụng một trong các nhánh dài nhất, ngưỡng sẽ không ảnh hưởng đến hầu hết các truy vấn Trong quá trình giải quyết truy vấn, nếu một bộ phân tích trả ra một thông tin không hoàn toàn tin cậy (do ngưỡng gây ra), hệ thống sẽ sử dụng 1 nhánh mới, và xử lý lặp lại cho đến khi đáp ứng tất cả các tài nguyên gắn với mô tả hoặc đã duyệt hết các nhánh trong truy vấn Kết quả trả về sẽ là các đặc tả trùng khớp, ngược lại sẽ là danh sách kết quả từ truy vấn từng phần, dựa vào kết quả này, người dùng có thể định nghĩa lại câu truy vấn để tìm kiếm lại nếu cần

Tầng KeyRouter

Đây là tầng cuối cùng trong hệ thống INS/Twine Tầng này chịu trách nhiệm chuyển các khóa tới nút quản lý nó dựa vào một mạng DHT như Chord, CAN [7], Pastry để xác định nút lưu trữ tên tài nguyên Thông báo sau đó sẽ được gửi tới tầng resolver Với các truy vấn, tầng resolver sẽ gửi kết quả lại cho INR ban đầu và sau đó

nó sẽ được trả cho ứng dụng

Trang 33

3.1.3 Đánh giá

Ưu điểm: Ưu điểm lớn nhất của INS/Twine là cho phép truy vấn từng phần

Thực tế, người dùng thường không có thông tin đầy đủ về nội dung cần tìm, ưu điểm này giúp người dùng có thể lựa chọn được những thông tin hữu ích, từ đó có thể lập lại truy vấn phù hợp và tìm kiếm lại để có thể đạt kết quả tốt hơn

Nhược điểm: Các truy vấn không thuộc các nhánh của đặc tả tài nguyên sẽ

không tìm kiếm được Các nút phụ trách các khóa phải chịu tải nội dung và truy vấn lớn được hạn chế bởi ngưỡng cho từng nút Các nút này dễ bị mất thông tin, việc thay thế ngẫu nhiên entry cũ bằng các entry mới cũng dẫn đến bị mất thông tin INS/Twine không đảm bảo cân bằng tài giữa các nút, số lượng bản sao thông tin lớn: mỗi nhánh ánh xạ thành nhiều khóa, số khóa bằng chiều dài nhánh – 1, số nhánh bằng 2a – 1 (a là

độ dài cây AVTree) Nhược điểm nữa là tìm kiếm chưa hiệu quả do có thể phải duyệt toàn bộ các nhánh của cây

3.2 GIẢI PHÁP CDS (Content Discovery System)

CDS là một hệ thống phân tán cho phép tìm kiếm các nội dung Một nút trong mạng có thể công khai hoặc cung cấp thông tin, thực hiện các truy vấn tìm kiếm tài nguyên, lưu trữ tài nguyên hoặc mô tả siêu dữ liệu của các tài nguyên thông tin được công khai bởi nút khác và giải quyết các truy vấn của các nút khác Thực tế đã có nhiều ứng dụng phân tán mà chính nó là CSD hoặc sử dụng CSD như là một thành phần chính của hệ thống

Mục đích của giải pháp CDS đặt ra bao gồm: Thông tin được lưu trữ trong mạng CDS phải có thể tìm được Một nút có thể xác định vị trí tài nguyên bằng cách xác định các thuộc tính và giá trị mô tả tên tài nguyên CDS phải có thể cập nhật thường xuyên các thông tin động Mô tả, tên hoặc 1 phần tài nguyên có thể thay đổi theo thời gian CDS phải cân bằng tải cho cả đăng ký và các truy vấn Khi mở rộng hệ thống, tải (như tốc độ đăng ký và truy vấn) hệ thống sẽ tăng dần, hiệu năng của hệ thống CDS (như thông lượng và thời gian phản hồi) phải không được giảm đáng kể trước khi hệ thống đạt đến công suất tối đa của nó

3.2.1 Mô tả các tài nguyên

Trong CDS, tên tài nguyên được mô tả bởi các cặp thuộc tính – giá trị để có thể tìm kiếm Tên nội dung CN (content name) được mô tả bởi các cặp thuộc tính giá trị ai,

vi, i =1, n Trong đó, ai là một thuộc tính và vi là giá trị của thuộc tính đó, CN được biểu diễn như sau:

CN ={a1v1, a2v2, , anvn}

Trang 34

Hệ thống có thể sử dụng ngôn ngữ XML để mô tả tên tài nguyên Hình 3.4 dưới đây là một ví dụ về mô tả tên tài nguyên cho 1 hệ thống camera giám sát đường cao tốc

Hình 3.4 Ví dụ về tên tài nguyên Một truy vấn được thể hiện bởi tập các cặp AV như Q = {a1v1, a2v2, , amvm}

có chứa m cặp AV Tài nguyên đáp ứng truy vấn Q phải chứa tất cả các cặp AV xuất hiện trong truy vấn Q, nói cách khác, một tài nguyên đáp ứng truy vấn Q nếu tập tất cả các cặp AV trong Q là tập con tập các cặp AV trong tên tài nguyên được mô tả Như vậy, chỉ cần có 1 cặp AV trong truy vấn Q không có mặt trong tên tài nguyên, thì tài nguyên đó sẽ được bỏ qua Số tập con khác rỗng của nội dung thông tin chứa n cặp

AV là 2n - 1, tức ta cần phải đáp ứng 2n - 1 các truy vấn khác nhau

CDS tạo nhiều khóa cho một tên tài nguyên từ mỗi cặp thuộc tính – giá trị trong tên tài nguyên và phân bổ các cặp AV tương ứng tới các nút phụ trách các khóa đó Khi truy vấn tài nguyên, CSD chỉ sử dụng một cặp thuộc tính – giá trị để tạo khóa truy vấn và truy vấn đến nút phụ trách khóa đó

3.2.2 Kiến trúc hệ thống

Một nút trong mạng CDS có kiến trúc phần mềm như hình 3.5 dưới đây:

Hình 3.5 Kiến trúc của 1 nút trong mạng CDS Theo mô hình 3.5, kiến trúc của một nút trong mạng CDS gồm 4 tầng: Application, CDS, DHT based overlay và TCP/IP

Tầng Application

Trang 35

Là tầng trên cùng, được xây dựng trên tầng CDS Tầng này cung cấp thông tin

về tài nguyên cần tìm kiếm Tên tài nguyên được mô tả dưới dạng cặp thuộc tính - giá trị AV nêu trên

Các chức năng của tầng CDS

Tầng CDS cung cấp cho tầng ứng dụng các hàm API chứa ít nhất 2 chức năng sau: đăng ký (tên tài nguyên) và xác định tài nguyên (truy vấn) Khi nó nhận một tài nguyên, 1 tên tài nguyên hoặc 1 truy vấn từ tầng ứng dụng, CDS sẽ xác định tập các nút nó sẽ có thể gửi dữ liệu tới, tức là xác định tập các mã định danh ID của các nút Trong hệ thống này, một tên tài nguyên được đăng ký với 1 tập nhỏ các nút của hệ thống gọi là RPs (Rendezvous Points – gọi là điểm hẹn, điểm trung gian mà truy vấn

và nội dung phù hợp có thể gặp nhau), do đó, có thể tránh được việc các tên nội dung

bị trùng lặp tại các nút Các truy vấn được gửi trực tiếp tới bộ RPs phù hợp để giải quyết và không cần thiết tìm kiếm diện rộng trên mạng

Tầng DHT

CDS sử dụng tầng DHT với 2 mục đích: xây dựng, quản lý mạng phủ và truyền thông điệp trong mạng Trong DHT, mỗi nút được gắn một giá trị ID như là địa chỉ mạng của nút, là giá trị liên tiếp nhau trong không gian định danh m bit ID của nút có thể được tạo ra một cách cục bộ, sử dụng hàm băm để băm một số thông tin cơ bản như địa chỉ IP của nút đó CDS sử dụng bảng băm phân tán để truyền thông điệp của

nó trong mạng, sử dụng mã định danh ID của các nút Khi tầng DHT nhận được thông tin {nodeID, message} từ tầng CDS, nó sẽ chuyển thông điệp tới nút mà phụ trách khóa có giá trị nodeID DHT không quan tâm cách CDS chọn nodeID cho thông điệp

Tầng cuối cùng là tầng giao thức để truyền, nhận dữ liệu trên mạng

3.2.3 Đăng ký tên tài nguyên

Để đăng ký một tên tài nguyên, nút cung cấp tài nguyên phải xác định tập các nút có thể nhận tên tài nguyên này Nó sử dụng hàm băm H chung của hệ thống để băm từng cặp AV trong tên tài nguyên CN = {a1v1, a2v2, …, anvn} thành từng khóa tương ứng Và phân bổ các nội dung thông tin vào các nút phụ trách khóa Ni tương ứng:

Ni = H (aivi), i =1 n Nút có ID bằng hoặc gần Ni nhất là thành phần thứ i trong tập nút RP Những nút này tạo thành tập RP cho tên tài nguyên này Tên tài nguyên được tạo lập sẽ được gửi tới từng nút trong tập n nút của tập RP Như vậy, Ni là nút quản lý tất cả các tên tài nguyên trong hệ thống có chứa cặp aivi

Ngày đăng: 11/07/2015, 10:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. A. Rowstron and P. Druschel, “Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems”, In Proceedings of IFIP/ACM International Conference on Distributed Systems Platforms, Nov. 2001 Sách, tạp chí
Tiêu đề: Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems
2. Ashwin R. Bharambe, Mukesh Agrawal, Srinivasan Seshan, “Mercury: Supporting Scalable Multi­Attribute Range Queries”, Proceedings of the 2004 conference on Applications, technologies, architectures, and protocols for computer communications, August 2004 Sách, tạp chí
Tiêu đề: Mercury: "Supporting Scalable Multi­Attribute Range Queries
3. Artur Andrzejak and Zhichen Xu Hewlett-Packard Laboratories, Palo Alto, “Scalable, Efficient Range Queries for Grid Information Services”, IEEE Computer Society Washington, DC, USA Sách, tạp chí
Tiêu đề: Scalable, Efficient Range Queries for Grid Information Services
Tác giả: Artur Andrzejak, Zhichen Xu
Nhà XB: IEEE Computer Society
4. Hoai son Nguyen, Yasue TAN, Yoichi SHINODA, “D-AVTree: DHT based Search System to Support Scalable Mutil-attribute Queries”, IEICE Trans. Commun, 2013 Sách, tạp chí
Tiêu đề: D-AVTree: DHT based Search System to Support Scalable Mutil-attribute Queries
5. S.Ratnasamy, P. Francis, M. Handley and R. Karp, “A Scalable Content- Addressable Network”, In Proceedings of ACM SIGCOMM’01, Aug. 2001 Sách, tạp chí
Tiêu đề: A Scalable Content-Addressable Network
6. Ion Stoicay, Robert Morrisz, David Liben-Nowellz, David R. Kargerz, M. Frans Kaashoekz, Frank Dabekz, Hari Balakrishnanz, “Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications”, IEEE/ACM Transactions on Networking (TON), Year of Publication: 2003 Sách, tạp chí
Tiêu đề: Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications
7. Jun Gao, Peter Steenkiste, “An Adaptive Protocol for Efficient Support of Range Queries in DHT-based Systems”, Proceedings of the 12th IEEE International Conference on Network Protocols (ICNP’04) 1092-1648/04 $ 20.00 IEEE Sách, tạp chí
Tiêu đề: An Adaptive Protocol for Efficient Support of Range Queries in DHT-based Systems
8. Jun Gao, Peter Steenkiste, "Design and Evaluation of a Distributed Scalable Content Discovery System", Journal on Selected Areas in Communications, November, 2003 Sách, tạp chí
Tiêu đề: Design and Evaluation of a Distributed Scalable Content Discovery System
9. M. Balazinska, H. Balakrishnan, and D. Karger, "INS/Twine: A Scalable Peer-to- Peer Architecture for Intentional Resource Discovery", In Proceedings of International Conference on Pervasive Computing, August 2002 Sách, tạp chí
Tiêu đề: INS/Twine: A Scalable Peer-to-Peer Architecture for Intentional Resource Discovery
10. Matthew Harren, Joseph M. Hellerstein, Ryan Huebsch, Boon Thau Loo, Scott Shenker, Ion Stoica, “Complex Queries in DHT-based Peer-to-Peer Networks”, Revised Papers from the First International Workshop on Peer-to-Peer Systems, March 2002 Sách, tạp chí
Tiêu đề: Complex Queries in DHT-based Peer-to-Peer Networks

HÌNH ẢNH LIÊN QUAN

Hình 1.4. Mô hình mạng ứng dụng Skype - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 1.4. Mô hình mạng ứng dụng Skype (Trang 13)
Hình 1.3. Mô hình mạng ứng dụng Kazaa - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 1.3. Mô hình mạng ứng dụng Kazaa (Trang 13)
Hình 1.5. Phân loại mạng ngang hàng - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 1.5. Phân loại mạng ngang hàng (Trang 14)
Hình 1.8. Mạng ngang hàng lai (Hybird) - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 1.8. Mạng ngang hàng lai (Hybird) (Trang 17)
Hình 2.1. Bảng băm phân tán – DHT - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.1. Bảng băm phân tán – DHT (Trang 19)
Hình 2.2. Mô hình mạng chord với 3 nút, không gian định danh m = 3 bit. - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.2. Mô hình mạng chord với 3 nút, không gian định danh m = 3 bit (Trang 20)
Hình 2.4. Bảng Finger của các nút trong mạng Chord. - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.4. Bảng Finger của các nút trong mạng Chord (Trang 21)
Hình 2.7. Mô tả quá trình tìm kiếm nút có id 54 (p54) dựa trên các bảng Finger. - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.7. Mô tả quá trình tìm kiếm nút có id 54 (p54) dựa trên các bảng Finger (Trang 23)
Hình 2.8. Các bảng finger sau khi nút 6 tham gia vào mạng - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.8. Các bảng finger sau khi nút 6 tham gia vào mạng (Trang 24)
Hình 2.9. Các bản finger sau khi nút 3 rời mạng. - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.9. Các bản finger sau khi nút 3 rời mạng (Trang 25)
Hình 2.10. Mạng ngang hàng có cấu trúc Chord - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 2.10. Mạng ngang hàng có cấu trúc Chord (Trang 26)
Hình 3.2. Kiến trúc hệ thống của INS/Twine - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 3.2. Kiến trúc hệ thống của INS/Twine (Trang 30)
Hình 3.3. Tách cây AVTree mô tả tài nguyên thành các nhánh tương ứng. - Đánh giá các phương pháp tìm kiếm thông tin trong hệ thống mạng ngang hàng có cấu trúc
Hình 3.3. Tách cây AVTree mô tả tài nguyên thành các nhánh tương ứng (Trang 31)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

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