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
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à 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 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ườithâ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ậnvă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ê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 4MỤC LỤC
Từ vi ết
CLI Command Line Interface Giao diện dòng lệnh
DHT Distributed Hash Table B ảng băm phân tán
FTP File Transfer Protocol Giao thức truyền file GUI Graphical User Interface Giao diện đồ họa
IPv6 Internet Protocol version 6 Giao thức IP phiên bản 6 MAC Media-Access Control Đ iều khiển Truy nhập - Vật lý OSPF Open Shortest Path First Đường đi ngắn nhất mở đầu tiên
PPP Point-to-Point Protocol Giao thức điểm nối điểm PVC Performance versus Cost Hiệu năng đối với chi phí RIP Routing Information Protocol Giao thức định tuyến thông tin
SHA Secure Hash Algorithm Thuật toán băm an toàn TCL Tool Command Language B ộ công cụ lập trình dòng lệnh TCP Transmission Control Protocol Giao thức điều khiển truyền dẫn UDP User Datagram Protocol Giao thức gói dữ liệu người dùng
Consistent Hashing Hàm băm nhất quán
4
Trang 5Join Tham gia
Trang 6DANH MỤC CÁC BẢNG
6
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1 1: Mô hình khách chủ và ngang hàng P2P 5Hình 1 2: Mạng P2P thuần túy 6
Trang 8vị trí ở các thành phố, các quốc gia khác nhau, để đáp ứng nhu cầu cung cấpthông tin cho địa phương và quốc gia ngay tức thì Do đó 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à đặcbiệ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 quamạ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ậptrung như trước đây sẽ không giải quyết được vấn đề nêu trên, để đảm bảo tínhliên tục, nhanh chóng, chính xác cho mọi hoạt động lưu trữ, chia sẻ thông tincầ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ạngtruyền thống, mạng phân tán có khả năng làm được những việc mà mạng kháckhô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ệ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, việctì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
8
Trang 9phân tán như c hord, Tapestry, Kelips, Kademlia trên môi trường mạng giả lậpnhư Network Simulator 2 (NS2), Oversim, P2PSim để nghiên cứu cách cácgiao 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ấtcho 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 “PHÂN TÍCH, ĐÁNH
Á Ệ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ệună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ề ưukhuyế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ạngphân tán
5 Ý n ĩ k o ọ v n ĩ t ự t ễn
9
Trang 10Mang 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 đánhgiá 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ứcchạ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ểnngà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ạngphâ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
C N TỔNG QUAN LÝ THUYẾT 1.1TỔN QUAN VỀ M NG MÁY TÍNH
1.1.1 Mạn m t n
10
Trang 11Ngà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ạ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ácthiế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ứctruyền thông mạng (network protocol) Mạng máy tính có thể giúp con ngườitruy 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ườikhá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áclĩ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ự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ủ
11
Trang 12Hì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ọi máy tính đều có vai trò vừa là khách, vừa Kademlia
12
Trang 13Hì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ìmkiế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 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ới hạn trong phạm vi các máy
Trang 14tham 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àngkhám phá các node có trong mạng ó một vài node được xem là quan trọng hơnvớ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 tinchia 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áychủ trung tâm để thực hiện tìm kiếm trong phạm vi các node đã có kết nối vớisuper 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útmạ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ỗimá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
Trang 15nà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ôngtin, 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à eonkey2000 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 - B ảng bămphâ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ónghiệ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ậ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 trong mạnglai 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ếptrao đổ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ớ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 khinhận được trả lời từ node có chứa thông tin mà node yêu cầu cần
Mô hình định tuyến dựa trên bảng băm phân tán (Routing model) là cáchtì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 ID, sau đó sẽ được lưu trữ ở một node mà có
Trang 16I 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ămtê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.
ó 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ức liênmạ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ứngthự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áckê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ínhiệ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 giaothứ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]
1.2M 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 độ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ột
Trang 17nhiệ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ă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ànkhông giống nhau tham gia, nên việc giao tiếp khó khăn, một phần chịu ảnhhường từ đường truyền mạng (băng thông, tỉ lệ lỗi truyền, tính sẵn dùng tronggiờ 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ềnthô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
ụ 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ườ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
Trang 18như 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ệună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ảomậ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ênmá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 ứngdụ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ử 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
Trang 19Hì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 1.2.4u, k u ết đ ểm
Với những nội dung được nêu ở trên, việc mạng phân tán có những ưuđiểm và khuyết điểm là điều hiển nhiên, được nêu như sau:
Ưu điểm đầu tiên của mạng phân tán đó chính là chi phí, việc sử dụngcác thành phần đã có sẵn, từ đó phát triển thêm thì thu được tỷ lệ giá/hiệu năngtốt hơn Tiếp theo, hiệu năng tốt chính là do sử dụng kết hợp khả năng lưu trữ
và xử lý của nhiều node, có thể đạt được mức độ hiệu năng vượt ra ngoài tầmcủa các máy tính trung tâm Với khả năng mở rộng cao, các tài nguyên như khả
Trang 20năng lưu trữ và xử lý có thể được tăng theo cấp số cộng i cùng với đó là độ tincậy cao do các thành phần luôn luôn được bổ sung, thay thế, khi một nodetrong mạng hỏng thì hệ thống vẫn có thể tiếp tục hoạt động bình thường uốicùng, nó có tính phân tán cố hưu vì một số ứng dụng web, phần mềm đã có tínhphân tán một cách tự nhiên, từ đó chỉ việc phát triển thêm, không cần phải nângcấp hoặc bổ sung gì [3]
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êmvà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ốngnhau 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ủaphầ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
1.3DHT - Bảng băm phân tán
1.3.1 Tổng quan DHT
DHT (Distributed Hash Table - B ả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ốngphâ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ảngbăm: các cặp (key, value) được lưu trữ trong HT, và một node mạng có thamgia 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áchhiệu quả, với độ tin cậy cao, khả mở (Scalable) và có khả năng chịu lỗi Tráchnhiệ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 chomộ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
Trang 21nà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 HTcò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ù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ì nodecầ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ứavalue đó 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 phân tánnổi tiếng sử dụng HT bao gồm itTorrent distributed tracker, eDonkey network,Storm botnet, YaCy, và Coral Content Distribution Network DHT đượ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ảngcho 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ộidung, 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 độngphân tán, không nhất thiết duy trì một server trung tâm để điều khiển hoạt độngcủ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
Trang 22thuầ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 trongnode 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ớinode đí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ácbướ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ầnnhư khắp hệ thống, tải để cho việc thu nhận các mục sẽ được cân bằng đềunhau 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ượngnode (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ự 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ó ảnhhưởng tới chức năng của DHT Do đó, DHT đượ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ếumộ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 trongthờ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ành viêntrong mạng Một vài thiết kế HT có khả năng loại bỏ những node có thể gâynguy 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
Trang 23nhữ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ànvẹn của dữ liệu
1.3.3 Cấu trúc của DHT
ấu trúc của một HT có thể được phân thành một số thành phần chính:
• Một không gian khóa (keyspace) trừu tượng, chẳng hạn tập các xâu kíchthước 160-bit
• Một phương án phân hoạch không gian khóa (keyspace partitioning) chiatách sở hữu không gian khóa này giữa các node thành viên
• Một mạng overlay kết nối các node, cho phép chúng tìm node chủ củamột khóa nào đó trong không gian khóa
Một khi các thành phần này được lắp ráp vào đúng chỗ, một tình huốngđiển hình của việc sử dụng HT cho việc lưu trữ và lấy dữ liệu như sau Giả sửkhông gian khóa là một tập các xâu 160-bit ể lưu trữ một file với filename vàdata cho trước vào HT, thực hiện băm SHA-1 cho filename, tạo một khóa kkích thước 160-bit, và thông điệp put(k,data) được gửi tới một node bất kì thamgia DHT Thông điệp này được gửi chuyển tiếp từ node này tới node khác quamạng overlay cho đến khi nó đến được node duy nhất chịu trách nhiệm chokhó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 filebằ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ộtnode 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 nodechị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]
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
Trang 24nghĩ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ữutất cả các khóa mà i là ID 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ể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ữutấ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 đượclưu tại node này chuyển sang node khác, việc tối thiểu hóa các 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ất cao của hiệntượng node đến và đi [21]
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àngxó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ựachọ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ế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ó
Trang 25I gần k nhất Khi không có hàng xóm nào như vậy là khi ta đã đến được nodegầ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 haihàm chèn (insert) và tìm kiếm (lookup)
Hình 1 7 : Các chức năn g ch ín h củ a bảng băm p h ân tán - DHT 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ựa trênmộ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ớimộ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ântá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êubiể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ếntrước Trong việc so sánh, thông tin định tuyến trong hệ thống không cấu trúcchẳ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
Trang 26sự 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áccâ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 trungtâ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ếtkhi 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ônggian địa chỉ tới mỗi node thành viên để đưa ra một giá trị từ không gian địa chỉ,phép toán chính đã được cung cấp bởi một hệ thống DHT 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ácthà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ó
Trang 27thông qua một hàm băm chống và trạm, chẳng hạn như SHA-1, thí dụ, chỉ số Icủ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 đơngiả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 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ỉ đơngiản, DHT có thể được sử dụng cho các ứng dụng rộng lớn và đa dạng ác ứngdụ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 đị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ớn củakhô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àocá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ácnode
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
Trang 28địa chỉ.
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
một thông điệp cho một địa chỉ ID đí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ínhxá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ưutrữ trực tiếp, dữ liệu sẽ được sao chép nên trên node tương ứng của nó
Trang 29(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ốngP2P 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ăngthô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ớicá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
Mộ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êmnode chỉ là nơi một con trỏ trỏ đến dữ liệu trong HT ữ liệu của nó vẫn đượcnằ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 thamgia 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ầncủ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ịchbả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 tham gia vào mạn g.
ể 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ểmvà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
Trang 30củ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ỗ
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ộ Do đó,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à đố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ê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 node này vẫn đanghoạ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 đị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ương thíchcâ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ấttrừ 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ệuliê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
Trang 31tươ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ời kh ỏ i mạng
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 sao chépcá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ậtthông tin định tuyến để cải thiện hiệu quả định tuyến Khi một quá trình thựchiệ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ệchiệ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:
• c huyển các cặp (Key, Value) của nó về node trước nó
• c ậ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õicủ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
nó trong không gian I , ký hiệu là Pred(x) ác node tạo thành một danh sách liênkế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 ID 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
Trang 32gian 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]
2.1.1.2 Ánh xạ dữ liệu
Trang 33Hì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ềuitem nhưng ngược lại thì không đúng
2.1.1.3 Quá trình tìm kiếm
Quá trình tìm kiếm là kết quả tự nhiên theo cách chia không gian I dựatrên việc tìm I successor
Trang 34Ví dụ (Hình 2.1, 2.2), khi node 8 muốn tìm item với key là 54, lookupđược chuyển tiếp tới node 42 là node đứng gần K54 nhất trong bảng finger củanode 8 Node 42 lại thực hiện quá trình tương tự, nó chuyển tiếp yêu cầu tớinode 51 trong bảng finger của nó Node 51 thấy rằng K54 nằm giữa nó vàsuccessor của nó (node 56), do đó nó trả về kết quả N56 theo đường đi ngượclại Sau khi nhận được câu trả lời, tầng ứng dụng trên node 8 sẽ liên lạc vớitầ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ặcyê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ếnsau 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)
Trang 35Hình 2 3: Quá trình node tham gia vào mạng hord
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úc nàypredecessor 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ắprời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báo chocá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
Trang 36Hình 2 4: Quá trình node rời khỏi mạng hord
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ủ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ếncủa các node có sự thay đổi được thể hiện trong Hình 2.4 (b, c) với những phầnthay đổ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 đượcxá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ộtnode 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ôngchứ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
Trang 37câ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
Hì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 IDnhư successor list của c 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ó 1D 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ách giữa Iitem và I node là nhỏ nhất
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
Trang 38Như 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))
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 đó, quy tắcthay 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 trong mộtk-bucket [23]
2.1.3 Giao thức Kelips
2.1.3.1 Overlay
Kelips băm không gian ID vào k nhóm đánh số từ 0 đến k-1 với k=V/V(N là số node trong mạng) sử dụng thuật toán consistent hashing Vị trí nhómcủ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 39ả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,
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)=^ + c x ( k — 1 0(V 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=VÃ/=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
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ùng
Hình 2 7: ảng định tuyến của node 110
homenode
hello c 160,
*
Trang 40thuậ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 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ới mộtcontact gần nhất thuộc nhóm đó, node contact sẽ chọn ngẫu nhiên một nodetrong 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
Giống như các DHT 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 nodegiớ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