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

Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến

96 490 2
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

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

Nội dung

Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến

Trang 1

-

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

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

Trang 2

LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN

NGÔ HOÀNG GIANG

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

HÀ NỘI 2008

Trang 3

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

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

Cộng hoà xã hội chủ nghĩa Việt NamĐộ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, ngoài các tài liệu tham khảo đã liệt kê, tôi cam đoan không sao chép các công trình 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ô Hoàng Giang

Trang 4

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 quý báu giúp đỡ tôi hoàn thành bản luận văn này

Tôi xin chân thành cảm ơn Ban lãnh đạo Trung tâm mạng thông tin – Trường Đại học Bách khoa Hà Nội, nơi tôi đang công tác đã tạo nhiều điều kiện động viên khích lệ để tôi có thể hoàn thành bản luận văn này

Sau cùng tôi xin bày tỏ lòng biết ơn đến người thân cùng bạn bè đồng nghiệp, những người luôn cổ vũ động viên tôi hoàn thiện bản luận văn này

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

Ngô Hoàng Giang

Trang 7

Danh mục thuật ngữ

Peer-to-peer 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

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

Distributed hash table Bảng băm phân tán

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

Trang 9

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à 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=600sU 65

Hình 2.13 Biểu diễn convex hull của successor stabilization interval (trái) và finger stabilization interval (phải ) trong mạng Chord 1000 node khi các node join/leave với interval=600sU 66

Trang 10

Danh mục thuật toán

Trang 12

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]

Trang 13

Chương 1 0BLý thuyết tổng quan

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 quá trình phát triển khác, hiện nay chưa có một định nghĩa chính xác về mạng P2P Dưới đây là một số định nghĩa về P2P:

Theo Oram, P2P là một lớp các ứng dụng tận dụng các tài nguyên như bộ nhớ,

năng lực xử lý, nội dung, … tại các điểm cuối trong mạng Internet Bởi vì truy cập vào các tài nguyên phân tán này cũng có nghĩa là hoạt động trong một môi trường liên kết không ổn định và với địa chỉ IP có thể thay đổi, các node P2P phải hoạt động ngoài hệ thống DNS và có quyền tự trị cao hoặc hoàn toàn tự trị

Theo Miller, P2P là một kiến trúc trong đó các máy tính có vai trò và trách

nhiệm như nhau Mô hình này đối lập với mô hình client/server truyền thống, trong đó một số máy tính được dành riêng để phục vụ các máy tính khác P2P có năm đặc điểm:

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

− 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

Trang 14

thông tin, chu kỳ xử lý, không gian lưu trữ Peer-to-peer computing tận dụng sức mạnh tính toán của các máy tính cá nhân và kết nối mạng, cho phép doanh nghiệp tận dụng sức mạnh tổng hợp của các client

Các định nghĩa về P2P thống nhất ở một số khái niệm: chia sẻ tài nguyên, tự trị/phân tán, địa chỉ IP động, vai trò vừa là client vừa là server

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.1X cho thấy một ví dụ về mô hình centralized directory Trong mô hình này, các peer muốn chia sẻ file với các peer khác sẽ thông báo với server về các file này Khi một peer muốn tìm một file nào đó, nó sẽ gửi yêu cầu đến server, dựa trên các thông tin đã thu thập được, server sẽ tìm ra các peer chứa file đó và trả kết quả tìm kiếm cho peer yêu cầu Kết quả trả về là peer phù hợp dựa trên một số thông số như tốc độ kết nối, kích thước file, … Sau khi nhận được kết quả, peer tìm kiếm sẽ trao đổi file trực tiếp với peer chứa file mà không thông qua server nữa

Trang 15

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

Trang 16

các peer kết nối trực tiếp với nó, quá trình cứ diễn ra như vậy cho đến khi request bị timeout Quá trình gửi yêu cầu tìm kiếm đi như vậy gọi là flooding XHình 1.2X biểu diễn 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

Trang 17

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 đó Quá trình tìm kiếm dữ liệu trở thành quá trình định tuyến với kích thước bảng định tuyến nhỏ và chiều dài đường đi cực đại Thế hệ thứ ba đảm bảo xác xuất tìm thấy thông tin cao

Các DHT được xây dựng nhằm mục đích cho phép các peer hoạt động như một cấu trúc dữ liệu phân tán với hai hàm chính 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, …

Trang 18

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 toá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 toán phân tán là các chu kỳ xử lý nhàn rỗi trên bất kỳ máy tính nối mạng nào đều có thể được sử dụng cho việc giải quyết bài toán trên các máy yêu cầu nhiều năng lực tính toá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 toá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 đề:

Trang 19

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ế quá 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 toán rất quan

trọng đối với hiệu quả hoạt động của các mạng p2p Một trong những giải pháp cho vấn đề phân tán này là distributed hash table (DHT) Trong cách tiếp cận này, cân bằng tải được xem xét trên hai khía cạnh: cân bằng không gian địa chỉ tức là cân bằng phân phối của không gian key address trên các node và cân bằng item trong trường hợp phân phối của các item trong không gian địa chỉ không thể là ngẫu nhiên Cân bằng tải giữa các node tính toán trong hệ thống p2p cũng có thể được cài đặt sử dụng mô hình tự tổ chức dựa trên agent

Trang 20

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 toá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,

Trang 21

contact này có ID gần với ID của dữ liệu cần lưu nhất Quá trình cứ tiếp tục như vậy, thông điệp được chuyển tiếp trên mạng cho đến khi nó gặp node có ID gần với ID của dữ liệu nhất và value được lưu trên node này

Để tìm một value, thủ tục cũng tương tự, node cần tìm dữ liệu sẽ gửi đi thông điệp tìm kiếm dữ liệu Sau quá trình chuyển tiếp thông điệp giống như quá trình chuyển tiếp thông điệp lưu dữ liệu, node lưu dữ liệu sẽ được tìm ra và node này sẽ trả dữ liệu cho node tìm kiếm

Distributed Hash Tables có các ưu điểm khác biệt so với dịch vụ hướng Server truyền thống:

Client-− DHT cho phép hoạt động phân tán, không cần duy trì một server trung tâm để điều khiển hoạt động của mạng p2p Cũng vì vậy, các ứng dụng p2p sử dụng DHT là các ứng dụng p2p thuần túy

− Hệ thống có tính khả mở, nghĩa là hệ thống vẫn hoạt động tốt ngay cả với số lượng node và lưu lượng trên mạng lớn

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

− Hệ thống dựa trên giả định rằng mạng không tĩnh và các thay đổi xuất hiện thường xuyên với các node join vào mạng và leave khỏi mạng (còn gọi là churn) − Việc định tuyến và lấy dữ liệu nhanh và có thể hoàn thành trong thời gian tỷ lệ

Trang 22

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

Trang 23

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

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.4X cho thấy một mạng với không gian ID N = 16, mỗi node có 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

Trang 24

dựng bảng finger table được thể hiện trong XHình 1.4X(b) Node n chọn các finger của nó 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 XHình 1.4X(c) cho thấy bảng định tuyến của node 3 và node 11

Trang 25

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

Trang 26

Mapping Items Onto Nodes

Như chúng ta thấy trên XHình 1.4X, một item được lưu trên node đầu tiên mà theo sau nó theo chiều kim đồng hồ trong không gian ID Các item với ID tương ứng 2, 3, 6, 10,13 được lưu trong các node trên mạng như sau: {2,3} được lưu tại node 3; {6} được lưu tại node 9; {10} được lưu tại node 11; và {13} được lưu tại node 0

Joins, Leaves and Maintenance

Khi node n muốn join vào mạng, nó phải tìm ID của mình thông qua một số contact trong mạng và chèn bản thân nó vào vòng giữa successor s của nó và predecessor của s sử dụng một thuật toán stabilization chạy định kỳ Bảng định tuyến của n được khởi tạo bằng cách copy bảng định tuyến của s hoặc yêu cầu s tìm các finger của n Tập các node cần điều chỉnh bảng định tuyến sau khi n join vào mạng nhờ các node này đều chạy thuật toán stabilization định kỳ Nhiệm vụ cuối cùng là chuyển

Trang 27

một phần các item đang lưu trên node s có ID nhỏ hơn hoặc bằng n sao node n Việc di chuyển dữ liệu này được thực hiện bởi tầng ứng dụng của n và s

Giả mã của các quá trình tìm kiếm successor của node n, khởi tạo bảng định tuyến của n, cập nhật bảng finger của các node liên quan và quá trình stabilization như sau:

//yêu cầu node n tìm successor của id

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

#define successor finger[1].node

// node n join vào mạng;

// n’ là một node tùy ý trong mạng

n.join(n’)

if (n’)

init_finger_table(n’); update_others();

// chuyển key trong khoảng (predecessor,n] từ successor

Trang 30

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

Quá trình rời khỏi mạng có báo trược được thực hiện như sau: node sắp rời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báo cho các node predecessor và successor Bảng định tuyến của các node liên quan sẽ được cập nhật khi các node này chạy thuật toán stabilization

Hình 1.6X dưới đây cho chúng ta một ví dụ về bảng định tuyến của các node khi có sự join/leave Ban đầu mạng có 3 node với ID là 0, 1, 3, bảng định tuyến của chúng được cho thấy trên hình vẽ

Trang 31

Sau đó node 6 join vào mạng rồi node 3 rời khỏi mạng, bảng định tuyến của các node và sự thây đổi bảng định tuyến được thể hiện trong hình vẽ với những phần thay đổi có màu đen, những phần không đổi có màu xám

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

Replication and Fault Tolerance

Các node rời khỏi mạng đột ngột có hai tác động tiêu cực Thứ nhất là dẫn đến mất dữ liệu lưu trên các node này, thứ hai một phần của vòng bị mấtl liên kết dẫn đến một số ID sẽ không được tìm thấy Có thể xảy ra tình huống một dãy các node liền nhau cùng rời khỏi mạng đột ngột Chord giải quyết vấn đề này bằng cách cho mỗi node lưu một danh sách log2(N) node theo sau nó trong không gian ID Danh sách này có hai mục đích, thứ nhất là nếu một node phát hiện successor của nó không hoạt động, nó sẽ thay thế bằng node ngay cạnh trong successor list, thứ hai, mọi dữ liệu được lưu trên một node nào đó cũng được lưu trên các node trong successor list Dữ liệu chỉ bị mất hay vòng chỉ bị đứt khi có log2(N) + 1 node liên tiếp fail đồng thời

Trang 32

Upper Services and Applications

Một số ứng dụng như cooperative file-system [14], một ứng dụng đọc/ghi hệ thống file và một DNS đã được xây dựng dựa trên Chord Đồng thời, một thuật toán broadcast cũng được phát triển cho Chord

Implementation

Cài đặt chính của Chord được thực hiện bằng nghôn ngữ C++ Thêm nữa, một C++ discrete-event simulator cũng đã được xây dựng Naanou là một cài đặt C# của Chord với một ứng dụng chia sẻ file được xây dựng dựa trên nó

1.3.2 Kademlia

Overlay graph

Kademlia graph tổ chức các ID trong không gian vòng tròn trong đó ID của các node là lá của cây nhị phân, vị trí của các node được xác định bằng prefix của ID Các ID trong Kademlia được biểu diễn theo cơ sở nhị phân Mỗi node chia cây nhị phân thành các cây nhị phân con liên tiếp mà không chứa ID của node và lưu ít nhất một contact trong mỗi cây con này Ví dụ, một node với ID là 3 có biểu diễn nhị phân 0011 trong không gian ID N=16 Do prefix với độ dài 1 là 0 nên nó cần biết một node với chữ số đầu tiên là 1 Tương tự như vậy, do prefix với độ dài 2 là 00 nên node cần biết một node với prefix là 01 Prefix với độ dài 3 là 001, node cần biết một node khác với prefix 000 Cuối cùng, do prefix với độ dài bằng 4 là 0011 nên nó cần biết node có prefix là 0010 Quy tắc này được minh họa trong XHình 1.7X dưới đây:

Trang 33

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

Kademlia không lưu một danh sách các node gần với nó trong không gian ID như successor list của Chord Tuy nhiên với mỗi cây con trong không gian ID, node lưu tới k contact thay vì một contact nếu có thể và gọi một nhóm không nhiều hơn k contact trong một cây con là subtree

Mapping items onto nodes

Kademlia định nghĩa khái niệm khoảng cách giữa hai ID là kết quả XOR của hai ID Một item được lưu trên node mà khoảng cách giữa hai ID là nhỏ nhất

Trang 34

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

Khi một node muốn chèn một item mới nào đó, nó sẽ lưu item tại k node gần nhất với ID Do sử dụng so khớp prefix nên một lookup sẽ được thực hiện trong O(log(N)) chặng

Joins, leave and maintenance

Một node tìm thấy node gần nó nhất thông qua bất kỳ contact ban đầu nào và khởi tạo bảng định tuyến của nó bằng cách yêu cầu node đó tìm kiếm các node trong các cây con khác nhau

Nếu một k-bucket được bổ xung quá nhiều node từ một cây con nào đó, quy tắc thay thế least-recently-used sẽ được áp dụng

Tuy nhiên Kademlia sử dụng một thống kê từ các nghiên cứu về peer-to-peer cho rằng một node nếu đã kết nối trong một khoảng thời gian dài nhiều khả năng sẽ tiếp tục ở lại mạng trong một thời gian dài nữa Do đó, Kademlia có thể bỏ qua thông tin về các node mới nếu nó đã biết nhiều node ổn định trong cây con đó

Việc maintenance bảng định tuyến sau khi node join/leave được thực hiện nhờ sử dụng lưu lượng lookup, kỹ thuật này khác với kỹ thuật stabilization của Chord XOR metric dẫn đến mọi node nhận được truy vấn từ node chứa trong bảng định tuyến của nó Do đó, nhận được một thông điệp từ một node nào đó trong cây con chính là một cập nhật k-bucket của cây con đó Cách tiếp cận này rõ ràng là tối thiểu hóa chi phí bảo trì

Một nhiệm vụ bảo trì khác là dựa vào việc nhận được nhiều truy vấn từ một cây con, Kademlia cập nhật latency của các node trong một k-bucket cụ thể Việc này cải thiện sự lựa chọn node cho quá trình tìm kiếm và có thể nói rằng Kademlia cũng chú ý đến độ trễ và tính vị trí của các node

Trang 35

Replication and Fault Tolerance

Khả năng chịu lỗi của Kademlia phụ thuộc chủ yếu vào liên kết bền vững trong k-bucket bởi vì Kademlia lưu k contact cho mỗi cây con, điều này giúp cho khả năng graph bị đứt liên kết thấp

Kademlia lưu k phiên bản của một item trên k node gần id của item nhất, các node này được republish định kỳ Chính sách cho việc republish này là bất kỳ node nào thấy nó gần với item ID hơn các node khác mà nó biết sẽ báo cho k-1 node còn lại biết

Applications and Implementation

Kademlia được chấp nhận rộng rãi thông qua hai ứng dụng chia sẻ file là Overnet và Emule

1.3.3 Tapestry

Overlay graph

Tapestry cũng tổ chức các ID trong không gian vòng tròn N Các ID được biểu diễn theo base β

Trang 36

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

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

Trang 37

tuyến chứa các node có ID giống với ID của node đó ở chữ số thứ nhất nhưng khác ở chữ số thứ hai Các hàng còn lại của bảng định tuyến được tổ chức tương tự như vậy

Hình 1.8X minh họa cách chia không gian ID của Tapestry

Để tăng tính dự phòng, ở mỗi mức, mỗi contact lại được dự phòng bởi c contact cùng nhóm Một node Tapestry có bảng định tuyến với logβN mức, mỗi mức có c × β contact Như vậy bảng định tuyến của Tapestry có kích thước c × β × logβN

Mapping items onto nodes

Tapestry ánh xạ ID của item tới một node duy nhất gọi là root của ID Nếu tồn tại node N có ID bằng với ID của item thì node được gọi là root của item đó Nếu không tồn tại node có ID bằng với ID của item thì item được ánh xạ vào node có ID gần ID của nó nhất Tapestry không chuyển item đến node nào đó trên mạng mà chỉ thiết lập con trỏ trên các node nằm trên đường đi từ node chứa item tới node root của item trỏ tới item

Lookup process

Quá trình định tuyến của Tapestry diễn ra như sau Để tìm một node gần với một ID x nhất, node sẽ dùng bảng định tuyến kiểm tra từ trên xuống dưới xem x rơi vào khoảng ID nào Nếu x rơi vào khoảng ID khác với khoảng ID của node, node sẽ chuyển tiếp truy vấn tới contact của nó nằm trong khoảng ID đó Quá trình cứ diễn ra như vậy cho đến khi đến node root của x Nếu trong bảng định tuyến của node không tồn tại contact như vậy, node sẽ chuyển tiếp truy vấn tới node có ID gần với x nhất

Trang 38

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

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

Để thông báo về sự tồn tại của một item I, node n lưu item định kỳ gửi thông điệp đến root của item đó Mỗi node dọc đường đi của thông điệp sẽ lưu một con trỏ ánh xạ (I,n) thay vì lưu lại bản thân item Khi có vài bản sao của một item trên một số node, mỗi node sẽ thông báo về bản sao nó lưu Một node nhận được nhiều thông báo về một item, nó sẽ lưu ánh xạ theo thứ tự latency

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

Trang 39

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

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

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

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

Trang 40

Join/leave and maintenance

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

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

1.3.4 Kelips

Overlay graph

Kelisp băm không gian ID vào k nhóm sử dụng consistent hashing, đánh số từ 0 đến k-1 Do sử dụng thuật toán consistent hashing nên Kelips đảm bảo rằng số node trong mỗi nhóm là n/k với xác xuất cao

Bảng định tuyến của một Kelips node bao gồm ba phần:

− Affinity group view: thông tin về một tập các node nằm trong cùng nhóm − Contact: đối với mỗi nhóm, Kelips lưu thông tin về một tập nhỏ các node trong

nhóm đó

− Filetuples: một tập các bộ, mỗi bộ lưu thông tin về một file và node chứa file đó

Một node chỉ lưu thông tin về các file chứa trong các node nằm cùng nhóm với node đó

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

Ngày đăng: 10/11/2012, 10:08

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Mô hình centralized directory - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.1. Mô hình centralized directory (Trang 15)
Hình 1.1.  Mô hình centralized directory - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.1. Mô hình centralized directory (Trang 15)
Hình 1.2. Mô hình flooding request - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.2. Mô hình flooding request (Trang 16)
Hình 1.2. Mô hình flooding request - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.2. Mô hình flooding request (Trang 16)
Hình 1.3. Distributed HashTable 1.3.Giới thiệu một số  DHT  - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.3. Distributed HashTable 1.3.Giới thiệu một số DHT (Trang 22)
Hình 1.3. Distributed Hash Table - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.3. Distributed Hash Table (Trang 22)
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 - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 (Trang 25)
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 - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 (Trang 25)
// khởi tạo bảng finger table của node - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
kh ởi tạo bảng finger table của node (Trang 28)
Hình 1.5. Quá trình một node join vào mạng - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.5. Quá trình một node join vào mạng (Trang 30)
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í  của key sau khi node 3 leave - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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í của key sau khi node 3 leave (Trang 31)
Hình 1.7.Con trỏ của node 3 (0011)  trong Kademlia - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.7. Con trỏ của node 3 (0011) trong Kademlia (Trang 33)
Hình 1.8. Minh họa cách chọn bảng định tuyến của một node Tapestry - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.8. Minh họa cách chọn bảng định tuyến của một node Tapestry (Trang 36)
Hình 1.9. Đường đi của thông điệp từ node 5230 tới node 42AD - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.9. Đường đi của thông điệp từ node 5230 tới node 42AD (Trang 38)
Quá trình truy vấn item được minh họa trong X Hình 1.11 X dưới đây - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
u á trình truy vấn item được minh họa trong X Hình 1.11 X dưới đây (Trang 39)
Hình 1.10. Ví dụ về Tapestry node publish item - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.10. Ví dụ về Tapestry node publish item (Trang 39)
Hình 1.11. Ví dụ về Tapestry node tìm kiếm item - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.11. Ví dụ về Tapestry node tìm kiếm item (Trang 39)
Hình 1.12. Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng thái tại một node cụ thể - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.12. Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng thái tại một node cụ thể (Trang 41)
Hình 1.12.  Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng thái  tại một node cụ thể - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 1.12. Mạng Kelips trong đó các node phân tán trong 10 nhóm affinity và trạng thái tại một node cụ thể (Trang 41)
Bảng 1.1. Trạng thái phát triển của các simulator - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 1.1. Trạng thái phát triển của các simulator (Trang 43)
1.4.1. Khảo sát các simulator mô phỏng mạng overlay - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
1.4.1. Khảo sát các simulator mô phỏng mạng overlay (Trang 43)
Bảng 1.1. Trạng thái phát triển của các simulator - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 1.1. Trạng thái phát triển của các simulator (Trang 43)
Không được mô hình hóa - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
h ông được mô hình hóa (Trang 44)
Bảng 1.2. Đặc điểm của các simulator - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 1.2. Đặc điểm của các simulator (Trang 44)
Hình 2.1. Node join/leave với interval=600s trong mạng Chord100 node - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.1. Node join/leave với interval=600s trong mạng Chord100 node (Trang 48)
Hình 2.1. Node join/leave với interval=600 s trong mạng Chord 100 node - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.1. Node join/leave với interval=600 s trong mạng Chord 100 node (Trang 48)
Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate (Trang 50)
Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.2. Lưu đồ thuật toán quá trình xác định churn rate (Trang 50)
Hình 2.3 X biểu diễn tỷ lệ tìm kiếm thành công của Kademlia trong mạng 100 và 1000 nodem, tương ứng với churn rate 180s  - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.3 X biểu diễn tỷ lệ tìm kiếm thành công của Kademlia trong mạng 100 và 1000 nodem, tương ứng với churn rate 180s (Trang 51)
Hình 2.3. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công (fration of successful lookups) theo băng thông trung bình một node sử dụng (average live bandwidth)  trong mạng  - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.3. Đồ thị biểu diễn tỷ lệ tìm kiếm thành công (fration of successful lookups) theo băng thông trung bình một node sử dụng (average live bandwidth) trong mạng (Trang 51)
Bảng 2.1. Bảng tham số của Kademlia - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.1. Bảng tham số của Kademlia (Trang 51)
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 node sử dụng trong mạng Chord 100 node (trái) và 1000 node (phải) - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 node sử dụng trong mạng Chord 100 node (trái) và 1000 node (phải) (Trang 52)
Hình 2.4 X biểu diễn tỷ lệ tìm kiếm thành công của Chord trong mạng 100 và 1000 nodem, tương ứng với churn rate 1800s và 4200s - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.4 X biểu diễn tỷ lệ tìm kiếm thành công của Chord trong mạng 100 và 1000 nodem, tương ứng với churn rate 1800s và 4200s (Trang 52)
Bảng 2.2. Bảng tham số của Chord - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.2. Bảng tham số của Chord (Trang 52)
Hình 2.5 X biểu diễn tỷ lệ tìm kiếm thành công của Kelips trong mạng 100 và 1000 nodem, tương ứng với churn rate 2400s và 7200s - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.5 X biểu diễn tỷ lệ tìm kiếm thành công của Kelips trong mạng 100 và 1000 nodem, tương ứng với churn rate 2400s và 7200s (Trang 53)
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 node sử dụng trong mạng Kelips 100 node (trái) và 1000 node (phải) - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 node sử dụng trong mạng Kelips 100 node (trái) và 1000 node (phải) (Trang 53)
Bảng 2.3. Bảng tham số của Kelips - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.3. Bảng tham số của Kelips (Trang 53)
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 node sử dụng   trong mạng Tapestry 100 node (trái) và 1000 node (phải) - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 node sử dụng trong mạng Tapestry 100 node (trái) và 1000 node (phải) (Trang 54)
Hình 2.6 X biểu diễn tỷ lệ tìm kiếm thành công của Tapestry trong mạng 100 và 1000 nodem, tương ứng với churn rate 7200s  - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.6 X biểu diễn tỷ lệ tìm kiếm thành công của Tapestry trong mạng 100 và 1000 nodem, tương ứng với churn rate 7200s (Trang 54)
Bảng 2.4. Bảng tham số của Tapestry - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.4. Bảng tham số của Tapestry (Trang 54)
Bảng 2.6. Điều kiện mô phỏng - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.6. Điều kiện mô phỏng (Trang 56)
Bảng giá trị tham số của Chord - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng gi á trị tham số của Chord (Trang 56)
Bảng giá trị tham số của Kelips - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng gi á trị tham số của Kelips (Trang 57)
Bảng 2.9. Giá trị tham số của Kelips - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.9. Giá trị tham số của Kelips (Trang 57)
Bảng 2.9. Giá trị tham số của Kelips - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.9. Giá trị tham số của Kelips (Trang 57)
Bảng 2.10. So sánh giữa Chord, Kelips và Tapestry - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.10. So sánh giữa Chord, Kelips và Tapestry (Trang 58)
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ễ - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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ễ (Trang 62)
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ễ  tìm kiếm trung bình (hình dưới) trong các mạng có kích thước khác nhau - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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ễ tìm kiếm trung bình (hình dưới) trong các mạng có kích thước khác nhau (Trang 62)
Bảng 2.14. Bảng tóm tắt kết quả - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.14. Bảng tóm tắt kết quả (Trang 65)
Bảng 2.14. Bảng tóm tắt kết quả - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.14. Bảng tóm tắt kết quả (Trang 65)
Bảng 2.17. Giá trị tham số của Tapestry - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Bảng 2.17. Giá trị tham số của Tapestry (Trang 67)
Hình 2.13.  Biểu diễn convex hull của successor stabilization interval (trái) và finger  stabilization interval (phải ) trong mạng Chord 1000 node khi các node join/leave với - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 2.13. Biểu diễn convex hull của successor stabilization interval (trái) và finger stabilization interval (phải ) trong mạng Chord 1000 node khi các node join/leave với (Trang 68)
Hình 3.1. Biểu đồ chuyển đổi trạng thái của node Chord - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 3.1. Biểu đồ chuyển đổi trạng thái của node Chord (Trang 72)
Hình 3.1. Biểu đồ chuyển đổi trạng thái của node Chord - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 3.1. Biểu đồ chuyển đổi trạng thái của node Chord (Trang 72)
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 - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 (Trang 73)
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 - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 (Trang 73)
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 - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
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 (Trang 76)
Hình 3.4. Kiến trúc của giải pháp caching proxy - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 3.4. Kiến trúc của giải pháp caching proxy (Trang 82)
Hình 3.4. Kiến trúc của giải pháp caching proxy - Luận văn thạc sĩ Hiệu năng Thuật toán Giải pháp Cải tiến
Hình 3.4. Kiến trúc của giải pháp caching proxy (Trang 82)

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

w