Sau khi dữ liệu đa phương tiện được tối ưu cho truyền thông bằng việc số hóa và nén, dữ liệu được đóng gói trong các gói RTP. RTP là một giao thức truyền thông thời gian thực, và RTCP là một giao thức điều khiển truyền thông thời gian thực được sử dụng trong các phiên RTP. RTP và RTCP được thiết kế cho truyền thông thời gian thực trên mạng chuyển gói.
Cả SIP sử dụng RTP cho truyền thông dữ liệu audio và video số. Mỗi gói RTP chứa một hoặc nhiều tải phương tiện (media payload) và thông tin khác liên quan như các nhãn thời gian (time stamps) hay số thứ tự gói tin (sequence numbers).
Thông thường, RTP và RTCP được sử dụng với giao thức UDP trong tầng vận chuyển và giao thức IP trong tầng mạng. RTP sử dụng các cổng UDP động để thỏa hiệp giữa bên gửi và bên nhận về các dòng phương tiện. Tuy nhiên, RTP và RTCP không phụ thuộc vào các giao thức tầng mạng và tầng vận chuyển.
1. RTP
RTP (Real-Time Transport Protocol) cung cấp truyền thông end-to-end cho các ứng dụng thời gian thực như Windows Messenger và Phone Dialer. RTP chứa các thông tin về phiên thời gian thực do vậy các ứng dụng có thể điều chỉnh các gói sai, hoặc gói bị mất. Phần lớn thông tin này được chứa trong RTP header.
Hình 1.15. Cấu trúc gói RTP.
Bảng 1.11. Giao thức gói RTP
Trường Ý nghĩa
Version Xác định phiên bản của RTP. Windows XP hỗ trợ phiên bản 2. Padding Nếu là 1, một hoặc nhiều octets được đệm vào cuối tải. Octet
đệm đầu tiên xác định tổng số octet đệm.
Extension Nếu bít này bằng 1, một header mở rộng được thêm.
CSRC count Số định danh CSRC (Contributing Source) theo sau RTP header cố định.
Marker RTP profile xác định ý nghĩa và sử dụng của bít Marker. Payload type Kiểu tải RTP.
Sequence number
Số thứ tự gói tin, được bắt đầu bằng một giá trị ngẫu nhiên và được tăng lên một mỗi khi một gói tin RTP. Giá trị này có thể được các ứng dụng thời gian thực sử dụng để xá định các gói RTP đã mất.
Timestamp Giá trị nhãn thời gian biểu diễn thể hiện lấy mẫu octet đầu tiên của gói RTP. Tần số lẫy mẫu được lựa chọn tùy thuộc vào kiểu dữ liệu.
Synchronization source (SSRC)
Giá trị SSRC được khởi tạo bằng một số ngẫu nhiên, xác định nguồn của dòng RTP trong mỗi phiên RTP.
Contributing source (CSRC)
CSRC biểu diễn các nguồn đóng góp vào phiên RTP, giá trị SSRC của mỗi nguồn được thêm vào CSRC bởi RTP mixer.
2. RTCP
Gói RTCP (Real-Time Transport Control Protocol) chứa thông tin về chất lượng của phiên RTP và các thực thể tham gia phiên. Cả user agent gửi và user agent nhận truyền các gói RTCP theo chu kỳ đến tất cả các thực thể tham gia phiên RTP. Ứng dụng thời gian thực co thể sử dụng thông tin này để giám sát chất lượng phiên RTP; ví dụ theo dõi các gói RTP bị mất.
Có năm loại gói RTCP như được thể hiện trong Bảng 1.13.
Bảng 1.12. Các kiểu gói RTCP
Kiểu gói RTCP Ý nghĩa
SR (Sender Report) Chứa thông tin về chất lượng phiên RTP. RR (Receiver Report) Chứa thông tin về chất lượng phiên RTP. SDES (Source
Description)
Chứa thông tin chứa các định danh của các thực thể tham gia phiên RTP.
BYE (Goodbye) Một hay nhiều nguồn không còn hoạt động nữa trong phiên RTP.
APP (Application- defined)
Dành cho ứng dụng mới sử dụng.
Các thực thể tham gia phiên RTP gửi các gói RR, và nếu chúng là những user agent hoạt động chúng sẽ gửi cả các gói SR. Gói RR có hai phần, header và các khối báo cáo (report blocks) – mỗi khối báo cáo cho một nguồn, như được thể hiện trong Hình 1.16. Gói RTCP RR Header Report Block 1 Report Block…n Hình 1.16. Cấu trúc gói RR
Gói SR, được thể hiện trong Hình 1.17, khác gói RR duy nhất một điểm là nó có thêm một trường thông tin user agent gửi có kích thước 20-byte.
Gói RTCP SR Header Sender Information Report Block 1 Report Block…n Hình 1.17. Cấu trúc gói SR 3. Cấu trúc header của RR và SR
Cấu trúc header của RR và SR được thể hiện trong Hình 1.18. Khác nhau duy nhất trong header của hai loại này là giá trị packet type.
Hình 1.18. Cấu trúc header của RTCP RR và SR Bảng 1.13. Cấu trúc của RR và SR
Mục Ý nghĩa
Version Phiên bản RTP. Windows XP hỗ trợ phiên bản 2.
Padding Nếu là 1, một hoặc nhiều octet được đệm vào cuối tải. Octet đầu tiên cho biết tổng số octet được đệm.
Reception Report Count (RC)
Số khối tiếp nhận trong gói RTCP.
Length Độ dài của gói RTCP theo đơn vị từ (một từ = 32 bít). SSRC Chứa định danh nguồn đồng bộ cho gói RTCP.
Trường thông tin user agent gửi chứa trong SR có cấu trúc như Hình 1.19.
Hình 1.19. Thông tin user agent gửi trong RTCP
Khối báo cáo
Mỗi gói SR hoặc RR có thể chứa không hay nhiều khối báo cáo. Một khối báo cáo bên trong một SSRC theo ngay sau SSRC header.
Cấu trúc của các khối báo cáo tương tự cấu trúc goi SR và RR, được thể hiện trong Hình 1.20.
Mục Ý nghĩa
NTP
Timestamp
Chứa nhãn thời gian của Giao thức Thời gian Mạng (Network Time Protocol - NTP).
RTP
Timestamp
Chứa nhãn thời gian tương tự NTP Timestamp, ngoại trừ RTP Timestamp có cùng đơn vị và cùng offset với nhãn thời gian trong header của gói RTP.
Sender’s Packet Count
Đếm số gói RTP được gửi bởi user agent gửi kể từ đầu phiên đến khi gói SR này được gửi. Giá trị này được khởi tạo lại nếu, vì lý do gì đó, SSRC của user agent gửi đã thay đổi giá trị.
Sender’s Octet Count
Đếm số octet được gửi bởi user agent gửi kể từ đầu phiên đến khi gói SR này được gửi. Giá trị này được khởi tạo lại nếu, vì lý do gì đó, SSRC của user agent gửi đã thay đổi giá trị.
Hình 1.20. Cấu trúc khối báo cáo RTCP Bảng 1.14. Cấu trúc khối báo cáo RTCP
Mục Ý nghĩa
SSRC_n Chứa định danh nguồn đồng bộ cho mỗi khối báo cáo chứa trong gói RTCP.
Fraction Lost Chứa tỷ lệ gói RTP bị mất từ nguồn (SSRC_n) từ khi gói SR hoặc RR cuối cùng được gửi.
Cumulative Number of Packets Lost
Đếm số gói bị mất từ nguồn (SSRC_n) tính từ đầu phiên. Giá trị này có thể được dẫn xuất từ số thứ tự trong các gói RTP.
Extended Highest Sequence Number Received
Trường này được chia làm hai phần. 16 bít thấp thể hiện số thứ tự cao nhất nhận được trong gói RTP từ nguồn (SSRC_n). 16 bít cao thể hiện số chu kỳ đánh thứ tự.
Interarrival Jitter
Ước lượng khoảng thời gian, theo đơn vị nhãn thời gian, giữa các lần nhận gói tin RTP. Giá trị này có thể được dẫn xuất từ khoảng cách giữa các gói.
Last SR
Timestamp (LSR)
Nhãn thời gian SR cuối cùng nhận được.
Delay Since
Last SR
(DLSR)
Khoảng thời gian, tính theo số nhịp – mỗi nhịp bằng 1/65536 giây, từ lúc nhận gói SR cuối cùng đến lúc gửi khối báo cáo này đi.