CHƢƠNG 2 : STREAMING VIDEO
2.3 Các giao thức Streaming Video
2.3.1 Giao thức truyền thời gian thực (RTP)
Giao thức truyền thời gian thực (RTP – Real-Time Transport Protocol) định nghĩa một định dạng đóng gói chuẩn dùng cho việc truyền nhận âm thanh và video qua mạng Internet. Giao thức này đƣợc phát triển bởi Nhóm Truyền âm thanh – video thuộc IETF và đƣợc xuất bản lần đầu tiên vào năm 1996 (Chuẩn RFC 1889) [25]. RTP không bao gồm cổng chuẩn TCP hoặc UDP dùng cho truyền thông. Chuẩn duy nhất mà giao thức phải tuân thủ là các truyền thông UDP sẽ đƣợc thực hiện qua một cổng chẵn và cổng lẻ cao hơn tiếp theo sẽ đƣợc sử dụng cho các truyền thông Giao thức kiểm soát RTP (RTCP). Mặc dugf không có chuẩn nào đƣợc chỉ định, RTP thông thƣờng vẫn đƣợc cấu hình để sử dụng các cổng 16384-32767. RTP có thể chuyển bất kỳ dữ liệu nào dƣới dạng thời gian thực nhƣ các tƣơng tác âm thanh và video. Thủ tục thiết lập cuộc gọi và chia nhỏ thƣờng đƣợc sử dụng bởi giao thức SIP (Giao thức khởi tạo phiên làm việc). Trên thực tế, RTP sử dụng một dải các cổng động và điều này làm cho nó khó có thể đi qua đƣợc các hệ thống tƣờng lửa. Để giải quyết vấn đề này, thông thƣờng chúng ta cần phải thiết laaoj một máy chủ STUN (Một cách thức truyền đơn giản của UDP qua máy chủ các bộ dịch chuyển địa chỉ mạng NAT)
Ban đầu giao thức đƣợc thiết kế nhƣ một giao thức quảng bá (multicast), nhƣng kể từ khi đƣợc áp dụng cho một số ứng dụng dạng điểm-điểm (unicast) thì nó thƣờng xuyên đƣợc sử dụng trong các hệ thống streaming (kết hợp với giao thức RTSP)
nhƣ các ứng dụng truyền hình hội nghị hay các hệ thống liên lạc bộ đàm (kết hợp với H.323 hoặc SIP) và đánh dấu sự ra đời của nền công nghiệp Voice over IP. Các ứng dụng sử dụng RTP đều rất ít khi mất mát các gói tin, tuy nhiên rất hay xảy ra trễ. Vì vậy, UDP là một lựa chọn tốt hơn so với TCP trong các ứng dụng này. Theo Chuẩn RFC 1889, các dịch vụ đƣợc hỗ trợ bởi RTP gồm có:
- Xác định kiểu dữ liệu: chỉ ra kiểu nội dung nào đƣợc chuyển đi - Đánh số tuần tự: số tuần tự UDP
- Gán nhãn thời gian: biểu diễn thời gian của nội dung đƣợc chuyển đi trong UDP
- Giám sát truyền nhận
RTP cũng đã đƣợc ITU-T phát hành với chuẩn H.225.0 nhƣng sau đó đã bị loại bỏ kể từ khi IETF phát hành các chuẩn RFC bao gồm: chuẩn Internet (STD 64) đƣợc định nghĩa trong RFC 3550 (thay thế RFC 1889), RFC 3551 (STD 65) (thay thế RFC 1890) định nghĩa hồ sơ cấu hình cho Hội nghị truyền hình và âm thanh với Kiểm soát tối thiểu. RFC 3771 định nghĩa hồ sơ Giao thức Bảo mật Truyền thời gian thực (SRTP, thực chất là một mở rộng từ RTP cho Hội nghị Âm thanh và Truyền hình) có thể đƣợc sử dụng chi việc bảo mật, xác thực thông điệp và bảo đảm sự truyền nhận các dòng âm thanh và video.
Cấu trúc gói RTP Bits 0-1 2 3 4-7 8 9-15 16-31 0 Ver. P X CC M PT Số tuần tự 32 Nhãn thời gian 64 Các bộ nhận dạng SSRC 96+(N×32) ... các bộ nhận dạng CSRC ...
96+(CC×32) Tiêu đề (lựa chọn), chỉ ra độ dài "AHL"
96+(CC×32) + (X×(AHL+16))
Dữ liệu
Trong đó:
- Ver. (gồm 2 bit) chỉ ra phiên bản của giao thức. Phiên bản hiện tại là 2. - P (một bit) đƣợc sử dụng để chỉ các byte đệm tại cuối mỗi gói RTP - X (một bit) xác định phần mở rộng giao thức đƣợc sử dụng trong gói. - CC (bốn bit) chứa số các bộ nhận dạng SCRC nằm kế tiếp phần tiêu đề. - M (một bit) đƣợc sử dụng tại mức ứng dụng và đƣợc định nghĩa bởi một hồ
sơ. Nếu nó đƣợc thiết laaoj, điều này có nghĩa là dữ liệu hiện tại có một số phần đặc biệt liên quan đến ứng dụng
- PT (bảy bit) chỉ ra định dạng của dữ liệu đƣợc mang và xác định cách thức dịch bởi ứng dụng.
- SSRC chỉ ra nguồn đồng bộ
2.3.1 Giao thức điều khiển truyền thời gian thực (RTCP)
Giao thức điều khiển thời gian thực – RTCP (Real-Time Control Protocol) là một giao thức phát triển tiếp của RTP. Nó đƣợc định nghĩa trong RFC 3550 (giao thức thay thế RFC 1889).
RTCP viết tắt của Giao thức điều khiển truyền thời gian thực cung cấp thông tin điều khiển băng thông cho một luồng RTP. Nó kết hợp với RTP trong việc truyền nhận và đóng gọi dữ liệu đa phƣơng tiện nhƣng không tham gia chuyển bất kỳ gói dữ liệu nào. Giao thức đƣợc sử dụng một cách định kỳ để truyền các gói điều khiển tới các điểm tham gia trong một phiên đa phƣơng tiện dòng (streaming multimedia). Chức năng chính của RTCP là hỗ trợ phản hồi về Chất lƣợng dịch vụ QoS cho RTP, nó tập hợp các thông tin thống kê về kết nối dữ liệu và các thông tin khác nhƣ số byte, các gói tin đã đƣợc gửi, các gói tin đã mất, thông tin phản hồi hoặc độ trễ. Ứng dụng có thể sử dụng các thông tin này để tăng Chất lƣợng dịch vụ QoS bằng cách giới hạn luồng hoặc có thể sử dụng một bộ codec nén thấp thay cho codec nén cao. RTCP đƣợc sử dụng cho báo cáo QoS.
Có một số kiểu gói RTCP nhƣ: gói báo cáo Bộ gửi, gói báo cáo Bộ nhận, gói RTCP mô tả nguồn, gói RTCP Tạm biệt và các gói RTCP xác định ứng dụng.
Bản thân RTCP không hỗ trợ bất kỳ mã hóa hoặc xác thực luồng nào. Giao thức RSTCP (Giao thức bảo mật truyền thời gian thực) có thể đƣợc sử dụng cho các mục đích này.
Hình 2- 1: Kiến trúc của một ứng dụng truyền dữ liệu thời gian thực