1.3.2.a. Phân loại theo cấu trúc liên kết
Cách thức tổ chức của hệ thống mạng ngang hàng đóng vai trò hết sức quan trọng. Bởi vì hệ thống phải có khả năng mở rộng đáp ứng cho một số lượng rất lớn các peer và các peer cũng thường hay biến động, mỗi peer lại cũng không thường xuyên giữ được liên kết với tất cả các peer khác. Do đó chúng chỉ kết nối trực tiếp với một phần của tất cả các peer trong hệ thống. Các peer có kết nối trực tiếp với nhau được gọi là các láng giềng. Cấu trúc kết nối của các láng giềng sẽ quyết định tới cách thức thực hiện việc tìm kiếm và truyền dữ liệu. Các cấu trúc kết nối (topology) có thể bao gồm các dạng:
- Phi cấu trúc (Unstructured) Các nút mạng không có cấu trúc hoặc có cấu trúc ngẫu nhiên.
- Phân hệ (Swarm) Mạng phi cấu trúc bao gồm những người cùng xem hoặc chia sẻ nội dung.
- Dây truyền (Chain) Mạng có cấu trúc gồm những người cùng xem hoặc chia sẻ nội dung. Thực hiện batching video mà không phải chờ bằng cách cho phép các máy khách trước đó phục vụ các máy hiện tại.
- Cây (Tree) Các cây là trường hợp tổng quát của một dây truyền (chain). Ở đây có một client phục vụ cho các client khác. Việc một client gửi cho nhiều máy khác mặc dù làm tăng băng thông upload của nó nhưng giúp giảm chiều cao của cây. Cấu trúc dạng cây thường được sử dụng trong các ứng dụng truyền hình trực tuyến (live media streaming).
a)
Hình 1.3.2.a-1: Phân tán một video a) theo dây truyền, b) theo dạng cây và c) theo swarm đối với 7 peer.
Các mạng phi cấu trúc rất thích hợp với trường hợp có nhiều peer chỉ tham gia kết nối mạng trong thời gian ngắn. Đối với các mạng có cấu trúc, trong trường hợp các peer chỉ tham gia hệ thống trong khoảng thời gian ngắn thì cần có thêm những nỗ lực nhằm duy trì cấu trúc mạng. Tuy nhiên nếu các peer ở trong mạng trong khoảng thời gian lâu hơn thì sẽ có những nỗ lực dành cho việc tối ưu tìm kiếm và truyền dữ liệu.
Các hệ thống VoD thường truyền một lượng lớn dữ liệu. Các dữ liệu này đều có ràng buộc về thời gian thực, do đó việc tạo ra mạng có cấu trúc có thể là một sự lựa chọn tốt. Tuy nhiên nếu người dùng cuối muốn xem video ngay khi client kết nối mạng thì việc kéo dài thời gian tham gia do cấu trúc của mạng sẽ làm tăng thời gian chờ phát hình của client.
1.3.2.b. Phân loại theo phương thức tìm kiếm
Theo phương thức tìm kiếm các hệ thống mạng ngang hàng có thể phân thành bốn loại bao gồm: hệ thống tập trung, hệ thống thuần nhất, hệ thống dựa trên Super-Peer và hệ thống dựa trên DHT. Mỗi cách tiếp cận có một vài biến thể trong đó một vài tính năng được cải tiến để đáp ứng các yêu cầu khác nhau của ứng dụng.
c)
Hình 1.3.2.b-1: Phân loại các mô hình mạng ngang hàng.
Cách tiếp cận tập trung được áp dụng lần đầu tiên trong ứng dụng Napster. Đây thực chất là một chương trình cung cấp dịch vụ chia sẻ file nhạc MP3 miễn phí giữa hàng triệu người dùng. Về mặt công nghệ, hệ thống này tương đối đơn giản theo nghĩa việc chia sẻ file được thực hiện theo phương thức phân tán còn việc lập chỉ mục (indexing) được thực hiện tập trung tại các server. Tất cả các yêu cầu tìm kiếm đều phải được chuyển tới các server để xử lý. Khi có một peer đăng nhập vào hệ thống, một siêu dữ liệu (meta data) chứa thông tin về client và tất cả các file nhạc mp3 (tên bài hát, tên ca sĩ, vv…) mà peer đang chia sẻ được nạp vào chỉ mục (index) tương ứng lưu trong cơ sở dữ liệu của server. Những thông tin này chỉ bị xóa khi client rời nhập hệ thống. Người dùng có thể truy cập vào cơ sở dữ liệu để tìm kiếm bài hát ưa thích. Kết quả trả về cho một truy vấn tìm kiếm từ phía người dùng chứa vị trí chính xác của nội dung để có thể tạo ra một kết nối ad-hoc giữa hai peer và thực hiện truyền dữ liệu. Napster chỉ cho phép download trực tiếp giữa hai peer nên hiệu năng truyền tải không cao, ngoài ra hệ thống cũng mắc phải một số vấn đề kỹ thuật. Cuối cùng Napster bị buộc phải đóng cửa vì những kiện tụng liên quan đến vấn đề bản quyền.
Hình 1.3.2.b-2: Tiến trình tìm kiếm và trao đổi dữ liệu trong mạng Naspter.
Hiện nay, phổ biến nhiều ứng dụng P2P dựa theo cách tiếp cận ngang hàng thuần nhất và không sử dụng server trung tâm để vận hành các hoạt động của hệ thống
(c) Mô hình P2P dựa trên
(mạng Gnutella [11] là một ví dụ). Các peer kết nối với nhau theo kiểu ad-hoc (tự tổ chức thành một mạng, không cần đến server). Việc tìm kiếm file được thực hiện theo cơ chế phát tràn thông báo. Mỗi peer sẽ gửi yêu cầu tới tất cả các peer mà nó đang kết nối đến. Những peer có chứa nội dung liên quan sẽ chịu trách nhiệm liên lạc với peer gửi yêu cầu và khởi tạo việc truyền dữ liệu. Dữ liệu được chuyển qua nhiều chặng (thông qua các peer đã chuyển tiếp thông báo) từ điểm nguồn cho tới điểm đích. Bởi vì phương thức hoạt động này có thể sinh ra một lưu lượng khổng lồ các thông báo tìm kiếm và làm mạng trở nên quá tải nên trường TTL (Time To Live) của các thông báo phải được thiết đặt giá trị hạn chế (TTL xác định số chặng mà thông báo có thể đi qua). Tuy nhiên, cho dù như vậy thì khả năng mở rộng của hệ thống cũng vẫn bị giới hạn.
Hình 1.3.2.b-3: Tiến trình tìm kiếm và trao đổi dữ liệu trong mạng Gnutella.
Một số biến thể nhằm kết hợp những tính năng của cả hai hệ thống kể trên đã được phát triển. Giải pháp được biết đến nhiều nhất là cách tiếp cận dựa trên Super- Peer đã được áp dụng trong hệ thống của KaZaa [16]. Trong Kazaa có hai loại peer được gọi là peer bình thường và siêu peer (Super-peer). Super-peer hay còn được gọi là Super-Node là các máy tính có năng lực xử lý (CPU, bộ nhớ, băng thông…) lớn hơn so với một số máy khác. Chúng được chọn ra để cung cấp các dịch vụ danh mục cục bộ cho một nhóm các peer bình thường. Khi một peer tham gia vào mạng Kazaa, nó phải đăng ký với server trung tâm và lựa chọn một Super-Peer trong danh sách để gia nhập vào nhóm của Super-Peer. Các yêu cầu tìm kiếm của peer bình thường đều được chuyển tới Super-peer của nhóm. Super-Peer sẽ tìm kiếm file yêu cầu trong bảng danh mục mình đang nắm giữ. Nếu tìm thấy thì nó sẽ thông báo về cho peer gửi yêu cầu danh sách các peer chứa file cần tìm, sau đó việc trao đổi dữ liệu sẽ được thực hiện giữa các peer với nhau. Nếu không tìm thấy file yêu cầu trong nhóm nút của Super- Peer, yêu cầu sẽ được chuyển tới các Super-Peer khác đang kết nối trực tiếp và tiến trình cứ thế tiếp tục cho đến khi tìm thấy file. So với phương thức phát tràn, nhờ việc thêm vào một lớp gián tiếp các Super-Peer này mà các truy vấn có thể được xử lý bởi chỉ một phần nhỏ các nút trên mạng. Tuy nhiên hệ thống cũng có nhược điểm là các
Super-Peer luôn phải chịu tải cao hơn so với những peer thông thường, khó theo dõi trạng thái tồn tại của các peer, việc duy trì cấu trúc overlay trong hệ thống đòi hỏi nhiều chi phí tính toán và lưu lượng thông báo.
Hình 1.3.2.b-4: Tiến trình tìm kiếm và trao đổi dữ liệu trong mạng KaZaa.
Kiểu mô hình P2P thứ tư dựa trên công nghệ bảng băm phân tán (Distributed Hash Table - DHT), được giới thiệu lần đầu tiên trong cộng đồng nghiên cứu vào năm 2001, với sự xuất hiện gần như đồng thời của bốn kiến trúc khác nhau: CAN [24], Chord [12], Pastry [2] và Tapestry [3]. Trọng tâm của công nghệ DHT là ý tưởng phân tán nội dung tới một số vị trí xác định ở trên mạng. Trong các hệ thống này, được gọi là các hệ thống DHT, mỗi nội dung được gán cho một khóa duy nhất (ví dụ có thể được sinh ra bằng cách tạo mã băm theo tên của nội dung). Mỗi nút đảm nhận một phạm vi nào đó của các khóa và các nội dung có khóa tương đương có nhiều khả năng sẽ được đặt trên cùng một nút. Ví dụ trong hệ thống Chord, tất cả các nút được kết nối với nhau theo một vòng đơn, trong đó hai nút sẽ là láng giềng trên vòng nếu chúng có một tập các khóa giống nhau nhất (được tạo ra từ hàm băm SHA-1). Một file có khóa K được lưu trữ trên nút quản lý khóa K (nút này được gọi là nút kế thừa từ K). Bên cạnh các nút kế thừa, mỗi peer cũng quản lý một bảng chỉ dẫn, trong đó thực chất là một danh sách các shortcut trỏ tới các vị trí chiến lược trên vòng. Định vị nội dung trong hệ thống Chord có thể được xem như lựa chọn một chuỗi các shortcut để tới nút đích. Trong trường hợp trung bình, Chord có thể định vị một khóa với độ phức tạp O(logN), trong đó N là kích thước mạng. Nhược điểm của các hệ thống DHT là đòi hỏi sự quản lý chặt chẽ vị trí dữ liệu và cấu trúc topo dẫn đến tốn phí duy trì ổn định mạng, đặc biệt là đối với các môi trường mạng thường xuyên biến động như media streaming. Bên cạnh đó hệ thống cũng dễ bị các hình thức tấn công man-in-middle hoặc pollution là các hình thức tấn công thường gặp đối với mạng ngang hàng.
Dưới đây là bảng tổng hợp so sánh và đánh giá về ưu, nhược điểm của các cách tiếp cận:
Bảng 1-1: So sánh ưu, nhược điểm của các mô hình Client-Server Peer-to-Peer 1. Server là thực thể trung tâm và là thực thể duy nhất cung cấp các dịch vụ và nội dung. 2. Server là thành phần hệ thống có hiệu năng cao hơn các client.
1. Chia sẻ tài nguyên giữa các Peer
2. Các tài nguyên có thể được truy cập trực tiếp từ các peer khác 3. Peer vừa là bên cung cấp vừa là bên gửi yêu cầu
Mô hình P2P tập trung Mô hình P2P thuần nhất Mô hình P2P dựa trên Super-Peer Mô hình P2P dựa trên DHT
1. Tất cả các peer đều kết nối với thực thể trung tâm
2. Các peer thiết lập kết nối với nhau để trao đổi dữ liệu.
3. Vai trò của thực thể trung tâm là cần thiết nhằm mục đích cung cấp dịch vụ.
4. Thực thể trung tâm có chứa cơ sở dữ liệu danh mục/nhóm và bảng thông tin định tuyến/tra cứu.
1. Có thể tách một thực thể bất kỳ khỏi hệ thống mà không làm ảnh hưởng đến hoạt động và chức năng chung. 2. Không sử dụng các thực thể trung tâm trên mạng phủ. 3. Các peer thiết lập kết nối với nhau một cách ngẫu nhiên.
1. Sử dụng cấu trúc phân lớp, bao gồm một lớp Super-Peer và một lớp peer bình thường.
2. Lớp Super-Peer bao gồm các peer có cấu hình mạnh được chọn ra làm nhiệm vụ cung cấp dịch vụ danh mục cục bộ và kết nối với nhau dựa trên một mạng overlay phi cấu trúc.
1. Gán cho mỗi nội dung một khóa duy nhất
2. Mỗi nút đảm nhiệm một phạm vi của khóa và một bảng chỉ dẫn để định tuyến đến nút đích.
Ví dụ WWW Napster, BitTorent Gnutella 0.4, Freenet Edonkey, KaZaa, Skype Chord, CAN, Pastry
Ƣu điểm
- Dễ triển khai, dễ quản lý - Đơn giản, hiệu quả, yêu cầu về tải thấp đối với các peer-> các peer yếu cũng có thể tham gia vào hệ thống. - Tìm kiếm nhanh (tìm kiếm tập trung).
- Hoàn toàn phân tán và không sử dụng server trung tâm.
- Đảm bảo tính an toàn ẩn danh.
- Không có điểm hư hỏng trung tâm.
- Cho phép ẩn danh.
- Chấp nhận các kiểu kết nối không đồng nhất. - Không cần sử dụng server trung tâm. - Tìm kiếm nhanh. - Có khả năng mở rộng và cân bằng tải tốt. Nhƣợc điểm - Vấn đề điểm hư hỏng trung tâm -> hệ thống thiếu tính tin cậy
- Bị hạn chế về khả năng mở rộng .
- Vấn đề điểm hư hỏng trung tâm. - Các thông báo được gửi phát tràn làm tiêu tốn rất nhiều băng thông mạng.
- Việc tìm kiếm không chắc chắn tìm thấy dữ liệu.
- Tải bất đối xứng (Super-Peer luôn phải chịu tải cao hơn các peer thông thường). - Tốn phí duy trì ổn định cấu trúc mạng. - Tốn phí duy trì ổn định cấu trúc mạng. Bảo mật Trung bình; quản lý tập trung.
Trung bình; quản lý tập trung. Yếu; dễ bị tấn công phát tràn, tấn công từ chối dịch vụ.
Yếu; dễ bị tấn công phát tràn, giả mạo nội dung …
Yếu; dễ bị tấn công Man-in- middle và Pollution.