Cả hai mô hình quản lý tin cậy trên đây đều không tốt với các mạng có quy mô lớn bởi chúng dựa vào các máy chủ hoặc sử dụng các thuật toán lan truyền cho sự quảng bá uy tín giữa các nút trong hệ thống. Mặt khác, một trong những đặc tính nổi bật của hệ thống P2P là khả năng mở rộng. Điều đó giúp ta lưu ý, tại sao không sử dụng hệ thống P2P có cấu trúc để quản lý tin cậy cho mạng P2P? Câu trả lời sẽ được giải đáp trong hệ thống cộng tác của Ge, Luo và Xu [19], nơi mà một hệ thống P2P có cấu trúc P-Grid được sử dụng để triển khai hệ thống quản lý tin cậy.
3.6.3.1. Đánh giá sự tin cậy
Trong hệ thống này, uy tín của một nút được đánh giá dựa trên số lượng các khiếu nại bởi các nút khác và số lượng khiếu nại của nó về các nút khác. Mặc dù đếm số khiếu nại của một nút để đánh giá uy tín có thể không phải là mục đích hàng đầu nhưng nó giúp cho việc xác định các nút xấu một cách nhanh hơn. Lý do là nếu một nút là xấu nó luôn luôn tạo ra một khiếu nại về đối tác của nó, vì nó biết rằng đối tác của nó làm tương tự. Vì vậy, các nút xấu chỉ nhận được nhiều khiếu nại từ các nút khác nhưng cũng có nhiều khiếu nại về các nút khác. Thêm nữa, các nút xấu có một số lượng lớn các khiếu nại so với các nút khác, do đó chúng dễ dàng bị phát hiện. Đặt P biểu thị tập tất cả các nút và
c(p, q) biểu thị một khiếu nại được tạo ra bởi p về q. Sau đó, uy tín một nút được xác định bởi công thức sau:
3.6.3.2. Quản lý tin cậy dựa vào P-Grid
Trong cấu trúc của P-Grid, mỗi nút được liên kết với một đường đi của một cây tìm kiếm nhị phân, và chịu trách nhiệm cho tất cả dữ liệu chứa đường dẫn tìm kiếm như uy tín tiền tố của nó. Nó có thể sử dụng để lưu trữ các khiếu nại của các nút trong hệ thống bằng cách sử dụng định danh của các nút như là các khóa. Một ví dụ được minh họa trong hình 3.12.
Hình 3.12: Hệ thống quản lý tin cậy dựa vào P-Grid
Có tổng số 6 nút trong hệ thống chúng ta quan sát, sắp xếp trong một cây tìm kiếm nhị phân có độ sâu là 2. Nếu chúng ta sử dụng 3 bits để mã hóa định danh của các nút, các khiếu nại về nút 1 và bởi nút 1 khiếu nại được lưu giữ trên cả nút 1 và nút 6 vì đường đi tìm kiếm nhị phân liên quan đến nút 1 và nút 6, 00 là tiền tố của định danh của nút 1, 001. Tương tự như vậy, nút 2 lưu giữ các khiếu nại về nút 2 và nút 3, có tiên tố của định danh là 01; nút 3 và nút 4 lưu giữ các khiếu nại về nút 4 và nút 5, có tiền tố của định danh là 10; nút 5 lưu giữ các khiếu nại về nút 6, có tiền tố của định danh là 11.
Sử dụng cấu trúc P-Grid, các khiếu nại được chèn vào và sau các truy vấn các liên định tuyến được lưu ở các nút. Ví dụ, nếu nút 2 vừa thực hiện giao dịch với nút 6, và muốn đưa ra một khiếu nại về nút 6, nó tạo ra một yêu cầu cho phép chèn khiếu nại với khóa 110. Bằng cách kiểm tra các liên kết định tuyến của nó, nút 2 sẽ gửi yêu cầu đến nút 3. Đổi lại, nút 3 sẽ chuyển tiếp yêu cầu đến nút 5, và tại đây nó lưu giữ các khiếu nại về
nút 6. Một quy trình tương tự được thực hiện để tìm kiếm. Trong đó, việc chèn thêm và tìm kiếm các yêu cầu được định nghĩa như công thức dưới đây:
- insert(t, k, v): Trong đó t là mục tiêu của khiếu nại, k là khóa hay định danh của t, và v là giá trị của khiếu nại.
- query(t, k): trong đó t là mục tiêu và uy tín đã được điều tra; k là khóa hay định danh của t.
Một điều mà bạn đọc sẽ quan tâm khi quan sát trong hình 3.12, ta thấy là nút 1 giữ khiếu nại về chính nó. Nếu nút 1 là một nút xấu, nó có thể thay đổi kết quả. Do đó, các khiếu nại phải được lập chỉ mục ở một vài nơi thay vì chỉ lưu giữ một nơi, bằng cách sử dụng kỹ thuật nhân bản. Bằng cách này, kết quả truy vấn có thể được kiểm tra nhiều lần. Ngoài ra, nó cũng gợi ý rằng uy tín của các nút đưa ra kết quả cũng cần được kiểm tra để tránh vấn đề của một nhóm các nút xấu hợp tác để đưa ra kết quả sai. Mặc dù điều này có thể dẫn đến sự kiểm tra tuần hoàn trong toàn hệ thống, điều này hiếm khi xảy ra vì quá trình chỉ ngừng lại sau một vài bước khi kết quả nhận được là phù hợp.
Chương 4: MÔ PHỎNG MẠNG NGANG HÀNG VỚI PEERSIM
Trong chương này, chúng ta sẽ tìm hiểu nền tảng PeerSim – một nền tảng mã nguồn mở dùng để mô phỏng mạng ngang hàng và xây dựng các ứng dụng chạy trên nền P2P. Đặc biệt, chúng ta sẽ tìm hiểu về ứng dụng BitTorrent (một ứng dụng đã được xây dựng trên nền tảng PeerSim) cho việc chia sẻ dữ liệu.