CÁC LOẠI GÓI TIN RTCP:

Một phần của tài liệu TRUYỀN DÒNG DỮ LIỆU THỜI GIAN THỰC (Trang 36 - 38)

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 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ộ translatorsmixers 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).

Một phần của tài liệu TRUYỀN DÒNG DỮ LIỆU THỜI GIAN THỰC (Trang 36 - 38)