RTP
Quando áudio e vídeo precisam chegar com temporização e identificação de perdas, RTP encapsula amostras em pacotes numerados e marcados por timestamp. A base é a RFC 3550, de 2003, acompanhada por RTCP. Um stream de vídeo pode usar clock de 90 kHz; áudio Opus, 48 kHz. RTP não garante entrega nem reserva banda. O critério de escolha é mídia interativa ou streaming sensível a atraso; para arquivos completos, HTTP/TCP costuma ser mais simples.
RTP é um protocolo de transporte de dados em tempo real, especialmente áudio, vídeo e eventos relacionados. Ele foi projetado para fornecer informações que a aplicação precisa para reconstruir a sequência temporal: número de sequência, timestamp, identificação da fonte, tipo de payload e marcadores. Normalmente é transportado sobre UDP, mas pode operar sobre outros serviços. RTP não promete entrega, ordem ou retransmissão. Essa escolha evita que um pacote atrasado bloqueie todos os seguintes. Para voz e vídeo interativos, perder um pacote pode ser menos prejudicial que aguardar centenas de milissegundos. A aplicação usa jitter buffer, ocultação de perda, FEC, retransmissão seletiva ou redução de bitrate conforme o perfil. RTP é definido pela RFC 3550, publicada em julho de 2003, que substituiu a RFC 1889 de 1996. A mesma RFC define RTCP, o protocolo de controle que envia relatórios de recepção, identificação, sincronização e estatísticas. RTP e RTCP formam uma arquitetura. O pacote RTP básico começa com versão 2, flags de padding e extension, contagem de CSRC, marker, payload type, sequence number de 16 bits, timestamp de 32 bits e SSRC de 32 bits. Pode incluir CSRCs e extensões. O número de sequência aumenta por pacote e ajuda detectar perda e reordenamento. Ele volta após 65535. O receptor precisa tratar wrap. O timestamp representa o instante de amostragem numa escala definida pelo payload, não a hora do relógio. H.264 e muitos vídeos usam 90 kHz. Opus usa 48 kHz. G.711 usa 8 kHz. Vários pacotes de um quadro podem compartilhar timestamp. O marker tem significado definido pelo formato de payload. O SSRC identifica uma fonte de sincronização dentro da sessão e deve ser escolhido de forma aleatória com detecção de colisão. Um mixer pode listar CSRCs. O payload type de 7 bits identifica o formato e seus parâmetros por perfil ou negociação. Tipos dinâmicos dependem de SDP ou sinalização. Ver payload 96 não significa H.264 universalmente; o SDP associa. Esse erro é comum. Formatos de payload são definidos em RFCs específicas, como H.264, H.265, Opus, VP8, VP9, AV1 e eventos telefônicos. Eles dizem como fragmentar unidades, agregar e usar marker. A aplicação não deve simplesmente colocar um arquivo inteiro. O tamanho precisa respeitar MTU. Em Ethernet MTU 1500, payload RTP é reduzido por IP, UDP, RTP, SRTP e túneis. Pacotes de vídeo em torno de 1200 bytes são comuns para evitar fragmentação. RTP não possui descoberta nem estabelecimento. SIP, RTSP, WebRTC, H.323 ou outra sinalização negocia endereços, portas, codecs e chaves. SDP descreve. Em RTSP, SETUP define. Em SIP, offer/answer. Em WebRTC, ICE encontra caminho e DTLS-SRTP cria chaves. O RTP em WebRTC usa perfis seguros e extensões. Em câmeras, RTP pode ser enviado por UDP ou intercalado em RTSP/TCP. Em telefonia, pares de portas são comuns. RTCP historicamente usa porta adjacente, mas multiplexação RTP/RTCP pode usar uma só. A sessão pode ter múltiplos SSRCs, simulcast, retransmissão e FEC. O receptor usa RTCP Receiver Reports para informar fração perdida, perda cumulativa, maior sequência, jitter e dados de sincronização. Sender Reports ligam timestamp RTP a NTP, permitindo sincronizar áudio e vídeo. Sem essa associação, relógios podem divergir. CNAME relaciona fontes. Feedback rápido é definido em extensões AVPF e perfis relacionados. NACK solicita retransmissão; PLI pede quadro-chave; FIR solicita refresh; REMB é extensão não padrão universal; transport-wide congestion control usa extensões específicas. RTP não cifra. SRTP, RFC 3711, fornece confidencialidade, autenticação e proteção contra replay. WebRTC exige SRTP. Câmeras RTSP legadas frequentemente enviam RTP aberto. VLAN e VPN ajudam. RTP pode ser multicast para distribuição eficiente. Isso exige rede planejada, IGMP/MLD snooping e bitrate. Wi‑Fi multicast é ineficiente. Unicast é mais simples. A qualidade depende de jitter, perda, atraso e codec. O protocolo fornece sinais, mas não reserva QoS. DiffServ pode marcar. A rede precisa evitar bufferbloat. Para gravação completa, um NVR pode tolerar retransmissão via TCP. Para intercomunicador, baixa latência é prioridade. O critério de escolha é temporalidade, não apenas “vídeo”.
- Fornece sequência, temporização, identificação de fonte e tipo de payload sem impor retransmissão que aumentaria atraso.
- Suporta ampla variedade de codecs por formatos de payload separados e negociação via SDP.
- RTCP oferece estatísticas, sincronização entre áudio e vídeo e feedback para adaptação e diagnóstico.
- Funciona em unicast e multicast, sobre UDP ou outros transportes, e integra RTSP, SIP, WebRTC e sistemas de mídia.
- Com SRTP, pode oferecer confidencialidade, integridade e proteção contra replay mantendo a estrutura eficiente.
- Não garante entrega, ordem, banda ou baixa latência; rede, codec, jitter buffer e aplicação determinam a qualidade.
- Payload types dinâmicos não têm significado sem SDP ou sinalização, causando incompatibilidades em implementações simplificadas.
- RTP puro não cifra nem autentica; streams legados podem ser capturados ou injetados por atacantes na rede.
- UDP e portas dinâmicas dificultam NAT e firewall, exigindo ICE, TURN, configuração ou transporte intercalado.
- Muitos detalhes ficam em perfis e RFCs de payload, tornando uma implementação completa mais complexa que enviar datagramas.