Ứng dụng xây dựng luồng Video Streaming qua mạng ngang hàng
Trang 1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1 -*** -
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
XÂY DỰNG ỨNG DỤNG LUỒNG VIDEO STREAMING QUA MẠNG NGANG HÀNG
Người hướng dẫn : THS.VŨ THỊ THÚY HÀ Sinh viên thực hiện : LÊ NGỌC ANH
Lớp : D09VT2 Khoá : 2009 - 2014
Hệ : ĐẠI HỌC CHÍNH QUY
Hà Nội, 12-2013
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1 -*** -
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
XÂY DỰNG ỨNG DỤNG LUỒNG VIDEO STREAMING
QUA MẠNG NGANG HÀNG
Người hướng dẫn : THS.VŨ THỊ THÚY HÀ Sinh viên thực hiện : LÊ NGỌC ANH
Lớp : D09VT2
Khoá : 2009 - 2014
Hệ : ĐẠI HỌC CHÍNH QUY
Hà Nội, 12-2013
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Điểm: (bằng chữ ……… )
Ngày … tháng 12 năm 2013 Giáo viên hướng dẫn
ThS Vũ Thị Thúy Hà
Trang 4Đồ án tốt nghiệp đại học Mở Đầu
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Điểm: (bằng chữ ……… )
Ngày … tháng 12 năm 2013
Giáo viên phản biện
Trang 5Đồ án tốt nghiệp đại học Mở Đầu
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ể
Để làm rõ hơn những lợi thế của mạng ngang hàng có cấu trúc trong việc truyền tin multicast, khóa luận này đã nghiên cứu xây dựng ứng dụng truyền video streaming multicast dựa trên nền tảng mạng ngang hàng có cấu trúc Pastry Sau đây là tóm tắt nội dung khóa luận gồm 3 chương
Chương 1: Tổng quan về kỹ thuật Video Streaming
Trong chương này giới thiệu khái quát về kỹ thuật Video Streaming Cấu trúc và chức năng của các thành phần trong hệ thống video streaming Nêu ra các loại định dạng tập tin video phổ biến hiện nay Trong chương I cũng đề cập đến vấn đề truyền tin multicast gồm truyền tin IP multicast và multicast lớp ứng dụng
Chương 2: Hệ thống luồng video qua mạng ngang hàng P2P
Trang 6Đồ án tốt nghiệp đại học Mở đầu
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 Trình bày các cách xây dựng lớp phủ cho truyền video streaming, nêu một số hệ thống phổ biến hiện nay đang được sử dụng trên mạng như NICE, CoopNet, HyPO…Nêu được các ưu nhược điểm của các hệ thống này
Chương 3: Xây dựng ứng dụng luồng video streaming qua mạng Pastry
Chương này chủ yếu mô tả quá trình gia nhập, rời nhóm, truyền tin multicast tới mạng và quá trình sửa cây multicast
Phần kết luận: Tổng kết lại toàn bộ nội dung luận văn và đưa ra hướng phát triển tiếp theo
Mặc dù đã cố gắng nhưng do kiến thức còn hạn chế, thời gian làm đồ án không nhiều, nên đồ án tốt nghiệp của em không thể tránh khỏi những thiếu sót
về nội dung và hình thức Do đó em rất mong nhận được sự góp ý của các thầy,
cô giáo để bản đồ án của em được hoàn thiện hơn.
Trang 7Đồ án tốt nghiệp đại học Lời cảm ơn
LỜI CẢM ƠN
Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến cô Vũ Thị Thúy Hà, người đã tận tình hướng dẫn em trong suốt quá trình hoàn thành khóa luận tốt nghiệp
Em xin gửi lời cảm ơn chân thành sâu sắc nhất tới tất cả các thầy, cô giáo trường Học Viện Công Nghệ Bưu Chính Viễn Thông đã tận tình giảng dạy và giúp đỡ em trong suốt hơn 4 năm học vừa qua để em có đủ kiến thức để hoàn thành khóa luận này
Tôi cũng xin gửi lời cảm ơn tới tất cả bạn bè D09VT2 của tôi, những người
đã đồng hành cùng tôi trong suốt 4 năm học qua
Cuối cùng, xin gửi lời tri ân đến bố mẹ và gia đình, những người thân yêu của tôi lòng biết ơn sâu sắc nhất
Hà Nội, tháng 11 năm 2013 Sinh viên
Lê Ngọc Anh
Trang 8Đồ án tốt nghiệp đại học Mục lục
MỤC LỤC
MỞ ĐẦU 1
MỤC LỤC 8
DANH MỤC HÌNH VẼ 10
TÓM TẮT 12
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT VIDEO STREAMING 13
1.1 Tổng quan video streaming 13
1.1.1 Giới thiệu về Video Streaming 13
1.1.2 Quá trình Video Streaming 14
1.1.3 Kiến trúc hệ thống video streaming 14
1.2 Các loại tệp tin video 17
1.3 Hoạt động của hệ thống video streaming 19
1.3.1 Kiến trúc hoạt động của một hệ thống Video Streaming 19
1.3.2 Mô hình hoạt động tổng quát của hệ thống 21
1.4 Một số phương thức phân phối luồng video 22
1.4.1 IP multicast 23
1.4.2 Multicast lớp ứng dụng 24
1.5 Kết luận chương 1 25
CHƯƠNG 2: HỆ THỐNG LUỒNG VIDEO QUA MẠNG NGANG HÀNG 26
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 26
2.2 Mạng ngang hàng Peer-to-Peer 26
2.2.1 Khái niệm 26
2.2.2 Ưu thế của mạng ngang hàng 27
2.2.3 Phân loại mạng ngang hàng 27
2.2.4 Các vấn đề cần xem xét trong P2P streaming 28
2.3 Các phương pháp tiếp cận xây dựng lớp phủ 29
2.3.1 Phương pháp tiếp cận dạng cây 30
2.3.2 Các hệ thống luồng trực truyến dựa trên cây đơn luồng 31
2.3.3 Phương pháp tiếp cận dựa trên cây đa luồng 35
2.3.4 Các hệ thống luồng trực truyến dựa trên cây đa luồng 36
2.4 Phương thức tiếp cận dựa trên lưới 37
Trang 9Đồ án tốt nghiệp đại học Mục lục
2.4.1 Các hệ thống luồng trực truyến phổ biến dựa trên lưới 39
2.5 Video theo yêu cầu trên P2P 46
2.5.1 Hệ thống VoD dựa trên dạng cây 47
2.5.2 Hệ thống VoD dựa trên lưới 50
2.6 Kết luận chương 2 52
CHƯƠNG III: ỨNG DỤNG LUỒNG VIDEO STREAMING QUA MẠNG PASTRY 53
3.1 Giới thiệu về Pastry 53
3.2 Quá trình truyền tin multicast trong nhóm Scribe 56
3.2.1 Chi tiết giải thuật 57
3.2.2 Quá trình gia nhập nhóm (join group): 58
3.2.3 Quá trình rời nhóm (leave group) 59
3.2.4 Truyền tin multicast tới mạng 59
3.2.5 Sửa cây multicast 60
3.3 Cải thiện Scribe bằng cấu trúc Splitstream 61
3.3.1 Giới thiệu SplitStream 61
3.3.2 Cơ chế xây dựng luồng trong SplitStream 62
3.4 Kết luận chương 3 64
KẾT LUẬN ĐỒ ÁN 65
TÀI LIỆU THAM KHẢO 66
Trang 10Đồ án tốt nghiệp đại học Danh mục hình vẽ
DANH MỤC HÌNH VẼ Hình 1.1 Kiến trúc của hệ thống video streaming 16
Hình 1.2 Kiến trúc hoạt động của hệ thống 19
Hình 1.3 Lược đồ hoạt động tổng quát 21
Hình 1.4 Lược đồ hoạt động trên Server Error! Bookmark not defined Hình 1.5 Lược đồ hoạt động quản l Cache trên máy chủ Streaming Error! Bookmark not defined Hình 1.6 Các phương thức truyền tin trên mạng 23
Hình 1.7 Thành phần của IP multicast 23
Hình 1.8 (a) IP multicast (b) Multicast lớp ứng dụng 25
Hình 2.1 Phân loại mạng ngang hàng 27
Hình 2.2 Các loại P2P Streaming 29
Hình 2.3 Mô hình cây đơn 30
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 31 Hình 2.5 Giải pháp tập trung cho cấu trúc cây và duy trì cây 31
Hình 2.6 Sắp xếp các host trong NICE 32
Hình 2.7 SpreadIt – một ứng dụng cây multicast xây dựng trên các Peer 32
Hình 2.8 SpreadIt–Kiến trúc phân lớp của một Peer 33
Hình 2.9 Ví dụ về ESM 34
Hình 2.10 Tổ chức hành chính của Peer trongZigZag 35
Hình 2.11 Cây đa luồng trên cơ sở Streaming 35
Hình 2.12 Streaming Media sử dụng nội dung CoopNet 37
Hình 2.13 Danh sách peer từ Tracker Server Hình 2.14 P2PliveVideo Streaming 37
Hình 2.15 Trao đổi dữ liệu thiết kế trong hệ thống dựa trên lưới 38
Hình 2.16 Sơ đồ hệ thống của một nút Anysee 40
Hình 2.17 Kiến trúc cơ bản PPLive 41
Hình 2.18 Một sơ đồ hệ thống chung cho một nút DONet 42
Hình 2.19 GridMedia Kiến trúc Dựa trên MSOMP 43
Hình 2.20 Hai lớp lưới/ cây che phủ trong mạng lai 45
Hình 2.21 Khung mTreebone (a) một lớp phủ lai (b) xử lý trạng thái nút 46
Hình 2.22 Cấu trúc trực tuyến trong CiqueStream 46
Hình 2.23 Cấu trúc DirectStream 49
Hình 2.24 BASS: (a) Tổng quan hệ thống, (b)Mẫu khách hàng 51
Hình 2.25 Phương pháp tiếp cận BiToS 51
Hình 3.1 Bảng định tuyến của nút 10233102 trong Pastry 55
Hình 3.2 Nút 10233102 gửi thông điệp m đến nút 33321220 56
Hình 3.3 Quá trình 1 nút gia nhập vào nhóm 58
Hình 3.4 Truyền tin multicast trong nhóm Scribe 59
Hình 3.5 Quá trình tự sửa câymulticast 60
Hình 3.6 Một ví dụ đơn giản minh họa cách tiếp cận của SplitStream 62
Hình 3.7 Splitstream F luồng 62
Hình 3.8 Xác định nút cha khi băng thông đi ra vượt quá giới hạn 63
Trang 11Đồ án tốt nghiệp đại học Thuật ngữ viết tắt
THUẬT NGỮ VIẾT TẮT
ALM Application Layer Multicast Multicast lớp ứng dụng
BASS BitTorrent Assisted Streaming
System
HTTP Hypertext Transfer Protocol Giao thức chuyển tải siêu văn bản
RTSP Real Time Streaming Protocol Giao thức điều khiển phiên
TCP Transmission Control Protocol Giao thức điều khiển truyền dẫn
Trang 12Đồ án tốt nghiệp đại học Tóm Tắt
TÓM TẮT
Thời gian gần đây, cùng với sự phát triển của các ứng dụng đa phương tiện trên
mạng Internet, video streamig qua Internet ngày càng thu được sự quan tâm của nhiều
người, đặc biệt là các ứng dụng video streaming thời gian thực IP multicast là giải
pháp hiệu quả nhất cho yêu cầu này Tuy nhiên, việc triển khai IP multicast trên mạng
diện rộng gặp nhiều vấn đề khó khăn Do vậy, nhiều nghiên cứu đã chuyển sang
hướng nghiên cứu về các ứng dụng multicast lớp ứng dụng Nhiều giải pháp multicast
lớp ứng dụng đã được đưa ra Tuy chúng có những yêu điểm riêng, xong vẫn chưa đáp
ứng được hầu hết các yêu cầu của P2P streaming thời gian thực, ví dụ như sự ra vào
của các nút, độ trễ còn lớn Hơn nữa, các giải pháp này chưa xét đến vấn đề của các
nút không đóng góp
Luận văn mô tả chi tiết giao thức mạng ngang hàng có cấu trúc Pastry và cách thức
tuyền tin multicast trên nền mạng ngang hàng Pastry Trong khóa luận, vấn đề truyền
video streaming được đề cập đến Từ đó khóa luận xây dựng nên ứng dụng truyền
video streaming multicast trên nền Pastry Việc đánh giá kết quả thu được qua quá
trình xây dựng cho ta thấy được những ưu điểm của việc triển khai multicast trên
mạng ngang hàng, cũng như những nhược điểm cần khắc phục
Trang 13Đồ án tốt nghiệp đại học Chương I: Tổng quan về kỹ thuật video streaming
CHƯƠNG I: TỔNG QUAN VỀ KỸ THUẬT VIDEO STREAMING
1.1 Tổng quan video streaming
1.1.1 Giới thiệu về 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):
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
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ị 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,
Trang 14Đồ án tốt nghiệp đại học Chương I: Tổng quan về kỹ thuật video streaming
1.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 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.1.3 Kiến trúc hệ thống video streaming
1.1.3.1 Kiến trúc và chức năng c c thành phần
Một hệ thống video thường bao gồm 6 khối, như minh họa trong hình 1.1 Trong
hình 1.1 video và âm thanh gọi là dữ liệu thô được nén bằng cách sử dụng các thuật
toán nén video và âm thanh rồi sau đó được lưu trong thiết bị lưu trữ Theo yêu cầu từ
khách hàng, một máy chủ streaming sẽ lấy video và âm thanh nén dữ liệu trong các
thiết bị lưu trữ và sau đó cùng với lớp ứng dụng QoS là mô-đun kiểm soát điều chỉnh
các video và âm thanh thành các luồng bit theo tình trạng mạng lưới và các yêu cầu
QoS Sau đó sử dụng các giao thức truyền tải nén các chuỗi bit rồi gửi các gói tin
video và âm thanh qua mạng Internet Gói có thể bị giảm hoặc hoặc bị trễ quá mức
trong mạng Internet do tắc nghẽn, các gói tin có thể bị hư hỏng do bị lỗi bit Để nâng