Phân loại mạng Peer to Peer

Một phần của tài liệu Ứng dụng phân tán dựa trên mô hình local proxy cho thông tin dạng nhị phân (Trang 26)

Mạng P2P có thể đƣợc phân loại theo một số tiêu chí nhƣ sau:

* Mạng P2P thuần túy:

- Các máy trạm có vai trò vừa là máy chủ vừa là máy khách.

- Không có máy chủ trung tâm quản lý mạng.

- Không có máy định tuyến (bộ định tuyến) trung tâm, các máy trạm có

25

* Mạng đồng đẳng hỗn hợp:

- Có một máy chủ trung tâm dùng để lƣu trữ thông tin của các máy trạm và trả

lời các truy vấn thông tin này.

- Các máy trạm có vai trò lƣu trữ thông tin, tài nguyên đƣợc chia sẻ, cung cấp các

thông tin về chia sẻ tài nguyên của nó cho máy chủ.

- Sử dụng các trạm định tuyến để xác định địa chỉ IP của các máy trạm.

Một mạng đồng đẳ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 đồng đẳ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. Việc tìm kiểm các đơn vị dữ liệu đƣợc thực hiện bằng bảng băm phân tán (Distributed Hash Table).

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 đồng đẳ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.Hầu hết các mạng đồng đẳng phổ biến là không cấu trúc nhƣ Napster, Gnutella, FastTrack và eDonkey2000.

26

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ả.

Các ứng dụng phổ biến của P2P chủ yếu tập trung vào các ứng dụng chia sẻ tệp. Có nhiều các giao thức chia sẻ tệp sử dụng mô hình P2P nhƣ Emule, Napster, Kad, Gnutella, G2 and FastTrack… Trái ngƣợc với các ứng dụng theo mô hình client- server, trong các ứng dụng chia sẻ tệp P2P, hiệu năng của hệ thống sẽ càng đƣợc cải thiện khi càng có nhiều peer tham gia vào giao thức. Nhƣ vậy, nếu một client càng hỗ trợ nhiều giao thức, khả năng có thể tìm thấy một peer có chứa dữ liệu cần thiết càng lớn.

2.2.4. Ưu nhược điểm của mạng Peer to Peer

Ưu điểm

Tính chất phân tán của mạng ngang hàng đã tạo nên ƣu điểm của mạng ngang hàng, đó là:

- Ngƣời sử dụng có thể kiểm soát việc dùng chung tài nguyên (máy in, chu trình

xử lý, lƣu trữ …), tận dụng đƣợc tài nguyên của tất cả các máy tính trong mạng, có phân bố lƣu lƣợng hợp lý để tránh tắc ngẽn.

- Không phụ thuộc vào các máy tính khác trong hoạt động của mình. Tính chất

phân tán của mạng đồng đẳ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ệ.

27

- Tăng cƣờng khả năng cân bằng tải trong mạng. Trong mô hình mạng ngang

hàng, chỉ có yêu cầu truy vấn đƣợc thực hiện giữa máy tính tham gia mạng với máy chủ, còn vấn đề truyền file đƣợc thực hiện giữa hai máy tính tham gia mạng với nhau, điều này dẫn đến việc phân bố tải đều trên hệ thống mạng.

- Không phải đầu tƣ thêm về phần cứng và phần mềm máy chủ.

- Không cần ngƣời quản trị mạng.

Nhược điểm (adsbygoogle = window.adsbygoogle || []).push({});

Bên cạnh những ƣu điểm đã trình bày trên, mạng ngang hàng còn tồn tại những nhƣợc điểm sau:

- Các nút tham gia với tính phân tán, trách nhiệm và vai trò là nhƣ nhau trong

mạng, ít tuân theo quy luật hay ràng buộc nào.

- Máy trạm phải gánh thêm việc phục vụ chia sẻ tài nguyên.

- Máy trạm không có khả năng kiểm soát nhiều liên kết nhƣ một máy chủ.

- Thiếu tính tập trung, rất khó tìm kiếm dữ liệu.

- Không có khả năng lƣu trữ tập trung.

- Mỗi ngƣời sử dụng trên máy trạm phải có khả năng quản trị trên chính hệ thống

của mình.

- Khả năng bảo mật kém, khó kiểm soát do dữ liệu là phân tán.

- Quản lý thiếu tập trung, các mạng ngang hàng rất khó làm việc với nhau.

Mô hình Local Proxy đƣợc phát triển để tận dụng những ƣu điểm của 2 mô hình trên.

2.3. MÔ HÌNH LOCAL PROXY

2.3.1. Sự kết hợp giữa Client-Server và Peer to Peer

Trong hệ thống phân tán, các máy cần phải giao tiếp với nhau thông qua một số giao thức. Với mô hình Client-Server, giao thức này xác định sự tƣơng tác giữa Client

28

và xây dựng các giao thức để đảm bảo các chức năng nhƣ Client-Server là rất phức tạp. Trong lịch sử phát triển, đã có rất nhiều nhà cung cấp tốn nhiều công sức đƣa ra các giải pháp để giảm tính phụ thuộc của các máy vào một máy chủ trung tâm nhƣ Napster, Gnutella…

Napster

29

Napster là sự kết hợp của một mạng ngang hàng peer to peer và một số server 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 server. Chính các server 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à server 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 server trung tâm và đƣa danh sách file chia sẻ trong máy tính lên server 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 server 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 server trung tâm cùng với từ khóa tìm kiếm. Server 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.

Gnutella

30

chuyển dần qua các bƣớc và tới đƣợc máy tính có chứa file X.

Share Cache Folder

Bên cạnh Napster và Gnutella, các nhà phát triển hệ thống có đƣa ý tƣởng về việc sử dụng cache để giảm tải cho Server. Trong hệ thống sử dụng giải pháp Share Cache Folder, Client sẽ tổ chức một thƣ mục để chứa cache. Khi Client gửi yêu cầu tìm kiếm dữ liệu, đầu tiên nó sẽ tìm trong thƣ mục chứa cache. Nếu không tìm thấy, nó sẽ tiếp tục gửi yêu cầu tìm kiếm trong cache của các node trong mạng. Sau khi nhận dữ liệu từ cache của các nốt trong mạng, nó gửi yêu cầu tới nơi lƣu trữ. Đây là một phƣơng pháp khá tốt để giảm tải cho Server, nhƣng ta có thể thấy trong trƣờng hợp không tìm thấy dữ liệu trong cache của các node trong mạng. Client vẫn phải gửi yêu cầu tới Server, điều này khiến cho tính co giãn của hệ thống không đƣợc đảm bảo.

Rõ ràng các giải pháp trên đã có những ý tƣởng giúp cho hệ thống hoạt động tốt hơn. Tuy nhiên, các giải pháp này vẫn còn tồn tại những hạn chế nhƣ việc vẫn còn server trung tâm khiến cho Napster không thể giải quyết triệt để vấn đề nút cổ chai tại server. Còn với Gnutella, việc gửi truy vấn tới tất cả các nút hàng xóm khiến cho hệ thống mạng bị lãng phí rất nhiều băng thông. Để giải quyết những hạn chế này, các nhà phát triển hệ thống đƣa ra định nghĩa về mạng ngang hàng có cấu trúc bằng cách sử dụng hệ thống DHT (Distributed Hash Table – Bảng Băm Phân Tán). 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

31

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ả.

2.3.2. Mô hình Local Proxy

Giới thiệu (adsbygoogle = window.adsbygoogle || []).push({});

Dựa trên hệ thống P2P, mô hình Local đƣợc xây dựng để đáp ứng yêu cầu thiết kế ứng dụng khi sử dụng sẽ giống với mô hình Client – Server nhƣng giao tiếp giữa các máy với nhau là trực tiếp không thông qua một Server trung tâm nhƣ mô hình Peer to Peer [4],[5],[8].

Mục đích của mô hình Local Proxy là:

- Thiết kế giao thức sử dụng kiến trúc Client-Server để đơn giản.

- Triển khai giao thức sử dụng giao tiếp P2P để hiệu suất tốt hơn.

Phƣơng pháp của mô hình này là giữ nguyên việc thiết kế giao thức theo kiến trúc Client-Server không thay đổi, trong khi đó nhờ vào hệ thống DHT, các Client có thể dễ dàng gửi yêu cầu dữ liệu đến chính xác máy trạm đóng vai trò Server.

Mô hình thiết kế

Theo ý tƣởng đƣợc nêu phía trên, thành phần client sẽ đƣợc giữ nguyên không thay đổi. Ngoài ra, trên client sẽ đƣợc cài một ứng dụng đóng vai trò Local Server, nó sẽ nhận yêu cầu từ client và chuyển yêu cầu đó vào hệ thống P2P. Hệ thống P2P đƣợc xây dựng theo mô hình mạng ngang hàng có cấu trúc sẽ hỗ trợ các máy trao đổi dữ liệu với nhau thông qua bốn hàm: Put, Get, Search, Delete. Mô hình Local Proxy đƣợc thiết kế nhƣ hình 2.11 dƣới đây:

32

Hinh 2.12. Mô hình Local Proxy

Hệ thống này bao gồm những thành phần sau:

- Client: giống nhƣ module máy khách trong kiến trúc Client-Server truyền thống.

- Local Server: mỗi máy client đƣợc cài đặt một local proxy module. Module này

tƣơng tác với module client và cập nhật dữ liệu cục bộ.

- P2P Agent: chấp nhận yêu cầu chia sẻ và cập nhật dữ liệu, truyền tải dữ liệu trên

mạng P2P.

Mô hình Local Proxy đƣa ra các cơ hội để phát triển một ứng dụng P2P sử dụng thiết kế của kiến trúc Client-Server. Tất nhiên, giao thức và logic ứng dựng theo quan điểm giao tiếp máy với máy sẽ đƣợc thay thế bằng giao tiếp giữa P2P Agent và hệ thống con P2P.

33

Tƣơng tác này trở nên bình thƣờng nhƣ một cơ chế chia sẻ dữ liệu đơn giản, nhƣng đạt đƣợc hiệu quả tốt, cấu trúc dữ liệu đƣợc thiết kế tốt theo logic của ứng dụng và giao thức P2P.

 Chuyển đổi hệ thống từ mô hình Client-Server sang Local Proxy

Để chuyển đổi một hệ thống từ mô hình Client-Server sang mô hình Local Proxy, chúng ta cần thực hiện các bƣớc nhƣ sau:

- Xác định các giao thức đƣợc thực thi trên hệ thống Client-Server

- Phân tích chức năng, nhiệm vụ của các giao thức trong hệ thống Client-Server.

- Chuyển đổi các chức năng sang mô hình Local Proxy, các máy sẽ yêu cầu dữ

liệu từ hệ thống P2P

34

3.1. TỔNG QUAN VỀ FILE SHARING 3.1.1. Khái niệm

Khi hệ thống Internet chƣa phát triển, để có thể phân phối tài liệu cho nhiều ngƣời, chúng ta chỉ có thể chia sẻ tài liệu thông qua việc sao chép đĩa CD, DVD hoặc thông qua USB. Cách thức này khiến cho việc phổ biến tài liệu gặp nhiều hạn chế về thời gian và công sức. Ngày nay, ngoài việc có thể sử dụng Email để gửi những tập tin có kích thƣớc nhỏ, chúng ta có thể sử dụng các ứng dụng chia sẻ file để thu thập những tài liệu cần thiết.

File sharing là một trong những ứng dụng phổ biến nhất của Internet. Theo thống kê của Cisco, nó chiếm khoảng 40% tổng lƣu lƣợng dữ liệu trong năm 2010. Ứng dụng này cho phép ngƣời dùng có thể chia sẻ các tập tin trên máy tính của họ cho những ngƣời khác thông qua Internet. Ứng dụng này đã phát triển và trở nên phổ biến từ năm 1999 với sự ra đời của Napster. Khi ngƣời dùng có yêu cầu tìm kiếm, các máy chủ sẽ sẽ tìm kiếm tất cả các bản ghi sẵn có của tập tin đó và chuyển thông tin cho ngƣời dùng. Sau đó, các tập tin sẽ đƣợc chuyển trực tiếp giữa hai máy tính cá nhân.

Theo các nhà nghiên cứu, File sharing là sự chia sẻ dữ liệu hay không gian lƣu trữ của máy tính trong hệ thống mạng với các mức độ khác nhau tùy thuộc vào đặc quyền truy cập. Các dữ liệu có thể đƣợc chia sẻ là những tập tin đa phƣơng tiện (âm thanh,

35 (adsbygoogle = window.adsbygoogle || []).push({});

hình ảnh, video), tài liệu hay sách điện tử. Ngoài ra, File sharing còn cung cấp các cơ chế bảo vệ bằng cách giới hạn kiểu truy xuất tập tin có thể thực hiện. Truy xuất đƣợc phép hay bị từ chối phụ thuộc vào nhiều yếu tố, một trong những yếu tố là kiểu truy xuất đƣợc yêu cầu. Ngƣời dùng có thể có một hoặc nhiều đặc quyền truy xuât lên dữ liệu nhƣ:

- Đọc (Read): đọc tập tin

- Viết (Write): Viết hay viết lại tập tin

- Thực thi (Execute): nạp tập tin vào bộ nhớ và thực thi nó

- Chèn cuối (Append): viết thông tin mới vào cuối tập tin

- Xóa (Delete): xóa tập tin và giải phóng không gian để có thể dùng lại

- Liệt kê (List): liệt kê tên và thuộc tính của tập tin

3.1.2.Phân loại hệ thống chia sẻ tập tin

Sau thời gian hình thành và phát triển, hệ thống File sharing có thể phân loại thành hai dịch vụ là: dịch vụ chia sẻ file peer to peer và dịch vụ đồng bộ hóa và chia sẻ tập tin

 Chia sẻ file peer to peer

Dịch vụ chia sẻ file peer to peer là sự phân phối và chia sẻ các tài nguyên số sử dụng công nghệ mạng P2P. Nó cho phép ngƣời dùng truy cập vào các tài liệu số nhƣ sách, âm nhạc, phim ảnh, và các trò chơi bằng cách sử dụng một chƣơng trình phần mềm P2P để tìm kiếm cho các máy tính kết nối với nhau trên mạng P2P và sử dụng theo nhu cầu. Các node (peer) sẽ đƣợc kết nối với nhau thông qua hệ thống Internet.

Công nghệ chia sẻ file peer to peer đã phát triển qua nhiều giai đoạn thiết kế từ các nhà mạng đầu tiên nhƣ Napster và sau đó phổ biến trong các mô hình sau này nhƣ giao thức BitTorrent. Việc phổ biến rộng rãi của công nghệ này không hể không nhắc

36

Một loại hình dịch vụ khác đƣợc xây dựng từ mô hình chia sẻ tập tin là việc đồng bộ hóa và sao lƣu dữ liệu. Ngƣời dùng đƣợc đảm bảo rằng các tập tin trong máy tính có

Một phần của tài liệu Ứng dụng phân tán dựa trên mô hình local proxy cho thông tin dạng nhị phân (Trang 26)