24 lượt xem

Peer to peer là gì

Peer to peer là gì

Peer to peer là gì?

Mạng peer to peer (P2P) là một kiến ​​trúc ứng dụng phân tán nhằm phân vùng nhiệm vụ hoặc khối lượng công việc giữa các peer. Các peer là những thiết bị tham gia trong ứng dụng có đặc quyền như nhau. Chúng tạo thành một mạng lưới các node ngang hàng.

Các peer tạo ra một phần tài nguyên của chúng, chẳng hạn như processing power, lưu trữ đĩa hoặc băng thông mạng, có sẵn cho những participant khác mà không cần sự điều phối trung tâm của server hoặc host ổn định. Các peer vừa là nhà cung cấp vừa là người tiêu thụ tài nguyên. Nó khác với mô hình client-server truyền thống ở chỗ việc tiêu thụ và cung cấp tài nguyên được phân chia.

Trước đây hệ thống Peer to peer đã được sử dụng trong nhiều lĩnh vực ứng dụng. Kiến ​​trúc này đã được phổ biến bởi hệ thống chia sẻ file Napster, phát hành vào năm 1999. Khái niệm này đã truyền cảm hứng cho các cấu trúc và triết lý mới trong nhiều lĩnh vực tương tác của con người. Trong bối cảnh xã hội như vậy, peer-to-peer as meme đề cập đến mạng xã hội bình đẳng đã xuất hiện trong toàn xã hội, được kích hoạt bởi công nghệ Internet nói chung.

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 node đóng một vai trò trong việc định tuyến lưu lượng truy cập qua mạng, hacker có thể thực hiện nhiều loại “tấn công định tuyến”, hoặc 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 node độc hại cố tình chuyển tiếp yêu cầu không chính xác hoặc trả về kết quả sai hoặc là trong tấn công “cập nhật định tuyến không chính xác”, các node độc hại làm hỏng bảng định tuyến của các node lân cận bằng cách gửi cho chúng thông tin sai. Tấn công “phân vùng mạng định tuyến không chính xác”, đối với các node mới tham gia, chúng khởi động thông qua một node độc hại, node này sẽ đặt node mới vào một phân vùng của mạng có các node độc hại khác.

Dữ liệu bị hỏng và phần mềm độc hại

Sự phổ biến của phần mềm độc hại khác nhau giữa các giao thức peer to peer khác nhau. Ví dụ, các nghiên cứu phân tích sự lây lan của phần mềm đọc hại trên mạng P2P cho thấy 63% yêu cầu tải xuống được trả lời trên mạng gnutella chứa một số dạng phần mềm độc hại, trong khi chỉ 3% nội dung trên OpenFT chứa phần mềm độc hại. Trong cả hai trường hợp, ba loại phần mềm độc hại phổ biến nhất chiếm phần lớn các trường hợp (99% trong gnutella và 65% trong OpenFT). Một nghiên cứu khác phân tích lưu lượng truy cập trên mạng Kazaa cho thấy 15% trong số 500.000 file mẫu được lấy đã bị nhiễm một hoặc nhiều trong số 365 loại vi-rút máy tính khác nhau.

Dữ liệu bị hỏng cũng có thể được phân phối trên mạng P2P bằng cách sửa đổi các file đã được chia sẻ trên mạng. Ví dụ: trên mạng FastTrack, RIAA đưa các phần giả mạo vào các downloads và downloaded file (chủ yếu là file MP3). Các file bị nhiễm virus RIAA không thể sử dụng được và chứa mã độc hại. RIAA đã tải nhạc và phim giả mạo lên mạng P2P để ngăn chặn việc chia sẻ file bất hợp pháp. Do đó, các mạng P2P ngày nay đã gia tăng đáng kể về cơ chế bảo mật và xác minh file của chúng.

Quá trình hash hiện đại, xác minh chunk và các phương pháp mã hóa khác nhau đã làm cho các mạng có khả năng chống lại hầu hết mọi loại tấn công, ngay cả khi các phần chính của mạng tương ứng đã được thay thế bằng các server 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.