Peer to peer là gì? Giải thích mô hình peer to peer dễ hiểu
Thịnh Văn Hạnh 07/06/2023 1238 Lượt xem Chia sẻ bài viết
Peer to peer là gì? Peer to peer có vai trò gì trong việc chia sẻ dữ liệu? Cùng BKNS tìm hiểu về khái niệm này thông qua bài viết dưới đây nhé.
Tóm Tắt Bài Viết
Peer to peer là gì?
Peer-to-peer (P2P) là một kiến trúc mạng trong đó các thiết bị (hoặc “đồng ngang”) kết nối và trao đổi thông tin trực tiếp với nhau mà không thông qua một trung tâm điều khiển hay máy chủ trung gian. Trong mô hình này, các thiết bị được coi là ngang hàng với nhau và có khả năng chia sẻ tài nguyên và dữ liệu với nhau.
Trong mạng P2P, mỗi thiết bị (hoặc “đồng ngang”) có khả năng đóng vai trò là cả người gửi và người nhận thông tin. Điều này cho phép các thiết bị trực tiếp kết nối với nhau để trao đổi dữ liệu, chia sẻ tài nguyên như tệp tin, ứng dụng, hoặc dịch vụ mà không cần một máy chủ trung gian quản lý.
Kiến trúc P2P thường được sử dụng trong các ứng dụng chia sẻ tệp tin (file sharing) như BitTorrent, các ứng dụng trò chơi trực tuyến đa người chơi (multiplayer online games), và các ứng dụng liên quan đến blockchain và tiền điện tử. Mạng P2P cung cấp tính linh hoạt và khả năng phân tán dữ liệu giữa các thiết bị, đồng thời giảm thiểu sự phụ thuộc vào các trung tâm điều khiển trung gian.
Mô hình của peer to peer
Định tuyến và khám phá tài nguyên
Mạng peer to peer triển khai dạng mạng lớp phủ ảo trên cấu trúc liên kết mạng vật lý. Trong đó các node trong lớp phủ tạo thành một tập hợp con của các node trong mạng vật lý. Dữ liệu vẫn được trao đổi trực tiếp qua mạng TCP/IP bên dưới, nhưng ở các lớp ứng dụng ngang hàng có thể giao tiếp với nhau trực tiếp, thông qua các liên kết lớp phủ logic (mỗi liên kết tương ứng với một đường dẫn qua mạng vật lý bên dưới).
Lớp phủ được sử dụng để index và khám phá peer, đồng thời làm cho hệ thống Peer to peer độc lập với cấu trúc liên kết mạng vật lý. Dựa trên cách các node được liên kết với nhau trong mạng lớp phủ và cách các tài nguyên được index và định vị, chúng ta có thể phân loại mạng thành 2 loại là mạng không có cấu trúc hoặc mạng có cấu trúc (hoặc là sự kết hợp giữa hai mạng này).
Mạng không có cấu trúc
Mạng ngang hàng peer to peer không có cấu trúc không áp đặt một cấu trúc cụ thể lên mạng lớp phủ theo thiết kế, mà được tạo bởi các node hình thành các kết nối ngẫu nhiên với nhau. (Gnutella, Gossip và Kazaa là những ví dụ về giao thức Peer to peer không có cấu trúc).
Vì không có cấu trúc nào được áp đặt trên toàn cầu nên các mạng không có cấu trúc rất dễ xây dựng và cho phép tối ưu hóa bản địa hóa cho các vùng khác nhau của lớp phủ. Ngoài ra, bởi vì vai trò của tất cả các peer trong mạng là như nhau, các mạng không có cấu trúc rất mạnh và tốt khi đối mặt với tỷ lệ “churn” cao (khi một số lượng lớn các peer thường xuyên tham gia và rời khỏi mạng).
Tuy nhiên, những hạn chế chính của mạng phi cấu trúc cũng phát sinh từ sự thiếu cấu trúc này. Đặc biệt, khi một peer muốn tìm một phần dữ liệu mong muốn trong mạng, truy vấn tìm kiếm phải được flood trong mạng để tìm càng nhiều peer chia sẻ dữ liệu càng tốt. Flooding gây ra một lượng lớn lưu lượng báo hiệu trong mạng, sử dụng nhiều CPU hơn và không đảm bảo rằng các truy vấn tìm kiếm sẽ luôn được giải quyết.
Hơn nữa, vì không có mối tương quan giữa một peer và nội dung do nó quản lý, không có gì đảm bảo rằng flooding sẽ tìm thấy một peer có dữ liệu mong muốn. Nội dung phổ biến có thể có sẵn ở một số peer và bất kỳ peer nào tìm kiếm nội dung đó đều có khả năng tìm thấy nội dung tương tự. Nhưng nếu một peer đang tìm kiếm dữ liệu hiếm chỉ được chia sẻ bởi một số peer khác, thì khả năng thành công là rất cao.
Mạng có cấu trúc
Trong mạng peer to peer có cấu trúc, lớp phủ được tổ chức thành một cấu trúc liên kết cụ thể và giao thức đảm bảo rằng bất kỳ node nào cũng có thể tìm kiếm file hoặc tài nguyên trên mạng một cách hiệu quả, ngay cả khi tài nguyên đó cực kỳ hiếm.
Loại mạng P2P có cấu trúc phổ biến nhất triển khai distributed hash table (DHT), trong đó một biến thể của hash nhất quán được sử dụng để gán quyền sở hữu từng file cho một peer cụ thể. Điều này cho phép các peer tìm kiếm tài nguyên trên mạng bằng hash table. Nghĩa là, các cặp (key, value) được lưu trữ trong DHT và bất kỳ node nào tham gia đều có thể truy xuất value được liên kết với một key nhất định.
Mô hình kết hợp
Các mô hình kết hợp là sự kết hợp của các mô hình client-server và mô hình peer-to-peer. Kiểu mô hình kết hợp phổ biến là một server trung tâm giúp các peer tìm thấy nhau. Spotify là một ví dụ về mô hình kết hợp. Có rất nhiều mô hình kết hợp, tất cả đều tạo ra sự cân bằng giữa chức năng tập trung được cung cấp bởi mạng server/client có cấu trúc.
Hiện tại, các mô hình kết hợp có hiệu suất tốt hơn so với mạng không có cấu trúc thuần túy. Đó là vì một số chức năng nhất định, chẳng hạn như tìm kiếm, yêu cầu chức năng tập trung nhưng được hưởng lợi từ sự kết hợp không tập trung của các node do mạng không có cấu trúc cung cấp.
Hệ thống phân phối nội dung CoopNet
CoopNet (Mạng lưới hợp tác) là một hệ thống phục vụ không tải cho các peer gần đây đã tải xuống nội dung, được đề xuất bởi các nhà khoa học máy tính Venkata N. Padmanabhan và Kunwadee Sripanidkulchai, làm việc tại Microsoft Research và Đại học Carnegie Mellon.
Khi một server gặp phải sự gia tăng tải, nó sẽ chuyển hướng các peer này đến với các peer đồng ý phản chiếu nội dung, do đó cân bằng giảm tải từ server. Tất cả các thông tin được giữ lại tại server.
Mạng Peer to peer an toàn và đáng tin cậy
Hệ thống peer to peer đặt ra những thách thức riêng từ góc độ bảo mật máy tính.
Giống như bất kỳ dạng phần mềm khác, các ứng dụng P2P có thể chứa các lỗ hổng. Tuy nhiên, việc các ứng dụng peer to peer hoạt động như server cũng như client khiến nó nên đặc biệt nguy hiểm đối với phần mềm P2P. Nghĩa là chúng có thể dễ bị khai thác từ xa hơn.
Các cuộc tấn công định tuyến
Vì mỗi nút (node) trong mạng peer-to-peer đóng vai trò quan trọng trong việc định tuyến lưu lượng truy cập, các hacker có thể thực hiện các loại tấn công như tấn công định tuyến hay tấn công từ chối dịch vụ (DDoS).
Ví dụ, trong tấn công “định tuyến tra cứu không chính xác”, các nút độc hại cố ý chuyển tiếp yêu cầu không chính xác hoặc trả về kết quả sai. Trong tấn công “cập nhật định tuyến không chính xác”, các nút độc hại gửi thông tin sai để làm hỏng bảng định tuyến của các nút lân cận. Tấn công “phân vùng mạng định tuyến không chính xác” là khi các nút mới tham gia mạng được khởi động thông qua một nút độc hại, và nút này đặt nút mới vào một phân vùng của mạng có nhiều nút độc hại khác.
Dữ liệu bị hỏng và phần mềm độc hại
Phần mềm độc hại được phân phối khác nhau trên các mạng peer-to-peer. Ví dụ, một nghiên cứu về mạng gnutella cho thấy 63% yêu cầu tải xuống chứa phần mềm độc hại, trong khi trên mạng OpenFT chỉ có 3%.
Trong cả hai trường hợp, chỉ có ba loại phần mềm độc hại phổ biến nhất chiếm phần lớn (99% trên gnutella và 65% trên OpenFT). Một nghiên cứu khác về mạng Kazaa phát hiện rằng trong 500.000 file mẫu, 15% bị nhiễm một hoặc nhiều trong 365 loại vi-rút máy tính khác nhau.
Dữ liệu cũng có thể bị hỏng trên mạng P2P bằng cách sửa đổi các file đã được chia sẻ. Ví dụ, RIAA đã đưa các phần giả mạo vào các file nhạc trên mạng FastTrack để ngăn chặn việc chia sẻ bất hợp pháp. Những file này không thể sử dụng được và chứa mã độc hại. Để đối phó với điều này, các mạng P2P hiện đại đã cải thiện đáng kể cơ chế bảo mật và xác minh file.
Các công nghệ hiện đại như hash, xác minh chunk và mã hóa đã giúp mạng P2P chống lại hầu hết các cuộc tấn công, ngay cả khi các phần quan trọng của mạng bị thay thế bằng các máy chủ giả mạo hoặc không hoạt động.
Mạng máy tính có khả năng phục hồi và mở rộng
Bản chất phi tập trung của mạng Peer to peer làm tăng tính mạnh mẽ vì nó loại bỏ lỗi duy nhất có thể có trong hệ thống client-server. Khi các node đến và nhu cầu trên hệ thống tăng lên, tổng dung lượng của hệ thống cũng tăng lên và khả năng xảy ra lỗi sẽ giảm xuống.
Nếu một mạng peer to peer không hoạt động bình thường, toàn bộ mạng sẽ không bị xâm phạm hoặc hư hỏng. Ngược lại, trong hệ thống client-server điển hình, các client chỉ chia sẻ nhu cầu với hệ thống chứ không chia sẻ tài nguyên của chúng. Trong trường hợp này, khi nhiều client tham gia vào hệ thống, sẽ có ít tài nguyên hơn để phục vụ mỗi client và nếu server trung tâm bị lỗi, toàn bộ mạng sẽ bị gỡ xuống.
Bộ nhớ phân tán và tìm kiếm phân tán
Có cả ưu điểm và nhược điểm trong mạng Peer to peer liên quan đến backup, recovery và khả dụng dữ liệu. Trong một mạng tập trung, admin hệ thống là lực lượng duy nhất kiểm soát tính khả dụng của các file được chia sẻ. Nếu admin quyết định không phân phối file nữa, họ chỉ cần xóa file đó khỏi server của mình và nó sẽ không còn khả dụng với user. Điều này khiến toàn bộ hệ thống dễ bị tấn công bởi các mối đe dọa và yêu cầu từ chính phủ và các lực lượng lớn khác.
Ví dụ: YouTube đã bị áp lực bởi RIAA, MPAA và ngành công nghiệp giải trí để lọc nội dung có bản quyền. Mặc dù mạng client-server có thể giám sát và quản lý tính khả dụng của nội dung, nhưng chúng có thể ổn định hơn về tính khả dụng của nội dung được chọn để lưu trữ. Client sẽ không gặp khó khăn khi truy cập nội dung không rõ ràng đang được chia sẻ trên một mạng tập trung ổn định.
Tuy nhiên, mạng P2P cũng không đáng tin cậy hơn trong việc chia sẻ các file không phổ biến vì chia sẻ file trong mạng P2P yêu cầu ít nhất một node trong mạng có dữ liệu được yêu cầu và node đó phải có thể kết nối với node yêu cầu dữ liệu. Yêu cầu này đôi khi khó đáp ứng vì user có thể xóa hoặc ngừng chia sẻ dữ liệu tại bất kỳ thời điểm nào.
Cộng đồng mạng Peer to peer
Như vậy, cộng đồng user trong mạng Peer to peer hoàn toàn chịu trách nhiệm quyết định nội dung nào có sẵn. Các file không phổ biến cuối cùng sẽ biến mất và không khả dụng khi nhiều người ngừng chia sẻ chúng. Tuy nhiên, các file phổ biến sẽ được phân phối cao và dễ dàng. Các file phổ biến trên mạng Peer to peer thực sự có tính ổn định và khả dụng hơn các file trên mạng tập trung.
Trong mạng tập trung, việc mất kết nối đơn giản giữa server và client cũng đủ gây ra lỗi. Trong hệ thống tập trung, các admin chịu trách nhiệm về việc khôi phục và sao lưu dữ liệu. Trong khi trong hệ thống P2P, mỗi node yêu cầu hệ thống sao lưu của riêng mình. Do thiếu quyền trung tâm trong mạng P2P, các lực lượng như ngành công nghiệp ghi âm, RIAA, MPAA và chính phủ không thể xóa hoặc dừng việc chia sẻ nội dung trên hệ thống P2P.
Ứng dụng của mạng ngang hàng Peer to peer
Cung cấp nội dung
Trong mạng Peer to peer, client vừa cung cấp vừa sử dụng tài nguyên. Không giống như hệ thống client -server, khả năng phục vụ nội dung của mạng peer to peer có thể tăng lên khi nhiều user bắt đầu truy cập nội dung (đặc biệt với các giao thức như Bittorrent yêu cầu user chia sẻ, tham khảo nghiên cứu đo lường hiệu suất). Thuộc tính này là một trong những lợi thế lớn của việc sử dụng mạng Peer to peer vì chi phí thiết lập thấp.
Mạng chia sẻ file
Nhiều mạng chia sẻ file ngang hàng, chẳng hạn như Gnutella, G2 và mạng eDonkey đã phổ biến các công nghệ peer to peer.
- Mạng phân phối nội dung peer to peer.
- Dịch vụ nội dung peer to peer, ví dụ: bộ nhớ cache để cải thiện hiệu suất, chẳng hạn như Correli Caches
- Xuất bản và phân phối phần mềm (phân phối Linux, một số trò chơi), thông qua mạng chia sẻ file.
Kết luận
Đến đây chắc hẳn bạn đã hiểu Peer to peer là gì, cấu trúc và ứng dụng của Peer to peer trong việc truyền tải dữ liệu và kết nối các thiết bị với người dùng lại với nhau.
Để đọc thêm các kiến thức về công nghệ, hãy thường xuyên theo dõi BKNS bạn nhé.
Tham khảo các bài viết liên quan:
Edge Computing là gì? Tầm quan trọng của Edge Computing trong xử lý dữ liệu
Proxmox là gì? Những điều về môi trường ảo Proxmox có thể bạn chưa biết
Hypervisor Là Gì? Hypervisor hoạt động như thế nào?