1.3.1.1. Các hệ thống mạng ngang hàng tập trung
Các hệ thống mạng ngang hàng tập trung gồm một máy chủ trung tâm lưu giữ thông tin của tất cả các nút tham gia mạng và một thư mục quản lý các tệp tin chia sẻ trong mạng nhằm tạo thuận lợi cho các nút trong quá trình cộng tác với nhau. Các hệ thống mạng ngang hàng tập trung còn được gọi là các hệ thống phân tán lai [7]. Đại diện điển hình cho các hệ thống này là Napster [8] và BitTorrent [9]. Trong các hệ thống đó, máy chủ trung tâm hoạt động giống một máy chủ thư mục phục vụ cho các nút trong mạng ngang hàng. Tất cả các yêu cầu truy vấn được gửi đến máy chủ trung tâm và máy chủ trung tâm sẽ gửi trả lại danh sách các nút trong mạng chứa tệp tin được yêu cầu. Quá trình tìm kiếm được thực hiện dưới sự hỗ trợ của máy chủ trung tâm, tuy nhiên việc phân phối nội dung lại được thực hiện trực tiếp giữa nút yêu cầu tài nguyên và nút cung cấp tài nguyên. Các hệ thống mạng ngang hàng tập trung đơn giản trong việc cài đặt, tuy nhiên các hệ thống này dễ bộc lộ điểm sự cố duy nhất, khả năng mở rộng mạng kém, dễ bị vi phạm bản quyền, vấn đề an ninh an toàn và các vấn đề kỹ thuật khác.
1.3.1.2. Các hệ thống phân tán hoàn toàn
Các hệ thống mạng ngang hàng phân tán hoàn toàn thường được gọi là các hệ thống mạng ngang hàng thuần túy. Trong các hệ thống này khơng có thành phần trung tâm đóng vai trị tổ chức cho các nút tham gia, tất cả các nút trong mạng tự cộng tác với nhau để thực hiện các công việc. Kiến trúc Gnutella [10] và Freenet [11] là các hệ thống mạng ngang hàng phân tán hoàn toàn. Các nút trong hệ thống vừa đóng vai trị là máy chủ và vừa đóng vai trò là máy khách tại cùng một thời điểm. Tất cả các nút hỗ trợ nhau trong việc tìm kiếm, định tuyến và phân phối nội dung. Đặc tính tạo nên sức mạnh thực sự cho hệ thống này đó là khả năng phân tán. Tuy nhiên, các hệ thống này thường gây lãng phí băng thơng mạng do sử dụng cơ chế tìm kiếm kiểu phát tràn và có thể khơng đảm bảo được kết quả tìm kiếm nội dung đa phương tiện.
1.3.1.3. Các hệ thống tập trung cục bộ
Hệ thống mạng ngang hàng phân tán một phần là hình thức cải tiến của hệ thống phân tán thuần túy. Các hệ thống mạng ngang hàng dựa trên kiến trúc FastTrack[12] như KaZaA[13], Morpheus[14], iMesh[15] là các hệ thống phân tán một phần. Các hệ thống này hoạt động cơ bản giống với các hệ thống phân tán thuần túy. Tuy nhiên trong hệ thống phân tán một phần, một số nút được gán vai trò cụ thể hơn so với các nút khác. Các nút đặc biệt này được gọi là siêu nút (superpeer hoặc supernode), hoạt động như một máy chủ trung tâm để quản lý một số nút nhất định. Trong hệ thống đó tất cả các yêu cầu sẽ đi qua các supernode. Hệ thống phân tán một phần vẫn tồn tại nguy cơ tạo ra điểm sự cố duy nhất, tuy nhiên chúng được cài đặt cơ chế đặc biệt để chuyển sang nút thay thế khi hệ thống gặp sự cố. Việc chuyển đổi tự động và thông minh giữa các supernode giúp hệ thống tránh khỏi vấn đề điểm sự cố duy nhất. Tuy nhiên, vấn đề lựa chọn một supernode thích hợp cho một tập
các nút nhất định là một vấn đề chưa có lời giải tối ưu. Chức năng của các
supernode cơ bản là giống nhau và phụ thuộc vào thiết kế kiến trúc tổng thể
của mạng ngang hàng. Nói chung, việc kết hợp của supernode tạo điều kiện
thuận lợi cho phân phối nội dung và cải thiện cơ chế tìm kiếm. 1.3.2. Phân loại theo cấu trúc mạng ngang hàng
Các nút tham gia mạng ngang hàng có độ ổn định và tính đồng nhất khơng cao, các nút đều có thể gia nhập và rời khỏi mạng mà không đưa ra bất kỳ một thông báo trước nào. Trong các trường hợp như vậy, cấu trúc tổng thể của mạng ngang hàng đóng một vai trị rất quan trọng cho việc tổ chức các nút. Các nút được tổ chức thành một mạng phủ ở trên đỉnh của các mạng vật lý. Mạng phủ này là các mạng ảo có thể hồn tồn khơng liên quan đến mạng vật lý. Cấu trúc mạng ngang hàng như vậy cung cấp cơ chế chỉ mục, tìm kiếm, định tuyến và phân phối nội dung từ một số nút nhất định. Việc phân loại các hệ thống mạng ngang hàng dựa trên các cấu trúc mạng được trình bày trong các phần dưới đây:
1.3.2.1. Mạng ngang hàng không cấu trúc
Mạng ngang hàng khơng cấu trúc khơng có bất kỳ thơng tin cụ thể nào về nội dung đa phương tiện của các nút được yêu cầu. Các hệ thống mạng ngang hàng như Gnutella, KaZaA, Morpeus, DirectConnect, BitTorrent, v.v. là mạng ngang hàng khơng có cấu trúc. Trong các hệ thống này khơng có thơng tin cho việc tổ chức nút và nội dung đa phương tiện lưu trữ trên các nút tương ứng. Việc tìm kiếm một nội dung được thực hiện một cách ngẫu nhiên vì các nút khơng có thơng tin về vị trí của nút chứa nội dung cần tìm kiếm. Nút cần tìm kiếm nội dung đa phương tiện gửi yêu cầu truy vấn đến các nút khác nhau và truy vấn này được lan truyền cho đến khi tìm thấy nội dung
nhiều thơng điệp tìm kiếm bị trùng lặp gây lãng phí băng thơng mạng. Cơ chế tìm kiếm này mất nhiều thời gian và đôi khi không thu được kết quả như mong muốn. Các hệ thống này được gọi là thế hệ đầu tiên của mạng ngang hàng, ưu điểm chính của hệ thống là chúng dễ dàng quản lý và thích hợp cho một số lượng nhỏ các nút. Tuy nhiên, hạn chế của hệ thống đó là khơng đảm bảo độ tin cậy trong q trình xác định vị trí của nút chứa nội dung cần tìm. Hơn nữa, hệ thống này chi phí rất cao cho việc định tuyến để tìm kiếm nút chứa nội dung theo yêu cầu do đó khả năng mở rộng mạng rất hạn chế.
1.3.2.2. Mạng ngang hàng có cấu trúc
Một số hệ thống mạng ngang hàng được đề xuất để hạn chế nhược điểm của mạng ngang hàng khơng cấu trúc. Các mạng ngang hàng có cấu trúc sử dụng bảng băm phân tán (DHT) để hỗ trợ khả năng mở rộng, khả năng tìm kiếm. Các giao thức phổ biến cho mang ngang hàng có cấu trúc bao gồm Chord [17], CAN [18], Pastry [19], Tapestry [20], v.v. Mạng ngang hàng có cấu trúc giải quyết khá tốt vấn đề khả năng mở rộng và tính hiệu quả trong cơ chế tìm kiếm. Mạng ngang hàng khơng cấu trúc có khả năng mở rộng kém do cơ chế tìm kiếm tập trung hoặc phát tràn được thiết kế cho hệ thống này. Trong khi đó, các mạng ngang hàng có cấu trúc các nút trong mạng phủ và chỉ mục cho nội dung đa phương tiện được đặt tại các vị trí rất cụ thể. Tổ chức của mạng phủ cung cấp một ánh xạ cho mỗi tệp tin và các truy vấn tìm kiếm được thực hiện với sự giúp đỡ của bảng ánh xạ này. Cấu trúc mạng phủ có mối liên hệ chặt chẽ với vị trí của nội dung dựa trên bảng băm được kiểm sốt đã tạo ra một giải pháp có khả năng mở rộng cho truy vấn chính xác bởi vì vị trí của nội dung đa phương tiện cần tìm được biết trước khi tìm kiếm.
Bảng 1.1 mơ tả một cách ngắn gọn phân loại các hệ thống mạng ngang hàng theo các tiêu chí về phân tán và cấu trúc
Mạng ngang hàng không cấu trúc
Mạng ngang hàng có cấu trúc
Tập trung bộ phận KaZaA, Morpeus, Groove, Gnutella, DirectConnect
Phân tán lai Napster, BitTorrent
Phân tán Gnutella, eMULUE,
sDonkey2000, Overnet
Chord, CAN, Pastry, Tapestry…
Bảng 1.1 Phân loại các hệ thống mạng ngang hàng
Ưu điểm chính của mạng ngang hàng có cấu trúc là khả năng mở rộng và hiệu quả trong tìm kiếm. Tuy nhiên, vấn đề tổ chức của các nút trong mạng là phức tạp, đây là nhược điểm chính của các hệ thống này và việc duy trì các ánh xạ trong bảng định tuyến là tương đối khó khăn do có một số lượng lớn các nút thường xuyên vào và ra hệ thống.
Phần tiếp theo trình bày chi tiết về mạng ngang hàng có cấu trúc, đây là kiến trúc mạng được sử dụng trong nghiên cứu của luận án.
1.4. Mạng ngang hàng có cấu trúc
Các nút và tài nguyên trong mạng ngang hàng khơng cấu trúc phân bố tự do gây khó khăn cho việc tìm kiếm, đồng thời khơng đảm bảo chắc chắn kết quả cho mỗi truy vấn. Vấn đề này càng trở nên khó khăn hơn khi số lượng nút trong mạng tăng, do đó mạng ngang hàng khơng cấu trúc ít được áp dụng trong các hệ thống có yêu cầu mở rộng cao. Để khắc phục hạn chế này, mạng ngang hàng có cấu trúc với kĩ thuật bảng băm phân tán được sử dụng phổ biến hơn. Phần tiếp theo trình bày về bảng băm phân tán, một cấu trúc dữ liệu được sử dụng để xây dựng các mạng ngang hàng có cấu trúc.
1.4.1. Bảng băm phân tán
Bảng băm phân tán (DHT) là một hệ thống phân tán lưu trữ các cặp khóa-giá trị (key-value) phân tán trên các nút (các máy tính) và cung cấp cơ chế lưu trữ, tìm kiếm dữ liệu tương tự như bảng băm thơng thường. Mỗi nút trong DHT quản lý các khóa cùng với các giá trị được ánh xạ và có thể truy vấn chính xác, hiệu quả giá trị liên quan đến một khóa cho trước. Các giá trị được ánh xạ với các khóa trong DHT có thể là bất kỳ dạng dữ liệu nào, như tệp tin âm thanh, hình ảnh, video, hồ sơ người dùng, e-mail, v.v.
Về cấu trúc, DHT gồm các thành phần sau: khơng gian khóa (keyspace), sơ đồ phân hoạch khơng gian khóa (keyspace partitioning scheme) và một mạng phủ (overlay network) để kết nối các nút trong DHT.
Khơng gian khóa: là tập các chuỗi m bit. DHT ánh xạ khóa k của dữ liệu
và định danh của nút id vào cùng khơng gian khóa DHT thơng qua một hàm
băm đồng nhất (consistent hashing). Khóa k của dữ liệu được tạo ra bằng việc băm tên tệp dữ liệu hoặc nội dung tệp dữ liệu. Định danh id của nút được tạo ra bằng việc băm thông tin liên quan đến nút, như địa chỉ IP hoặc địa chỉ cổng (Port). Mỗi khóa k do một nút quản lý, mỗi nút quản lý một vùng khơng gian khóa liên tục nhau.