CHƯƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC HỆ THỐNG MẠNG NGANG HÀNG Trong chương này sẽ giới thiệu một số kiến trúc hệ thống mạng mang hàng, mô tả các đặc điểm chung, các thuộc tính và một số hệ thống áp dụng cho mỗi kiến trúc đưa ra. Nhìn chung, mạng ngang hàng được phân thành hai hệ thống chính là hệ thống tập trung và hệ thống phân tán, dựa trên tính sẵn sàng của một hay nhiều server. Bên cạnh đó còn có hệ thống hỗn hợp là hệ thống vừa có những đặc điểm của hệ thống tập trung và hệ thống phân tán. Hình 1-1 mô tả sơ đồ phân loại kiến trúc hệ thống P2P.
Tập trung Hỗn hợp Kiến trúc P2P Không cấu trúc Phân tán Có cấu trúc Hình 1-1 Phân loại kiến trúc P2P Các nội dung tiếp theo của chương sẽ mô tả chi tiết từng kiến trúc này.1 Hệ thống P2P tập trung Trong hệ thống P2P tập trung, có một hay nhiều server giúp cho các peer xác định vị trí tài nguyên mong muốn hoặc phối hợp các hoạt động giữa các peer với nhau. Để định vị tài nguyên, một peer gửi thông điệp tới server trung tâm để xác định địa chỉ peer mà chứa tài nguyên mong muốn. Khi xác định được peer có thông tin hay dữ liệu, nó có thể liên kết trực tiếp với các peer đó để trao đổi thông tin mà không qua server nữa [1]. Kiến trúc hệ thống tập trung này dễ bị tấn công vào liên kết đến server, mặt khác nó còn là nút thắt cổ chai đối với hệ thống có số peer lớn, tiềm ẩn việc 9 làm giảm hiệu năng một cách đột ngột, ngoài ra mô hình này hạn chế khả năng mở rộng, điển hình của mô hình này là Napster [16].
Napster: Chia sẻ nội dung số Chia sẻ file nhạc có lẽ là một trong những ứng dụng phát triển nhanh nhất Internet và Napster đóng một vai trò quan trọng trong việc thúc đẩy trao đổi file nhạc qua Internet. Trong Napster, mỗi user (peer) hoạt động như một máy tạo dữ liệu (file MP3), vì vậy hệ thống có thể tạo ra các file MP3 phân tán, các user có thể chia sẻ nội dung cho nhau trong cùng hệ thống. Để xác định vị trí các file nhạc, Napster triển khai server tập trung lưu trữ vị trí của các node mà chứa file. Ngoài ra còn cung cấp các chức năng cơ bản như là phương tiện tìm kiếm, chia sẻ file và chuyển tiếp thông điệp qua Internet.
File chia sẻ cung cấp cơ chế để chuyển tới các Peer mà không sử dụng không gian lưu trữ trong server tập trung, thông điệp được truyền qua internet đồng thời cung cấp cách tìm kiếm và liên hệ qua các ứng dụng tin nhắn nhanh với những peer đang online. Một file MP3 đưa vào hệ thống Napster chia làm 3 giai đoạn: Tham gia vào mạng Napster, tìm tài nguyên và tải file. Trước tiên thông qua các kết nối khác nhau, một user có thể gia nhập vào mạng Napster bằng cách kết nối tới server trung tâm và hoàn thành thủ tục đăng ký trên server trung tâm. Thứ hai, một peer truy vấn tới server trung tâm bằng cách gửi đi thông điệp tìm kiếm.
Sau khi nhận được thông điệp, server trung tâm tìm lại danh mục trong kho lưu trữ cục bộ và trả lại danh sách các node chứa file yêu cầu. Cuối cùng truy vấn được kết nối trực tiếp với peer yêu cầu và tải file mà không thông qua server trung tâm. Hình 1-2 dưới đây mô tả hoạt động của mạng Napster. Hình 1-2 Mô hình mạng Napster 10 Những thuộc tính và giới hạn của hệ thống P2P tập trung như sau: Khả năng phục hồi lỗi, tính riêng tư và tính bảo mật: Do dựa vào server trung tâm để lưu thông tin về user online và chia sẻ file nên hệ thống có dễ bị tấn công vào đường truyền kết nối đến server.
Ngoài ra, một peer truy vấn có thể chứa địa chỉ IP của các Peer khác từ server trung tâm, điều này có thể phá hủy tính ẩn danh và riêng tư của các peer. Việc biết được địa chỉ IP, các user chứa mã độc có thể tấn công trực tiếp tới các peer hoặc lấy cắp những thông tin có giá trị từ các peer này. Vì thế, tiềm ẩn những mối nguy hiểm trong mạng và không đảm bảo tính bảo mật. Tính mở rộng: Trong mạng Napster, tất các peer phải kết nối tới server trung tâm và tất cả các truy vấn phải được xử lý ở server trung tâm trước tiên.
Trường hợp server bị giới hạn về khả năng xử lý, trong khi số lượng kết nối và truy vấn tại một thời điểm vượt quá khả năng server làm thời gian trả lời kéo dài hoặc bị các cuộc tấn công từ chối dịch vụ (DoS). Vì vậy khả năng mở rộng và tính mạnh mẽ bị giới hạn. Tính sẵn sàng: Tính sẵn sàng là mức độ hoặc khả năng truy vấn của một peer có thể tìm thấy dữ liệu mong muốn từ các peer khác. Sau khi một peer tải file MP3 từ các peer khác, nó sẽ duy trì một bản sao của những file này trong vùng lưu trữ cục bộ và có thể được sử dụng cho các peer khác truy vấn đến, do đó trao đổi file nhạc trong các peer được cải thiện được tính sẵn sàng.
Tính phân tán: Mức độ phân tán thấp, do một server trung tâm được triển khai để quản lý hoạt động của cả hệ thống, bù lại việc xử lý tìm kiếm khá hiệu quả. Chi phí sở hữu: Một tính năng thú vị trong hệ thống P2P tập trung là chi phí sở hữu thấp, bao gồm chi phí duy trì liên kết đến các tài nguyên khác nhau trong mạng P2P. Trong trường hợp kiến trúc client-server, một server mạnh được sử dụng để lưu trữ, chia sẻ tài nguyên cho các client tải dữ liệu và cung cấp cho các dịch vụ khác của client, do đó phải tốn chi phí cao để duy trì các server có cấu hình mạnh. Năng suất và hiệu quả: Thành công của Napster chứng minh rằng với việc kiểm soát tập trung sẽ thúc đẩy quá trình định vị tài nguyên với chi phí rẻ và hiệu quả.
Mặc dù hệ thống P2P tập trung cho thấy những điểm mạnh như đảm bảo quá trình định định vị tài nguyên cho việc tìm kiếm. Dễ dàng duy trì, tổ chức và quản lý toàn bộ hệ thống thông qua server trung tâm, tuy nhiên hệ thống này cũng cho thấy một số nhược điểm sau: Server trung tâm có thể trở thành nút cổ chai cho việc mở rộng hệ thống Server trung tâm gặp lỗi sẽ làm ảnh hưởng tới toàn bộ hệ thống.2 Hệ thống P2P phân tán Trong hệ thống phân tán các peer có quyền và trách nhiệm như nhau. Mỗi peer chỉ có thông tin một phần trong mạng và yêu cầu dữ liệu hay dịch vụ thông qua một số peer khác[2]. Như vậy việc xác định các peer yêu cầu dữ liệu hay dịch vụ nhanh là một vấn đề và thách thức đối với hệ thống này.
Hệ thống P2P phân tán được chia thành hai hệ thống là hệ thống P2P phân tán không cấu trúc và hệ thống P2P phân tán có cấu trúc, khác nhau giữa hai hệ thống này là phương pháp các truy vấn chuyển đến các node. Hệ thống P2P không cấu trúc Trong hệ thống này, mỗi peer chịu trách nhiệm đối với dữ liệu riêng và duy trì thiết lập với node lân cận để liên kết, trao đổi thông tin và chuyển các truy vấn cho nhau. Việc định vị dữ liệu trong hệ thống này gặp khó khăn như: Khó xác định đúng peer chứa dữ liệu để để truy vấn. Không đảm bảo cho việc trả lời đầy đủ các truy vấn, trừ khi tìm kiếm cho toàn mạng.
Không đảm bảo về thời gian trả lời. Điển hình của hệ thống P2P không cấu trúc là FreeNet và Guntella, ban đầu áp dụng cơ chế tìm kiếm random walk [15] để xác định tài nguyên. Cơ chế này mặc dù không hiệu quả về thời gian trả lời, nhưng hiệu quả về tiêu thụ băng thông và số lượng thông điệp sử dụng ít. Sau này dựa theo cơ chế định tuyến flooding, hiệu quả về thời gian đáp ứng nhưng không hiệu quả về tiêu thụ băng thông và số lượng thông điệp sử dụng.
Gnutella: Hệ thống P2P thuần túy đầu tiên Gnutella là hệ thống phân tán thuần túy, không có node trung tâm chịu trách nhiệm tổ chức mạng và không phân biệt giữa client và server. Các node trong hệ thống kết nối với nhau thông qua một phần mềm ứng dụng cụ thể. Mạng Gnutella được mở rộng khi node mới tham gia vào mạng và bị thu hẹp khi các node rời mạng. Hoạt động cơ bản của Gnutella bao gồm việc tham gia, rời mạng, tìm kiếm và tải các file.
Tham gia hoặc rời mạng: Khi một node tham gia mạng Gunutella, nó sẽ gửi thông điệp “ping” tới các node mà nó biết địa chỉ (đã được cài đặt sẵn hoặc thông qua các node khác) thông điệp này sẽ chuyển tới các node khác thông qua hình thức broadcast. Khi các node nhận được thông tin “ping” sẽ phản hồi thông tin “pong”. Node tham gia có thể nhận thông tin về các node đó và thiết lập 12 thông tin các node lân cận của nó. Khi một node rời mạng, nó không cần thông báo tới các node lân cận của nó, mà thăm dò node lân cận thông qua thông điệp “ping” theo định kỳ, để xác nhận rằng các node lân cận có hoạt động trong hệ thống hay không.
Tìm kiếm và tải file: Khi một node muốn tìm một file xác định, nó hỏi các node lân cận bằng cách đưa ra thông điệp tìm kiếm, tiếp đó các node lân cận sẽ chuyển tiếp thông điệp tới các node lân cận của nó theo cách tương tự. Khi tìm được node chứa file, nó sẽ trả lại thông tin theo cách chuyển tiếp thông điệp ngược lại tới node cần tìm ban đầu. Kết quả là node gốc sau khi truy vấn sẽ có nhiều liên kết để tải file mong muốn và có thể chọn một vài node để kết nối và tải file. Tuy nhiên, mỗi thông điệp gắn với một định danh duy nhất, khi một node nhận được thông điệp mà nó đã được nhận trước đó thì nó sẽ hủy thông điệp đó để tránh các thông điệp lặp lại.
Hình 1-3 mô tả quá trình tìm kiếm và trả lời kết quả tìm kiếm trong mạng Gnutella. Hình 1-3 Mô hình trao đổi và tìm kiếm thông tin trong Gnutella Những thuộc tính và giới hạn của hệ thống P2P phân tán không cấu trúc như sau: Khả năng mở rộng: Cơ chế flooding của Gnuttela có hai mặt, một mặt là mỗi truy vấn có thể flooding tới nhiều node ở trong mạng, nên nó rất mạnh mẽ trong việc tìm kiếm tất cả các kết quả có thể.