BroadNet
SIP / VoIPMédia

RTP e SRTP: o fluxo de média

Atualizado em 4 min de leituraBaseado em padrões
Resposta direta

O RTP (Real-time Transport Protocol, RFC 3550) transporta a voz ou o vídeo reais depois de o SIP negociar a sessão, correndo sobre UDP com um cabeçalho compacto (número de sequência, timestamp, SSRC). O RTCP reporta a qualidade em paralelo. O SRTP (RFC 3711) acrescenta cifra e autenticação ao RTP, chaveado via SDES no SDP ou DTLS-SRTP.

§01

RTP: transportar a média

Assim que o SIP e o SDP acordam a sessão, a média em si flui sobre RTP — quase sempre sobre UDP, porque o áudio em tempo real prefere a entrega atempada à entrega garantida. Cada pacote RTP transporta um bloco de áudio codificado (um quadro de codec como 20 ms de G.711) por trás de um cabeçalho de 12 bytes. O RTP é um fluxo separado da sinalização SIP, nas portas que o SDP negociou, e flui tipicamente diretamente entre os pontos terminais ou através de um relé de média em vez de seguir o caminho de sinalização.

§02

O cabeçalho RTP

O cabeçalho RTP de 12 bytes dá ao recetor tudo o que precisa para reconstruir um fluxo em tempo real. O número de sequência deteta perda e reordenação. O timestamp reflete o instante de amostragem para que o recetor reproduza o áudio na cadência certa e remova o jitter com um jitter buffer. O SSRC identifica de forma única a fonte de média dentro da sessão. O payload type ecoa o codec acordado no SDP. O bit marker assinala eventos como o primeiro pacote após um período de silêncio.

Campos do cabeçalho RTP (12 bytes)
CampoTamanhoFinalidade
V / P / X / CC1 byteFlags de versão, preenchimento, extensão e contagem CSRC
M (marcador) + PT1 byteBit marker + tipo de payload (codec do SDP)
Número de sequência2 bytesDetetar perda e reordenação de pacotes
Timestamp4 bytesInstante de amostragem; controla o playout / jitter buffer
SSRC4 bytesFonte de sincronização — identifica o fluxo
CSRC (0–15)0–60 bytesFontes contribuintes (de misturadores)
§03

RTCP: feedback de qualidade

O RTP viaja com um protocolo de controlo companheiro, o RTCP, na porta adjacente (ímpar). O RTCP não transporta média; em vez disso cada lado envia periodicamente Sender Reports e Receiver Reports que descrevem a saúde do fluxo — pacotes enviados e perdidos, perda acumulada, jitter de interchegada e o tempo de ida e volta derivado dos timestamps dos relatórios. Estas métricas são a matéria-prima para estimativas de MOS e para diagnosticar áudio num só sentido, jitter e perda numa chamada VoIP. O RTCP transporta também a descrição de fonte (CNAME) e o BYE para o encerramento do fluxo.

Métricas-chave reportadas pelo RTCP
MétricaO que isso te diz
Perda de pacotes (fracionária + cumulativa)Quanto áudio está a ser perdido
Jitter entre chegadasVariação no tempo de transmissão dos pacotes — dificuldade de reprodução
Tempo de ida e voltaLatência do caminho (a partir dos timestamps SR/RR)
Sequência mais alta recebidaDeteção de progresso e perda por origem
§04

SRTP: cifrar a média

O RTP simples não é cifrado, pelo que qualquer pessoa no caminho pode capturar e repetir o áudio. O SRTP (RFC 3711) protege-o: cifra o conteúdo RTP (por omissão AES em modo contador) e anexa uma etiqueta de autenticação (por omissão HMAC-SHA1) que protege a integridade e fornece proteção contra repetição, deixando o cabeçalho RTP legível para que routers e jitter buffers continuem a funcionar. O transporte aparece no SDP como RTP/SAVP em vez de RTP/AVP. O SRTP protege a confidencialidade e a integridade mas depende inteiramente de como as suas chaves são trocadas.

§05

Chavear o SRTP: SDES vs DTLS-SRTP

O SRTP precisa de uma chave-mestra em cada extremo, e as duas formas comuns de a entregar diferem acentuadamente em segurança. O SDES (RFC 4568) coloca a chave numa linha a=crypto no SDP — simples, mas apenas tão seguro quanto a sinalização SIP, pelo que tem de ser transportado sobre TLS ou a chave fica exposta. O DTLS-SRTP (RFC 5763/5764) executa antes um handshake DTLS no caminho de média para derivar chaves, pelo que a chave nunca aparece na sinalização; é o modelo que o WebRTC exige. Escolha DTLS-SRTP onde os pontos terminais o suportem, e proteja sempre o SDES com SIP sobre TLS.

Métodos de chaveamento do SRTP
MétodoRFCOnde a chave ficaNota
SDESRFC 4568a=crypto line no SDPRequer SIP sobre TLS para ser seguro
DTLS-SRTPRFC 5763/5764Derivado de um handshake DTLS no caminho do conteúdo multimédiaA chave nunca trafega na sinalização; usada pelo WebRTC
MIKEYRFC 3830Carga útil de gestão de chavesUtilizado em algumas implementações IMS
Perguntas frequentes

Perguntas frequentes

Qual é a diferença entre SIP e RTP?

O SIP é a sinalização que estabelece, modifica e termina uma chamada; o RTP é o transporte de média que transporta a voz ou o vídeo reais assim que a chamada está estabelecida. Correm como fluxos separados em portas separadas — o SIP negoceia a sessão, o RTP entrega-a.

Porque é que o RTP corre sobre UDP em vez de TCP?

O áudio em tempo real valoriza a pontualidade sobre a fiabilidade. A retransmissão e o head-of-line blocking do TCP acrescentariam latência e jitter que prejudicam uma chamada ao vivo mais do que um pacote perdido ocasional. O RTP sobre UDP permite ao recetor ocultar pequenas perdas mantendo o fluxo a horas.

O que faz o RTCP?

O RTCP é o canal de controlo companheiro do RTP. Não transporta média; reporta periodicamente a qualidade do fluxo — perda de pacotes, jitter e tempo de ida e volta via Sender e Receiver Reports — o que é usado para estimar a qualidade da chamada (MOS) e diagnosticar problemas como áudio num só sentido.

O que é o SRTP?

O SRTP (RFC 3711) é o perfil seguro do RTP. Cifra o conteúdo de média (tipicamente AES em modo contador) e autentica cada pacote (tipicamente HMAC-SHA1) com proteção contra repetição, mantendo o cabeçalho RTP em claro. No SDP aparece como o transporte RTP/SAVP.

Qual é a diferença entre SDES e DTLS-SRTP?

Ambos chaveiam o SRTP. O SDES transporta a chave numa linha a=crypto do SDP, pelo que só é seguro se a própria sinalização SIP estiver protegida com TLS. O DTLS-SRTP deriva chaves através de um handshake DTLS no caminho de média, pelo que a chave nunca toca na sinalização — a abordagem que o WebRTC exige.

Referências

Especificações de origem

Os padrões publicados nos quais esta página se baseia. Abre num novo separador.

BNMantido pela equipa de engenharia BroadNet·Mensagens de nível de operadora desde 2003
Coloque-o no fio.

Construa com uma vinculação SMPP real e uma API REST.

Solicite acesso de teste com chaves de teste reais: envie primeiro para o seu próprio número verificado e, em seguida, passe para o ambiente de produção em mais de 200 países assim que a sua identidade de remetente e rotas forem aprovadas.