RTCP được dùng cùng với RTP, đặc biệt khi truyền muilticast từ một hoặc nhiều người gửi tới nhiều người nhận. Gói RTCP được truyền trong một phiên RTP từ một người tới tất cả những người khác trong phiên đó. Gói RTCP được truyền tới tất cả những người tham gia dùng địa chỉ IP multicast. Với một phiên RTP, có một địa chỉ multicast và tất cả các gói RTP, RTCP dùng địa chỉ này. Các gói RTP và RTCP được gửi qua các số cổng khác nhau [2].
Hình 2.9. Sử dụng RTCP cùng RTP
RTCP không đóng gói các đoạn audio/video. Nó được gửi theo định kì và chứa các báo cáo về phía gửi, hoặc phía nhận cho biết những số liệu thống kê trạng thái của phía gửi hoặc phía nhận. Những số liệu thống kê này gồm: Số gói tin được gửi, số gói tin mất, jitter,… Đặc tả RTP không cho biết ứng dụng làm gì với những thông tin này. Người phát triển ứng dụng có thể quyết định việc xử lý các thông tin này. Phía gửi có thể dùng thông tin này để thay đổi tốc độ truyền,… Sau đây là các loại gói tin trong giao thức RTCP.
Gói tin mô tả việc nhận
Với mỗi luồng RTP mà phía nhận nhận được, phía nhận sẽ tạo ra một báo cáo. Phía nhận sẽ gộp các báo cáo này vào một gói RTCP. Gói tin này được gửi multicast tới tất cả mọi bên tham gia phiên RTP. Các báo cáo được tạo ra gồm các trường, trong đó có các trường quan trọng gồm:
Số SSRC của luồng RTP mà báo cáo được tạo ra
Tỉ lệ gói tin bị mất trong luồng RTP. Phía nhận sẽ tính số gói tin RTP bị mất chia cho số gói tin được gửi. Nếu phía gửi nhận được báo cáo cho biết phía nhận chỉ nhận được một phần nhỏ của các gói tin được truyền, nó sẽ chuyển sang tốc độ mã hóa thấp hơn chẳng hạn.
Số thứ tự cuối cùng nhận được trong luồng gói tin RTP.
Thời gian lệch trung bình giữa các gói tin được nhận thành công tại phía nhận.
Gói tin mô tả phía gửi
Với mỗi trường RTP truyền đi, phía gửi tạo các gói tin mô tả phía gửi. Các gói tin này chứa các thông tin về luồng RTP bao gồm:
Số SSRC của luồng RTP.
Nhãn thời gian và thời gian thực của gói RTP cuối cùng được tạo trong luồng gói tin.
Số byte đã được gửi trong luồng gói tin.
Các gói tin mô tả phía gửi được sử dụng để đồng bộ hóa các luồng dữ liệu đa phương tiện khác nhau trong cùng một phiên RTP. Xét một ví dụ: Một ứng dụng Video Conference trong đó bên gửi tạo ra 2 luồng gói tin RTP độc lập: Một luồng audio, một luồng video. Các nhãn thời gian trong các gói RTP được tính theo đồng hồ lấy mẫu chứ không theo thời gian thực tế. Mỗi gói tin RTP kiểu gói tin mô tả phía gửi được gán nhãn thời gian và thời gian thực của gói tin gần nhất được tạo ra ở phía gửi. Do đó các gói tin mô tả phía gửi sẽ tạo ra một liên hệ giữa thời gian lấy mấu với thời gian thực. Phía nhận có thể dùng các thông số này để đồng bộ việc thực hiện chạy audio và video.
Gói tin mô tả nguồn
Với mỗi luồng gói tin RTP mà phía gửi truyền đi, phía gửi cũng tạo và truyền đi các gói mô tả nguồn. Những gói này chứa thông tin về nguồn gửi như: Địa chỉ email của phía gửi, tên người gửi và ứng dụng tạo ra luồng gói tin RTP, số SSRC của luồng RTP. Những gói tin này cung cấp một ánh xạ giữa định danh nguồn với tên người dùng hoặc tên máy chạy ứng dụng.
Chia sẻ băng thông trong RTCP
Xét ví dụ một phiên RTP gồm có 1 bên gửi và một số lượng lớn bên nhận. Nếu mỗi người nhận theo định kì tạo các gói RTCP, thì băng thông tổng hợp của các gói tin RTCP có thể lớn hơn nhiều so với băng thông của các gói RTP gửi bởi bên gửi. Lưu lượng RTP được gửi multicast, không thay đổi khi lượng người nhận tăng trong khi lưu lượng truyền RTCP tăng tuyến tính với số người nhận. Do đó cần phải giới hạn băng thông cho các gói tin RTCP.
Các gói tin RTCP bị hạn chế băng thông, chỉ được phép chiếm tới khoảng 5% băng thông của phiên ứng dụng. Ví dụ: Giả sử có một bên gửi, gửi video với tốc độ 2Mbps. RTCP sẽ giới hạn băng thông dành cho mình tối đa là 5%*2Mbps = 100Mbps. 75% của băng thông dành cho RTCP = 75%*100Kbps = 75Kbps được chia đều cho những người nhận, 25% còn lại = 25Kbps được giành cho người gửi. Phần 75% băng thông sẽ được chia đều cho những người nhận. Mỗi bên tham gia (nhận hay gửi) đều xác định được khoảng thời gian trung bình để truyền gói tin RTCP bằng cách lấy kích thước gói tin RTCP trung bình chia cho băng thông mà nó được cấp cho. Ví dụ số lượng bên nhận tham gia phiên ứng dụng là N, băng thông của phiên ứng dụng là R, kích thước trung bình gói tin
RTCP là S. Khi đó, thời gian trung bình mà mỗi người nhận truyền gói tin RTCP sẽ là: R S N T * 5 . 0 * 75 . 0 *
Thời gian trung bình mà phía gửi truyền gói tin RTCP sẽ là R S N T * 5 . 0 * 25 . 0 * 2.8. Kết luận
Như vậy, đối với các ứng dụng truyền thông đa phương tiện thời gian thực, như: Video Conference.... thì việc giảm tối thiểu độ trễ, giảm jitter và mất gói tin luôn được đặt lên hàng đầu và được các nhà sản xuất thiết bị truyền hình đặc biệt quan tâm giải quyết. Đến nay, đã có nhiều giải pháp cho giải quyết các vấn đề trên, giải pháp đường truyền, giải pháp tại thiết bị đầu cuối (khôi phục gói tin bị mất tại điểm nhận),.... Tuy nhiên, một trong những giải pháp quan trọng và quyết định đó là đường truyền.
Trong chương này luận văn đã trình bày một số giải pháp đảm bảo cho đường truyền tốt hơn, đó là: giải pháp giảm dữ liệu truyền trên mạng (nén video, nén audio) và giải pháp đưa ra các giao thức đặc biệt. Tuy nhiên, các giải pháp này chỉ giúp làm tăng chất lượng dịch vụ. Do vậy, các giải pháp này chưa đủ để đảm bảo cho chất lượng dịch vụ của Video Conference được tốt.
Để giải quyết vấn này, trong chương tới luận văn tiếp tục đưa ra một số giải pháp mạnh hơn, đó là các mô hình đảm bảo chất lượng vụ đang được sử dụng trên mạng hiện nay, mô hình dịch vụ tích hợp IntServ và mô hình dịch vụ phân biệt DiffServ và đưa ra mô hình đề xuất kết hợp mô hình IntServ với mô hình DiffServ sử dụng hàm ánh xạ.
Chƣơng 3
CÁC MÔ HÌNH ĐẢM BẢO CHẤT LƢỢNG DỊCH VỤ CHO TRUYỀN THÔNG ĐA PHƢƠNG TIỆN
Trong chương này, chúng tôi sẽ nghiên cứu và trình bày chi tiết từng mô hình IntServ và mô hình DiffServ. Đặc biệt, chúng tôi đưa ra một mô hình đề xuất đó là kết hợp hai mô hình IntServ và mô hình DiffServ với nhau bằng hàm ánh xạ. Các phần dưới đây là nội dung chi tiết mà chúng tôi muốn trình bày trong chương này.
3.1. Mô hình dịch vụ tích hợp IntServ (Intergrated Services)