1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phân tích, đánh giá hiệu năng một số giao thức mạng phân tán trên môi trường network simulator

79 17 0

Đ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 79
Dung lượng 3,22 MB

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

Nội dung

o đó việc quản lý cácthông tin đòi hỏi tính chính xác, liên tục, và đồng bộ giữa các bộ phận, các cơ sở khác nhau, việc quản lý thông tin, dữ liệu của tổ chức không chỉ tập trungtại một

Trang 2

Tôi xin cam đoan các số liệu và kết quả nghiên cứu trong đề tài là trungthực, các kết quả nghiên cứu được thực hiện tại Trường ại học Quy Nhơndưới sự hướng dẫn của TS Nguyễn Thành ạt, các tài liệu tham khảo đã đượctrích dẫn đầy đủ, rõ ràng.

Học viên

N u ễn Văn Quố

Trang 3

Trong quá trình học tập và hoàn thành luận văn, tôi đã nhận được sựủng hộ, giúp đỡ quý báu từ các thầy cô giáo, các đồng nghiệp, bạn bè vàngười thân.

Lời đầu tiên, tôi xin bày tỏ sự kính trọng và biết ơn sâu sắc nhất tới TS.Nguyễn Thành ạt - người đã hướng dẫn trực tiếp, tận tình giúp đỡ, động viên

và tạo điều kiện thuận lợi nhất cho tôi trong suốt thời gian thực hiện đề tàiluận văn

Tôi xin được cảm ơn sự quan tâm, giúp đỡ, ân cần chỉ bảo và nhiệt tìnhgiảng dạy của các thầy cô Khoa ông nghệ thông tin, Khoa Khoa học tự nhiên,Trường ại học Quy Nhơn Những kiến thức mà các thầy cô đã hết lòng truyềnđạt là nền tảng tri thức vững chắc cho chúng tôi trong quá trình học tập cũngnhư sau khi ra trường

uối cùng, tôi xin cảm ơn những người thân của mình đã luôn bêncạnh, giúp đỡ, động viên và tạo mọi điều kiện để tôi hoàn thành luận văn tốtnghiệp

Học viên

N u ễn Văn Quố

Trang 4

PHẦN MỞ ẦU

1 Lý o ọn đề t

Hiện nay, máy tính và mạng toàn cầu đã mang đến những sự phát triểnmạnh mẽ trong tất cả các hoạt động của con người, hỗ trợ con người pháttriển xã hội một cách vượt bậc so với thời kỳ chưa có máy tính và mạngInternet Với sự phát triển đó, thông tin là một nguồn tri thức rất quan trọng,

vì thế mà việc lưu trữ, chia sẻ thông tin rất được quan tâm ể đáp ứng nhu cầutiếp thu thông tin mọi lúc mọi nơi, mà thông tin được lưu trữ, quản lý ở khắpmọi nơi trên thế giới hính vì thể rất nhiều tổ chức phân bố các chi nhánh trênnhiều vị trí ở các thành phố, các quốc gia khác nhau, để đáp ứng nhu cầu cungcấp thông tin cho địa phương và quốc gia ngay tức thì o đó việc quản lý cácthông tin đòi hỏi tính chính xác, liên tục, và đồng bộ giữa các bộ phận, các cơ

sở khác nhau, việc quản lý thông tin, dữ liệu của tổ chức không chỉ tập trungtại một chi nhánh duy nhất mà cần được quản lý tại tất cả các chi nhánh, vàđặc biệt các thông tin, dữ liệu này phải có mối liên hệ logic với nhau thôngqua mạng máy tính Việc quản lý thông tin, dữ liệu theo kiểu truyền thống,hay tập trung như trước đây sẽ không giải quyết được vấn đề nêu trên, đểđảm bảo tính liên tục, nhanh chóng, chính xác cho mọi hoạt động lưu trữ,chia sẻ thông tin cần phải có một giải pháp toàn diện cho các vấn đề về tổchức và kinh tế, sự liên kết các cơ sở dữ liệu đang tồn tại, sự phát triển mởrộng, giảm tổng chi phí tìm kiếm, tin cậy và tính sẵn sàng ó chính là mạngphân tán, khác với mạng truyền thống, mạng phân tán có khả năng làm đượcnhững việc mà mạng khác không làm được, đáp ứng được yêu cầu là thôngtin được liên tục, liền mạch, chính xác nhưng không làm quá tải nơi lưu trữthông tin [5]

Ngày nay mô phỏng là phương pháp chính để đánh giá và phân tích hiệusuất của các hệ thống trước khi áp dụng vào thực tế là một điều cần thiết,

Trang 5

việc tìm hiểu về mạng phân tán và mô phỏng các giao thức phổ biến trênmạng phân tán như hord, Tapestry, Kelips, Kademlia trên môi trường mạnggiả lập như Network Simulator 2 (NS2), Oversim, P2PSim để nghiên cứucách các giao thức hoạt động, đánh giá hiệu năng, phân tích dữ liệu từ đó đưa

ra được ưu khuyết điểm của từng giao thức, và chọn ra được giao thức phùhợp nhất cho từng trường hợp cụ thể để áp dụng vào thực tế [1]

Qua đó, chúng ta thấy được tầm quan trọng cũng như sự những nhu cầucho nghiên cứu, phân tích đánh giá mạng phân tán và các giao thức trên môitrường mạng phân tán

Từ những lý do ở trên, chúng tôi chọn đề tài “P ÂN TÍC , ÁN

- ối tượng nghiên cứu: Một số giao thức trên mạng phân tán

- Phạm vi nghiên cứu: Mạng phân tán trên môi trường mạng giả lập

Phương pháp nghiên cứu tài liệu: Qua nguồn tài liệu đã được xuất bản,ban hành, các bài báo đã đăng trên các tạp chí khoa học, các tài liệu liên quanđến vấn đề đang nghiên cứu trên Internet

Phương pháp thực nghiệm: Tiến hành phân tích thiết kế giao thức, môphỏng giao thức phân tán, và thiết lập các giao thức trên môi trường mạng giảlập để đánh giá, so sánh các giao thức tìm kiếm và phân bổ thông tin trênmạng phân tán

Trang 6

5 Ý n ĩ k o ọ v n ĩ t ự t ễn

Mang lại các tổng hợp, đánh giá, phân tích mạng phân tán, giao thứcphân tán được mô phỏng trên môi trường mạng giả lập Mang tới cái nhìn chitiết nhất về mạng phân tán, giao thức mạng phân tán, hiệu năng, phân bổ vàlưu trữ thông tin, tìm kiếm và đề xuất, từ đó nhận ra ưu khuyết điểm để nângcao, hoàn thiện hơn mạng phân tán và những thành phần liên quan

Hiện nay nhu cầu về mạng phân tán đang rất lớn, với các phân tíchđánh giá này thì việc nhìn nhận tốt hơn về mạng phân tán cũng như các giaothức chạy trên môi trường mạng phân tán sẽ giúp tạo ra các giao thức mới tối

ưu, cải thiện mạng phân tán để đáp ứng được các nhu cầu mới trong sự pháttriển ngày càng tiến bộ của khoa học kỹ thuật

6 Kết ấu ủ luận văn

ể thực hiện đề tài một cách hệ thống, ngoài phần mở đầu, kết luận, tài liệutham khảo, luận văn có cấu trúc 3 chương như sau:

Chương 1: Một số kiến thức lý thuyết cơ sở về mạng phân tán.

hương này sẽ tìm hiểu về tổng quan về lý thuyết mạng máy tính,mạng phân tán, các giao thức trên mạng phân tán

Chương 2: Mô tả, phân tích giao thức phân tán.

Trong chương này, tìm hiểu các giao thức cụ thể về khái niệm, mô tả,chi tiết từng thành phần của các giao thức

Chương 3: Mô phỏng, đánh giá giao thức phân tán.

Trong chương này sẽ nêu rõ các phương pháp phân tích, giới thiệu cáccông cụ mô phỏng mạng và tiến hành mô phỏng các giao thức lên môi trườngmạng ảo, để tiến hành phân tích, đánh giá về hiệu năng, tìm kiếm của các giaothức

Trang 7

phong phú hơn, nhất là trong lĩnh vực truyền thông mà tiêu biểu là mạng máytính.

Mạng máy tính là mạng viễn thông kỹ thuật số cho phép các node mạngchia sẻ tài nguyên Trong các mạng máy tính, các thiết bị máy tính trao đổi dữliệu với nhau bằng các kết nối (liên kết dữ liệu giữa các node) Các liên kết dữliệu này được thiết lập qua cáp mạng như dây hoặc cáp quang hoặc phươngtiện không dây như Wi-Fi Các node mạng có khả năng khởi động, định tuyến

và chấm dứt dữ liệu, được xác định bởi các địa chỉ mạng và bao gồm tất cảcác thiết bị (máy tính cá nhân, điện thoại, máy chủ, bộ định tuyến, chuyểnmạch,…) có thể kết nối với nhau trực tiếp hoặc gián tiếp được hỗ trợ bởi cácgiao thức truyền thông mạng (network protocol) Mạng máy tính có thể giúpcon người truy cập vào số lượng lớn các ứng dụng và dịch vụ có thể có donhững người khác chia sẻ [5]

Hệ thống mạng máy tính với những ưu điểm như tăng tốc độ tìm kiếm

và download dữ liệu, dễ dàng trong việc giao lưu trao đổi thông tin giữangười và người, nối liền khoảng cách…đã và đang có nhiều ứng dụng trongtất cả các lĩnh vực, nhất là trong thông tin liên lạc

1.1.2 Mạng ngang hàng peer – to – peer

Mô hình mạng ngang hàng (Peer-to-Peer Network) hay mạng nganghàng là một cấu trúc được tạo nên bởi các máy tính liên kết với nhau, vai tròcủa mỗi máy tính là như nhau, mỗi máy tính là một phần (peer) và duy trì sự

Trang 8

tồn tại của mạng ngang hàng mà không cần đến máy chủ hay các phần mềmmáy chủ.

Hình 1 1: Mô ìn k ủ v n n n P2P

1.1.2.1 Phân loại P2P

Tùy vào sự phân quyền, cách thức trao đổi, thu nhận tài nguyên của cácmáy tính trong mạng, để chia P2P làm hai loại kiến trúc chính

Mạn P2P t uần tú là mô hình thể hiện chính xác bản chất của mạng

P2P nhất, vì nó hoàn toàn không có máy chủ trung tâm quản lý mạng mà mọimáy tính đều có vai trò vừa là khách, vừa là chủ và không hề có các máy địnhtuyến hoặc trung tâm định tuyến mà các máy tự định tuyến với nhau Mọimáy tính đều cân bằng về chức năng, các máy là các node (hay gọi làservant) ác mạng P2P thuần túy có thể kể đến nhƣ: Gnutella, Freenet,Kademlia…

Trang 9

Hình 1 2 Mạn P2P t uần tú

Kiến trúc này có khả năng mở rộng mạng nhanh, chịu lỗi hệ thống cao,

và mọi máy tính đều có tính tự chủ độc lập Nếu có vấn đề xảy ra như một vàinode bị lỗi thì không gây ra lỗi toàn mạng và có thể dễ dàng bù đắp bằng cácnode mới tham gia vào ũng chính vì P2P thuần túy không có máy chủ trungtâm để định tuyến nên tốc độ phát hiện thông tin chậm, dịch vụ không đượcđảm bảo, và hành vi của hệ thống khó có thể ghi nhận được [2]

Mạn P2P l ép Sẽ có một máy chủ trung tâm dùng để lưu trữ thông tin

của các máy khác, làm nhiệm vụ trả lời các truy vấn thông tin trong mạng ácmáy khách có vai trò lưu trữ thông tin, tài nguyên được chia sẻ, cung cấp cácthông tin chia sẻ tài nguyên của nó cho máy chủ iểm khác biệt nữa so với P2Pthuần là có sử dụng các trạm định tuyến để xác định địa chỉ IP của các máykhách ó hai kiểu mạng lai ghép: mạng lai ghép với chỉ số hóa tập trung, tức là

có một máy chủ trung tâm bảo trì các chỉ số của dữ liệu hoặc tài liệu hiện tạiđang được chia sẻ bởi các máy khách, mỗi máy khách giữ gìn một kết nối tớimáy chủ trung tâm để gửi các yêu cầu, kiến trúc này thường được sử dụngtrong mạng Napster Hệ thống này tuy đơn giản nhưng hoạt động hiệu quả,tìm kiếm thông tin nhanh, toàn diện và đảm bảo kết quả tìm kiếm Tuy vậy nórất dễ bị lỗi và sụp đổ khi máy chủ trung tâm bị lỗi hoặc

Trang 10

bị tấn công, kích thước cơ sở dữ liệu và khả năng đáp ứng yêu cầu là có giớihạn trong phạm vi các máy tham gia mô hình mạng này.

Discovery server

data exchange

Hình 1 3 Mạn l v ỉ số ó tập trun

Kiểu thứ hai là mạng lai ghép với chỉ số hóa phân tán, có một máy chủtrung tâm đăng kí được sử dụng cho cả hệ thống và tạo điều kiện để dễ dàngkhám phá các node có trong mạng ó một vài node được xem là quan trọnghơn với các node còn lại (super node), làm nhiệm vụ bảo trì các chỉ số chothông tin chia sẻ bởi tất cả các node mà được kết nối với nó và được ủyquyền từ máy chủ trung tâm để thực hiện tìm kiếm trong phạm vi các node đã

có kết nối với super node [2]

data exchange

Super node

Super node

Hình 1 4 Mạn l v ỉ số p ân t n

1.1.2.2 Mạng P2P không có cấu trúc và có cấu trúc

ựa vào cấu trúc liên kết giữa các nút mạng trong mạng P2P ta có thể phân loại thành 2 loại [2]

Mạng P2P không có cấu trúc là mạng trong đó các liên kết giữa các nút mạng được thiết lập một cách ngẫu nhiên, không theo một quy luật nào Mỗi

Trang 11

máy tính mới tham gia vào mạng rất dễ dàng, nhưng khi tìm kiếm thông tinthì hệ thống này không thể đảm bảo thành công cao vì không có mối tươngquan nào giữa một node và dữ liệu của nó đang lưu trữ Mỗi lần một node cầnthông tin, vì không có định hướng, nên yêu cầu sẽ được gửi ngẫu nhiên tớimột số node trong mạng, số lượng node càng lớn, khả năng tìm thấy càng caonhưng sẽ làm tốn rất nhiều băng thông mạng Napster, nutella, Fasttrack và

e onkey2000 là những mạng đại diện cho kiểu P2P không có cấu trúc này.Mạng P2P có cấu trúc khắc phục được nhược điểm của mạng P2P không có

cấu trúc bằng cách sử dụng hệ thống HT ( istributed Hash Table– ảng băm phân tán) Hệ thống định nghĩa liên kết giữa các nút mạng theothuật toán cụ thể, xác định chặt chẽ mỗi node sẽ chịu trách nhiệm đối với phần

dữ liệu chia sẻ trong mạng Khi tìm kiếm và lấy thông tin, dữ liệu sẽ đượcnhanh chóng hiệu quả hơn khi đã có một định tuyến rõ ràng hord, CAN,Kademlia, Pastry và Tapestry là các đại diện cho kiểu mạng P2P có cấu trúcnày

1.1.2.3 Cơ chế tìm kiếm trong hệ thống mạng P2P

ách tìm kiếm ở các thế hệ mạng P2P rất khác nhau, với cấu trúc tậptrung ở thế hệ thứ nhất đến thế hệ thứ hai với cơ chế ngập lụt và cuối cùng làthế hệ thứ ba mới nhất dựa vào bảng băm phân tán

Tìm kiếm với chỉ số hóa tập trung và kho chứa được sử dụng trongmạng lai ghép, máy khách kết nối với máy chủ trung tâm để được định tuyếntới nơi mà máy khách yêu cầu có dữ liệu là tốt nhất và khi đó hai máy kháchtrực tiếp trao đổi với nhau mà không cần máy chủ [3]

Làm ngập lụt các câu hỏi (Flooding broadcast of queries) được sử dụngtrong mạng P2P thuần, để tìm kiếm thông tin cần, một node gửi thông tin tớitất cả các node mà nó kết nối, cứ như thế yêu cầu này được gửi đi cho đếnkhi nhận được trả lời từ node có chứa thông tin mà node yêu cầu cần

Trang 12

Mô hình định tuyến dựa trên bảng băm phân tán (Routing model) làcách tìm kiếm tiên tiến nhất được sử dụng trong mạng P2P thuần Mỗi tàinguyên sẽ băm tên và nội dung để tạo ra một I , sau đó sẽ được lưu trữ ở mộtnode mà có I gần với I của tài nguyên đó Khi một node khác có yêu cầu, thìchỉ việc băm tên của tài nguyên đó và gửi thông tin đến tất cả các node hàngxóm trong bảng định tuyến của mình đến khi nhận được trả lời từ node đanglưu giữ tài nguyên.

1.1.2.4 Các ứng dụng của P2P

ó rất nhiều các ứng dụng dựa trên nền tảng P2P, trong số đó tiêu biểunhư: Giao tiếp (communication), chia sẻ file (file sharing), băng thông(bandwidth), không gian lưu trữ (storage), các chu trình xử lý (processorcycles) Hiện tại mạng chúng ta sử dụng đều dựa trên nền tảng P2P này, đóthực sự là một phát minh vĩ đại nhất của loài người

1.1.3 Giao thức

Giao thức giao tiếp hay còn gọi là giao thức truyền thông, giao thứcliên mạng, giao thức tương tác, giao thức trao đổi thông tin (tiếng Anh làcommunication protocol) - trong công nghệ thông tin gọi tắt là giao thức(protocol), tuy nhiên, tránh nhầm với giao thức trong các ngành khác - là mộttập hợp các quy tắc chuẩn dành cho việc biểu diễn dữ liệu, phát tín hiệu,chứng thực và phát hiện lỗi dữ liệu - những việc cần thiết để gửi thông tin quacác kênh truyền thông, nhờ đó mà các máy tính (và các thiết bị) có thể kết nối

và trao đổi thông tin với nhau ác giao thức truyền thông dành cho truyềnthông tín hiệu số trong mạng máy tính có nhiều tính năng để đảm bảo việctrao đổi dữ liệu một cách đáng tin cậy qua một kênh truyền thông không hoànhảo ác giao thức có thể được thực hiện bằng phần cứng, phần mềm hoặc kếthợp cả hai.[3]

Trang 13

1.2M N P ÂNTÁN

1.2.1 Tổng quan

Mạng phân tán ( istributed Network) là mạng tập hợp các máy tính độclập không phụ thuộc lẫn nhau được kết nối với nhau có chức năng và dữ liệutrải rộng trên các trạm (máy tính) giao tiếp với nhau bằng các giao thức phântán, có khả năng phối hợp với nhau, chia sẻ tài nguyên hoặc thực hiện mộtnhiệm vụ chung Mỗi máy tính hoạt động độc lập và giao tiếp với người dùngnhư một hệ thống toàn vẹn [4]

Vì các lý do khác nhau, chủ yếu do người dùng phân tán (địa lý) và dữliệu phân tán (địa lý) nên việc thúc đẩy phát triển một mạng có tính mở, khảchuyển, co dãn, thay đổi phạm vi linh hoạt (quy mô), tính sẵn dùng cao, ngay

cả khi một phần hệ thống bị lỗi ặc biệt do sự phát triển không ngừng của cácthiết bị di dộng và siêu di động đã tạo ra các mạng kết nối vô cùng lớn với khảnăng xử lý gấp nhiều lần, vì vậy các phần mềm phân tán và mạng phân tánđược phát triển do các nhu cầu ứng dụng, tích hợp các ứng dụng riêng rẽ đang

có để phát triển thêm, sử dụng các nguồn tài nguyên đang có như lưới tínhtoán, quản lý dữ liệu có sẵn, đều có khả năng tích hợp vào mạng phân tán màkhông cần phải xây dựng lại từ đầu nhờ vào nền tảng chi phí và hiệu năng củamáy tính và truyền thông hiện tại [4]

Nhưng đi kèm với những thuận lợi đã có thì vẫn có những khó khănnhất định khi phát triển mạng phân tán Vì có vô số phần cứng, phần mềmhoàn toàn không giống nhau tham gia, nên việc giao tiếp khó khăn, một phầnchịu ảnh hường từ đường truyền mạng (băng thông, tỉ lệ lỗi truyền, tính sẵndùng trong giờ cao điểm) nên việc truyền dữ liệu chưa chắc thành công, cácràng buộc về thứ tự sự kiện (các kiểu đồng bộ khác nhau) và ràng buộc vềtopology truyền thông (trao đổi thông điệp) của ứng dụng nên việc phát triểnkhó khăn hơn các hệ thống mạng thông thường

Trang 14

ụ thể hơn, trong quy trình phát triển mạng phân tán, có các câu hỏithường không có một câu trả lời toàn vẹn và đầy đủ từ đó dẫn tới với dự tínhsai chi phí, nguồn lực, thời gian Từ đó dẫn tới việc phát triển mạng phân tánthất bại, gia tăng chi phí và thời gian phát triển Ví dụ như các thành phần cókhả năng tương tác với nhau hay không, nếu có thì ở mức độ nào, và ảnhhưởng thế nào tới kiến trúc chung của hệ thống? [6] Việc che dấu ngườidùng về sự phân tán thực hiện ở mức nào, một phần hay toàn bộ? Từ đó ảnhhưởng như thế nào tới kiến trúc và các kĩ thuật có liên quan? Nếu một hệthống hỏng có làm cả hệ thống hỏng hay không? Nếu muốn hệ thống có độchịu lỗi cao thì phải thực hiện những gì? Và còn rất nhiều các câu hỏi có liênquan tới hiệu năng hoạt động, đồng bộ giữa các thành phần, đảm bảo tính sẵndùng và dễ dàng thêm hoặc loại bỏ một thành phần mà không làm ảnh hưởngtới tính bảo mật của hệ thống [4]

1.2.2 C t n p ần ủ ệ phân tán

Hệ phân tán gồm hai thành phần chính, có thể nêu cụ thể như sau:Phần cứng hệ phân tán: ao gồm các máy chủ và các hệ thống máy conđược đặt ở những vị trí khác nhau và kết nối với nhau qua mạng máy tính

Phần mềm hệ phân tán: sẽ gồm 3 hệ thống sau:

 DOS (Distributed Operating Systems) - Hệ điều hành phân tán: Hệ điềuhành gắn chặt với hệ thống phần cứng (máy đa vi xử lý hoặc máy tínhđồng bộ)

 NOS (Network Operating Systems) - Hệ điều hành mạng: cài đặt trên máy tính cục bộ ung cấp dịch vụ cục bộ cho các máy tính khác

 Middleware: ài đặt các dịch vụ cơ bản để thực hiện, phát triển các ứng dụng

1.2.3 K ến trú ủ ệ t ốn p ân t n

Kiến trúc của hệ thống phân tán bao gồm các thành phần:

 Multicomputer ( a máy tính): ác node tính toán riêng biệt kết nối vớinhau qua một mạng máy tính Mỗi node có tài nguyên riêng (bộ vi xử

Trang 15

lý, bộ nhớ lưu trữ,…) liên lạc với nhau qua mạng, và các node này có thể đồng nhất hoặc không đồng nhất với nhau về kiến trúc vật lý.

 istributed Opera System (Hệ điều hành phân tán): kiến trúc chứa cácdịch vụ quan trọng: bộ nhớ phân tán dùng chung, phân công tác vụ giữacác bộ vi xử lý, đồng bộ giữa các node, có tính trong suốt cao Một số

hệ điều hành phân tán như: Amoeba, Plan 9, horus, Mungi

Hình 1 5 K ến trú ệ t ốn p ân t n

 Middleware: ó giao diện lập trình phân tán độc lập với hệ điều hành, cókhả năng tăng tính trong suốt (che dấu tính không đồng nhất), cung cấpcác dịch vụ cơ bản để đồng nhất hoạt động giữa các node

Hình 1 6 K ến trú M lew re

Trang 16

i kèm với các ưu điểm đã có, mạng phân tán cũng có một số khuyếtđiểm cố hữu vẫn cần phải giải quyết trong tương lai như việc bảo mật mạngphân tán dễ bị xâm phạm hơn do bao gồm nhiều thành phần, mà mỗi thànhphần đều có đặc tính khác nhau, từ đó dễ bị tổn thương hơn mạng tập trung.ồng thời, do việc giao tiếp thực hiện qua mạng, khi đó có một số điều ảnhhưởng tới hệ thống như băng thông, độ ổn định của đường truyền mạng,thêm vào đó là các thành phần mới của mạng không hề có phần cứng đồng bộgiống nhau một trăm phần trăm nên việc sai khác sẽ diễn ra, ảnh hưởng tới hệthống, tệ hơn có thể gây thất bại cho hệ thống ồng nghĩa với việc độ phức tạpcủa phần mềm chạy trên hệ thống là rất cao, khó hơn so với phần mềm truyềnthống, dẫn tới chi phí phát triển cao, khả năng bị lỗi cao hơn.

Trang 17

1.3 DHT – Bản băm p ân t n

1.3.1 Tổng quan DHT

DHT (Distributed Hash Table – ảng băm phân tán) được sử dụng ởthế hệ thứ ba của mạng P2P, tức là mạng P2P có cấu trúc HT là lớp các hệthống phân tán phi trung tâm mà cung cấp một dịch vụ tra cứu tương tự nhưmột bảng băm: các cặp (key, value) được lưu trữ trong HT, và một nodemạng có tham gia bất kỳ có thể lấy được giá trị có quan hệ với một khóa chotrước một cách hiệu quả, với độ tin cậy cao, khả mở (Scalable) và có khảnăng chịu lỗi Trách nhiệm bảo quản ánh xạ từ khóa tới giá trị được phân tángiữa các node, sao cho một thay đổi tại một tập hợp các node tham gia chỉ gây

ra rắc rối tối thiểu iều này cho phép dùng HT cho số lượng rất lớn các

node mạng và liên tục xử lý được các sự kiện các node vào và ra khỏi mạng

và các thất bại Ngoài ra HT còn hỗ trợ ba thao tác: chèn, tìm kiếm và xóa cáccặp (key, value) [5]

Trong HT, key được tính ra từ value, tất cả các key đều nằm trên cùngkhông gian địa chỉ, để xác định node nào lưu cặp (key, value) đó thì mỗi nodephải có một I trong không gian địa chỉ giống như không gian địa chỉ của key.Khi đó, một node gửi thông điệp yêu cầu lưu dữ liệu tới các node khác thôngquan routing table (bảng định tuyến) Quá trình chuyển tiếp thông điệp quamạng cho đến khi gặp được node có I gần với I của value nhất thì lúc này cặp(key, value) sẽ được lưu tại đây Tương tự như vậy, để tìm một value thìnode cần tìm dữ liệu sẽ gửi đi thông điệp tìm kiếm qua mạng, đến khi có nodechứa value đó hồi đáp và trả dữ liệu cho node tìm kiếm

HT tạo nên cơ sở hạ tầng cho việc xây dựng các dịch vụ phức tạphơn, chẳng hạn như các hệ thống file phân tán, chia sẻ file trong mạng đồngđẳng, hệ thống phân phối nội dung (content distribution), web cache có tínhhợp tác, multicast, anycast, dịch vụ tên miền và instant messaging ác mạng

15

Trang 18

Network HT được sử dụng trong rất nhiều mạng để phân tán nội dung, chia

sẻ tài nguyên, nền tảng cho truyền thông an toàn HT hỗ trợ các giao thức

như: hord, AN, Kademlia, Pastry, Tapestry, Kelips Nó được sử dụng

trong rất nhiều mạng để phân tán nội dung, chia sẻ tài nguyên, nền tảng cho

truyền thông an toàn [5]

1.3.2 ặc tính của DHT:

Ngược lại với hệ thống P2P không cấu trúc, mỗi HT của node sẽ quản

lý một số lượng nhỏ các tham khảo tới các node khác HT cho phép hoạt động

phân tán, không nhất thiết duy trì một server trung tâm để điều khiển

hoạt động của mạng P2P ũng vì vậy, các ứng dụng P2P sử dụng HT là các

ứng dụng P2P thuần nhất

Tức là có O(log N) các tham khảo, ở đây N mô tả số node có trong hệ

thống ằng việc ánh xạ các node và các mục dữ liệu vào trong một không gian

địa chỉ chung, việc định tuyến tới một node để dẫn đến các mục dữ liệu trong

node có trách nhiệm với dữ liệu này

ác câu truy vấn được định tuyến qua một số lượng nhỏ các node để

tới node đích ởi vì một tập nhỏ tham khảo sẽ được mỗi node quản lý, một

mục dữ liệu có thể được xác định vị trí bởi việc định tuyến thông qua O(log

N) các bước Node khởi tạo yêu cầu tìm kiếm có thể là bất kỳ trong HT

ằng việc phân tán các chỉ số nhận dạng của node và mục dữ liệu gần

như khắp hệ thống, tải để cho việc thu nhận các mục sẽ được cân bằng đều

nhau giữa tất cả các node Hệ thống vẫn hoạt động tốt với ngay cả những

lượng node (hằng trăm, hàng nghìn node) và lưu lượng trên mạng cực kì lớn

ởi vì không một node nào đóng vai trò khác nhau trong hệ thống, nên

sự hình thành các điểm nóng hay tắc nghẽn có thể tránh được Ngoài ra, sự

Trang 19

dời đi hay rút khỏi (còn gọi là churn) của một node được xem như là không

có ảnh hưởng tới chức năng của HT o đó, HT được xem như là có khả

năng đứng vững, chống lại lỗi ngẫu nhiên và tấn công trên diện rộng

Một chỉ mục phân tán cung cấp một câu trả lời dứt khoát về kết quả.Nếu một mục dữ liệu được lưu trữ trong hệ thống, HT đảm bảo rằng dữ liệu

đó được tìm thấy Và việc định tuyến, lấy dữ liệu nhanh và có thể hoàn thànhtrong thời gian ngắn (tỉ lệ logarit)

Một công nghệ chủ chốt được sử dụng để đạt được những kết quả nhưbất kỳ node nào chỉ cần liên hệ với một vài node trong hệ thống, vì thế chỉ cầnmột số lượng hạn chế các công việc cần làm mỗi khi có sự thay đổi thànhviên trong mạng Một vài thiết kế HT có khả năng loại bỏ những node có thểgây nguy hiểm cho mạng và cho phép có thể dấu tên uối cùng HT phải giảiquyết những vấn đề của hệ thống phân tán truyền thống như cân bằng tải, tínhtoàn vẹn của dữ liệu…

Trang 20

một khóa k kích thước 160-bit, và thông điệp put(k,data) được gửi tới mộtnode bất kì tham gia HT Thông điệp này được gửi chuyển tiếp từ node nàytới node khác qua mạng overlay cho đến khi nó đến được node duy nhất chịutrách nhiệm cho khóa k theo như quy hoạch không gian khóa đã quy định,cặp (k,data) sau đó được lưu trữ tại node này Từ đó, một node bất kì có thểlấy nội dung của file bằng cách lại thực hiện hàm băm cho filename để lấykhóa k và yêu cầu một node HT bất kì tìm dữ liệu được liên hệ với khóa kbằng một thông điệp get(k) Thông điệp này sẽ lại được định tuyến theo mạngoverlay để tới được node chịu trách nhiệm cho khóa k, node này sẽ trả lờibằng data được lưu trữ tại đó [21]

1.3.3.1 Phân hoạch không gian khóa

a số các HT dùng một dạng hàm băm ổn định (consistent hashing) đểánh xạ từ khóa tới các node Kĩ thuât này sử dụng một hàm δ(k1,k2) địnhnghĩa một khái niệm trừu tượng là khoảng cách từ khóa k1 tới khóa k2, kháiniệm này không liên quan đến khoảng cách địa lý hay độ trễ mạng Mỗi nodeđược gán một khóa đơn, gọi là định danh của node (I ) Một node với I i sởhữu tất cả các khóa mà i là I gần nhất theo hàm khoảng cách δ

Ví dụ Chord coi các khóa như là các điểm trên một đường tròn, cònδ(k1,k2) là độ dài cung tròn nối từ k1 tới k2 theo chiều kim đồng hồ Khônggian khóa tròn này được phân thành các cung liền nhau, trong đó các điểmmút là định danh của các node Nếu i1 và i2 là hai I liên tiếp, thì node với I i2

sở hữu tất cả các khóa nằm giữa i1 và i2

onsistent hashing có tính chất quan trọng rằng việc xóa hay thêm mộtnode chỉ làm thay đổi tập khóa thuộc sở hữu các node có I liền đó, và khôngảnh hưởng đến tất cả các node khác o mỗi thay đổi về sở hữu thường tươngứng với một loạt các di chuyển tốn kém về băng thông khi các đối tượngđược lưu tại node này chuyển sang node khác, việc tối thiểu hóa các

Trang 21

hoạt động tái tổ chức như vậy là cần thiết cho việc hỗ trợ có hiệu quả tần xuấtcao của hiện tượng node đến và đi [21]

1.3.3.2 Mạng Overlay.

Mỗi node lưu trữ một tập các liên kết tới các node khác (danh sáchhàng xóm hoặc bảng định tuyến) ác liên kết này tạo nên mạng overlay Mộtnode lựa chọn danh sách hàng xóm của mình theo một cấu trúc nhất định,được gọi là topo mạng

Tất cả các topo HT đều có một biến thể nào đó của tính chất quan trọngnhất: với khóa k bất kì, một node hoặc có I sở hữu k hoặc có liên kết tới mộtnode ở gần k hơn, theo khái niệm khoảng cách không gian khóa được địnhnghĩa ở trên Khi đó, có thể dễ dàng định tuyến một thông điệp tới chủ sở hữucủa một khóa k bất kì bằng thuật toán tham lam (thuật toán không nhất thiếttối ưu toàn cục) sau đây: tại mỗi bước, gửi chuyển tiếp thông điệp tới hàngxóm có I gần k nhất Khi không có hàng xóm nào như vậy là khi ta đã đếnđược node gần nhất - chủ sở hữu của khóa k theo định nghĩa ở trên Kiểu địnhtuyến này đôi khi được gọi là định tuyến theo khóa (key based routing)

HT cung cấp các dịch vụ lưu trữ, tìm kiếm dữ liệu chỉ đơn giản thông quahai hàm chèn (insert) và tìm kiếm (lookup)

Hình 1 7 : C ứ năn n ủ bản băm p ân t n – DHT

Trang 22

1.3.4 Cơ sở bảng DHT

1.3.4.1 Quản lý dữ liệu phân tán.

Một HT quản lý dữ liệu bằng việc phân tán nó qua một số node và thựchiện một mô hình định tuyến mà cho phép node tìm kiếm đạt hiệu quả dựatrên một mục dữ liệu xác định được chỉ ra vị trí Ngược với tìm kiếm “ngậplụt” trong hệ thống không cấu trúc, mỗi một node trong HT sẽ có trách nhiệmvới một khoảng các thành viên của các mục dữ liệu Ngoài ra, mỗi node lưutrữ một cái nhìn từng phần trong toàn bộ hệ thống phân tán mà

ở đó thực sự phân tán các thông tin định tuyến ựa trên thông tin này, thủ tụctìm định tuyến tiêu biểu sẽ trải qua nhiều node, lấy đích ở gần mỗi một node,cho đến khi node đích được tìm thấy [21]

o đó, HT cho phép một chiến lược thực hiện tiên phong để thu nhận

dữ liệu bằng cấu trúc tìm kiếm không gian và cung cấp một mô hình địnhtuyến trước Trong việc so sánh, thông tin định tuyến trong hệ thống khôngcấu trúc chẳng có liên quan gì đến vị trí của các mục dữ liệu xác định mà chỉphản ánh sự kết nối giữa các node ác kết quả của chiến lược tác động trở lạitrong các câu truy vấn bằng việc làm “ngập lụt” các yêu cầu thông qua mạngbởi vì việc định tuyến không thể trực tiếp tìm kiếm tới node đích Với một hệthống trung tâm, chiến lược tìm kiếm bị ẩn, việc định tuyến một truy vấn làkhông cần thiết khi thủ tục tìm kiếm tự nó được hạn chế với một hệ thốngđơn

1.3.4.2 Định địa chỉ trong DHT.

HT giới thiệu không gian địa chỉ mới vào trong dữ liệu bằng việc ánh xạ.Không gian địa chỉ tiêu biểu bao gồm một số lớn các giá trị nguyên,… HT thuđược chỉ số phân tán bằng việc chuyển một phần liền kề của không gian địa

chỉ tới mỗi node thành viên để đưa ra một giá trị từ không gian địa

Trang 23

chỉ, phép toán chính đã được cung cấp bởi một hệ thống HT là một hàm tìm kiếm, thí dụ để xác định node có vai trò đối với giá trị này [20]

ỉ l p ân vùn tron số 8 peer

Hướng tiếp cận HT khác nhiều trong việc làm thế nào để quản lý vàphân vùng không gian địa chỉ Trong hầu hết các trường hợp, các mô hìnhnày tự thêm vào các giải thích về địa lý của không gian địa chỉ Một ví dụ đơngiản, tất cả các phép toán trong không gian địa chỉ có thể được hiện modulvới số các thành viên trong vòng tròn

Trong một hệ thống HT, mỗi mục dữ liệu được thiết kế là một I , mộtgiá trị duy nhất trong không gian địa chỉ Giá trị này có thể được lựa chọnmột cách tự do bởi ứng dụng, nhưng nó thông thường nhận được từ chính dữliệu của nó thông qua một hàm băm chống và trạm, chẳng hạn như

SHA-1, thí dụ, chỉ số I của một file có thể là kết quả của việc băm tên filehay file nhị phân o đó, HT có thể lưu trữ file đó tại node tương ứng vớiphần chia của không gian địa chỉ mà chứa chỉ số đó

ác giao diện ứng dụng HT được rút từ sự kiện của chúng và đưa rađơn giản nhưng có hoạt động chung ựa trên chức năng tìm kiếm, hầu hết

HT thực hiện một không gian lưu trữ như là một bảng băm o đó, hàm put

chấp nhận một I và dữ liệu tùy ý (giá trị băm của file name và file content)được lưu trữ dữ liệu đó (trên node tương ứng với I đó) hỉ số I này và dữ

liệu thông thường được tham khảo từ cặp (key, value) Tương ứng, hàm get

Trang 24

thu nhận dữ liệu liên quan với một I cụ thể Với giao diện chung này và môhình định địa chỉ đơn giản, HT có thể được sử dụng cho các ứng dụng rộnglớn và đa dạng ác ứng dụng tự kết hợp tùy ý ngữ nghĩa với các định dạng ID

ví dụ việc băm các từ khóa tìm kiếm, chỉ số cơ sở dữ liệu, vị trí địa lý, thưmục phân cấp tên nhị phân o đó, các ứng dụng khác nhau như các hệ thốngfile phân tán, cơ sở dữ liệu phân tán, và các hệ thống định tuyến đã được pháttriển trên HT [20]

Hầu hết các hệ thống HT cố gắng trải rộng tải của các thông điệp địnhtuyến và dữ liệu lưu trữ trên các node thành viên một cách bằng nhau Tuynhiên, có ít nhất ba nguyên nhân mà tại sao một số node trong hệ thống có thểthực hiện tải cao hơn các node còn lại: một node quản lý một phần chia lớncủa không gian địa chỉ, một node tương ứng với một phần chia không gianđịa chỉ với một số lượng lớn các mục dữ liệu, hay một một node quản lý cácmục dữ liệu của các node thành viên thông dụng Trong hoàn cảnh này, thìthêm vào các mô hình cân bằng tải có thể giúp cho việc tải được đồng đềutrên tất cả các node

Ví dụ, một node có thể truyền tương ứng một phần không gian địa chỉcủa nó tới các node còn lại, hay nhiều node có thể quản lý cùng một khônggian địa chỉ

với một số tầm nhìn hữu hạn trong toàn bộ hệ thống bằng việc lưu trữ trên nómột số giới hạn các đường link đến các node khác Khi một node nhận được

Trang 25

một thông điệp cho một địa chỉ I đích trong trường hợp nó không có địa chỉ

đó, thì nó sẽ chuyển thông điệp đó tới một trong những node mà nó biết Quátrình xử lý này được lặp lại tuần hoàn đến khi node đích được tìm thấy

Việc lựa chọn node nhảy kế tiếp được xác định bởi thuật toán địnhtuyến và mô hình định tuyến Một hệ mét tiêu biểu là node gần: các thôngđiệp luôn được chuyển tới node quản lý số lượng các I gần nhất với đích của

I của thông điệp Ý tưởng là, chẳng hạn như một mô hình định tuyến tincậy một thông điệp tới đích của nó với số bước nhảy nhỏ Thì rõ ràng, nó làmột thử thách để thiết kế các thuật toán định tuyến và các ma trận o đó, thôngtin các node lỗi và định tuyến lỗi được giới hạn hay ít xung đột trong quá trình định tuyến chính xác và co dãn hệ thống

1.3.4.4 Lưu trữ dữ liệu

ó hai phương pháp lưu trữ dữ liệu trong HT, trong HT có sử dụng lưu trữ trực tiếp, dữ liệu sẽ được sao chép nên trên node tương ứng của nó

(a) Lưu trữ trực tiếp (b) Lưu trữ gián tiếp

Hình 1 9 p ơn p p l u ữ l ệu tron D T

Ưu điểm của mô hình này là dữ liệu được lưu trữ trực tiếp vào hệthống P2P và node đó thêm vào nó rồi sau đó rời khỏi HT mà node đó không

có dữ liệu trở thành không tồn tại Nhược điểm là quá tải trong việc lưu trữ

và băng thông của mạng Khi một node có thể bị lỗi, dữ lệu cần phải đượcchuyển tới các node khác để tăng khả năng tồn tại Thêm vào đó, với các dữliệu lớn thì một số lượng lớn không gian lưu trữ cho các node

Trang 26

Một khả năng khác là lưu trữ các tham chiếu tới dữ liệu Việc chènthêm node chỉ là nơi một con trỏ trỏ đến dữ liệu trong HT ữ liệu của nó vẫnđược nằm trong node đó, điều này dẫn đến giảm được tải trong HT.

Tuy nhiên, dữ liệu chỉ tồn tại trong khoảng thời gian node đó tồn tại Trong cảhai trường hợp, node đó sử dụng HT để cho mục đích tìm kiếm [21]

1.3.4.5 Cơ chế quản lý

ể lưu trữ hay xử lý số liệu trong HT, một node đầu tiền cần phảitham gia vào mạng, việc đến của những node mới sẽ dẫn tới làm thay đổithành phần của HT, thông tin định tuyến và dữ liệu phân tán cần được tươngthích Tại kịch bản này, node mới đó có thể chèn các mục dữ liệu vào trong

HT và nhận dữ liệu từ đó Trong trường hợp một node bị lỗi hay rời khỏi mạng, thì HT cần xóa và tương thích với điều kiện này

Node t m v o mạn

ể một node tham gia vào HT cần thực hiện bốn bước sau:

Thứ nhất, node mới phải lấy liên lạc với HT Sau đó, với một vài phương

pháp cố gắng nó biết được một vài node nào đó của HT Node này sử dụngmột điểm vào tới HT đến tận khi node mới đó như là một thành viên củaDHT

Thứ hai, node mới này cần được đăng ký một vùng trong không gian địa chỉ.

ựa vào sự thực hiện HT, một node có thể được chọn bất kỳ hoặc chỉ ra vùngcủa riêng nó hay nó xác định nó dựa trên trạng thái hiện tại của hệ

thống

Thứ ba, thông tin định tuyến trong hệ thống được cập nhật để thể hiện sự tồn

tại của node mới

Thứ tư, node mới này nhận tất cả (key, value) dưới tương ứng của nó từ node

mà trước đây lưu giữ chúng

Node lỗ

Trang 27

Các node lỗi được giả sử xảy ra thường xuyên trong hệ thống phân tánchứa nhiều tính không chắc chắn và thường ít kết nối đến máy cục bộ o đó,tất cả các hệ thống không cục bộ trong một HT cần chống lại các lỗi của cácnode khác iều này được thể hiện tính tổ chức thiết kế của thuật toán HT.húng được thiết kế để luôn luôn thực hiện mục đích này của chúng và đốiphó những sự kiện như vậy chống lại những gì có thể xảy ra [21]

Thí dụ, thủ tục định tuyến và tìm kiếm được thiết kế tiêu biểu để sửdụng thay đổi định tuyến tới đích khi mà có một node lỗi bất ngờ xảy ra trênmột định tuyến mặc định ây là một thí dụ của việc phục hồi hoạt động trở lại,một lỗi sẽ được gán đều đặn trong hoạt động của HT Nhiều HT cũng

đề cao mô hình tự phục hồi để duy trì thông tin định tuyến của chúng ởi vậy,chúng sẽ thăm dò định kỳ các node còn lại để kiểm tra mặc dù những nodenày vẫn đang hoạt động Nếu chúng không hoạt động thì tương ứng về đầuvào định tuyến sẽ bị thay thế bằng một node đang làm việc

Hơn nữa, các node lỗi dẫn đến việc phân vùng lại trong không gian địachỉ của HT iều này có thể đòi lại yêu cầu các (key, value) để dịch chuyển giữacác node và thêm các hoạt động duy trì chẳng hạn như sự yêu cầu tươngthích cân bằng tải mới Khi một node lỗi, dữ liệu ứng dụng đó mà nó đã lưu

sẽ bị mất trừ khi HT sử dụng sự tái tạo để giữ nhiều bản sao trên các nodekhác Một vài HT đi theo hướng tiếp cận trạng thái mềm hơn đó là nó khôngđảm bảo dữ liệu liên tục tồn tại ác mục dữ liệu được xén bớt từ HT trừ khiứng dụng đó làm tươi chúng định kỳ o đó, một node lỗi dẫn đến một mất máttạm thời của dữ liệu ứng dụng đến tận khi dữ liệu đó được làm tươi

Node r k ỏ mạn

Về cơ bản, các node tự do rời khỏi một HT có thể xem như là một nodelỗi Tuy nhiên, các thực hiện của HT thường yêu cầu các node rời khỏi mạngthông báo với hệ thống trước khi ra khỏi mạng iều này sẽ cho phép

Trang 28

sao chép các dữ liệu ứng dụng từ node rời khỏi mạng và ngay lập tức đượccập nhật thông tin định tuyến để cải thiện hiệu quả định tuyến Khi một quátrình thực hiện chính xác, thì sự thay thế và các mô hình cân bằng tải có thểcũng làm việc hiệu quả và chính xác hơn Một node rời khỏi HT cần thực hiệnhai bước:

 huyển các cặp (Key, Value) của nó về node trước nó

 ập nhật lại thông tin phục vụ cho việc tìm kiếm [21]

hương 1 nêu cho ta cái nhìn tổng quan về mạng máy tính, hiểu rõ hơn

về mạng ngang hàng và khái niệm cơ bản nhất về HT một trong những cốtlõi của các giao thức phân tán sẽ được trình bày tiếp ở chương 2 của bài này

Trang 29

C N 2 MÔ TẢ, PHÂN TÍCH CÁC GIAO THỨC

2.1 GIAO THỨC M NG PHÂN TÁN

2.1.1 Giao thức Chord

2.1.1.1 Overlay

hord sử dụng một không gian I vòng tròn kích thước N Một node hord với I

là x có một con trỏ tới node đầu tiên đứng sau nó trong không gian I theochiều kim đồng hồ, ký hiệu là Succ(x) và một con trỏ tới node đứng trước nó

trong không gian I , ký hiệu là Pred(x) ác node tạo thànhmột danh sách liên kết hai chiều

ên cạnh đó, một node hord lưu M=log2(N) con trỏ gọi là các finger Tập cácfinger của node I u được xác định như sau F(x)={Succ(x+2i-1)}, 1 ≤ i ≤ M.Với cách lựa chọn finger thế này, trong mạng hord, các node quan sát khônggian I của vòng tròn bắt đầu từ I của chúng ồng thời với cách lựa chọn fingercủa hord, không gian I sẽ được chia đôi, nửa thứ nhất cũng được chia đôi, rồiphần tư thứ nhất lại được chia đôi …[22]

Trang 30

khởi đầu của không gian I , rồi chọn finger là successor của các I n + 20, n +

21, n + 22, n + 23, n + 24, n + 25 Tuy nhiên, có thể không có node có I phùhợp tại điểm chia, khi đó successor của I tại điểm chia được chọn làm finger.ảng finger table cho node 8 được thể hiện như hình vẽ trên [4]

2.1.1.2 Ánh xạ dữ liệu

Hình 2 2: ác item lưu trên mạng hord

Như chúng ta thấy trên Hình 2.2, một item được lưu trên node có I bằng nó (K38, N38) hoặc là node đầu tiên có I theo sau chiều kim đồng hồ như (K10, N14); (K24, N32); (K30, N32); (K54, N56) Một node có thể lưu nhiều item nhưng ngược lại thì không đúng

Trang 31

tầng ứng dụng trên node 56 để truyền và nhận dữ liệu Trong điều kiện thôngthường, độ phức tạp của thuật toán là O(log2(N)).

2.1.1.4 Quá trình ổn định mạng

Khi node n muốn join vào mạng, nó phải tìm I của mình thông qua một

số contact trong mạng và chèn chính nó vào giữa successor s của nó vàpredecessor của s nhờ sử dụng một thuật toán stabilization chạy định kỳ.ảng định tuyến của n được khởi tạo bằng cách sao chép 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 địnhtuyến sau khi n join vào mạng nhờ các node này đều chạy thuật toánstabilization định kỳ Nhiệm vụ cuối cùng là chuyển một phần các item đanglưu trên node s có I nhỏ hơn hoặc bằng n sang node n Việc di chuyển dữ liệunày được thực hiện bởi tầng ứng dụng của n và s [4]

(a)

(b)

Hình 2 3: Quá trình node tham gia vào mạng hord

Trang 32

Hình 2.3 (a, b) cho thấy ví dụ về quá trình join vào mạng của một node.Giả sử node 21 có successor là node 32, trên node 32 đang lưu các key 24 và 30.Node 26 join vào mạng, sau quá trình tìm kiếm, node 26 biết node 32 làsuccessor của mình, nó trỏ con trỏ successor của mình vào node 32 và báo chonode 32 biết Node 32 sau khi được thông báo thì trỏ con trỏ predecessor vàonode 26 Node 26 sao chép các key tương ứng với nó (key 24) từ node 32.

ến định kỳ, node 21 chạy quá trình stabilize, lúc này con trỏ successorvẫn trỏ vào node 32 Node 21 hỏi node 32 về predecessor của node 32, lúcnày predecessor của 32 là 26 Sau khi nhận được câu trả lời, node 21 trỏ contrỏ successor vào node 26 và báo cho node 26 biết nó là predecessor của node

26. Node 26 trỏ con trỏ predecessor vào node 21

Quá trình rời khỏi mạng có báo trước được thực hiện như sau: nodesắp rời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báocho các node predecessor và successor ả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 2 4: Quá trình node rời khỏi mạng hord

Trang 33

Hình vẽ cho chúng ta một ví dụ về bảng định tuyến của các node khi có

sự join/leave an đầu mạng có 3 node với I là 0, 1, 3 bảng định tuyến củachúng được cho thấy trên Hình 2.4 (a)

Sau đó node 6 join vào mạng rồi node 1 rời khỏi mạng, bảng định tuyếncủa các node có sự thay đổi được thể hiện trong Hình 2.4 (b, c) với nhữngphần thay đổi có màu đen, những phần không đổi có màu xám [22]

2.1.2 Giao thức Kademlia

2.1.2.1 Overlay

Kademlia xem các node là lá của một cây nhị phân, vị trí các nodeđược xác định duy nhất bởi một số nhị phân là I của chúng Hình 2.5 minhhọa một node có I =3=00112 trên mạng N=16 node

Hình 2 5: Không gian I của mạng Kademlia (N=16)

ối với mỗi node, ta chia cây nhị phân liên tiếp thành các cây conkhông chứa node đó Như vậy cây con lớn nhất bao gồm một nửa số node củacây nhị phân ban đầu, cây con tiếp theo gồm một phần tư số node… Tươngứng với mỗi cây con này, node sẽ lưu ít nhất một liên hệ đến chúng để đảmbảo mỗi node có thể truy vấn đến tất cả các node trên mạng Ví dụ trong hình

vẽ trên, một node có I =0011 sẽ contact đến các node có tiền tố I lần lượt là 1,

01, 000, 0010

Trang 34

Hình 2 6: Các k-bucket của một nodeKademlia không lưu danh sách các node gần với nó trong không gian

I như successor list của hord Tuy nhiên với mỗi cây con trong không gian

I , node lưu tới k contact thay vì một contact và gọi k contact này là

k-bucket Hình 2-7 minh họa các k-bucket của một node có I =00…0 [23]

2.1.2.2 Ánh xạ dữ liệu

Kademlia định nghĩa khái niệm khoảng cách giữa hai I là kết quả XORcủa hai I ( d(x,y)=x+y ) Một item sẽ được lưu trên node mà khoảng cáchgiữa I item và I node là nhỏ nhất

2.1.2.3 Quá trình tìm kiếm

ể tăng cường hiệu quả tìm kiếm, Kademlia thực hiện các lookup lặpđồng thời Khi một node tìm kiếm một I , nó sẽ kiểm tra cây con nào chứa I vàchuyển yêu cầu lookup đến α node ngẫu nhiên được lựa chọn từ k-

bucket của cây con đó Mỗi node lại trả về một k-bucket của cây con nhỏ hơngần hơn với I Từ số bucket được 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 I được tìm thấy

Khi một node muốn chèn một item mới vào mạng, nó sẽ tìm kiếm vàchèn vào k node có I gần với I của item nhất

Như vậy trong điều kiện bình thường độ phức tạp của quá trình tìmkiếm là O(log2(N))

Trang 35

2.1.2.4 Quá trình ổn định mạng

Một node mới muốn join vào mạng trước tiên nó sẽ tìm 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ổ sung quá nhiều node từ một cây con nào đó, quytắc thay thế least-recently-used sẽ được áp dụng

Kademlia cho phép một node có thể tự do rời khỏi mạng mà không cầnphải thông báo đến bất kì node nào khác Việc duy trì bảng định tuyến sau khinode join/leave được thực hiện nhờ sử dụng lưu lượng lookup, kỹ thuật nàykhác với kỹ thuật stabilization của hord Theo mô hình XOR metric, mọi node

sẽ nhận được truy vấn từ node nằm trong bảng định tuyến của nó, do đó khinhận được một thông điệp từ một node nào đó trong cây con chính là một cậpnhật k-bucket của cây con đó á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à khi nhận được truy vấn từ các cây con,Kademlia sẽ cập nhật lại độ trễ RTT của từng node trong các k-bucket của nórồi sắp xếp chúng theo thứ tự tăng dần iều này giúp cải thiện hiệu năng của

hệ thống nhờ lựa chọn tìm kiếm với các node có độ trễ RTT nhỏ trước trongmột k-bucket [23]

2.1.3 Giao thức Kelips

2.1.3.1 Overlay

Kelips băm không gian I vào k nhóm đánh số từ 0 đến k-1 với k=√ (N là số node trong mạng)

sử dụng thuật toán consistent hashing Vị trí nhóm của một node bằng số dư của phép chia I của node cho k.

Hình 2.7 minh họa bảng định tuyến của node 110 trong hệ thống có 10 nhóm

Trang 36

Hình 2 7: ảng định tuyến của node 110 ảng định tuyến của một node bao gồm ba phần:

 Affinity group view: lưu thông tin về các node cùng nhóm như RTT, heartbeat

 ontacts: đối với mỗi nhóm, node lưu thông tin về ít nhất một node trong nhóm đó ác trường thông tin giống như trong Affinity group view

 Filetuples: chứa các bộ dữ liệu, mỗi bộ lưu thông tin về một file và nodechứa file đó Một node chỉ lưu thông tin về tất cả các file chứa trong cácnode cùng nhóm với nó

Giả sử tổng số file là F, số contact ở mỗi node là c thì khi đó kích thước bảng

nhiều so với các HT khác như hord, Kademlia, Tapestry (O(log2N)) nhưng bùlại độ phức tạp tìm kiếm là O(1) và không phụ thuộc kích thước mạng

Ví dụ với N=100 000 node, k=√ =317 nhóm, c=2, F=10 000 000 file, mỗi file trung bình

60 yte, kích thước thông tin mỗi trường là 40 yte thì bộ nhớ yêu cầu cho mỗi node là 1.94 Mbyte.

Trang 37

2.1.3.2 Ánh xạ dữ liệu

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

2.1.3.3 Quá trình tìm kiếm

Khi một node muốn truy vấn một item, nó sẽ dùng consistent hashingxem item được ánh xạ vào nhóm nào và gửi truy vấn đến contact gần nhấttrong nhóm đó thông qua RTT Node contact sẽ tìm trong bảng Filetuples xemnode nào trong nhóm chứa item đó rồi trả về kết quả cho node truy vấn Sau

đó node truy vấn sẽ kết nối trực tiếp tới homenode (node chứa item) để lấy dữliệu

Một node muốn chèn một item mới sẽ sử dụng consistent hashing xem item

đó được ánh xạ vào nhóm nào Sau đó node sẽ gửi yêu cầu chèn dữ liệu tớimột contact gần nhất thuộc nhóm đó, node contact sẽ chọn ngẫu nhiên mộtnode trong nhóm và gửi yêu cầu chèn dữ liệu Node này sẽ trở thành node lưuitem (homenode) [14]

Như vậy quá trình Lookup process kết thúc với độ phức tạp chỉ là O(1)

2.1.3.4 Quá trình ổn định mạng

Hình 2 8: Quá trình node tham gia vào mạng Kelips

Trang 38

Giống như các HT khác, một node N muốn join vào hệ thống Kelipsđều phải thông qua một node tồn tại trên mạng, node này gọi là node giớithiệu (introducing Peer) ầu tiên node N chọn một node bất kì trong mạng làmnode giới thiệu và nó sẽ sao chép các contact của node này Node N tính toán

vị trí nhóm của nó thông qua hàm consistent hashing, sau đó N join vào nhómbằng cách kết nối với contact của nhóm đó node N sẽ có những thông tin cầnthiết về các node trong nhóm, Filetuples… uối cùng node N sẽ sử dụng giaothức gossip để cập nhật lại các contact của nó

Kelips sử dụng cơ chế “heartbeat” để cập nhật bảng định tuyến và kiểm tralỗi của các node trên mạng Mỗi thông tin về Affinity group view,ontacts, Filetuples của mỗi node đều gắn với một số nguyên gọi là heartbeat.Sau một chu kì thời gian heartbeat sẽ được cập nhật thông qua các node trênmạng, nếu không thì xem như node cập nhật bị lỗi [14]

2.1.4 Giao thức Tapestry

2.1.4.1 Overlay

Tapestry sử dụng thuật toán SHA-1 để băm địa chỉ các node thành các Ibiểu diễn theo hệ cơ số 2b Mỗi node lưu giữ một bảng định tuyến gồmlog2b(N) hàng và 2b-1 cột

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

Trang 39

Hình 2 9: ảng định tuyến của một node trong mạng Tapestry

Hình 2.9 minh họa quá trình xây dựng bảng định tuyến của node có I

=10233102 trên mạng N=(22)8=65536 node [12]

2.1.4.2 Ánh xạ dữ liệu

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

Ngày đăng: 18/11/2021, 15:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w