Table of Contents
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT VIDEO STREAMING....................................3
1.1 Tổng quan video streaming......................................................................................................3
1.2 Quá trình Video Streaming.....................................................................................................4
1.3 Hoạt động của hệ thống video streaming.................................................................................5
1.4 Một số phương thức phân phối luồng video.............................................................................7
1.4.1 IP multicast.................................................................................................................................8
1.4.2 Multcast lớp ứng dụng..............................................................................................................9
CHƯƠNG II: HỆ THỐNG LUỒNG VIDEO QUA MẠNG NGANG HÀNG P2P...............10
2.1 Phân tích một số điểm còn tồn tại của kỹ thuật streaming truyền thống................................10
2.2 Mạng ngang hàng Peer-to-Peer..............................................................................................11
2.2.1 Ưu thế của mạng ngang hàng...................................................................................................11
2.2.2 Các vấn đề cần xem xét trong P2P streaming..........................................................................11
2.3 Các phương pháp tiếp cận xây dựng lớp phủ.........................................................................13
2.3.1 Phương pháp tiếp cận dạng cây.................................................................................................13
2.3.2 Một hệ thống luồng trực truyến dựa trên cây đơn luồng...........................................................15
2.3.3 Phương pháp tiếp cận dựa trên cây đa luồng.............................................................................16
2.3.4 Các hệ thống luồng trực truyến dựa trên cây đa luồng..............................................................18
Kết Luận...................................................................................................................................24
1
Mở đầu
Trong những ngày đầu phát triển của ứng dụng đa phương tiện, khoảng
nửa cuối thập niên 90, việc xem một video trên mạng gần như là điều không
thể. Ngày nay, cùng với sự bùng nổ của Internet, các ứng dụng đa phương tiện
trong đó có video streaming đã trở thành nhu cầu không thể thiếu của nhiều cư
dân mạng. Theo thống kê, riêng tại Mỹ đã có khoảng 33 tỉ video được xem
trong tháng 12-2012 (nguồn comScore). Con số trên đủ cho ta thấy được sự lớn
mạnh không ngừng của các ứng dụng video streaming.
Tuy nhiên, để phát triển một ứng dụng video streaming tốt gặp phải rất
nhiều vấn đề. Ứng dụng video streaming đòi hỏi nhiều băng thông và yêu cầu
độ trễ thấp. Chính vì vậy cần phải có một phương pháp phân phát video trên
đường truyền hợp lý. IP multicast với khả năng tối ưu hóa đường truyền là một
giải pháp cho vấn đề này. Tuy nhiên, việc triển khai IP multicast lại rất tốn kém
bởi nó đòi hỏi toàn mạng phải có những Router đắt tiền, chuyên dụng. Điều này
hoàn toàn không khả thi trong một mạng diện rộng như Internet. Triển khai
multicast trên tầng ứng dụng với việc không làm thay đổi hạ tầng mạng phía
dưới là một giải pháp thay thế hữu hiệu cho IP multicast.
Hiện nay, trên thế giới đã và đang phát triển rất nhiều phương pháp truyền
tin multicast trên tầng ứng dụng khác nhau. Trong đó truyền tin multicast dựa
mạng ngang hàng hứa hẹn có nhiều ưu điểm. Đặc thù của truyền tin multicast là
phải tạo được một cây multicast tối ưu, có sự liên kết chặt chẽ giữa các node với
nhau, có khả năng phục hồi lỗi nhanh. Mạng ngang hàng có cấu trúc hoàn toàn
có thể đáp ứng được yêu cầu đó với việc các node được liên kết với nhau bằng
một thuật toán cụ thể.
Chương 1: Tổng quan vềề kỹỹ thuật Video Streaming
Trong chương I cũng đề cập đến vấn đề truyền tin multicast lớp ứng dụng
Ch ƣ ng 2: Hệ thốống luốềng video qua mạ ng ngang hàng P2P
ơ
Trong chương này giới thiệu khái quát mạng ngang hàng P2P. Khái niệm
về mạng P2P và các kiến trúc mạng của nó. Các mục tiêu, các thuận lợi, khó
khăn trong mạng P2P.
2
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT VIDEO
STREAMING
1.1 Tổng quan video streaming
Video là một loại dữ liệu đa phương tiện quan trọng phục vụ cho truyền
thông hoặc cho nhu cầu giải trí của con người trong nhiều thập niên. Trong thời kỳ
đầu video được xử lý và truyền dưới dạng tín hiệu tương tự (analog). Với sự phát
triển không ngừng của mạch điện tử và máy tính dẫn đến số hóa video và mở ra
một cuộc cách mạng về nén và truyền thông video. Sự phát triển và phổ biến của
Internet giữa những năm 90 đã định hướng truyền thông video qua mạng chuyển
mạch gói best – effort. Video qua mạng Internet gặp phải rất nhiều yếu tố bất lợi về
băng thông, độ trễ và mất gói tin, cùng với một số vấn đề như làm thế nào để chia
sẽ tài nguyên mạng giữa các luồng hay làm thế nào có thể triển khai hiệu quả
phương thức truyền thông một – nhiều. Từ đó đã có rất nhiều giải pháp được
nghiên cứu và phát triển nhằm khắc phục những vấn đề này.
Video Streaming được định nghĩa là một “dòng chảy” video, nghĩa là dữ liệu
video được truyền liên tục từ một nguồn đến một đích nào đó thông qua Internet.
Video Streaming thường được sử dụng trong lĩnh vực giải trí hoặc dạy học, dùng
để lưu trữ các tập tin Video hoặc các bài học, cung cấp cho người dùng các tiện ích
như tìm kiếm, liệt kê và khả năng hiển thị hoặc hiển thị lại các dữ liệu Video theo
yêu cầu.Với các định dạng tập tin Video truyền thống, dữ liệu chỉ có thể hiển thị
khi đã được tải về (download) toàn bộ, vì vậy đối với các tập tin Video chất lượng
cao có dung lượng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian.
Video Streaming tiết kiệm thời gian cho người dùng bằng cách sử dụng các
công nghệ giải nén kết hợp với hiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục tải
video về. Quá trình này được gọi là kỹ thuật đệm (buffering):
o Thay vì được gửi một lần duy nhất, dữ liệu video streaming sẽ được
chia thành từng gói nhỏ, sau đó liên tục truyền những phần được chia
ra.
o Ban đầu bên nhận sẽ lấy về một phần chia nhỏ của dữ liệu Video và
hiển thị những phần video đã nhận được, đồng thời trong lúc hiển thị
3
các gói dữ liệu còn lại sẽ lần lượt được lấy về để kịp cho việc hiển thị
tiếp theo.
Video Streaming được thể hiện dưới hai dạng:
Video theo yêu cầu (on demand): là các dữ liệu Video được lưu trữ
trên máy chủ đa phương tiện và được truyền đến người dùng khi có
yêu cầu, người dùng có toàn quyền để hiển thị cũng như thực hiện các
thao tác (tua, dừng, quay lại…) với các đoạn dữ liệu này.
Video thời gian thực (live event): là các dữ liệu Video được biến đổi
trực tiếp từ các nguồn cung cấp dữ liệu theo thời gian thực (máy
camera, microphone, thiết bị phát dữ liệu Video…).
1.2 Quá trình Video Streaming
Với Video Streaming máy tính của người sử dụng không phải tải toàn bộ
Video về cùng một lúc. Để thực hiện tăng tốc độ lần tải về, tại bất kỳ thời điểm nào
máy tính chỉ cần tải về một phần thông tin của Video. Với kỹ thuật này, chúng ta
cần một máy chủ đặc biệt kiểm soát việc cung cấp các nội dung Video, để bất kỳ
phần nào của đoạn Video được lưu trữ trên máy chủ đều có thể được truy cập bất
kỳ lúc nào
Video Streaming:
True Streaming: tín hiệu Video đến theo thời gian thực và hiển thị ngay lập
tức cho người xem.
Download and Play: Sau khi tải toàn bộ Video về, sau đó phát Video.
Progressive Download and Play: Đây là công nghệ lai giữa hai công nghệ
trên. Trong công nghệ này, Video sẽ được chia nhỏ ra thành nhiều frame,
chương trình phát Video (player) sẽ hiện thị ngay những gói vừa được tải về
và lưu trữ dữ liệu đó ở bộ nhớ đệm của máy. Khi tua lại những đoạn Video
mà đã tải về, Player sẽ lấy dữ liệu từ bộ nhớ đệm để tải lên.
Video Streaming sử dụng các giao thức RTSP, MMS, HTTP… để truyền dữ
liệu theo dạng luồng qua mạng Internet, đồng thời sử dụng các chuẩn nén để giảm
dung lượng dữ liệu, cung cấp khả năng nén dữ liệu tại nhiều mức nén, nhiều kích
thước hiển thị để có thể phù hợp với độ rộng băng thông của nhiều mạng truyền
dẫn để tối ưu hoá việc truyền dữ liệu qua mạng. Cũng chính vì vậy việc truyền các
Video Streaming qua mạng sẽ phụ thuộc rất nhiều vào các sản phẩm phần mềm
4
máy chủ luồng Video. Hiện nay, có rất nhiều chuẩn công nghệ Video streaming.
Cũng như có nhiều định dạng dữ liệu riêng với các chuẩn cộng nghệ đó. Các định
dạng Video streaming chỉ giới hạn bởi các công ty dẫn đầu trong công nghệ
streaming: Các hãng này đều cung cấp các bộ công cụ trọn gói gồm máy chủ luồng
video (lưu trữ, truyền phát dữ liệu theo các giao thức hỗ trợ ...), Video Playe (hiển
thị dữ liệu tại phía người dùng), và công cụ kiến tạo dữ liệu với các chuẩn nén.
1.3 Hoạt động của hệ thống video streaming
Một hệ thốống Video treaming hoạt động chủ yếốu gốồm 3 thành phầồn: Web server,
Server và Client.
Hình 1: Kiến trúc hoạt động của hệ thống
Web server
Web Server là máy chủ có dung lượng lớn, tốc độ cao, là nơi lưu trữ thông
tin về các website có cung cấp dịch vụ chia s video trực tuyến (những
Website này nhúng mã embeded flash player do nhà cung cấp dịch vụ lưu
trữ và quản l tập tin cung cấp) cùng với những thông tin liên quan khác.
5
Khi máy chủ Web nhận yêu cầu từ máy khách về việc xem một video có
trong danh sách video mà Website cung cấp, thì nó sẽ gửi về máy khách:
đoạn mã html tĩnh chứa tập tin embeded flash và tập tin xml chứa thông tin
của video đó.
Server
Server là một máy chủ gồm có: Ổ cứng (Hard disk) chứa dữ liệu và máy chủ
quản l dùng quản l quá trình kết nối của các máy khách (thông qua một cổng
nhất định).
Hard Disk: Ổ cứng lưu trữ tập tin video của nhà cung cấp.
Server Manager
Máy chủ Video Streaming
Client
Truy cập vào web browser, chọn tập tin video cần xem và bấm play, lệnh
yêu cầu play tập tin video sẽ được gửi lên máy chủ Web.
Web browser sẽ nhận software player (trong đoạn mã html tĩnh chứa tập tin
embeded flash) và thực hiện kết nối với server.
Software player nhận những video stream và thực hiện việc giải nén, giải mã
trước khi hiển thị Video lên cho người dùng.
Tóm lại:
Web Server: trả về người dùng đoạn html tĩnh, nội dung tập tin chứa
embeded flash.
Server: lưu trữ tập tin video, gửi tập tin video được yêu cầu về người dùng.
Client: nhận thông tin từ máy chủ Web và kết nối đến máy chủ (với thông tin
nhận được từ máy chủ Web tương ứng về tập tin video đã chọn).
6
Hình 2: Lược đồ tổng quát
1.4 Một số phương thức phân phối luồng video
Trong hệ thống mạng của chúng ta hiện nay có 3 cách truyền video cở bản
đó là unicast, multicast và broadcast :
Unicast: là phương thức truyền tin cơ sở của IP network. Với unicast một
máy truyền và chỉ có một máy nhận theo kiểu point to point. Hiện nay hầu
hết các ứng dụng mạng được phát triển và sử dụng trên nền phương thức
unicast như HTTP, Telnet, FPT…Nhưng với những ứng dụng đòi hỏi phải
truyền tin từ một nguồn tới một nhóm người dùng như video streaming thì
việc triển khai trên unicast là không hiệu quả và truyền tin multicast là giải
pháp thay thế.
Multicast: là cách truyền dữ liệu một – nhiều (one – to – many), tức là dữ
liệu được gửi từ một nút nguồn và một nhóm nút đích sẽ nhận được cùng dữ
liệu đó. Các truyền này khác với unicast – gửi thông tin trên mạng theo cách
truyền gói tin một – một (one – to – one). Nếu multicast có thể so sánh với
cuộc gọi chung cho nhiều người (conference call) thì unicast có thể so sánh
với cuộc gọi riêng giữa 2 người
7
Broadcast: được mô tả như truyền tin cho toàn mạng, tất cả các điểm trong
mạng đều nhận được thông báo này. Trong trường hợp này chỉ một người
gửi nhưng tất cả người trong mạng đều nhận được. Broadcast được hỗ trợ
trong mạng LAN (ví dụ như Ethernet) và được sử dụng để gửi những gói tin
giống nhau đến các máy trong mạng LAN (ví dụ ARP được sử dụng gửi địa
chỉ đến toàn bộ máy trong mạng LAN). Giao thức lớp mạng như IP hỗ trợ
khuôn dạng gói tin để gửi đến bất kỳ hệ thống nào trong logical network.
Có thể nói, multicast là cách thức hiệu quả nhất để truyền video đến một
nhóm người trên Internet. Chúng ta cũng có thể sử dụng unicast để truyền tin lần
lượt từ nguồn đến từng nút trong nhóm. Tuy nhiên, với cách này thì nút nguồn sẽ
phải lặp đi lặp lại việc truyền một gói video cho rất nhiều các nút khác nhau, dẫn
đến việc tiêu tốn tài nguyên của nút nguồn (CPU, memory…). Đồng thời sẽ có rất
nhiều gói video không cần thiết được lưu thông trên mạng, dẫn đến lãng phí tài
nguyên mạng.
Với multicast, một cây multicast sẽ được hình thành với nguồn là gốc của
cây và các thành phần còn lại của cây có thể là nút đầu cuối (end – host) hoặc có
thể là các router. Điều này tùy thuộc vào các công nghệ multicast khác nhau. Thay
vì việc nút nguồn nhân bản gói tin và gửi đến từng nút trong nhóm thì nó chỉ
truyền cho một hoặc vài nút nhất định và các nút này có nhiệm vụ sao chép và
truyền gói tin theo cây multicast.
1.4.1 IP multicast
Ip multicast là chuẩn mở của IETF (Internet Engineering Task Force) dùng
để truyền dữ liệu tới nhiều người nhận. Trong IP multicast, các router sẽ đóng vai
trò là nút trung gian trong cây multicast và có trách nhiệm sao chép gói tin rồi
truyền cho các nút ứng dụng. Ở đây, các nút này sẽ đóng vai trò là ngọn của cây.
8
Hình 3 : Thành phần IP multicast
1.4.2 Multicast lớp ứng dụng
Do nhu cầồu sử dụng truyếồn thống multcast đang ngày càng l ớn, trong khi
giao thức IP multcast ở tầồng mạng chưa đủ để đáp ứng, do vậy xu hướng
multcast ngày càng được mở rộng sang multcast lớp ứng dụng. Multcast lớp
ứng dụng khống thay đổi và phá vỡ hệ thốống mạng. Thay vào đó, nó chỉ thực
hiến chức năng truyếồn multcast trến các máy cuốối ở l ớp ứng d ụng. T ừ l ớp ứng
dụnga seẽ truyếồn xuốống các lớp mạng và lớp giao vận. Ở các lớp thầốp hơn, c ơ chếố
hoàn toàn khống thay đổi.
Khái niệm multcast lớp ứng dụng chỉ đơn giản là việc thi hành
multcastng như một dịch vụ lớp ứng dụng chứ khống phải như một dịch vụ lớp
mạng. Hình 1.8 mố tả việc truyếồn tn multcast cho cùng m ột nhóm ng ười nh ận
và người gửi của multcast lớp ứng dụng và IP multcast. Ở đầy, cầy multcast
được hình thành ở lớp ứng dụng. Với việc chỉ sử dụng phương thức truyếồn tn
unicast của lớp mạng, nút nguốồn S gửi hai gói tn cho D1 và D2; t ại D1, D2 gói tn
được nhần bản và chuyển tếốp cho D4, D3.
9
D1
S
R
S
R
R
D1
R
R
R
D2
D4
D3
Hình 4a : IP multicast
R
R
D2
D4
D3
Hình 4b : Multicast lớp ứng dụng
Khi truyền multicast ở lớp ứng dụng, các gói tin không được nhân bản tại các bộ
định tuyến giống như mô hình multicast nguyên thủy (IP multicast) mà việc nhân
bản gói tin sẽ được thực hiện tại các máy đầu cuối. Về mặt logic, các máy đầu cuối
tạo nên một mạng phủ và giao thức truyền thông multicast phải xây dựng và duy trì
việc truyền multicast trên mạng phủ này. Trong multicast lớp ứng dụng, các công
việc điều khiển như gia nhập nhóm, rời khỏi nhóm, sao lưu và chuyển tiếp gói tin,
định tuyến multicast…đều được thực hiện tại điểm đầu cuối (end system hoặc
proxy). Do đó, nó không đòi hỏi sự hỗ trợ của các nút trung gian như bộ định tuyến
hoặc máy chủ chuyên dùng.
CHƯƠNG II: HỆ THỐNG LUỒNG VIDEO QUA MẠNG NGANG
HÀNG P2P
2.1 Phân tích một số điểm còn tồn tại của kỹ thuật streaming truyền thống
Kỹ thuật streaming truyền thống dựa trên hệ thống Client - Server cung cấp
hiệu suất tốt và tỷ lệ sẵn sàng cao nếu số lượng khách hàng được giới hạn. Tuy
nhiên, việc triển khai và chi phí bảo trì của các hệ thống này thường rất cao. Trong
thực tế, nhiều dịch vụ luồng trực tuyến hiện nay đều có độ phân giải tương đối thấp
để tiết kiệm băng thông. Chất lượng của các dịch vụ luồng trực tuyến thường
không thể so sánh được với mạng lưới truyền hình truyền thống. Do đó quản lý tài
nguyên là một vấn đề quan trọng trong việc triển khai kỹ thuật streaming trên
Internet.
Mặt khác, khả năng xử lý, dung lượng lưu trữ, lưu lượng của máy chủ I/O có
thể tạo thành nút thắt cổ chai. Mặt khác, số lượng lớn các kết nối mạng đường dài
cũng có thể dẫn đến tắc nghẽn lưu thông. Do đó, hệ thống không thể đáp ứng yêu
10
cầu thực hiện của các ứng dụng luồng đa phương tiện quy mô lớn, thời gian thực.
Tuy nhiên, kỹ thuật IP multicast được cung cấp để giải quyết những vấn đề này cần
sự hỗ trợ từ phần cứng đặc biệt và các chi phí thiết lập cơ sở hạ tầng và quản lý là
rất tốn kém. Về bản chất, các kỹ thuật truyền thống không thể giải quyết hiệu quả
những vấn đề của video streaming. Do đó, mô hình phân phối luồng video quy mô
lớn qua mạng Internet đang nổi lên. Mạng P2P đã được chấp nhận rộng rãi như là
một cách để giải quyết các vấn đề tài nguyên với các ứng dụng luồng Internet như
VoD , live streaming và cung cấp một sự thay thế cho hệ thống client - server.
2.2 Mạng ngang hàng Peer-to-Peer
Một mạng máy tính ngang hàng (Peer – to – Peer hoặc P2P) chủ yếu dựa
trên sức mạnh tính toán và băng thông của các máy tham gia trong mạng hơn là tập
trung vào một số lượng nhỏ các máy chủ (server).
Một mạng P2P thuần túy sẽ không có khái niệm về khách (clien) và chủ
(server), mà chỉ có những nút ngang hàng thực hiện cả hai chức năng của một máy
chủ và máy khách đối với những nút khác trong mạng. Mô hình mạng này khác với
mô hình mạng khách – chủ (server –client) mà việc giao tiếp thường là với các
máy chủ trung tâm.
2.2.1 Ưu thế của mạng ngang hàng
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 và 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 mô hình máy khách – chủ, nếu số lượng
máy chủ là cố định thì khi số máy khách tăng lên thì khả năng chuyển dữ liệu từ
các máy chủ 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ệ.
2.2.2 Các vấn đề cần xem xét trong P2P streaming
Trong vài năm qua, mạng P2P đã xuất hiện như là một phương pháp thuận
lợi cho việc cung cấp các nội dung đa phương tiện trên nền một mạng phủ lớn. Các
đặc tính bên trong mạng P2P làm cho các mô hình P2P trở thành một ứng cử viên
11
tiềm năng để giải quyết các vấn đề khác nhau trong truyền thông đa phương tiện
trên mạng Internet.
Đầu tiên, mạng P2P không cần sự hỗ trợ từ các bộ định tuyến Internet và do
đó chi phí hiệu quả và đơn giản để triển khai.
Thứ hai, một peer đồng thời hoạt động như một client cũng như server, do
đó có thể tải xuống một luồng video và cùng một lúc tải lên luồng video đó để các
peer khác xem chương trình đó.
Do đó, truyền tải P2P làm giảm đáng kể nhu cầu băng thông của nút nguồn.
Mục tiêu của cơ chế P2P streaming là tối đa hóa chất lượng phân phối nội dung
cho các điểm peer riêng lẻ. Tổng hợp nguồn tài nguyên có sẵn của các peer và có
khả năng mở rộng đến số lượng bất kỳ các điểm tham gia. Mỗi peer có thể tiếp tục
cung cấp nội dung phù hợp với các peer đã kết nối với nó trong lớp phủ bằng cách
sử dụng băng thông của các điểm peer đang tham gia. Tuy nhiên, việc cung cấp các
vụ P2P streaming video cho một số lượng lớn người xem tạo ra những thách thức
công nghệ rất khó khăn trên cả hệ thống và tài nguyên mạng.
Trong khi các ứng dụng phân phối file P2P truyền thống nhằm mục tiêu
truyền dữ liệu linh hoạt, P2P streaming tập trung vào việc phân phối hiệu quả các
nội dung audio và video theo yêu cầu thời gian ràng buộc. Luồng dữ liệu được
nhận, phát ngay lập tức và truyền cho các điểm peer liên quan khác.
Trong P2P streaming, trễ end-to-end từ nguồn đến nơi nhận lớn bởi vì nội
dung có thể phải đi qua một số nơi nhận trung gian. Hành vi của người nhận là
không thể đoán trước, họ được tự do tham gia và rời bỏ bất cứ lúc nào, do đó loại
bỏ các peer kế tiếp của họ. Người nhận có thể phải lưu một số cấu trúc dữ liệu cục
bộ và trao đổi thông tin trạng thái với nhau để bảo vệ các kết nối. Các chi phí kiểm
soát ở mỗi điểm nhận đáp ứng mục đích như vậy sẽ nhỏ để giữ cho không sử dụng
quá nhiều tài nguyên mạng và để khắc phục hạn chế tài nguyên ở mỗi điểm nhận.
Điều này là quan trọng đối với khả năng mở rộng của hệ thống với một số lượng
lớn các điểm nhận.
Việc cấu trúc các nút thành lập một mạng phủ cung cấp video đảm bảo QoS.
Mặt khác, hệ thống có quy mô mở rộng nên có thể chứa hàng chục ngàn người
nhận tại cùng một thời điểm. Đồng thời, các chi phí quản lý liên quan hợp lý ngay
cả ở quy mô lớn.
12
2.3 Các phương pháp tiếp cận xây dựng lớp phủ
Kỹ thuật streaming trong cách tiếp cận P2P được phân loại thành truyền
video thời gian thực (P2P live video streaming) và truyền video theo yêu cầu (P2P
on demand video streaming). Một số hệ thống P2P streaming đã được triển khai để
cung cấp xem video theo yêu cầu hoặc các dịch vụ truyền video trực tuyến qua
Internet.
P2P Streaming
Tree-based
Mesh-based
Hybrid
Hình 5 : Các loại P2P Streaming
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 dạng lưới) and hybrid schemes (phương thức tiếp cận dạng ẩn).
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. 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
13
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 6 : 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. 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 đoá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 toán lại cấu trúc liên kết cây cho 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 toá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 xuyên, 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
14
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.
Peer 0 rời
Mố hình cầy sau khi khối phục
Hình 7 : Xây dựng lại cây streaming
2.3.2 Một 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 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.
15
F
B
Layer 2
F
A
Layer 1
F
B
N
E
D
C
P
G
H
M
O
Layer 0
Hình 8 : Sắp xếp các host trong NICE
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
yêu cầu phức tạp thuật toá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 nguyên 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
16
Hình 9 : Cây đa luồng trên cơ sở streaming
Trong cách tiếp cận cây đa luồng , 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ó
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
17
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. Quá trình này đòi hỏi đáng kể bản tin quản l quá 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ư hệ thống 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 nguyên đó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ệ 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 soá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.
18
Hình 10 : 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
Để 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 khác trong mạng. Mỗi peer trao đổi dữ liệu với một tập các
peer hàng xóm. Nếu một peer hàng xóm rời đi, các peer vẫn có thể tải về các video
từ những peer hàng xóm còn lại. Trong khi đó, các peer sẽ bổ sung thêm các máy
khác vào tập hợp peer hàng xóm của nó. Không giống như các hệ thống cây đơn
luồng trong hệ thống lưới trên, mỗi peer có thể nhận được dữ liệu từ nhiều peer
hàng xóm cung cấp. Vì vậy, các hệ thống truyền dựa trên lưới khỏe mạnh chống lại
các trạng thái từ các peer hàng xóm. Những thách thức lớn trong hệ thống luồng
trực truyến P2P dựa trên lưới là hình thành thông tin láng giềng và lập danh mục
dữ liệu.
19
Hình 11: P2PliveVideo Streaming mô hình lưới
Khi một peer tham gia vào mạng. Một peer trong các đ ịa ch ỉ m ạng (m ột
nút bootstrapping) theo dõi peer mới và cung cầốp m ột danh sách có ch ứa các
thống tn của một nhóm ngầẽu nhiến các peer đang hoạt động. Sử dụng danh
sách này, các peer cốố găống để băốt đầồu kếốt nốối và nếốu thành cống nó băốt đầồu trao
đổi nội dung video với các peer (hàng xóm). Để xử l nh ững peer r ời kh ỏi m ạng
khống báo trước, các peer trong mạng thường xuyến trao đổi với nhau. Đốồng
thời, tùy thuộc vào cầốu trúc hệ thốống của các peer, m ột peer khống kếốt nốối duy
nhầốt tới một peer láng giếồng, để đáp ứng việc các peer tách ra.
20
- Xem thêm -