Khái quát về công nghệ P2P
Mạng ngang hàng là một kiểu mạng được thiết kế cho các thiết bị trong đó có chức năng và khả năng của các thiết bị đó là như nhau. Mạng ngang hàng đơn giản cũng được biết đến bằng việc so sánh với mạng Client/Server, mạng mà trong đó chứa các thiết bị chịu trách nhiệm cung cấp hay phục vụ thông tin mạng và các thiết bị khác sẽ sử dụng các tài nguyên mạng hay nói cách khác chúng như các Client của các Server này. Mạng ngang hàng phổ biến ở trong những mạng LAN nhỏ, điển hình là mạng Window gia đình.
Mạng ngang hàng trên Internet đã đạt được nhiều thành công nhất định đặc biệt trong dịch vụ chia sẻ file (như Napster). Tuy nhiên, nhiều dịch vụ chia sẻ file, kể cả Napster, trên thực tế được tích hợp trong cả mạng ngang hàng lẫn mạng Client/Server. Về mặt kỹ thuật, đây được gọi là các mạng lai (Hybrid)
Mạng P2P
Ưu điểm của công nghệ P2P với Client-Server
Một mục đích quan trọng của mạng ngang hàng là trong mạng tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán. Do đó khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn. Ngược lại, trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi số lượng máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm xuống.
Tính chất phân tán của mạng ngang hàng cũng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố. Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ thống sẽ ngưng trệ. Còn đối với mạng ngang hàng các máy tính có thể tham gia và rời khỏi mạng bất kì lúc nào mà mạng vẫn hoạt động bình thường, các máy tính còn lại vẫn có thể trao đổi thông tin và chia sẻ tài nguyên với nhau.
Trong mạng ngang hàng dữ liệu trên các máy tính được đem ra chia sẽ nên một máy tính có thể thực hiện vai trò giống server để chia sẽ cho các máy tính khác. Các máy tính sau khi được chia sẻ dữ liệu cũng có thể tham gia chia sẻ cho các máy tính khác. Như vậy sẽ tăng số bản sao dữ liệu và giúp cho việc chia sẻ dữ liệu nhanh chóng.
Nhược điểm của P2P: Nhược điểm của P2P là vì tài nguyên của mạng nằm trên các máy tính cá nhân và không phải lúc nào các máy này cũng liên kết với mạng nên có thể dẫn tới sư biến mất của một dịch vụ trong khoảng thời gian nhất định. Tuy nhiên nhược điểm này có thể khắc phục khi số lượng thành viên trên mạng P2P đủ lớn, lúc đó sẽ có nhiều điểm cung cấp dịch vụ cho toàn mạng hơn.
Một chút lịch sử của P2P: Thiệt ra P2P đã được ứng dụng từ lâu ví dụ như Usenet.
Tuy nhiên cho tới gần đây, khi có sự xuất hiện của các dịch vụ chia xẻ files, những chương trình tin nhắn tức thời thì P2P mới được nhận ra là một công nghệ quan trọng cho Internet. Các điển hình như chia xẻ file mp3 : Napster;chia xẻ file nói chung : Kazaa, mạng Gnutella,..; Tin nhắnh tức thời : ICQ, YIM, AOL, (Đi sâu vào thiết kế của các dịch vụ và ứng dụng này cũng rất hay để giúp chúng ta hiểu hơn về P2P trong thực tế nhưng mà vì nó nằm ngoài mục tiêu của bài viết là giới thiệu dự án JXTA nên Gadfly xin để dịp khác
Mạng ngang hàng có cấu trúc và không có cấu trúc
Mạng ngang hàng không cấu trúc
Một mạng ngang hàng không cấu trúc khi các liên kết giữa các nút mạng trong mạng phủ được thiết lập ngẫu nhiên (tức là không theo qui luật nào). Những mạng như thế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của một máy khác đang ở trong mạng và sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới của riêng mình. Khi một máy muốn tìm một dữ liệu trong mạng ngang hàng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cả mạng để tìm ra càng nhiều máy chia sẻ càng tốt.
Một mạng ngang hàng không cấu trúc sử dụng một máy tính server.
Napster[5] là mạng ngang hàng không cấu trúc đầu tiên thu hút được đông đảo người sử dụng trên mạng. Đây là sự kết hợp của một mạng ngang hàng peer to peer và một số máy chủ trung tâm để duy trì kết nối hệ thống và danh sách dữ liệu được chia sẻ trong mạng. Ngoài việc là một mạng peer to peer, Napster cũng giống như một mạng với các máy chủ. Chính các máy chủ này làm cho việc tìm kiếm dữ liệu và chia sẻ giữa các máy tính trong mạng tốt hơn, tạo nên mô hình mạng peer to peer đầu tiên được ưu chuộng với các dịch vụ chia sẻ file dữ liệu, file nhạc trên mạng Internet. Napster gồm 2 thành phần, thứ nhất là máy chủ trung tâm và thứ hai là các ứng dụng trên các máy tính kết nối với nhau. Một máy tính tham gia vào mạng sẽ kết nối với máy chủ trung tâm và đưa danh sách file chia sẻ trong máy tính lên máy chủ này. Những máy tính khi tìm kiếm dữ
liệu sẽ tìm kiếm thông tin về từ khóa trên máy chủ trung tâm để biết máy tính nào hiện đang giữ file chia sẻ đó. Để tìm kiếm một file, một truy vấn sẽ được gửi đi tới máy chủ trung tâm cùng với từ khóa tìm kiếm. Máy chủ trung tâm sẽ tìm trong danh sách các file chia sẻ được đưa lên bởi các máy tính và trả về địa chỉ IP của máy tính lưu giữ file chia sẻ này. Sau đó sẽ là kết nối trực tiếp giữa máy tính yêu cầu và máy tính giữ file chia sẻ, dữ liệu được truyền giữa hai máy tính giống như trong một mạng ngang hàng.
Mô hình chia sẻ file của Napster
Bên cạnh Napster, một mô hình mạng ngang hàng không cấu trúc khác cũng rất nổi tiếng là Gnutella.Gnutella[6] là một mạng peer to peer thuần và chủ yếu dựa trên mạng peer to peer không có cấu trúc. Một phiên bản thương mại của Gnutella là Limewire[7]. Các máy tính trong Gnutella được mô tả như là những “servent”, những thành viên trong mạng và được chia sẻ file trong mạng. Các máy tính khác có thể lấy được những file
chia sẻ này. Việc tìm kiếm file trên mạng mô tả trong hình 4, khi một máy tính A tìm kiếm file X, nó sẽ gửi một truy vấn broadcast tới tất cả các máy tính nó biết, được coi là hàng xóm của nó. Truy vấn sau đó sẽ được chuyển dần qua các bước và tới được máy tính có chứa file X. Gnutella có mã nguồn mở và có giao thức[8] mô tả rõ ràng trên mạng Internet, bất cứ ai quan tâm cũng có thế tìm hiểu và phát triển để tạo ra một mạng ngang hàng của riêng mình với các tính năng muốn có.
Tìm kiếm dữ liệu chia sẻ trong Gnutella.
Mạng ngang hàng có cấu trúc
Hệ thống mạng ngang hàng không cấu trúc thể hiện nhược điểm: không có gì đảm bảo tìm kiếm sẽ thành công. Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trên nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên một vài máy thì xác suất tìm thấy là khá nhỏ. Tính chất này là hiển nhiên vì trong mạng ngang hàng không cấu trúc, không có bất kì mối tương quan nào giữa một máy và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiên đến một số máy trong mạng. Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin càng nhỏ. Một nhược điểm khác của hệ thống này là do không có định hướng, một yêu
cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp.
Mạng ngang hàng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc bằng cách sử dụng hệ thốngDHT(Bảng Băm Phân Tán, tiếng anh: Distributed Hash Table).
Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả.
System
P2PDecentralizedCentralizedUnstructureddStructuredHybridCANCHORDGnutellaKaZaA Mạng ngang hàng có cấu trúc thuộc nhánh các hệ thống phân tán trong các mô hình mạng ngang hàng
Trong mạng ngang hàng có cấu trúc, tài nguyên được phân bố một cách hợp lý để không có một máy tính nào lưu giữ quá nhiều dữ liệu dẫn đến quá tải thông tin định tuyến. Do mạng là có cấu trúc nên các thông điệp chuyển đi giữa các máy tính để duy trì mạng ngang hàng được giảm xuống tối thiểu. Băng thông của mạng được dành nhiều hơn cho việc chia sẻ tài nguyên.
Mạng ngang hàng có cấu trúc Chord dạng vòng tròn.
Việc tìm kiếm thông tin trong mạng ngang hàng có cấu trúc cũng nhanh hơn trong mạng không cấu trúc. Nếu như mạng không có cấu trúc các máy tính gửi thông điệp broadcast
để tìm kiếm thông tin thì trong mạng có cấu trúc một máy tính chỉ cần gửi thông điệp tìm kiếm qua một số máy tính. Giao thức tìm kiếm chung trong mạng sẽ đảm bảo thông tin được tìm kiếm chính xác.
Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồmChord,CAN,Kademlia,Pastry vàTapestry. Trong đó Chord và CAN được mô tả chi tiết, đã được mô phỏng và cho kết quả qua các bài báo [1], [3].