Entenda o que é RTCP, Sender Reports, Receiver Reports, jitter, perda, sincronização e como o protocolo complementa RTP em streaming de vídeo.

Confira!

O RTCP — RTP Control Protocol é o protocolo de controle associado ao RTP. Enquanto RTP transporta a mídia em tempo real, RTCP envia informações de monitoramento, identificação e temporização que ajudam participantes de uma sessão a avaliar a qualidade da entrega e a coordenar aspectos do fluxo.

O que é o protocolo RTCP

RTCP é definido no mesmo RFC 3550 que especifica RTP. O documento trata os dois protocolos como componentes estreitamente relacionados: RTP carrega dados com características de tempo real e RTCP fornece funções de controle sobre a sessão.

Essa relação explica por que RTCP não deve ser confundido com RTSP. RTCP acompanha uma sessão RTP e fornece feedback operacional; RTSP é um protocolo de aplicação para estabelecer e controlar a entrega de mídia.

Para que serve o RTCP

A função principal do RTCP é fornecer feedback sobre a qualidade da distribuição. Participantes podem informar dados como quantidade de pacotes recebidos, perdas, jitter e informações temporais.

Esses relatórios permitem que aplicações entendam se a sessão está degradada e, em arquiteturas mais avançadas, adaptem bitrate, comportamento de codificação ou outros parâmetros por meio de mecanismos adicionais.

Sender Reports e Receiver Reports

Entre os principais tipos de mensagens estão Sender Report (SR) e Receiver Report (RR).

Sender Reports são enviados por participantes que transmitiram mídia RTP e incluem informações de temporização que permitem relacionar o timestamp RTP a uma referência de tempo. Receiver Reports apresentam estatísticas sobre a qualidade de recepção das fontes monitoradas.

Esses dados são especialmente úteis quando é necessário correlacionar fluxos ou investigar problemas de perda e jitter.

Jitter, perda e qualidade de entrega

RTCP não corrige automaticamente jitter nem recupera pacotes perdidos. Ele mede e reporta informações que ajudam a caracterizar o comportamento da sessão.

O jitter informado pelo RTCP representa uma estimativa da variação no tempo de chegada dos pacotes. Uma rede pode apresentar baixa perda e ainda assim sofrer jitter suficiente para exigir buffers maiores ou causar impacto na reprodução em tempo real.

Da mesma forma, a fração de pacotes perdidos oferece uma visão da qualidade da entrega, mas deve ser interpretada com contexto: codecs, bitrate, GOP, congestionamento e capacidade dos equipamentos influenciam o efeito percebido no vídeo.

CNAME e identificação de participantes

RTCP também transporta informações de identificação, incluindo o CNAME — Canonical Name, utilizado para associar fontes dentro de uma sessão e apoiar sincronização e identificação persistente entre mudanças de SSRC.

Essa função é particularmente importante quando múltiplos fluxos, como áudio e vídeo, precisam ser correlacionados como pertencentes ao mesmo participante.

Sincronização de áudio e vídeo

Um dos usos técnicos mais importantes dos Sender Reports é correlacionar timestamps RTP de diferentes streams com uma referência de tempo comum. Isso permite que um cliente sincronize, por exemplo, áudio e vídeo que usam clocks RTP diferentes.

Sem essa correlação, cada fluxo teria sua própria linha de tempo local e seria mais difícil manter sincronização labial ou alinhamento entre mídias.

RTCP usa a mesma porta do RTP?

Historicamente, RTP e RTCP costumavam utilizar portas UDP separadas, geralmente com RTP em uma porta par e RTCP na porta seguinte. Entretanto, o RFC 5761 definiu multiplexação de RTP e RTCP em uma única porta.

Portanto, não é correto assumir que todo sistema moderno obrigatoriamente usa duas portas distintas. O comportamento depende do perfil e da negociação implementada.

RTCP no streaming ONVIF

Em sistemas ONVIF que utilizam RTP, RTCP participa do ecossistema de transporte de mídia fornecendo feedback e informações de sessão. Ele pode ser relevante tanto para operação normal quanto para troubleshooting.

Quando uma câmera transmite vídeo com perda intermitente, capturas de tráfego RTCP podem ajudar a distinguir problemas de rede, jitter e perda de pacotes de falhas de configuração do RTSP ou do codec.

RTCP versus RTP

FunçãoRTPRTCP
Transportar mídiaSimNão
Sequence numberSimNão como função principal
Timestamp de mídiaSimRelaciona e reporta temporização
Relatar perda e jitterNão como função de controleSim
Identificar participantesSSRCCNAME e informações SDES
RFC-baseRFC 3550RFC 3550

Os protocolos trabalham em conjunto: RTP entrega a mídia e RTCP descreve como essa entrega está ocorrendo.

RTCP e segurança

RTCP básico não fornece, por si só, proteção criptográfica equivalente a confidencialidade e autenticação. O SRTP inclui também proteção para o tráfego de controle, frequentemente referida como SRTCP.

Assim, em uma análise de Secure Streaming, é necessário verificar se apenas a sinalização está protegida ou se RTP e RTCP também recebem proteção criptográfica.

RTCP no troubleshooting

Em uma análise de rede, RTCP pode ser valioso para correlacionar indicadores observados no packet capture com sintomas do VMS. Perda crescente, jitter elevado e intervalos anormais entre relatórios ajudam a direcionar a investigação.

Entretanto, a interpretação deve considerar o comportamento específico do cliente e do dispositivo. Nem toda implementação expõe todos os relatórios com a mesma frequência ou profundidade.

Referências técnicas

[1] SCHULZRINNE, H.; CASNER, S.; FREDERICK, R.; JACOBSON, V. RFC 3550: RTP: A Transport Protocol for Real-Time Applications. RFC Editor, 2003.

[2] PERKINS, C.; WESTERLUND, M. RFC 5761: Multiplexing RTP Data and Control Packets on a Single Port. RFC Editor, 2010.

Perguntas frequentes
O que é RTCP?

RTCP é o protocolo de controle associado ao RTP. Ele fornece feedback sobre qualidade de entrega, identificação de participantes e informações de temporização.

Qual RFC define RTCP?

RTCP é definido no RFC 3550, o mesmo documento-base do RTP.

RTCP transporta vídeo?

Não. A mídia é transportada por RTP; RTCP envia informações de controle e monitoramento.

RTP e RTCP precisam usar portas separadas?

Não necessariamente. O RFC 5761 permite multiplexar RTP e RTCP na mesma porta.

Materiais técnicos complementares

None