.2 Các loại P2P Streaming

Một phần của tài liệu xây dựng ứng dụng luồng video streaming qua mạng ngang hàng (Trang 29)

Dựa trên cấu trúc mạng che phủ, hệ thống P2P streaming được sắp xếp thành ba loại: tree-based (phương thức tiếp cận dạng cây), mesh-based (phương thức tiếp cận

Lê Ngọc Anh – D09VT2 30

dạng lưới) and hybrid schemes (phương thức tiếp cận dạng ẩn). Phương pháp tiếp cận tree-based sử dụng phương pháp đẩy dữ liệu để phân phối nội dung. Tuy nhiên, phương pháp tiếp cận mesh-based sử dụng tràn lụt dữ liệu để phân phối nội dung.

2.3.1 Phƣơng ph p tiếp cận dạng cây

Tương tự như một cây IP multicast được hình thành bởi các bộ định tuyến ở lớp mạng, các người dùng tham gia vào một phiên video streaming có thể tạo thành một cây ở lớp ứng dụng có gốc được bắt nguồn từ máy chủ video nguồn như hình 2.3. Về nguyên tắc, mỗi nút nhận dữ liệu từ một nút cha, có thể là nút nguồn hoặc một peer. Các hệ thống dựa trên cây thường phân phối video bằng cách chủ động đẩy dữ liệu từ một peer tới các nút con của nó.

Một cách tiếp cận chung của P2P streaming là sắp xếp các peer tham gia vào một lớp phủ có cấu trúc cây đơn luồng mà nội dung được đẩy đi từ nguồn tới tất cả các peer. Nội dung được lan truyền như một dòng chảy liên tục của thông tin từ nguồn xuống. Mỗi người dùng tham gia vào cây ở vị trí nhất định. Các hệ thống loại này chủ yếu là khác nhau trong các thuật toán được sử dụng để tạo ra, duy trì cấu trúc cây. Cho một tập hợp của các điểm peer, có rất nhiều cách để kết nối các peer. Mục tiêu của thuật toán xây dựng cây là tối đa hóa băng thơng tới gốc của tất cả các nút. Vì các hệ thống này rất gần với IP multicast, cố gắng để mơ phỏng cấu trúc cây của nó, nó có thể để đạt được độ dài đường truyền dữ liệu tương ứng mà không chênh lệch quá nhiều từ các đường dẫn IP multicast.

H nh 2.3 Mô h nh cây đơn

Xây dựng và duy trì cây có thể được thực hiện tập trung hoặc một cách phân tán trong hệ thống cây đơn luồng. Trong hình 2.4 & 2.5, một máy chủ trung tâm quản lý xây dựng cây và phục hồi cây. Khi một peer tham gia hệ thống nó giao tiếp với máy chủ trung tâm. Dựa trên các kết nối hiện có và đặc tính của các peer mới được tham gia vào như vị trí và điểm truy cập mạng, máy chủ quyết định vị trí của peer mới trong cây và thơng báo nút cha để peer mới được kết nối vào. Các máy chủ trung tâm có thể phát hiện một peer tách ra thơng qua tín hiệu mất hoặc phán đốn dựa trên chỉ số thời gian đầu ra. Trong cả hai trường hợp máy chủ sẽ tính tốn lại cấu trúc liên kết cây cho

Lê Ngọc Anh – D09VT2 31

số peer còn lại và chỉ dẫn chúng tạo thành cấu trúc liên kết mới. Đối với một hệ thống streaming lớn, máy chủ trung tâm có thể trở thành điểm nút thắt cổ chai. Để giải quyết vấn đề này, các thuật tốn phân phối ví dụ ZigZag được phát triển để xây dựng và duy trì cây streaming phân phối nội dung. Nếu các peer không thay đổi một cách thường xun, hệ thống dựa trên mơ hình cây địi hỏi ít chi phí như các gói tin được chuyển tiếp từ peer tới peer mà không cần phải thêm bản tin thông báo. Tuy nhiên trong môi trường tỷ lệ biến động cao, cây sẽ thường xuyên thay đổi và phải xây dựng lại. Do đó, các peer cần phải đệm dữ liệu (buffer data) ít nhất là bằng thời gian cần thiết cho sửa chữa cây để tránh khỏi mất gói.

Hình 2.4 : Xây dựng lại cây Streaming (a) Peer 0 rời (b) Mơ hình cây sau khi phục hồi

Hình 2.5 Giải pháp tập trung cho cấu trúc cây và duy trì cây 2.3.2 C c hệ thống luồng trực truyến dựa trên cây đơn luồng

2.3.2.1 Giao thức NICE

Hệ thống phổ biến nhất sử dụng cách tiếp cận cây đơn luồng là NICE. NICE (The Internet Cooperative Environment) được thiết kế ban đầu cho băng thông thấp và các ứng dụng truyền dữ liệu với một số lượng lớn người dùng. Giao thức sắp xếp các trạm cuối (host) vào trong một hệ thống phân cấp dựa trên thời gian thông tin chuyền đi vịng quanh giữa các host hình 2.6. Các hoạt động cơ bản của giao thức là tạo ra và duy trì các tuyến đường trong hệ thống. Mỗi thành viên giữ chi tiết trạng thái về các thành viên khác gần nó trong hệ thống phân cấp. Và chỉ có kiến thức hạn chế về các

Lê Ngọc Anh – D09VT2 32

thành viên khác trong nhóm. Cấu trúc phân cấp cũng rất quan trọng cho xác định vị trí của các thành viên thất bại.

Hình 2.6 Sắp xếp các host trong NICE. 2.3.2.2 Giao thức SpreadIt 2.3.2.2 Giao thức SpreadIt

SpreadIt xây dựng ứng dụng cây multicast trên các thiết lập của khách hàng. Các

nút được tổ chức thành các cấp khác nhau (hình 2.7 và hình 2.8). Đối với mỗi nút n ở mức 1+l; l = 0 , 1 , 2 …, có một nút p được gọi là cha của nó, ở mức l, n được gọi là con của p. Tất cả các nút trong cây con có gốc là p được gọi là con cháu của nó. Mỗi peer trong cây chịu trách nhiệm việc gửi các dữ liệu cho nút con của mình. Mỗi nút khách hàng cần phải được kích hoạt với một lớp peering(lớp nằm giữa lớp ứng dụng và lớp vận chuyển). Các lớp peering tại các nút khác nhau phối hợp với nhau để thiết lập và duy trì một cây multicast. Các ứng dụng (RealPlayer, Windows Media Player, etc) có được luồng từ các lớp peering trên các máy tính cục bộ. SpreadIt sử dụng một cây đơn phân bố và như vậy rất dễ bị tổn thương do gián đoạn một nút tách ra.

Lê Ngọc Anh – D09VT2 33

Hình 2.8 SpreadIt–Kiến trúc phân lớp của một Peer 2.3.2.3 Giao thức ESM 2.3.2.3 Giao thức ESM

ESM (End System Multicasst) là một cơ sở hạ tầng cho phát thanh truyền hình,

thực hiện bởi đại học Carnegie Mellon. ESM cho phép truyền dữ liệu âm thanh hình ảnh tới một lượng lớn người sử dụng. Hệ thống ESM sử dụng một cấu trúc lớp phủ dựa trên đó xây dựng một cây. Các thơng tin được phân phối một cách truyền thống dựa trên cây đơn luồng, trong đó bất kỳ peer nào cũng chỉ nhận được luồng tin từ duy nhất một nguồn. Mỗi nút duy trì thơng tin về một nhóm nhỏ ngẫu nhiên của các thành viên khác, cũng như các thơng tin về đường đi từ nguồn đến nó. Một nút mới tham gia phát sóng bằng cách liên hệ với nguồn và lấy danh sách ngẫu nhiên của các thành viên hiện đang trong nhóm. Sau đó chọn một trong các thành viên làm nút cha của nó bằng cách sử dụng thuật tốn lựa chọn nút cha. Để tìm hiểu về các thành viên khác, một bản tin thăm dò được sử dụng. Khi một nút tham gia vào phát sóng hoặc cần thực hiện thay đổi nút cha, nó dị một tập hợp ngẫu nhiên của các nút nó biết. Các bản tin thăm dò được ưu tiên tới các thành viên đã khơng được khảo sát hoặc có sự trễ thấp.

Hình 2.9 cho thấy một vi dụ về nhiệm vụ của ESM. Người nhận cuối cùng có thể

đóng vai trị của nút cha hoặc nút con. Các nút cha đóng vai trị là các thành viên và thực hiện sao chép. Các nút con là người nhận trực tiếp dữ liệu từ nút cha. Có một máy chủ điều khiển và một máy chủ dữ liệu cư trú trong cùng một gốc nguồn. Bất kỳ một người nhận có thể đóng vai trị của nút cha chuyển tiếp dữ liệu cho nút con của nó. Mỗi khách hàng sẽ có hai kết nối: một kết nối quản l và một kết nối dữ liệu.

Lê Ngọc Anh – D09VT2 34

Hình 2.9 Ví dụ về ESM

Một lợi thế của ESM là nó giải quyết các vấn đề triển khai của IP multicast. Tuy nhiên, multicasting thực hiện tại máy trạm cuối hiệu năng thấp. Nói chung các trạm cuối không xử l được thông tin giống như các router. Ngồi ra, giới hạn băng thơng và nhu cầu của việc chuyển tiếp bản tin từ host to host sử dụng kết nối unicast và do đó tăng trễ end-to-end của q trình truyền tin, góp phần tăng chi phí phải trả cho cách tiếp cận này. Đó là những l do làm cho ESM kém hơn so với IP multicast.

2.3.2.4 Giao thức ZigZag

ZigZag đã được đề xuất bởi trường đại học Central Florida và để cải thiện giao thức NICE. Các thuật toán để xây dựng cấu trúc và bảo dưỡng khá giống với NICE và tất cả các thuộc tính của giao thức NICE vẫn còn. ZigZag nhận vào một hệ thống các nhóm và xây dựng cây munlticast trên hệ thống phân cấp này theo một bộ quy tắc được gọi là quy tắc C (hình 2.10). Một nhóm có một nút cha đứng đầu và một nút liên kết. Nút cha chịu trách nhiệm giám sát các thành viên của nhóm và nút liên kết chịu trách nhiệm truyền tải những nội dung cho các thành viên trong nhóm. Vì vậy nút cha gặp vấn đề khơng ảnh hưởng đến tính liên tục dịch vụ của các thành viên khác hoặc trong trường hợp nút liên kết tách ra, nút cha vẫn còn hoạt động và có thể chị định một nút liên kết mới nhanh chóng. Trong khi ở NICE tất cả mọi dữ liệu được chuyển tiếp bởi các nút cha, ở NICE chịu trách nhiệm chuyển tiếp dữ liệu là bởi nút liên kết. Các giao thức điều khiển trên ZigZag có chi phí thấp. Một máy thu cần trao đổi thông tin điều khiển tới O(LogN) máy thu khác trong trường hợp tệ nhất. ZigZag được áp dụng tốt nhất cho các ứng dụng luồng chẳng hạn như máy chủ truyền thông một sự kiện thể thao dài hạn trực tuyến cho nhiều khách hàng. Nó khơng phù hợp cho các ứng dụng truyền thông trực tuyến nơi nhiều nguồn có mặt. Hạn chế chính của ZigZag là nó khơng xem xét dung lượng băng thông tải lên của peer tham gia vào giao thức. Ngoài ra, ZigZag tạo ra cây đơn luồng kết nối giữa các peer, nó cũng có những vấn đề chung của cây đơn luồng như không sử dụng băng thông tải lên của lá, các nút bên trong cây dễ bị tổn thương.

Lê Ngọc Anh – D09VT2 35

Hình 2.10 Tổ chức hành chính của Peer trong ZigZag 2.3.3 Phƣơng ph p tiếp cận dựa trên cây đa luồng

Các giải pháp cây đơn luồng có lẽ là cách tiếp cận tự nhiên nhất và nó khơng u cầu phức tạp thuật tốn mã hóa video. Tuy nhiên, một trong những mối quan tâm với cách tiếp cận dựa trên cây đơn luồng đó là sự thất bại của các nút, đặc biệt là những nút có vị trí cao trong cây có thể làm gián đoạn việc cung cấp dữ liệu cho một lượng lớn người dùng dẫn đến kết quả thu được kém. Nếu một nút bên trong tài nguyên băng thông không đáp ứng phục vụ các nút con của nó, các peer trong cây sẽ bị ảnh hưởng trễ cao trong tiếp nhận dữ liệu hoặc sẽ khơng bao giờ nhận được gói tin. Các hệ thống này không khai thác tốt tất cả các tài ngun peer có sẵn và đặc biệt băng thơng. Ví dụ, các nút lá chiếm một phần lớn các peer trong hệ thống và họ khơng đóng góp băng thơng vào hệ thống, điều đó làm các peer sử dụng băng thông không hiệu quả. Để đáp ứng mối quan tâm, các nhà nghiên cứu đã nghiên cứu cấu trúc tốt hơn cho việc phân phối dữ liệu. Đặc biệt, một trong những cách tiếp cận đã trở nên phổ biến là phương thức tiếp cận trên cây đa luồng.

Hình 2.11 Cây đa luồng trên cơ sở Streaming

Trong cách tiếp cận cây đa luồng (hình 2.11), một cơ cấu xây dựng cấu trúc các

peer tham gia trong cây đa luồng. Mỗi peer xác định một cây để tham gia dựa trên liên kết băng thông truy cập. Mỗi peer được đặt như một nút nội bộ trong một cây đơn luồng và nút lá trong cây khác mà nó tham gia. Khi một peer tham gia hệ thống, nó

Lê Ngọc Anh – D09VT2 36

tiếp xúc với nút khởi động (bootstrapping) để xác định một nút cha trong cây. Trong cây đa luồng dựa trên hệ thống P2P luồng trực tuyến, đoạn video được mã hóa thành nhiều luồng và mỗi luồng được truyền qua một cây. Chất lượng video nhận được tại các peer phụ thuộc vào số lượng luồng tin mà nó nhận được. Khi một nút bên trong của một cây tách ra, các nút con của nó cũng như các cây có gốc là nút tách ra được phân chia lại và chúng tham gia lại các cây. Việc cung cấp nội dung là một cơ chế đơn giản, các nút nội bộ trong mỗi cây chỉ đơn giản là chuyển tiếp bất kỳ gói tin nhận được cho tất cả các nút con tương ứng của nó. Do đó, thành phần chính của các luồng P2P dựa trên phương pháp tiếp cận cây là các thuật toán xây dựng cây.

Có hai lợi thế quan trọng cho các giải pháp cây đa luồng. Đầu tiên, nếu một mạng ngang hàng bị phá hoặc bỏ đi, tất cả các nút con của nó mất đi luồng gửi từ các peer, nhưng nó vẫn nhận được các luồng phân phối dữ liệu qua các cây khác. Do đó, tất cả các nút con của nó sẽ nhận được luồng video trong trường hợp mất đi luồng gửi từ một luồng. Thứ hai, một peer đóng vai trị khác nhau như nút nội bộ cũng như các nút lá trong cây khác nhau.

Nếu các peer không thay đổi quá thường xuyên, hệ thống cây đa luồng trực tuyến địi hỏi ít chi phí, vì các gói tin được chuyển tiếp từ nút tới nút mà không cần thông báo thêm. Tuy nhiên, trong môi trường biến động cao, cây liên tục bị thay đổi và xây dựng lại. Q trình này địi hỏi đáng kể bản tin quản l q trình trên. Do đó, các nút phải đệm dữ liệu ít nhất là thời gian cần thiết để cây sửa chữa, để tránh mất gói tin.

2.3.4 C c hệ thống luồng trực truyến dựa trên cây đa luồng

Vài ứng dụng được xây dựng trên khái niệm cây đa luồng phổ biến ngày nay. Ví dụ như SplitStream and Coopnet. Ở đây ta chỉ xem xét tới hệ thống CoopNet

2.3.4.1 CoopNet

CoopNet (Cooperative Networking) kết hợp các khía cạnh của cơ sở hạ tầng dựa trên hạ tầng mạng P2P. Nó sử dụng nhiều mã hóa để thực hiện truyền nội dung trên lớp xử l , sau đó truyền nội dung trong các lớp khác nhau theo những con đường khác nhau. Một máy chủ giàu tài ngun đóng vai trị trung tâm trong việc xây dựng và quản l các cây phân phối nội dung, tuy nhiên băng thông cho việc gửi các luồng dữ liệu nội dung được đóng góp bởi tập hợp các peer (hình 2.12). Hệ thống xây dựng nhiều cây phân phối mở rộng nguồn và tất cả người thu. Khi một nút muốn tham gia, nó liên lạc với máy chủ trung tâm nếu đáp ứng yêu cầu thì một nút cha trong cây được chỉ định cho nó. CoopNet hỗ trợ cả luồng trực tuyến cũng như các dịch vụ theo yêu cầu. Cách tiếp cận CoopNet là tốt, ở đây các peer thu được nội dung chất lượng thấp được ưu tiên hơn. Tuy nhiên, các máy chủ trung tâm cần phải duy trì kiến thức đầy đủ của tất cả các cây phân phối, nó sẽ tạo ra chi phí kiểm sốt nặng trên máy chủ. Vì vậy khả năng mở rộng của CoopNet không tốt. Một vấn đề khác là các máy chủ trung tâm trở thành một điểm thất bại trên hệ thống.

Lê Ngọc Anh – D09VT2 37

Hình 2.12 Streaming Media sử dụng nội dung CoopNet 2.4 Phƣơng thức tiếp cận dựa trên lƣới 2.4 Phƣơng thức tiếp cận dựa trên lƣới

Để chống lại các động thái từ các peer, nhiều hệ thống P2P streaming sử dụng phương pháp tiếp cận dựa trên lưới. Trong phương pháp tiếp cận dựa trên lưới, peer tham gia tạo thành một lớp phủ kết nối ngẫu nhiên. Trong lớp phủ các nội dung gốc từ nguồn ban đầu được phân phối giữa các peer khác nhau. Mỗi nút có thơng tin về tất cả các nút khác nhau trong hệ thống. Kết quả là, mỗi nút duy trì kết nối với một vài nút

Một phần của tài liệu xây dựng ứng dụng luồng video streaming qua mạng ngang hàng (Trang 29)

Tải bản đầy đủ (PDF)

(66 trang)