o đó việc quản lý các thô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 trung tại mộ
Trang 1Chuyên n n K o ọ m t n
M số 8 48 01 01
N n n TS N U ỄN T N T
Trang 2L CAM OAN
Tôi xin cam đoan các số liệu và kết quả nghiên cứu trong đề tài là trung thực, các kết quả nghiên cứu được thực hiện tại Trường ại học Quy Nhơn dưới sự hướng dẫn của TS Nguyễn Thành ạt, các tài liệu tham khảo đã được trích dẫn đầy đủ, rõ ràng
Học viên
N u ễn Văn Quố
Trang 3L CẢM N
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ài luậ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ình giả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ũng như 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ên cạ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ốt nghiệp
Học viên
N u ễn Văn Quố
Trang 4PHẦ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ển mạnh mẽ trong tất cả các hoạt động của con người, hỗ trợ con người phát triể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ạng Internet 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ầu tiế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ắp mọ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ên nhiều vị trí ở các thành phố, các quốc gia khác nhau, để đáp ứng nhu cầu cung cấp thông tin cho địa phương và quốc gia ngay tức thì o đó việc quản lý các thô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 trung tạ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ông qua 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ạng phâ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 được những việc mà mạng khác không làm được, đáp ứng được yêu cầu là thông tin đượ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ệu suấ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 5việ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ên mạng phân tán như hord, Tapestry, Kelips, Kademlia trên môi trường mạng giả lập như Network Simulator 2 (NS2), Oversim, P2PSim để nghiên cứu cá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ầu cho 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ôi trườ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
Á ỆU NĂN MỘT SỐ AO T ỨC M N P ÂN TÁN TRÊN
MÔ TR N NETWORK S MULATOR”
2 Mụ đ n ên ứu
Tìm hiểu và nghiên cứu, đánh giá cách phân bổ và tìm kiếm thông tin, hiệu năng của các giao thức mạng phân tán từ đó đưa ra cái nhìn chi tiết nhất về ưu khuyết điểm của các giao thức trên mạng phân tán
3 ố t ợn v p ạm v n ên ứu
- ố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
4 P ơn p p n ên ứu
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ên mạng phân tán
Trang 65 Ý 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ức phâ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 chi tiế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âng cao, 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 giao thứ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át triể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ệu
tham 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ác cô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ường mạ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 giao thức
Trang 7C N TỔNG QUAN LÝ THUYẾT 1.1 TỔN QUAN VỀ M NG MÁY TÍNH
1.1.1 Mạn m t n
Ngày nay, khoa học và kỹ thuật đã đạt được những thành tựu to lớn Nhờ sự phát triển của kỹ thuật số, kỹ thuật phần cứng và công nghệ phần mềm đã và đang đem lại cho người sử dụng các dịch vụ mới đa dạng và 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áy tí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ạng chia 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ương tiệ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ển mạ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ác giao thức truyền thông mạng (network protocol) Mạng máy tính có thể giúp con người truy cập vào số lượng lớn các ứng dụng và dịch vụ có thể
có do nhữ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ữa người và người, nối liền khoảng cách…đã và đang có nhiều ứng dụng trong tấ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 ngang hà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 8tồ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ềm má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ác má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ọi má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 định tuyến hoặc trung tâm định tuyến mà các máy tự định tuyến với nhau Mọi má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 9Hì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ài node 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ác node mới tham gia vào ũng chính vì P2P thuần túy không có máy chủ trung tâ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 ác máy khách có vai trò lưu trữ thông tin, tài nguyên được chia sẻ, cung cấp các thô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 P2P thuần là có sử dụng các trạm định tuyến để xác định địa chỉ
IP của các máy khá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ới máy chủ trung tâm để gửi các yêu cầu, kiến trúc này thường được sử dụng trong 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 10bị 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ới hạn trong phạm vi các máy tham gia mô hình mạng này
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àng khám phá các node có trong mạng ó một vài node được xem là quan trọng hơn với các node còn lại (super node), làm nhiệm vụ bảo trì các chỉ số cho thông tin chia sẻ bởi tất cả các node mà được kết nối với nó và được ủy quyề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]
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
Discovery server
data exchange
Super node
Super node
data exchange
Trang 11má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 tin thì hệ thống này không thể đảm bảo thành công cao vì không có mối tương quan 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ần thông tin, vì không có định hướng, nên yêu cầu sẽ được gửi ngẫu nhiên tới một số node trong mạng, số lượng node càng lớn, khả năng tìm thấy càng cao như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 theo thuậ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ẽ được nhanh 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úc nà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ập trung ở 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 trong mạng lai ghép, máy khách kết nối với máy chủ trung tâm để được định tuyến tớ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ách trự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ụng trong mạng P2P thuần, để tìm kiếm thông tin cần, một node gửi thông tin tới tấ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 đến khi nhận được trả lời từ node có chứa thông tin mà node yêu cầu cần
Trang 12Mô 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ài nguyên sẽ băm tên và nội dung để tạo ra một I , sau đó sẽ được lưu trữ ở một node 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àng xóm trong bảng định tuyến của mình đến khi nhận được trả lời từ node đang lư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ểu như: 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ý (processor cycles) 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ức liê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ột tậ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 qua cá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ền thông tín hiệu số trong mạng máy tính có nhiều tính năng để đảm bảo việc trao đổi dữ liệu một cách đáng tin cậy qua một kênh truyền thông không hoàn hả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ết hợp cả hai.[3]
Trang 131.2 M N P ÂN TÁ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 độc lậ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ệu trả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ân tá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ột nhiệm vụ chung Mỗi máy tính hoạt động độc lập và giao tiếp với người dùng như 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ác thiế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ính toá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ủa má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ăn nhất định khi phát triển mạng phân tán Vì có vô số phần cứng, phần mềm hoàn toàn không giống nhau tham gia, nên việc giao tiếp khó khăn, một phần chịu ảnh hường từ đường truyền mạng (băng thông, tỉ lệ lỗi truyền, tính sẵn dùng trong giờ cao điểm) nên việc truyền dữ liệu chưa chắc thành công, các rà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ển khó 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ỏi thườ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ính sai 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án thấ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à ảnh hưởng thế nào tới kiến trúc chung của hệ thống? [6] Việc che dấu người dùng
về sự phân tán thực hiện ở mức nào, một phần hay toàn bộ? Từ đó ảnh hưở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ên quan 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ẵn dù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ưởng tớ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ều hà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ới nhau qua một mạng máy tính Mỗi node có tài nguyên riêng (bộ vi xử
Trang 15lý, 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ác dịch vụ quan trọng: bộ nhớ phân tán dùng chung, phân công tác vụ giữa cá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ấp cá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 16i 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ạng phâ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ành phầ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 ảnh hưở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ạp củ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ền thống, dẫn tới chi phí phát triển cao, khả năng bị lỗi cao hơn
Trang 171.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 node mạng có tham gia bất kỳ có thể lấy được giá trị có quan hệ với một khóa cho trướ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án giữ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ác cặ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ùng không gian địa chỉ, để xác định node nào lưu cặp (key, value) đó thì mỗi node phả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ông quan routing table (bảng định tuyến) Quá trình chuyển tiếp thông điệp qua mạ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ó node chứ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ạp hơ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ính hợp tác, multicast, anycast, dịch vụ tên miền và instant messaging ác mạng
Trang 18phân tán nổi tiếng sử dụng HT bao gồm itTorrent distributed tracker, eDonkey network, Storm botnet, YaCy, và Coral Content Distribution 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 19dờ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ành trong 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ần mộ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ành viê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ải quyế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ính toàn vẹn của dữ liệu…
Trang 20một khóa k kích thước 160-bit, và thông điệp put(k,data) được gửi tới một node bất kì tham gia HT Thông điệp này được gửi chuyển tiếp từ node này tới node khác qua mạng overlay cho đến khi nó đến được node duy nhất chịu trá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ấy khó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 k bằng một thông điệp get(k) Thông điệp này sẽ lại được định tuyến theo mạng overlay để tới được node chịu trách nhiệm cho khóa k, node này sẽ trả lời bằ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) định nghĩ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ái niệ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ông gian khóa tròn này được phân thành các cung liền nhau, trong đó các điểm mú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ột node 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 21hoạ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ất cao 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ách hà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ột node 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ọng nhấ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ột node ở gần k hơn, theo khái niệm khoảng cách không gian khóa được định nghĩa ở trên Khi đó, có thể dễ dàng định tuyến một thông điệp tới chủ
sở hữu củ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ết tố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àng xó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 định tuyế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 qua hai 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 221.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ực hiện một mô hình định tuyến mà cho phép node tìm kiếm đạt hiệu quả dựa trê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ập lụt” trong hệ thống không cấu trúc, mỗi một node trong HT sẽ có trách nhiệm vớ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ưu trữ 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ục tì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 định tuyến trước Trong việc so sánh, thông tin định tuyến trong hệ thống không cấ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ại trong 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ạng bở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 23chỉ, 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]
Hình 1 8 Một k ôn n đị ỉ tu ến t n v trị số n u ên từ 0 đến 65 535 C k ôn n đị ỉ 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ình nà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ụ đơn giản, tất cả các phép toán trong không gian địa chỉ có thể được hiện modul vớ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ột giá trị duy nhất trong không gian địa chỉ Giá trị này có thể được lựa chọn mộ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 file hay file nhị phân o đó, HT có thể lưu trữ file đó tại node tương ứng với phầ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 24thu 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ộng lớ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ống file phân tán, cơ sở dữ liệu phân tán, và các hệ thống định tuyến đã được phát triể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 định tuyến và dữ liệu lưu trữ trên các node thành viên một cách bằng nhau Tuy nhiê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ớn củ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ác mụ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 đều trê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ông gian địa chỉ
1.3.4.3 Định tuyến
Việc định tuyến là chức năng chính của HT ựa trên thủ tục định tuyến, các thông điệp với I đích của nó được truyền tới node HT mà quản
lý I đích o đó, thuật toán tìm kiếm của HT sẽ xử lý các vấn đề tìm kiếm
ác hệ thống HT đang tồn tại thực hiện một hướng tiếp cận đa dạng cho định tuyến Tuy nhiên, về nguyên lý cơ bản là mỗi node được cung cấp 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 25mộ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 định tuyế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 tin cậ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ông tin 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 được chuyể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 26Một khả năng khác là lưu trữ các tham chiếu tới dữ liệu Việc chèn thê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ải tham gia vào mạng, việc đến của những node mới sẽ dẫn tới làm thay đổi thành phần của HT, thông tin định tuyến và dữ liệu phân tán cần được tương thí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ụng một điểm vào tới HT đến tận khi node mới đó như là một thành viên của DHT
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ùng củ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 27Các node lỗi được giả sử xảy ra thường xuyên trong hệ thống phân tán chứ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ác node 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à đối phó 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ên mộ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 node này vẫn đang hoạt động Nếu chúng không hoạt động thì tương ứng về đầu và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 địa chỉ 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ữa các node và thêm các hoạt động duy trì chẳng hạn như sự yêu cầu tương thí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 node khá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át tạ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 node lỗ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ạng thô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 28sao chép các dữ liệu ứng dụng từ node rời khỏi mạng và ngay lập tức được cậ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ện hai 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]
KẾT LUẬN C N 1
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ốt lõ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 29C N 2 MÔ TẢ, PHÂN TÍCH CÁC GIAO THỨC
ên cạnh đó, một node hord lưu M=log2(N) con trỏ gọi là các finger Tập các finger 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ông gian 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 finger của hord, không gian I 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 …[22]
Trang 30khở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 31tầng ứng dụng trên node 56 để truyền và nhận dữ liệu Trong điều kiện thông thườ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 đị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 một phần các item đang lư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ệu nà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 32Hì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 cho node 32 biết Node 32 sau khi được thông báo thì trỏ con trỏ predecessor vào node 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ỏ successor vẫn trỏ vào node 32 Node 21 hỏi node 32 về predecessor của node 32, lúc này predecessor của 32 là 26 Sau khi nhận được câu trả lời, node 21 trỏ con trỏ successor vào node 26 và báo cho node 26 biết nó là predecessor của node
26 Node 26 trỏ con trỏ predecessor vào node 21
Quá trình rời khỏi mạng có báo trước được thực hiện như sau: node sắp rời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báo cho các node predecessor và successor ả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 33Hì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ủa chú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ến của các node có sự thay đổi được thể hiện trong Hình 2.4 (b, c) với những phầ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 minh họ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 con không chứa node đó Như vậy cây con lớn nhất bao gồm một nửa số node của câ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 để đảm bả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 34Hình 2 6: Các k-bucket của một node Kademlia 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à bucket Hình 2-7 minh họa các k-bucket của một node có I =00…0 [23]
k-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ả XOR của hai I ( d(x,y)=x+y ) Một item sẽ được lưu trên node mà khoảng cách giữa I item và I node là nhỏ nhất
k-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ìm kiếm là O(log2(N))
Trang 352.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 đó, quy tắ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ần phải thông báo đến bất kì node nào khác Việc duy trì 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 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 đó khi 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 đó á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 trong mộ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 36Hì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à node chứa file đó Một node chỉ lưu thông tin về tất cả các file chứa trong các node 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 định tuyến của một node là S(k,n)= (√ ) lớn hơn 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 372.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ùng thuật toán consistent hashing và được lưu trên một node bất kỳ trong nhóm nà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 hashing xem item được ánh xạ vào nhóm nào và gửi truy vấn đến contact gần nhất trong nhóm đó thông qua RTT Node contact sẽ tìm trong bảng Filetuples xem node 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ới một contact gần nhất thuộc nhóm đó, node contact sẽ chọn ngẫu nhiên một node trong nhóm và gửi yêu cầu chèn dữ liệu Node này sẽ trở thành node lưu item (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 38Giố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ới thiệu (introducing Peer) ầu tiên node N chọn một node bất kì trong mạng làm node 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óm bằng cách kết nối với contact của nhóm đó node N sẽ có những thông tin cần thiết về các node trong nhóm, Filetuples… uối cùng node N sẽ sử dụng giao thứ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 tra lỗ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ên mạ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
I biểu diễn theo hệ cơ số 2b Mỗi node lưu giữ một bảng định tuyến gồm log2b(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 I của node đó ở chữ số thứ nhất Hàng thứ hai trong bảng định tuyến chứa các node 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 39Hì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ó