Cải thiện hiệu năng giao thức định tuyến trong mạng ngang hàng
Trang 1MỤC LỤC
Trang 2MỞ ĐẦU
Trong nhiều năm trở lại đây, thế giới đã chứng kiến sự bùng nổ của Internet băngthông rộng, cùng với nó là sự phát triển mạnh mẽ của các ứng dụng P2P Với nhiều ưuđiểm hứa hẹn như tính hiệu quả, linh hoạt và khả năng mở rộng cao, các mạng P2P đã vàđang thu hút được nhiều sự quan tâm từ cộng đồng nghiên cứu Mạng P2P đã phát triểnqua nhiều thế hệ, thế hệ hiện nay là mạng có cấu trúc dựa trên khả năng lưu trữ và tìmkiếm dữ liệu hiệu quả theo cơ chế Bảng băm phân tán (DHT)
Vấn đề cốt lõi của các mạng ngang hàng P2P là các thuật toán định tuyến, nó đóngvai trò quyết định hiệu quả hoạt động khi thiết lập các dịch vụ hệ thống nền tảng củamạng ngang hàng nói riêng và mạng ảo trên Internet nói chung Chord là giao thức đangđược sử dụng rộng rãi trong các mạng ngang hàng có cấu trúc Điểm khác biệt của giaothức Chord với các giao thức khác là sự đơn giản của nó và khả năng chịu lỗi cao Tuynhiên giao thức này vẫn còn nhiều vấn đề cần xem xét và hướng cải thiện hiệu năng địnhtuyến cho Chord chính là vấn đề chính mà đề tài này đề cập đến
Nội dung của đề tài bao gồm ba phần chính:
Chương I: Lý thuyết chung về mạng ngang hàng
Chương II: Các giao thức định tuyến DHT-P2P
Chương III: Cải thiện hiệu năng định tuyến trong Chord
Chương IV: Mô phỏng và đánh giá hiệu năng
Do trình độ và thời gian có hạn nên đề tài không tránh khỏi những sai sót Kính mongđược sự góp ý từ quý thầy cô và các bạn để đề tài được hoàn thiện hơn Xin kính chúcthầy cô và các bạn có sức khỏe dồi dào và thật nhiều niềm vui trong cuộc sống
Xin chân thành cám ơn!
Nhóm sinh viên
Trang 3THUẬT NGỮ VIẾT TẮT
BNN-Chord Bidirectional Neighbor’sNeighbor Chord NN-Chord hai chiều
NN-Chord Neighbor’s Neighbor Chord Giao thức Chord cải tiến
SETI Search for ExtraterrestrialIntelligence Tìm kiếm nền văn minh ngoài trái đất
MIT Massachusetts Institute ofTechnology Viện công nghệ Massachusetts
Trang 4DANH MỤC HÌNH VẼ
DANH MỤC BẢNG BIỂU
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NGANG HÀNG
Trang 6• Người sử dụng có thể kiểm soát việc dùng chung tài nguyên.
• Tăng cường khả năng cân bằng tải trong mạng
Nhược điểm của mạng ngang hàng
• Máy trạm phải gánh thêm việc phục vụ chia sẻ tài nguyên
• Máy trạm không có khả năng kiểm soát nhiều liên kết như một máy chủ
• Thiếu tính tập trung, rất khó tìm kiếm dữ liệu
• Không có khả năng lưu trữ tập trung
• Mỗi người sử dụng trên máy trạm phải có khả năng quản trị trên chính hệ thốngcủa mình
• Khả năng bảo mật kém, khó kiểm soát
• Quản lý thiếu tập trung, các mạng ngang hàng rất khó làm việc với nhau
1.2 Phân loại mạng ngang hàng
1.2.1 Theo mức độ phân quyền
a. Mạng ngang hàng tập trung
Mạng ngang hàng tập trung là một trong những thế hệ mạng ngang hàng đầu tiên, đặctrưng của mạng này vẫn dựa vào một máy chủ tìm kiếm trung tâm Tô pô xếp chồng củamột mạng ngang hàng tập trung do đó có thể được miêu tả như là một mạng hình sao.Trong mô hình mạng này, mỗi điểm nút kết nối tới máy chủ tìm kiếm trung tâm để cóthể gửi truy vấn tìm kiếm tài nguyên, sau khi gửi yêu cầu tới máy chủ tìm kiếm trung tâm,máy chủ tìm kiếm trung tâm trả về thông tin phản hồi tương ứng với từ khóa được quyđịnh trong truy vấn Tức là tại máy chủ tìm kiếm trung tâm, từ khóa trong thông báo truyvấn sẽ được ánh xạ với bảng danh sách tài nguyên mà máy chủ có Nếu máy chủ tìm kiếmtrung tâm có thông tin mà điểm nút đó yêu cầu thì nó sẽ trả về thông tin vị trí truy cập tớicác điểm nút chia sẻ (đa phần là trả về các địa chỉ IP và các cổng) Sau khi điểm nút đãnhận được thông tin từ máy chủ tìm kiếm trung tâm thì lúc này quá trình trao đổi thôngtin cần tìm được thực hiện theo đúng cơ chế của mạng ngang hàng, tức là trao đổi trựctiếp giữa các nút mạng với nhau mà không cần qua máy chủ tìm kiếm trung tâm
Hoạt động giữa nút máy chủ tìm kiếm trung tâm:
- Tìm kiếm tài nguyên
- Đăng nhập vào mạng xếp chồng
- Đăng ký
- Cập nhật thông tin các bảng định tuyến
- Cập nhật thông tin tài nguyên được chia sẻ
Hoạt động giữa điểm nút điểm nút
- Trao đổi dữ liệu
Ứng dụng cho mô hình mạng kiểu này là: Napster, hỗ trợ việc chia sẻ file và nhạcmiễn phí giữa người dùng mạng Internet
Ưu điểm:
Trang 7- Tìm kiếm nhanh và hiệu quả
- Quản lý tập trung/quản trị tin cậy
Đặc trưng nổi bật của mô hình này là không có máy chủ tìm kiếm tập trung như trong
mô hình mạng ngang hàng tập trung, do đó không gặp phải vấn đề nút cổ chai Các điểmnút giao tiếp trực tiếp với các điểm nút khác trong mạng mà không cần tới máy chủ trungtâm riêng biệt nào, các điểm nút thiết lập kết nối với nhau ngẫu nhiên
Hình 1.2: Mạng ngang hàng thuần nhất
Trong mô hình mạng ngang hàng này, việc tìm kiếm file sử dụng phương pháp pháttràn(phương pháp này có sử dụng giá trị giới hạn phạm vi tìm kiếm là TTL và sử dụngGUID để trao đổi) Khi muốn tìm kiếm một file nào đó thì yêu cầu tìm kiếm được gửi từđiểm nút nguồn tới tất cả điểm nút mạng là hàng xóm của nó Nếu tài nguyên được tìmthấy thì khi đó điểm nút có tài nguyên chia sẻ sẽ trao đổi với điểm nút yêu cầu dựa vàoGUID của điểm nút yêu cầu
Ứng dụng phần mềm điển hình cho mô hình mạng này là: Gnutella 0.4, FreeNet,GnuNet …
Ưu điểm:
Trang 8- Không có điểm duy nhất chịu lỗi khó bị tấn công
Được phát triển để khắc phục nhược điểm của các mô hình mạng ngang hàng trước
đó Mô hình mạng ngang hàng lai bao gồm: các siêu điểm nút, các điểm nút thông thường(client) Trong các siêu điểm nút tạo thành một mạng không có cấu trúc, và mỗi siêu điểmnút kết nối đến nhiều điểm nút thông thường, mỗi siêu điểm nút quản lý vùng của nó, vaitrò siêu điểm nút giống như một máy chủ trong mô hình mạng ngang hàng tập trung
Có một máy chủ trung tâm để lưu trữ thông tin của các máy trạm và trả lời các truyvấn thông tin này Các máy trạm có vai trò lưu trữ thông tin, tài nguyên được chia sẻ,cung cấp các thông tin về chia sẻ tài nguyên của nó cho máy chủ.Sử dụng các trạm địnhtuyến để xác định địa chỉ IP của các máy trạm
Ứng dụng điển hình cho mô hình này: Gnutella 0.6, Kazaa/FastTrack Ngoài ra còncó: Edonkey, Emule, OpenNap, JXTA, Skype…
Ưu điểm:
- Không có điểm duy nhất chịu lỗi vì có nhiều siêu điểm nút
- Cho phép nặc danh
- Phù hợp với các nhóm lợi ích đặc biệt
- Khả năng mở rộng quy mô tốt
- Hiệu quả thỏa mãn các truy vấn
- Hạn chế phát tràn các truy vấn và tránh được hiện tượng nút cổ chai
Nhược điểm:
- Phân chịu tải không cân bằng: các siêu điểm nút chịu tải cao hơn
Trang 9Hình 1.3: Mạng ngang hàng lai ghép
Có hai kiểu mạng lai ghép: mạng lai ghép chỉ số hóa tập trung và mạng lai ghép chỉ
số hóa phân tán
Hình 1.4: Mạng lai ghép với chỉ số hóa tập trung
Trong mạng lai ghép chỉ số hoá tập trung 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 nguyên hiện tại đang được chia sẻ bởi các máy khách tích cực, mỗimá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 Hệ thống nàyvới một server trung tâm đơn giản nhưng xử lí nhanh, có thể tìm kiếm phát hiện thông tinhiệu quả đảm bảo trên toàn bộ hệ thống Tuy vậy khả năng mở rộng không cao mô hìnhnày 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 của nó là có giới hạn Kiến trúc này được sử dụngtrong mạng Napster
Trong hệ thống mạng lai ghép với chỉ số phân tán, tồn tại một số siêu node lưu chỉmục thông tin về các peer cục bộ Truy vấn thông tin được gửi tới siêu node, nó là proxycho các peer cục bộ Do đó truy vấn thông tin nhanh hơn và lưu lượng trao đổi thông tingiữa các node ít hơn so với hệ thống P2P thuần nhất So với hệ thống chỉ số tập trung nó
có ưu điểm là giảm tải đáng kể cho server tránh lỗi cho toàn hệ thống nhưng phát hiệnthông tin chậm hơn Ví dụ: mạng Kazaa, Morpheus
Trang 10Hình 1.5: Mạng lai ghép với chỉ số hóa phân tán
1.2.2Phân loại theo cấu trúc liên kết
Dựa vào cấu trúc liên kết giữa các mạng ta có thể phân loại mạng ngang hàng thành 2loại: có cấu trúc và không có cấu trúc
a. Mạng ngang hàng không cấu trúc
Một mạng ngang hàng không cấu trúc khi các liên kết giữa các nút mạng trong mạngphủ được thiết lập ngẫu nhiên Những mạng như thế này dễ dàng được xây dựng vì mộtmáy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của máy khác đang ởtrong mạng và sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới của riêng mình.Một nhược điểm của mô hình hệ thống này là do không định hướng, một yêu cầu tìmkiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượnglớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp Hầu hết cácmạng ngang hàng không cấu trúc phổ biến như Napster, Gnutella, Fasttrack vàeDonkey2000
b. Mạng ngang hàng có cấu trúc
Khắc phục nhược điểm của mạng ngang hàng không cấu trúc bằng cách sử dụng hệthống DHT (Distributed Hash Table: bảng băm phân tán) Với cấu trúc này, khi một máytính cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạngnào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấykết quả Một số ứng dụng cho mạng này như: Chord, CAN, Kademlia, Pastry và Tapestry.Hash Table (bảng băm) là một cấu trúc dữ liệu ánh xạ giữa key (khóa) và value (giátrị)
Distributed Hash Table (DHT) là thuật toán được sử dụng trong các ứng dụng P2P,DHT cho phép quản lý mạng P2P theo đúng nghĩa với độ tin cậy cao, khả mở, hiệu quả
và có khả năng chịu lỗi DHT là một hash table được cài đặt như một hệ thống phân tán.Cũng như một hash table, DHT cung cấp ánh xạ từ key đến value
Trang 11Hình 1.6: Chức năng chính của DHT
1.2.3Phân loại theo cơ chế tìm kiếm
Cơ chế định vị thông tin trong hệ thống là đặc điểm căn bản trong hệ thống P2P Cơchế tìm kiếm trong mạng ngang hàng được phát triển từ thế hệ thứ nhất với cấu trúc danhmục tập trung tới thế hệ thứ hai với cơ chế yêu cầu liên tục và thế hệ thứ ba dựa vào bảngbăm phân tán
a. Cơ chế danh mục tập trung
Hình 1.7: Cơ chế danh mục tập trung
Cơ chế này được sử dụng trong mạng lai ghép, các máy khách kết nối tới máy chủchứa trung tâm thư mục, là nơi lưu trữ tất cả các thông tin về vị trí và cách sử dụng tàinguyên Dựa trên yêu cầu từ máy khách trung tâm chỉ số sẽ đưa yêu cầu tới máy khách tốtnhất mà có thư mục phù hợp với yêu cầu Máy khách tốt nhất có thể là rẻ nhất, nhanhnhất, gần nhất, hoặc sẵn sàng nhất, phụ thuộc vào người sử dụng cần Sau đó dữ liệu sẽđược trực tiếp trao đổi giữa hai máy khách Mạng Napster sử dụng phương pháp này, mộtmáy chủ trung tâm sẽ giữ gìn chỉ số của dữ liệu với các trường tiêu đề của tất cả các filetrên mạng, một bảng các thông tin đăng kí kết nối của người dùng như địa chỉ IP, tốc độkết nối…, một bảng danh sách các file mà người sử dụng giữ và chia sẻ trong mạng Khibắt đầu, máy khách sẽ tiếp xúc với máy chủ trung tâm và đưa ra một danh sách với các
Trang 12file mà nó giữ Khi máy chủ thu được một yêu cầu từ người dùng Nó sẽ tìm kiếm cho chỉ
số phù hợp file cần tìm, trả lại danh sách những người dùng đang giữ file phù hợp Ngườidùng sẽ thiết lập một kết nối trực tiếp tới máy đang giữ file và lấy nó về
Mô hình này có nhược điểm là khả năng mở rộng không cao, dễ bị lỗi toàn hệ thống
b. Cơ chế yêu cầu liên tục
Hình 1.8: Cơ chế yêu cầu liên tục
Đây là mô hình mạng ngang hàng hoàn toàn trong đó mỗi điểm (peer) không lưu giữbất kỳ trung tâm thư mục nào và mỗi điểm sẽ công bố thông tin về nội dung chia sẻ trongmạng ngang hàng Vì vậy không một điểm đơn nào biết về tất cả các tài nguyên, mộtđiểm khi cần tìm kiếm tài nguyên nó sẽ gửi yêu cầu tới tất cả các điểm đang kết nối với
nó, cứ như thế yêu cầu được gửi đi cho tới khi được trả lời hoặc khi số bước gửi yêu cầu
là cực đại Khi số điểm trên mạng lớn thì lưu lượng trên mạng sẽ rất lớn, đây là nhượcđiểm của mô hình tìm kiếm này Hệ thống này chỉ làm việc hiệu quả với mạng nhỏ nhưGnutella Mô hình cải tiến đưa vào khái niệm super peer giảm tiêu thụ băng thông và chokhả năng mở rộng cao hơn ví dụ Kazaa
c. Cơ chế bảng băm phân tán
Đây là là mô hình tiên tiến nhất và được sử dụng trong mạng ngang hàng hoàn toàn
Mô hình định tuyến thêm vào cấu trúc thông tin về những tài nguyên được lưu trữ sửdụng bảng băm phân tán Giao thức này cung cấp một ánh xạ giữa số nhận dạng của tàinguyên (ID) và vị trí lưu trữ Trong cấu trúc của bảng định tuyến một truy vấn có thểđược định tuyến hiệu quả tới node có tài nguyên mong muốn Giao thức này làm giảm bớt
số bước mà node trong mạng cần thiết để định vị tài nguyên tìm kiếm Mỗi node được gắnmột giá trị ID và nó biết một vài các node khác Khi một node muốn chia sẻ tài liệu, tên
và nội dung của tài liệu đó được băm tạo ra một ID gắn với tài liệu đó Tài liệu được địnhtuyến tới node có ID gần với ID của tài liệu nhất Khi một node muốn lấy một tài liệu nào
đó nó gửi yêu cầu chứa ID của tài liệu Yêu cầu được chuyển tới node có ID gần với IDcủa tài liệu nhất, sau đó tài liệu được chuyển tới node yêu cầu Các mạng ngang hàng thế
hệ mới đều sử dụng phương pháp tìm kiếm này như: Freenet, Chord, Kademlia…
Trang 13Hình 1.9: Cơ chế bảng băm phân tán
Mô hình này được chứng minh là có hiệu quả với mạng có số peer lớn Tuy vậy nóvẫn tồn tại các nhược điểm đó là khó cài đặt tính năng tìm kiếm do phải biết trước ID củafile trước khi gửi yêu cầu Băm tên file hoặc nội dung khác nhau tạo ra ID khác dẫn đếnkhông tìm thấy file Các node khi chia vào các nhóm khác nhau không có sự liên hệ dẫnđến vấn đề ‘’islanding’’(cô lập)
1.3 Ứng dụng của mạng ngang hàng
Có thể chia ứng dụng của P2P thành 4 loại:
1.3.1 Chia sẻ tài liệu
Lưu trữ và trao đổi tài nguyên là một trong những mặt thành công nhất của công nghệmạng ngang hàng Ứng dụng chia sẻ tài liệu tập trung vào sự lưu trữ thông tin và khôiphục thông tin từ nhiều máy khác trên mạng Một trong những ví dụ tốt nhất của mạngngang hàng là Napster, nó trở thành hệ thống chia sẻ ca nhạc nổi tiếng
1.3.2 Phân tán tính toán
Ứng dụng này sử dụng tài nguyên từ một số các máy tính trên mạng (năng lực xử lícủa các máy tính rỗi trên mạng) Ý tưởng đằng sau ứng dụng này là bất kỳ máy tính nàokết nối vào mạng có thể được sử dụng để giải quyết vấn đề của những máy khác đang yêucầu tính toán thêm Ví dụ dự án SETI (Search for Extraterrestrial Intelligence: Tìm kiếmnền văn minh ngoài trái đất)
1.3.3 Hợp tác
Mục đích của ứng dụng hợp tác trong mạng ngang hàng là cho phép cộng tác ở mứcứng dụng giữa các người dùng ví dụ như chat, instant messaging, online game đến cácứng dụng chia sẻ có thể sử dụng trong kinh doanh, giáo dục …
1.3.4 Lớp nền
Trang 14P2P platform cung cấp hạ tầng cho các ứng dụng phân tán sử dụng cơ chế P2P Cácphần tử P2P sử dụng ngữ cảnh để phát hiện, kết nối, bảo mật, tập hợp tài nguyên…Ví dụJXTA là một P2P platform cung cấp một nền cơ bản cho việc lập trình và xử lí trên mạng.
Bảo mật cho hệ thống P2P khó khăn hơn các hệ thống khác, các node trong hệ thống
là động, phân tán khắp nơi, các node không chứng thực lẫn nhau Các cơ chế bảo mậttruyền thống như tường lửa, xác thực… không thể bảo vệ hệ thống P2P ngược lại có thểngăn cản quá trình truyền thông trong hệ thống Bởi vậy những khái niệm bảo mật mớiđược đặt ra đối với hệ thống P2P
1.4.2 Độ tin cậy
Một hệ thống đáng tin cậy là hệ thống có thể phục hồi khi lỗi xảy ra Những nhân tốcần phải quan tâm khi tính toán cho sự tin cậy là: nhân bản dữ liệu, phát hiện node lỗi,phục hồi… đảm bảo cho thông tin định vị tránh lỗi đơn và khả năng sẵn sàng nhiều đườngdẫn tới dữ liệu Nhân bản dữ liệu tăng sự tin cậy bằng việc tăng sự dư thừa và định vị Cóhai chiến lược cho nhân bản: nhân bản nguyên gốc và nhân bản đường dẫn Trong nhânbản nguyên gốc, khi tìm kiếm thành công dữ liệu được lưu trữ chỉ tại node yêu cầu Trongnhân bản đường dẫn khi tìm kiếm thành công dữ liệu được lưu trữ tại tất cả các node dọctheo đường dẫn từ node yêu cầu tới node cung cấp
1.4.3 Độ linh động
Chính là khả năng tự chủ của các node trong việc gia nhập hoặc rời bỏ hệ thống Đểgiải quyết vấn đề quy mô lớn, phân tán và linh động của các hệ thống P2P, khi xây dựngcác hệ thống P2P cần chú ý đến khả năng điều chỉnh và tự tổ chức
1.4.4 Cân bằng tải
Phân phối dữ liệu để lưu trữ hoặc tính toán trên các node là vấn đề rất quan trọngtrong các hệ thống mạng ngang hàng, một giải pháp đặc biệt cho sự phân phối này làBảng băm phân tán (DHT) Trong cách tiếp cận này, cân bằng tải được xem xét trên haikhía cạnh: cân bằng không gian địa chỉ tức là cân bằng phân phối của không gian keyaddress trên các node và cân bằng item trong trường hợp phân phối của các item trongkhông gian địa chỉ không thể là ngẫu nhiên Cân bằng tải giữa các node tính toán trong hệthống P2P cũng có thể được cài đặt sử dụng mô hình tự tổ chức dựa trên agent
1.5 Một số ví dụ về mạng ngang hàng
1.5.1Mạng Edonkey
Hay còn gọi là mạng Edonkey2000 là một chương trình chia sẻ tệp trên mạng nganghàng, được phát triển bởi MetaMachine, sử dụng giao thức truyền tệp đa nguồn (tiếng
Trang 15Anh: Multisource File Transfer Protocol) Chương trình eDonkey hỗ trợ cả hai mạngeDonkey và mạng Overnet.
Người dùng eDonkey2000 chủ yếu chia sẻ những tệp rất lớn, hàng trăm mêgabyte,như đĩa CD, phim, trò chơi, và phần mềm Không như các phần mềm chia sẻ tệp nganghàng khác, tệp chia sẻ trong mạng eDonkey được cung cấp dưới dạng một liên kết ed2k,chương trình eDonkey2000 sẽ tự khởi động và tải tệp khi liên kết ed2k được kích hoạt
Hình 1.10: Mô hình mạng Edonkey
Edonkey là mạng ngang hàng phân quyền, tài nguyên không được lưu trữ ở một máychủ trung tâm mà được chia sẻ trực tiếp giữa những người sử dụng Phần mềm của mạngEdonkey cài đặt trên máy khách kết nối vào mạng để chia sẻ tài nguyên Các máy chủđóng vai trò như những hub truyền thông cho các khách hàng, cho phép người sử dụngđịnh vị tài liệu trong mạng Bằng việc chạy phần mềm máy chủ Edonkey trên một máytính kết nối vào Internet, bất kỳ người sử dụng nào cũng có thể kết nối tới máy chủ để vàomạng Số máy chủ và địa chỉ của nó thường xuyên thay đổi, chương trình chạy trên cácmáy khách sẽ thường xuyên cập nhật danh sách các server
1.5.2Mạng Gnutella
Đây là mô hình mạng ngang hàng hoàn toàn trong chia sẻ tài nguyên và cả trong giaothức, ở đó các máy kết nối vào mạng bằng cách kết nối với những máy đã tồn tại trongmạng Hình thức này hình thành ứng dụng trên mạng vật lý Tất cả các node trong mạng
có thể quản lý tài nguyên và khôi phục tài nguyên từ node khác Để tạo điều kiện cho việcchia sẻ tài liệu một thông báo được gửi giữa các node, truy vấn về tài liệu cần tìm đượcphát quảng bá toàn mạng và được lặp lại định tuyến ngược trở lại node đầu tiên đã đưa rayêu cầu trong mạng Thông báo tìm kiếm sẽ được sử dụng để tìm kiếm các node
Trang 16Hình 1.11: Mô hình mạng Gnutella
1.5.3Mạng Napster
Đây là mạng chia sẻ tài nguyên phân tán với máy chủ cơ sở, máy chủ không giốngnhư truyền thống, trong nó chỉ chứa danh sách các thư mục Các máy khách sẽ tải về vàquản lý tài nguyên, trong khi đó máy chủ sẽ giữ chỉ số của tài liệu điều khiển yêu cầu tìmkiếm của máy khách Một máy khách gửi yêu cầu tìm kiếm của nó tới máy chủ, máy chủ
sẽ tìm kiếm trong các chỉ mục nó lưu trữ và gửi danh sách phù hợp trở lại cho máy khách
Hình 1.12: Mô hình mạng Napster
Máy khách sẽ sử dụng danh sách đó để kết nối tới máy khách có chứa tài nguyên và tải vềtài nguyên từ những máy khách đó Khi máy khách kết nối với máy chủ lần đầu tiên,chúng sẽ gửi danh sách các tài nguyên mà nó đang muốn chia sẻ lên cho máy chủ, nhữngtài nguyên này sẽ được thêm vào danh sách chỉ mục của máy chủ Napster là hệ thốngchia sẻ tài nguyên ngang hàng tập trung, có nghĩa là Napster cung cấp một máy chủ chocác máy khách để tổ chức và cho phép truy nhập tới bất kỳ hoặc tất cả các file tồn tại trêncác máy khách
Trang 17CHƯƠNG II: CÁC GIAO THỨC ĐỊNH TUYẾN DHT-P2P
2.1Khái niệm về Distributed Hash Table (DHT)
Bảng hàm băm phân tán (Distributed Hash Table) là một lớp của hệ thống phân táncung cấp dịch vụ tra cứu tương tự như bảng hàm băm (hash table) Một bảng băm là mộtcấu trúc dữ liệu được ánh xạ giữa khóa (key) và giá trị (value) Tức là tương ứng với mộtkhóa sẽ có một giá trị Để thực hiện việc ánh xạ, hash table sử dụng hàm băm (hashfunction) tính toán vị trí lưu giá trị dựa trên khóa
Bảng hàm băm phân tán hiểu đơn giản chính là một bảng băm được cài đặt như một
hệ thống phân tán, các tài nguyên được ràng buộc với các khóa (ví dụ được tạo ra bằngcách băm các tên hoặc nội dung file) và việc duy trì sự ánh xạ từ khóa đến tài nguyên sẽđược phân tán đều trong mạng Mỗi node trong hệ thống sẽ có trách nhiệm lưu giữ mộtdải các khóa nào đó Khi muốn tìm kiếm một tài nguyên (giá trị) nào đó, ta sử dụng mộttoán tử trong DHT đó là tìm kiếm – lookup(key), nó sẽ trả lại nhận dạng của node lưu trữobject ứng với key đó Toán tử này cho phép các node đưa và lấy các tài nguyên trên cơ
sở khóa của chúng
Hình 2.1: Mô tả quá trình tạo key của DHT
DHT có các ưu điểm khác biệt so với dịch vụ hướng Client – Sever truyền thống:
• Cho phép hoạt động phân tán, không cần duy trì một server trung tâm để điềukhiển hoạt động của mạng P2P
• Hệ thống có tính khả mở, nghĩa là hệ thống vẫn hoạt động tốt ngay cả với số lượngnode và lưu lượng trong mạng lớn
• Tải được cân bằng giữa các peer trong mạng
Trang 18• Hệ thống dựa trên giả định rằng mạng không tĩnh và các thay đổi xuất hiện thườngxuyên với các node tham gia hay rời khỏi mạng.
• Việc định tuyến và lấy dữ liệu hoàn thành trong thời gian tỷ lệ logarit
• Cung cấp dịch vụ lưu trữ, tìm kiếm thông qua hai hàm insert và lookup
Khi thực hiện DHT trong thực tế phải đáp ứng ít nhất các yêu cầu sau:
• Không gian địa chỉ là một thông số của DHT Rất nhiều hệ thống DHT trong thực
tế sử dụng không gian địa chỉ 128 bit hoặc 160 bit
• Một số hệ thống DHT sử dụng hàm băm khác với SHA-1
• Trong thực tế, khóa k thường được băm ra từ nội dung của file (dữ liệu) hơn là từtên của file để cung cấp sự lữu trữ nội dung mang tính địa chỉ (content-addressablestorage) và để cho người dùng không gặp các rắc rối khi tìm kiếm một file đã bịđổi tên
• Các cặp khóa, dữ liệu sẽ được lưu ở nhiều node thay vì chỉ lưu ở một node Cácthuật toán DHT trong thực tế sẽ lựa chọn i node phù hợp, với i là một thông số củaDHT Trong một số thiết kế DHT, các node sẽ lưu trữ một dải không gian khóa,kích thước của dải này sẽ được chọn lựa một cách tự động
2.2Các giao thức định tuyến sử dụng DHT
2.2.1 Chord
Là giao thức và thuật toán sử dụng DHT Chord là một trong bốn giao thức DHTtruyền thống và được giới thiệu vào năm 2001 bởi Ion Stoica, Robert Morris, DavidKarger, Frans Kaashoek, Hari Balakrishnan và được phát triển bởi MIT
Trang 19Hình 2.2: Vòng không gian địa chỉ Chord
Một node với ID là x có một con trỏ tới node đầu tiên đứng sau nó trong không gian địachỉ theo chiều kim đồng hồ kí hiệu là Succ(x) và một con trỏ tới node đứng trước nó kíhiệu là Pred(x) Ví dụ, node kế tiếp của của node 2 là node 3 và node đứng trước node 1
là node 0 Tuy nhiên, trong thực tế sẽ tồn tại các lỗ hổng trong chuỗi số, ví dụ node kếtiếp của node 153 có thể là node 167 (do các node từ 154 đến 166 không xuất hiện trongmạng), trong trường hợp này node trước của node 167 sẽ là node 153 Do các node kế tiếp(hoặc trước đó) có thể biến mất trong mạng (do lỗi hoặc lý do khác), mỗi node sẽ ghi lạitoàn bộ một phân đoạn của vòng tròn liền kề với nó ví dụ r node đằng trước và r nodeđằng sau nó Danh sách này được các node sử dụng để xác định chính xác node kế tiếp vàtrước đó ngay cả khi mạng có tỉ lệ lỗi cao Các node tạo thành một danh sách liên kết haichiều
Hình 2.3: Không gian ID của mạng Chord (N=64)
Trang 20Một node lưu m=log2(N) con trỏ (hay là mục – entry) gọi là các finger trong đó N làkích thước vòng Tập các finger của node ID x đượ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 Chord, các node quan sátkhông gian ID của vòng tròn bắt đầu từ không gian ID của chúng
Hình trên cho thấy một mạng với số không gian địa chỉ N=64 Mỗi node cóm=log2(N)=6 finger Mạng có các node với ID lần lượt là 1, 8, 14, 21, 32, 38, 42, 48, 51,
56 Node n lưu một bảng finger với giá trị thứ i trong bảng là successor của các ID đượctính theo công thức: ((n + 2i-1) mod 2m) Tuy nhiên, có thể không có node có ID phù hợptại điểm chia, khi đó successor của ID tại điểm chia được chọn làm finger Bảng fingercho node 8 được thể hiện như hình trên
b. Định tuyến
Hình 2.4: Các item lưu trên mạng Chord
Từ hình trên ta thấy, một item được lưu trên node có ID bằng nó (K38, N38) hoặc lànode đầu tiên có ID lớn hơn nó theo chiều kim đồng hồ (K10, N14) Một node có thể lưunhiều item nhưng ngược lại một item chỉ được lưu tại một node
Quá trình định tuyến là kết quả tự nhiên theo cách chia không gian ID dựa trên việctìm ID successor Với hai ví dụ trên, khi node 8 muốn tìm item với key là 54, look upđược chuyển tiếp tới node 42 là node đứng gần K54 nhất trong bảng finger của node 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ới node 51 trong bảngfinger 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ược lại Sau khi nhận được câu trả lời, tầng ứngdụng trên node 8 sẽ liên lạc với tầ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))
Trang 21Hình 2.5: Không gian ID của mạng Kademlia (N=8)
Đố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
đó Tương ứng với mỗi cây con này, node sẽ phải lưu ít nhất một địa chỉ đế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ó ID 110 sẽ lưu các node có tiền tố lần lượt là 0, 10, 111
Kademlia không lưu danh sách các node gần với nó trong không gian ID như Chord.Tuy nhiên với mỗi cây con trong không gian ID, node lưu tới k contact thay vì mộtcontact và gọi k contact này là k-bucket Hình dưới đây minh họa các k-bucket của nộtnode có ID=0…0
b. Định tuyến
Kademlia sử dụng một khái niệm đó là “khoảng cách” giữa hai node Khoảng cáchnày được tính bằng phép cộng loại trừ XOR của hai ID (d(x,y)=xy) và kết quả là một sốnguyên Các khóa và ID của node có cùng định dạng và độ dài, nên khoảng cách giữachúng có thể được tính toán theo cùng một cách ID của node là một số lớn ngẫu nhiênđược chọn duy nhất đối với mỗi node riêng biệt Chính vì vậy mà hai node ở cách xa nhau