Короткое определение

Формат обратной связи по управлению перегрузками в WebRTC. Получатель передаёт отправителю детальные временные метки прибытия пакетов через RTCP, что позволяет оценщику пропускной способности отправителя принимать точные решения.

Transport-CC (определён в `draft-holmer-rmcat-transport-wide-cc-extensions`, изначально разработка Google, активно используется с 2016 года) – механизм обратной связи на уровне пакетов, лежащий в основе современной оценки пропускной способности в WebRTC. В отличие от классических RTCP-отчётов получателя, которые предоставляют грубую статистику по потерям и джиттеру раз в несколько секунд, Transport-CC отправляет компактное RTCP-сообщение с точным временем прихода каждого недавнего RTP-пакета каждые несколько сотен миллисекунд.

Отправитель использует этот временной поток для оценки пропускной способности узкого места и задержки в очереди. Алгоритм Google GCC (Google Congestion Control) – стандартный механизм управления перегрузками в WebRTC в Chrome и Firefox – применяет обратную связь Transport-CC для постоянной подстройки скорости отправки. В результате получается значительно более быстрая адаптация к изменению пропускной способности по сравнению с классическим RTCP, что особенно важно для субсекундного WebRTC, где отсутствуют буферы для сглаживания ошибок.

Transport-CC – асимметричный механизм: получатель отправляет подробную обратную связь, а отправитель подстраивается под неё. Поддержка необходима с обеих сторон (настраивается через SDP-расширение `transport-cc` и строки `goog-remb` / `goog-cc`). Современные WebRTC-стеки по умолчанию поддерживают Transport-CC; старые или специализированные реализации могут использовать оценку пропускной способности со стороны получателя, которая работает менее точно. В кастомных WebRTC-пайплайнах для low-latency стримов часто разрабатывают собственные оценщики пропускной способности, напрямую использующие данные Transport-CC.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.