Mạng ngang hàng có cấu trúc (Structured P2P)

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 53 - 117)

2.2.1.1 Mng 1 cây ( Single-tree streaming)

Người sử dụng sẽ kết nối nhau tạo thành cây tại lớp ứng dụng, có nút gốc là nguồn phát ( server ) như hình vẽ 2.9. Mỗi nút sẽ nhận dữ liệu từ nút cha của nó, và truyền dữ

Hình 2.4: Mạng P2P cấu trúc một cây

liệu nhận được tới các nút con của nó. Mỗi nút cho chỉ có thể nhận dữ liệu từ duy nhất một nút cha. Trong hình vẽ minh họa 10 máy, trong đó có 2 máy ở mức 1 ( peer 0 và peer 1), nhận trực tiếp dữ liệu từ nguồn phát. 4 nút ở mức 2 ( peer2, peer3, peer4, peer5 ) nhận dữ liệu từ 2 nút lớp 1, và 3 trong số chúng gửi dữ liệu tiếp tới 4 nút ở lớp cuối cùng.

Tiêu chí để xây dựng nên một cây như trên là giảm số lớp của cây và tăng số nút con tại mỗi lớp.Các nút con ở lớp dưới sẽ nhận dữ liệu từ lớp trên, do đó để giảm thiểu độ trễ, người ta mong muốn cây có số lớp ít nhất có thể. Tuy nhiên do băng thông tải dữ liệu lên mạng (upload bandwidth ) của mỗi nút cha hạn chế, nên số lượng các nút con chỉ nằm trong giới hạn phục vụ của nó.

Một vấn đề quan trọng hơn việc thiết lập cây là việc duy trì hoạt động của cây khi người sử dụng ngắt kết nối khỏi mạng. Sự vào ra của người sử dụng là hoàn toàn ngẫu nhiên và thường xuyên diễn ra. Mỗi khi người sử dụng ngừng sử dụng dịch vụ, tương ứng với 1 peer trên cây bị mất. Khi đó tất cả các nút trên cây có gốc là peer đó sẽ bị ngắt khỏi mạng, không còn nhận được dữ liệu từ nguồn phát nữa. Để hạn chế ảnh hưởng xấu tới chất lượng dịch vụ, việc khôi phục lại cây diễn ra càng nhanh càng tốt.

Hình 2.5: Minh họa ảnh hưởng của nút khi ngắt kết nối

Khi peer 0 rời khỏi mạng, các nút con của nó ( peer 2,3,6,7,8 )đều bị ngắt theo. Rõ ràng nếu nút rời khỏi mạng càng ở gần nguồn thì ảnh hưởng của nó tới mạng càng lớn. Đặc biệt đối với mạng lớn, có đông người sử dụng, thì hậu quả rất nặng nề.

Hình vẽ 2.5 mô tả việc phục hồi lại cây sau khi peer 0 rời khỏi mạng

Hình 2.6: Quá trình khôi phục lại cây

Việc hình thành cây và duy trì cấu trúc cây được thực hiện tập trung hoặc phân tán. Trong trường hợp tập trung, một server trung tâm sẽ điều khiển việc cậu tạo và duy trì cây. Khi một máy kết nối vào mạng, nó giao tiếp với server trung tâm. Dựa vào đặc điểm của máy đó, như vị trí đặt máy, băng thông hiện có của máy, server sẽ quyết định vị trí của máy đó trên cây. Sau đó, server thông báo cho máy nút cha mà

máy đó kết nối tới. Server phát hiện ra việc ngắt bỏ kết nối của một máy dựa vào bản tin thông báo hoặc dựa trên thời gian time-out của máy đó. Trong cả 2 trường hợp, server sẽ tính toán lại kiến trúc cây, và chỉ dẫn cho các máy thiết lập lại kết nối. Trong trường hợp mạng có nhiều người sử dụng, hoạt động của server dễ rơi vào hiện tượng thắt nút cổ chai ( bottle-neck) . Và cũng giống như mô hình client- server truyền thống, nếu server trung tâm bị hỏng, cả mạng sẽ ngừng hoạt động theo. Việc hỏng hóc chỉ xảy ra với server là đánh sập toàn mạng.

Để giải quyết những vấn đề trên, rất nhiều thuật toán xây dựng và duy trì cây thực hiện phân tán trên từng peer đã được đưa ra. Tuy nhiên người ta thấy rằng không thể phục hồi cây đủ nhanh trong trường hợp có sự liên tục ngắt kết nối.

Một nhược điểm lớn khác của mạng một cây là các nút ở lớp cuối cùng không tham gia vào việc chia sẻ tài nguyên băng thông của nó cho các nút khác, mặc dù số lượng các nút này trong mạng là rất lớn. Điều này làm sụt giảm rất lớn việc sử dụng tài nguyên mạng.

Để cải tiến mạng 1 cây, người ta nghĩ tới cấu trúc mạng nhiều cây, là sự kết hợp của nhiều mạng 1 cây.

2.2.1.2 Mng nhiu cây (Multi-Tree Streaming)

Hình vẽ 2.12 minh họa một mạng nhiều cây.

Trong mạng nhiều cây, dòng dữ liệu được chia ra thành nhiều dòng dữ liệu con. Các máy cũng được chia thành nhiều cây con, mỗi cây con ứng với một dòng dữ liệu con. Mỗi cây con hoạt động như mạng một cây, dữ liệu được truyền từ nút cha đến nút con.

Mỗi peer trong mạng có thể tham gia đồng thời vào nhiều cây, tuy nhiên vai trò của nó trong các cây con khác nhau là khác nhau. Để hạn chế ảnh hưởng của một máy trong trường hợp ngắt bỏ kết nối, mỗi peer chỉ có thể là cha trên duy nhất một cây, và là nút chỉ nhận dữ liệu về trên các cây còn lại. Để hiệu quả sử dụng băng thông cao, người ta đặt số nút con của mỗi nút cha tỉ lệ thuận với băng thông tải lên của máy đó (upload bandwidth).

Hình vẽ 2.12 mô tả kiến trúc mạng nhiều cây với 2 dòng dữ liệu và 7 peer. Trong đó peer 0, peer1, peer2 là nút cha của cây bên trái, và là nút chỉ nhận dữ liệu tại cây bên phải.

Ở kiến trúc mạng nhiều cây, việc sử dụng băng thông các peer đã được tối ưu hơn do tỉ lệ các nút tham gia vào việc truyền dữ liệu đã tăng lên đáng kể. Khi một peer ngắt kết nối tại một cây con, các nút con của nó vẫn giữ kết nối với mạng ở các cây con khác. Điều này làm giảm ảnh hưởng của hiện tượng ngắt kết nối của các peer. Tuy nhiên cấu trúc tại các cây con còn lại không tối ưu, do rất có thể các peer có băng thông gửi dữ liệu (upload bandwidth) cao lại là những nút chỉ nhận dữ liệu.

Tóm lại, trong cả mô hình một cây và nhiều cây, việc quản lý và duy trì một cấu trúc cây sao cho tối ưu về băng thông và thời gian phục hồi nhanh gặp rất nhiều khó khăn.Đó cũng chính là lý do khiến người ta nghĩ tới mạng peer to peer không cấu trúc. Những so sánh giữa mạng có cấu trúc cây và không cấu trúc chỉ ra rằng, mạng không cấu trúc có nhiều ưu điểm hơn mạng có cấu trúc cây

2.2.2 Mạng ngang hàng không cấu trúc (Unstructured P2P)

2.2.2.1Khái nim

Trong tiếng Anh, thuật ngữ chỉ mạng ngang hàng không cấu trúc là unstructured peer to peer, hoặc mesh-based peer to peer. Trong các phần tiếp theo của đồ án, em xin phép sử dụng thuật ngữ mesh-based p2p để chỉ mạng ngang hàng không cấu trúc.

Trong mạng mesh-based p2p không tồn tại một cấu trúc tĩnh nào. Mỗi nút có thể là server của nhiều máy, và là client của một nhóm các máy khác. Xét một peer X bất kì trên mạng. Gọi A là tập các máy nhận dữ liệu của peer X, B là tập các máy gửi dữ liệu tới peer X. Tâp A và B không nhất thiết trùng nhau, mà có thể hoàn toàn khác biệt, không có phần tử chung. Điều này có nghĩa là việc nhận và gửi dữ liệu không nhất thiết phải 2 chiều.

Đối với mỗi peer X bất kì trên mạng, tập A, và B không nhất thiết cố định theo thời gian. Số lượng và thành phần các peer trong A và B có thể liên tục thay đổi để thích nghi theo sự biến động của mạng.

Sự thay đổi thành phần và số lượng trong 2 tập A và B là hoàn toàn độc lập nhau. Kết nối và ngắt kết nối giữa X với mỗi phần tử trong tập A(B) là độc lập với các phần tử khác. Sự thay đổi trong 2 tập A và B về số lượng và thành phần đều hướng tới mục đích làm tăng chất lượng dịch vụ tại máy X.

2.2.2.2 Ưu đim

• Tính chống sai hỏng hay sự thay đổi kiến trúc của mạng tốt. Trong mạng client- server truyền thống, server cần phải chịu tải cao hơn rất nhiều một máy tính thông thường, nên khả năng sai hỏng là rất lớn. Trong mạng P2P các chức năng được phân tán, nên giảm bớt đòi hỏi với server, giảm bớt tính chiu sai hỏng của server. Do một peer X tải dữ liệu đồng thời từ rất nhiều peer hàng xóm, cho nên khi một trong các peer hàng xóm đó rời khỏi mạng, X vẫn có thể nhận dữ liệu từ nhiều peer còn lại.

• Tận dụng tài nguyên băng thông tốt.

Do trong mạng mỗi peer không chỉ tải dữ liệu về, mà còn đảm nhận chức năng phát dữ liệu như một server, cho nên không tồn tại gánh nặng băng thông của server được san sẻ cho tất cả các peer.

• Mở rộng mạng tốt.

Do việc sử dụng băng thông hiệu quả nên số lượng các máy có thể đồng thời phục vụ rất cao.

Người sử dụng kết nối vào một mạng P2P không cần có bất kì thay đổi phần cứng nào. Điều này hoàn toàn khác với việc sử dung IP-Multicast, người sử dụng phải nằm trong vùng có router hỗ trợ multicast. Họ chỉ cần tải phần mềm tương ứng với mạng P2P đang muốn kết nối tới. Các phần mềm này tự động thực hiện tất cả các giao thức P2P, từ thiết lập kết nối, tới tìm kiếm, yêu cầu kết nối peer trong mạng và người sử dụng chỉ cần chọn chương trình mình thích.

• Giá thành hạ, do không yêu cầu các thay đổi phần cứng.

Do không cần chi phí đắt đỏ cho các server như mô hình client-server, hay chi phí thuê các đường băng thông rất lớn để tải luồng bít của nhiều người sử dụng, nên chi phí cho việc triển khai mạng rẻ. Điều này đem dịch vụ P2P đến gần với đông đảo mọi người.

So với mạng P2P hình cây, mạng P2P không cấu trúc được đánh giá hoạt động mạnh mẽ, hiệu quả hơn trong nhiều điều kiện mạng [17].

2.2.2.3 Nhược đim

• Khó khăn trong việc giảm thời gian trễ của gói tin, giảm thời gian cấu hình mạng. Đây là điểm thách thức lớn nhất của mạng P2P, đòi hỏi các nhà thiết kế tiếp tục tối ưu các thuật toán chạy trên mạng này.

• Các chức năng được thực hiện phân tán nên có nguy cơ bị phá hoại cao.

• Mạng P2P có thể hoạt động kém nếu có quá ít người sử dụng. Điều này là do các peer thiếu peer hàng xóm làm nguồn phát dữ liệu tới nó. Tuy nhiên mạng P2P ra đời với mục đích phục vụ cho số lượng lớn người sử dụng, và vượt qua các khó khăn của các công nghệ khác khi mở rộng mạng, thì điều này không phải nhược điểm cản trở sự phát triển của mạng P2P.

2.3Phân loại thế mức độ tập trung.

2.3.1Cấu trúc tập trung với duy nhất một server.

Trong mạng chỉ có duy nhất một server chứa thông tin về các file có thể cung cấp cho người sử dụng. Tuy nhiên đây không phải mô hình client-server truyền thống, bởi vì server không chứa bất kì file nào mà người sử dụng cần, mà chỉ chứ thông tin về nơi chứa các file này. Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệ thứ nhất, chúng được dùng cho việc chia sẻ các file giữa

các người dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu tố về luật pháp. Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX. Quá trình hoạt động được mô tả trong hình 2.4

Hình 2.8 : Mạng ngang hàng tập trung thế hệ thứ nhất(Napster)

2.3.2 Cấu trúc phân tán với nhiều server.

Trong trường hợp này, một mạng lưới các server được thay thế cho một server duy nhất của trường hợp trên. Bởi vậy, cả mạng gồm nhiều mạng con. Mạng eDonkey là mạng chia sẻ file dùng kiến trúc này. Hoạt động của mạng được minh họa như hình 2.9

Việc trao đổi file trong mạng con diễn ra như trường hợp 1. Trao đổi file giữa các mạng con là không được phép.

2.3.3Cấu trúc phân tán.

Trong trường hợp này, không tồn tại server được sử dụng chung, tất cả các máy đều có thêt là client và server. Việc tìm hiểu cấu trúc mạng của máy khi kết nối vào mạng thực hiện bằng bản tin broadcast. Gnutella là một trong những mạng nổi tiếng nhất sử dụng kiến trúc này. Hình 2.10 mô tả cấu trúc này.

Hình 2.10: Mô hình phân tán 2.3.4Cấu trúc mạng sử dụng Super-peer.

Đây là kiến trúc lai ghép, pha trộn giữa mô hình client- server và công nghệ P2P. Những máy có băng thông cao được sắp xếp thành các Super-peer, sau đó, những máy có băng thông thấp được kết nối đến các super-peer này bằng theo mô hình client-server. Các super-peer phụ trách quản lý miền các peer kết nối với nó. Mạng thực tế sử dụng công nghệ này là KaZaA. Kiến trúc mạng được mô tả như hình 2.11

Hình 2.11: Mô hình sử dụng super-peer

Gần đây, để tránh sự sai hỏng thì người ta bố trí có nhiều super-peer hoạt động thay vì một super-peer trong một miền.

Để cụ thể hơn hoạt động của mạng P2P chia sẻ file, phần tiếp theo trình bày đôi nét về hoạt động của mạng BitTorrent là một mạng P2P chia sẻ file mạnh mẽ và rất phổ biến hiện nay, hình 2.12

Hình 2.12: Chia sẻ file trong mạng BitTorren

BitTorrent chuyển gánh nặng dò tìm tập tin mà bạn muốn tải về sang một máy chủ trung tâm, gọi là tracker. Sự khác nhau nữa là nó sử dụng nguyên tắc gọi là tit-for- tat, nghĩa là bạn phải chia sẻ những phần tập tin mà bạn đã tải về được cho những người khác trong quá trình đang tải toàn bộ tập tin. Một số thuật ngữ dùng trong hoạt động của Bittorrent.

Leeches: máy tính có yêu cầu download tập tin nhưng không chia sẻ.

Seed / seeder: máy tính có chứa một phần hoặc toàn bộ tập tin và có chia sẻ

qua phần mềm máy khách BitTorrent Client, còn gọi là “hạt giống”. • Swarm: nhóm các máy đồng thời gửi đi hoặc nhận về cùng một tập tin.

.torrent: tập tin có phần mở rộng này là tập tin con trỏ chứa thông tin về các

seed/seeder để máy tính có thể tải các phần của tập tin ở nhiều máy khác nhau.

Tracker: máy chủ quản lý tiến trình truyền tập tin BitTorrent.

• Trên máy tính của mình, bạn mở một website cung cấp các tập tin dạng .torrent và chọn tải một tập tin.

• Phần mềm máy khách BitTorrent Client trên máy của bạn giao tiếp với máy chủ Tracker để tìm các máy khác cũng đang chạy BitTorrent Client mà có chứa tập tin này (gọi là các hạt giống) và những máy khác đang có một phần của tập tin này (những máy ngang hàng mà cũng đang tải tập tin này).

• Tracker xác định các máy swarm, tức đang kết nối và có đầy đủ hay một phần của tập tin và đang gửi hoặc nhận nó.

• Tracker giúp phần mềm máy trạm trao đổi các phần của tập tin bạn muốn với các máy khác trong swarm. Máy tính của bạn sẽ nhận nhiều phần tập tin một cách đồng thời.

• Nếu bạn tiếp tục chạy phần mềm máy khách BitTorrent sau khi tải về thành công, các máy khác có thể nhận được tập tin .torrent từ máy của bạn; trong tương lai tốc độ tải về của bạn sẽ được cải thiện vì bạn được xếp bậc cao hơn trong hệ thống tit-for-tat.

CHƯƠNG 3

CÁC THUẬT TOÁN DÙNG TRONG MẠNG P2P 3.1 Định tuyến cho P2P thế hệ mới:

Nhằm đáp ứng các vấn đề mở rộng quy mô một số nhóm nghiên cứu độc lập đã tạo ra một thế hệ mới các hệ thống P2P hỗ trợ tính năng bảng hàm băm phân tán (DHT), trong số đó là Tapestry, Pastry, Chord và CAN(Content- Addressable Networks). Trong các hệ thống này (còn gọi là các hệ thống DHT), các file được ràng buộc với các khoá (key) - ví dụ được tạo ra bằng cách băm các tên file – và mỗi node trong hệ thống có trách nhiệm lưu giữ một dải các key

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 53 - 117)