8. Timestamp: 32 bits
4.2. CÁC LOẠI GĨI TIN RTCP:
Chúng ta sẽ đề cập đến nhiều loại gĩi tin RTCP tương ứng với những loại thơng tin điều khiển khác nhau:
- SR (Sender report): Bản tin phía gởi, dùng để thơng tin về trạng thái truyền và nhận của phía gởi tin.
- RR (Receiver report): Bản tin người nhận, dùng để thơng tin về trạng thái nhận
của phía nhận tin.
- SDES (Source description items): Thơng tin mơ các về nguồn gởi, bao gồm cả
CNAME.
- BYE: Dùng khi thành viên nào đĩ thốt khỏi hội thảo.
- APP (Application specific functions): Xác định các chức năng phụ thuộc vào từng ứng dụng cụ thể.
Mỗi gĩi tin RTCP được bắt đầu với phần tiêu đề cố định tương tự như của gĩi tin
RTP, tiếp theo là các thành phần cấu trúc, chúng cĩ thể cĩ chiều dài biến đổi tuỳ thuộc
vào loại của gĩi tin, nhưng phải giới hạn trong 32-bit.
Sự chuẩn hố và các trường cĩ chiều dài cố định trong mỗi gĩi RTCP làm cho chúng cĩ thể được lưu trong ngăn xếp. Nhiều gĩi RTCP cĩ thể được kết nối với nhau
thành gĩi ghép (compound packet ), mà khơng cần sử dụng dấu phân cách giữa các gĩi RTCP, khi đưa chúng xuống đĩng gĩi ở các lớp dưới. Ví dụ như đĩng trong các gĩi
37
Mỗi gĩi RTCP trong gĩi ghép cĩ thể được xử lý một cách độc lập, khơng cần dựa
vào thứ tự hoặc sự kết hợp giữa các gĩi. Tuy nhiên để thực hiện được điều này thì ta phải thiết lập một số ràng buộc:
- Các thơng báo trạng thái (trong RS hoặc RR) phải được gởi đi định một cách thường xuyên nhất cĩ thể, điều này cho phép để cập nhật các thơng tin trạng
thái. Trong mỗi gĩi ghép RTCP, phải cĩ 1 gĩi mang bản tin (RS hoặc RR).
- Một người nhận mới cần nhận được giá trị CNAME càng sớm càng tốt. Điều
này giúp cho việc định danh nguồn gởi, từ đĩ cĩ thể thực hiện đồng bộ giữa các
thành phần (video/audio). Do vậy trong mỗi gĩi ghép RTCP cần phải cĩ gĩi
SDES chứa CNAME.
- Số các kiểu gĩi cĩ thể chứa trong phần đầu tiên của gĩi ghép. Để giới hạn sự gia tăng của các hằng số định kiểu, giá trị này được chứa trong 2 Byte.
Mỗi gĩi tin RTCP phải được gởi trong một gĩi ghép chứa được ít nhất 1 bộ các gĩi
RTCP riêng lẻ được chỉ ra sau đây:
- Encryption prefix: tiền tố của phần mã mật.
Trường này chỉ được sử dụng khi gĩi tin được mã hố theo phương thức mã mật được đề cập ở phần sau. Đây là một chuỗi 32-bit truyền kèm theo mỗi gĩi ghép. Nếu trường đệm (padding) được truyền theo mã mật thì nĩ sẽ được thêm vào ở gĩi cuối cùng trong gĩi ghép.
- SR hoặc RR:
Gĩi RTCP đầu tiên trong gĩi ghép luơn là gĩi report packet, để xác định
hiệu lực của phần header. Sự kiện này phải luơn được đảm bảo. Nếu trong trường
hợp khơng cĩ dữ liệu được gởi hay nhận thì RR rỗng sẽ được gởi, thậm chí trong trường hợp trong gĩi ghép chỉ chứa 1 gĩi BYTE.
- Additional RRs:
Khi số nguồn gởi các thơng tin trạng thái vượt quá 31 (giá trị tối đa mà SR hoặc RR cĩ
thể chứa), khi đĩ gĩi RR sẽ được thêm vào sau gĩi report packet khởi tạo.
- SDES:
Một gĩi SDES cĩ chứa CNAME Phải được thêm vào mỗi gĩi RTCP ghép. Cịn một số
các thơng số về nguồn phát khác cĩ thể được lựa chọn, tuỳ thuộc vào từng ứng dụng
cụ thể.
38
Một số gĩi RTCP loại khác cĩ thể được đặt ở các vị trí bất kỳ. Ngoại trừ gĩi BYTE
nên nằm ở vị trí cuối cùng, với các giá trị SSRC/CSRC.
Hình 4.2: Minh hoạ việc ghép các gĩi RTCP vào gĩi UDP.
Thơng thường, các bộ translators và mixers sẽ xử lý từng gĩi RTCP riêng lẻ từ các
nguồn khác nhau, sau đĩ chuyển tiếp trong một gĩi ghép. Nếu gĩi ghép này cĩ kích
thước vượt quá giá trị của một đơn vị truyền tải (maximum transmission unit), khi đĩ
nĩ sẽ được phân thành các gĩi ghép nhỏ hơn để cĩ thể tryền được trong những gĩi của
giao thức lớp dưới. Nhưng chú ý rằng, mỗi gĩi ghép sau khi chia vẫn phải đảm bảo được bắt đầu bởi một gĩi SR hoặc RR.
Nên cài đặt cơ chế tự động bỏ qua một gĩi RTCP mà ta khơng xác định được loại.
Cũng cần cài đặt thêm cơ chế để một loại gĩi RTCP mới cĩ thể được đăng ký với
IANA (the Internet Assigned Numbers Authority).