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ộ