CHƯƠNG 1 TỔNG QUAN VỀ KỸ THUẬT TRUYỀN VIDEO QUA GIAO THỨC HTTP VÀ MẠNG ĐỊNH NGHĨA BẰNG PHẦN MỀM SDN 1. Vấn đề về HTTP streaming hiện nay Ngày nay HTTP streaming là một công nghệ rất phổ biến mà nội dung đa phương tiện được phân phối liên tục từ máy chủ đến các thiết bị cuối [4], [5], [35]. Các phương thức streaming ngày càng được cải thiện một cách đáng kể do các khả năng của mạng và nhiều nhu cầu ứng dụng khác nhau của HTTP streaming trong đời sống. Kết nối băng thông rộng cùng với sự phát triển của các thiết bị di động hiệu suất cao tạo ra một suy nghĩ rằng, người dùng xem những gì mong muốn, bất cứ lúc nào và tại bất kỳ địa điểm nào.
Như được minh họa trong Hình 1.1, người dùng có thể sử dụng nhiều loại thiết bị khác nhau để truy cập vào một số lượng lớn nội dung đa phương tiện thông qua các kết nối khác nhau với tốc độ truy cập Internet khác nhau. Vì vậy, việc tạo ra các kỹ thuật tự động cung cấp chất lượng tốt nhất cho người tiêu dùng đã trở nên một thách thức hết sức quan trọng cho các nhà nghiên cứu. Máy chủ streaming Hình 1. Các loại thiết bị khác nhau kết nối với một máy chủ streaming.2 thể hiện cấu trúc cơ bản HTTP streaming.
Hoạt động của hệ thống như một tập hợp các yêu cầu và phản hồi HTTP nội dung đa phương tiện một cách tuần tự. Máy chủ có thể là một web server tiêu chuẩn có chức năng tạo ra các trình phương tiện khác nhau trong HTTP streaming thích ứng. Việc tạo ra các trình phương tiện này có thể được thực hiện ngoại tuyến (chế độ tĩnh) hoặc theo yêu cầu (chế độ động). Trong chế độ tĩnh, tệp mô tả (MPD) và trình nội dung phương tiện được tạo ra trước khi bắt 9 đầu bất kỳ một phiên HTTP streaming thích ứng nào.
Trong chế độ động, máy chủ tạo ra các phân đoạn đa phương tiện dựa trên các yêu cầu HTTP GET nhận được. Máy chủ Yêu cầu HTTP Yêu cầu HTTP Máy khách HTTP phân đoạn 1 phân đoạn 1 HTTP Đáp ứng HTTP Đáp ứng HTTP phân đoạn 1 phân đoạn 1 Khối thích Internet … … ứng tốc độ Yêu cầu HTTP Yêu cầu HTTP phân đoạn n phân đoạn n Đáp ứng HTTP Đáp ứng HTTP phân đoạn n phân đoạn n Tường lửa Hình 1. Hệ thống HTTP streaming Tại phía máy khách có thể gửi một loạt các yêu cầu GET đến máy chủ, mỗi yêu cầu là một phân đoạn đa phương tiện của một đại diện. Trong HTTP streaming thích ứng, máy khách thực hiện điều chỉnh tốc độ bằng cách xác định trình phương tiện phù hợp nhất có thể với dung lượng mạng cho phép.
Trong luận án này, việc thích ứng diễn ra mỗi lần trước khi yêu cầu một phân đoạn phương tiện mới. Từ hệ thống HTTP streaming trên, các hướng tiếp cận chính liên quan đến vấn đề này tập trung vào ba yếu tố như Hình 1. Tại phía máy chủ HTTP sẽ lưu các mức chất lượng của nội dung đa phương tiện cùng với tệp MPD của nó để phân phối đến các máy khách. Tại phía máy khách HTTP, phát triển các thuật toán thích ứng tốc độ để quyết định những phân đoạn đa phương tiện nào sẽ được tải về.
Tại phía mạng tập trung nghiên cứu các giải pháp quản lý, giám sát, phân phối nguồn tài nguyên và định tuyến đường đi cho các luồng lưu lượng. Mạng HTTP Streaming Máy Máy chủ khách HTTP HTTP Hình 1. Các hướng tiếp cận liên quan đến HTTP Streaming Vậy để nâng cao chất lượng streaming video, trong phạm vi luận án này chỉ tiếp cận theo hướng tại phía máy khách và phía mạng. Tại phía máy khách, xem xét đề xuất các thuật toán thích ứng tốc độ để lựa chọn một mức chất lượng video phù hợp nhất.
Tại 10 phía mạng, tập trung vào các vấn đề định tuyến đường đi tối ưu và phân bổ băng thông hợp lý cho tất cả các người dùng. Kỹ thuật streaming video và các chuẩn hiện tại Video là một loại dữ liệu đa phương tiện quan trọng trong các lĩnh vực truyền thông và giải trí. Lưu lượng truy cập dữ liệu video tăng trưởng rất nhanh chóng trong những năm gần đây. Vào thời kỳ đầu của kỷ nguyên Internet, những năm 1990, video được truyền bằng công nghệ chuyển mạch gói.
Dù vậy, khi truyền qua mạng Internet, người ta vẫn thường xuyên gặp những yếu tố bất lợi về băng thông, độ trễ và mất gói tin. Thông thường, người dùng chỉ có thể đọc video sau khi đã tải toàn bộ video về đĩa cứng trên máy mình. Thế nhưng, trong bối cảnh các video đang được cung cấp dưới dạng chất lượng cao thông qua Internet cũng như yêu cầu nhanh chóng, tiện dụng đang được người dùng Internet đặt lên hàng đầu thì phương pháp ấy đã không còn hiệu quả. Từ đây, một bài toán được đặt ra nhằm truyền tải video đến người dùng một cách nhanh chóng, thuận tiện mà vẫn đảm bảo được chất lượng cần thiết.
Ta có khái niệm “Streaming Video”, tức là truyền dữ liệu video một cách liên tục từ một nguồn đến một hay nhiều đích nào đó thông qua mạng Internet, nó cho phép dữ liệu video được xử lý trước khi nhận được hoàn toàn. Streaming video sử dụng cách thức phát lại các đoạn video được lưu trữ trên mạng tới người dùng đầu cuối mà không cần tải toàn bộ đoạn video đó về trên máy tính. Về bản chất, streaming video là quá trình chia nhỏ tệp video sau khi đã mã hóa thành các phân đoạn (segment), rồi lần lượt gửi từng phân đoạn tới một bộ đệm trên máy tính của người xem để giải mã và hiển thị nội dung phân đoạn đó. Kỹ thuật streaming video được sử dụng rộng rãi trong các ứng dụng mạng như: các phần mềm (các ứng dụng nghe nhạc, xem phim như VLC, KMPlayer; hay các trình duyệt web như: Internet Explorer, Google Chrome…) trên các máy khách truy cập và xem video từ các máy chủ theo mô hình máy chủ/máy khách; các ứng dụng họp trực tuyến, đào tạo từ xa.
Các bước thực hiện kỹ thuật streaming video như sau: • Các dữ liệu video sau khi mã hóa (encode) sẽ được chia nhỏ thành các phân đoạn và lưu trữ tại máy chủ (streaming server). • Phần mềm tại máy khách (media player, web browser, .) cần kết nối được và xác định tệp video trên máy streaming server muốn xem. • Yêu cầu streaming của video đó sẽ được gửi tới máy chủ để tìm tệp video đó. • Chương trình thực hiện streaming chạy trên máy streaming server sẽ chia tệp video thành các phân đoạn rồi gửi các phân đoạn đó tới các máy khách yêu cầu sử dụng các giao thức ràng buộc về thời gian (RTSP, RTP, RTCP).
11 • Khi các phân đoạn video về máy khách, sẽ được lưu trữ trong bộ đệm và nội dung các phân đoạn sẽ được giải mã (decode) và hiển thị thông qua các chương trình chơi video (Ví dụ: VLC, KMPlayer). Khi các phân đoạn video về máy khách, sẽ được lưu trữ trong bộ đệm và nội dung các phân đoạn sẽ được giải mã (decode) và hiển thị thông qua các chương trình chơi video (Ví dụ: VLC, KMPlayer). Về cơ bản, streaming video được chia thành hai dạng, đó là: - Video theo yêu cầu (Video on Demand – VoD): Là một hệ thống cho phép người dùng lựa chọn và xem nội dung video theo ý thích của mình trên truyền hình hoặc máy tính. Video theo yêu cầu là một trong những tính năng động được cung cấp bởi giao thức Internet.
VoD cung cấp cho người dùng một tập các video có sẵn để có thể lựa chọn. - Video thời gian thực hay còn gọi là truyền hình trực tiếp (Live Streaming): Là các video được truyền trực tiếp về các máy tính của người dùng thông qua mạng Internet từ nơi diễn ra sự kiện bằng các thiết bị truyền thông đa phương tiện. Luận án chỉ tập trung video theo yêu cầu VoD mà không quan tâm đến video theo thời gian thực Live Streaming. Vì streaming video đóng vai trò ngày một quan trọng trong truyền thông Internet nên đã có nhiều giao thức streaming video được giới thiệu hiện nay, bao gồm: • Real Time Transport Protocol (RTP) [36] – Giao thức truyền tải thời gian thực: được phát triển bởi Audio-Video Transport Working Group của Internet Engineering Task Force, chạy trên giao thức UDP (User Datagram Protocol).
• Real Time Messaging Protocol (RTMP) [37]: Được phát triển bởi Macromedia, là một giao thức độc quyền của Adobe. Có chức năng giám sát thông tin về truyền dẫn, chất lượng dịch vụ và cho phép đồng bộ hóa nhiều luồng đồng thời. • HTTP Live Streaming (HLS) [38]: Được phát triển bởi Apple, hoạt động trên nền giao thức HTTP. Đây cũng là một giao thức độc quyền của Apple, được sử dụng rộng rãi và hỗ trợ trên nhiều nền tảng bao gồm SmartTV, các trình duyệt Web, các thiết bị di động Android và iOS.
• Adobe HTTP Dynamic Streaming (HDS) [39]: Được phát triển bởi Adobe. Giống như HLS, giao thức này cũng hoạt động trên nền HTTP. • IIS Smooth Streaming [40] : Giao thức độc quyền, phát triển bởi Microsoft. • MPEG-DASH [6]: Đây là tiêu chuẩn quốc tế được phê chuẩn bởi MPEG và ISO vào năm 2012 và đã được sửa đổi vào năm 2019 với tên gọi là MPEG-DASH ISO/IEC 23009-1, là giải pháp thay thế cho các kỹ thuật streaming video độc quyền công nghiệp trên.
12 Trong các giao thức trên, RTP và RTMP hoạt động tốt trong các mạng IP được quản lý. Tuy nhiên, trong Internet ngày nay, các mạng được quản lý đã được thay thế, nhiều mạng không hỗ trợ truyền phát RTP. Ngoài ra, các gói RTP và RTMP thường không được phép thông qua tường lửa. Các giao thức còn lại đều dựa trên nền tảng HTTP.
Với sự gia tăng của băng thông Internet và sự phát triển vượt bậc của World Wide Web, nội dung đa phương tiện có thể được phân phối rất hiệu quả trong các gói tin lớn hơn sử dụng HTTP. Truyền phát HTTP có một số lợi ích là cơ sở hạ tầng Internet đã phát triển để hỗ trợ HTTP một cách hiệu quả. Ngoài ra, hầu hết tất cả các tường lửa đều được cấu hình để hỗ trợ các kết nối đi của HTTP. Thêm vào đó, với HTTP Streaming, máy khách sẽ quản lý việc truyền phát mà không cần duy trì trạng thái phiên trên máy chủ.
Do đó, việc triển khai dịch vụ với số lượng lớn máy khách không gây tốn kém nên hiện nay chủ yếu sử dụng các giao thức hoạt động trên nền tảng HTTP để cung cấp các dịch vụ streaming video.1 dưới đây so sánh các đặc điểm nổi bật giữa các chuẩn truyền video dựa trên nền HTTP.