WebRTC - Как алгоритм управления перегрузкой Google для WebRTC (RRTCC) контролирует перегрузку?

Я новичок в RRTCC, и я действительно не понимаю, как RRTCC регулирует битрейт входящего медиа. Я пытался прочитать интернет-проект RRTCC, но не могу понять: https://tools.ietf.org/html/draft-alvestrand-rmcat-congestion-03

Он рассчитывает предполагаемую пропускную способность на основе задержки и потерь, так что дальше? Как он может напрямую контролировать скорость отправки, чтобы контролировать заторы?

2 ответа

Решение

Приемник RTP напрямую не контролирует скорость отправки. Он просто отправляет информацию о состоянии отправителю RTP, который является единственным, способным контролировать свою собственную скорость отправки.

draft-alvestrand-rmcat-congestion был заменен draft-ietf-rmcat-gcc, поэтому я рекомендую использовать более позднюю версию.

В разделе 2. Модель системы объясняется, что получатель RTP должен также выступать в качестве отправителя RTCP, чтобы отправлять сообщения REMB отправителю RTP. Эти сообщения должны быть отправлены получателем RTP, как только он обнаружит любую перегрузку, а затем продолжать отправлять его со скоростью один раз в секунду, даже если перегрузка не происходит. Затем отправитель RTP использует информацию в принятом сообщении, чтобы решить, может ли битрейт передачи быть повышен или должен быть немедленно понижен.

Я один из авторов проекта. Если вы заинтересованы в понимании критериев проектирования, вы также можете взглянуть на этот документ:

G. Carlucci, L. De Cicco, S. Holmer и S. Mascolo. Анализ и разработка Google Congestion Control для веб-коммуникаций в реальном времени (WebRTC) Proc. ACM Mmsys 2016, Клагенфурт, Австрия, май 2016

который доступен для скачивания на http://c3lab.poliba.it/images/6/65/Gcc-analysis.pdf.

Другие вопросы по тегам