Hỡnh 4.1: Hoạt động của RTCP
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 đú thoỏ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 hoỏ 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 41
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 UDP.
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ó hoỏ 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ể.
- BYE or APP:
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).