Giới thiệu về DHT

Một phần của tài liệu Nghiên cứu giao thức chord trong mạng peer – to – peer (Trang 32 - 36)

CHƯƠNG 2: TỔNG QUAN VỀ DHT

2.1 Giới thiệu về DHT

DHT (Distributed Hash Tables – 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. DHT 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 DHT, và một nút 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ả. 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 nút, sao cho một thay đổi tại một tập hợp các nút tham gia chỉ gây ra rắc rối tối thiểu.

Điều này cho phép dùng DHT cho số lượng rất lớn các nút mạng và liên tục xử lý được các sự kiện các nút vào và ra khỏi mạng và các thất bại. Ngoài ra DHT còn hỗ trợ 3 thao tác: chèn, tìm kiếm và xóa các cặp (key, value).

DHT 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 xẻ 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ềninstant messaging. Các mạng phân tán nổi tiếng sử dụng DHT bao gồm BitTorrent 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ảng cho truyền thông an toàn.

DHT hỗ trợ các giao thức như: Chord,CAN, Kademlia, Pastry, Tapestry, P_Grid, 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.

2.1.1 Đặc tính của DHT

Ngược lại với hệ thống P2P không cấu trúc, mỗi DHT của nút sẽ quản lý một số lượng nhỏ các tham khảo tới các nút khác. Tức là có O(log N) các tham

khảo, ở đây N mô tả số nút có trong hệ thống.

Bằng việc ánh xạ các nút 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 nút để dẫn đến các mục dữ liệu trong nút có trách nhiệm với dữ liệu này.

Các câu truy vấn được định tuyến qua một số lượng nhỏ các nút để tới nút đích. Bởi vì một tập nhỏ tham khảo sẽ được mỗi nút 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. Nút khởi tạo yêu cầu tìm kiếm có thể là bất kỳ trong DHT.

Bằng việc phân tán các chỉ số nhận dạng của nút 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 nút.

Bởi vì không một nút 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ủa một nút được xem như là không có ảnh hưởng tới chức năng của DHT. Do đó, DHT được xem như là có khả năng chống lại lỗi ngẫu nhiên và tấn công.

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

Các node trong hệ thống được thiết lập không cần bất kỳ trung tâm phối hợp nào.

Hệ thống hoạt động có hiệu quả thậm trí với hàng trăm, hàng nghìn node.

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ế DHT 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. Cuối cùng DHT 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…

2.1.2 Cấu trúc của DHT

Cấu trúc của một DHT 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ích thước 160-bit.

 Một phương án phân hoạch không gian khóa (keyspace partitioning) chia tách sở hữu không gian khóa này giữa các nút thành viên.

 Một mạng overlay kết nối các nút, cho phép chúng tìm nút chủ của mộ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 DHT 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 ten_filedu_lieu cho trước vào DHT, thực hiện băm SHA1 cho ten_file, tạo một khóa k kích thước 160-bit, và thông điệp put(k,du_lieu) được gửi tới một nút bất kì tham gia DHT. Thông điệp này được gửi chuyển tiếp từ nút này tới nút khác qua mạng overlay cho đến khi nó đến được nút 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,du_lieu) sau đó được lưu trữ tại nút này. Từ đó, một khách hàng 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 ten_file để lấy khóa k và yêu cầu một nút DHT 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 nút chịu trách nhiệm cho khóa k, nút này sẽ trả lời bằng du_lieu được lưu trữ tại đó.

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

Đa số các DHT dùng một dạng hàm băm ổn định (consistent hashing) để ánh xạ từ khóa tới các nút. 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 nút được gán một khóa

đơn, gọi là định danh của nút (ID). Một nút với ID i sở hữu tất cả các khóa mà i là ID gần nhất theo hàm khoảng cách δ.

Ví dụ. DHT 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 nút. Nếu i1 và i2 là hai ID liên tiếp, thì nút với ID i2 sở hữu tất cả các khóa nằm giữa i1 và i2.

Consistent hashing có tính chất quan trọng rằng việc xóa hay thêm một nút chỉ làm thay đổi tập khóa thuộc sở hữu các nút có ID liền đó, và không ảnh hưởng đến tất cả các nút khác. Do 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 nút này chuyển sang nút 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ện tượng nút đến và đi.

Mạng Overlay.

Mỗi nút lưu trữ một tập các liên kết tới các nút khác (danh sách hàng xóm hoặc bảng định tuyến). Các liên kết này tạo nên mạng overlay. Một nút 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à tô pô mạng.

Tất cả các tô pô DHT đề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 nút hoặc có ID sở hữu k hoặc có liên kết tới một nút ở 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 ăn tham (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ó ID gần k nhất. Khi không có hàng xóm nào như vậy là khi ta đã đến được nút 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).

Hình 2.1: Bảng băm phân tán (DHT)

Một phần của tài liệu Nghiên cứu giao thức chord trong mạng peer – to – peer (Trang 32 - 36)

Tải bản đầy đủ (PDF)

(70 trang)