Os protocolos RTP/RTCP

Março 2017

O que são os protocolo RTP e RTCP

A explosão dos computadores, associada à disponibilidade de material informático áudio/vídeo barato, bem como a disponibilidade de conexões com rápida, provocou o interesse pela rede Internet para enviar áudio e vídeo, tipos de dados que estavam tradicionalmente reservados para as redes especializadas, assim e já há alguns anos, o áudio e a videoconferência tornaram-se uma prática comum para todos. Mas a própria natureza da Internet, que faz com que esta rede não seja adaptada para a transmissão dos dados em tempo real, diminua a qualidade dos áudio enviados através da Internet. Várias soluções foram criadas sob a forma de mecanismos aplicadas e testadas nos softwares de audioconferência e telefones gratuitos pela Internet.

RTP - Real-time Transfert Protocol

O objetivo do RTP - Protocolo de Transferência em Tempo Real é fornecer um meio uniforme para transmitir em IP dados sujeitos as rstrições de tempo real (áudio, vídeos,…). A principal função do RTP consiste em aplicar números de sequência de pacotes IP para reconstituir as informações de voz ou de vídeo, mesmo que a rede subjacente altere a ordem dos pacotes. O RTP permite:

Identificar o tipo de informação transportada,
Acrescentar indicadores temporais e números de sequência à informação transportada
Controlar a chegada ao destino dos pacotes.

Além disso, o RTP pode ser veiculado por pacotes 'multicast' (vários pontos)para encaminhar onversas para destinatários múltiplos.

RTCP - Real-tim Transfert Control Protocol

O protocolo RTCP - Protocolo e Controle de Transferência em Tempo Real baseia-se em transmissões periódicas de pacotes de controle por todos os participantes da sessão. É um protocolo de controle dos fluxos RTP que permite veicular informações básicas sobre os participantes de uma sessão, e sobre a qualidade de serviço.

Como utilizar o RTP e do RTCP

O RTP permite uma gestão dos fluxos multimídia (voz, vídeo) em IP. O RTP funciona em UDP. O cabeçalho RTP comporta informações de sincronização, de numeração. A codificação dos dados dependerá do tipo de sua compressão. O RFCxxxx especifica RTP, a adaptação de um método de compressão ao RTP será descrita em um RFC específico, por exemplo H261 em RTP é descrito no RFCxxxx. Um canal RTP é empregado por tipo de fluxo: um para o áudio, um para o vídeo. O campo xxx é empregado para a sincronização. O RTP oferece um serviço de extremo a extremo. Ele acrescenta um cabeçalho que fornece as informações de timing necessárias para a sincronização de fluxos de tempo real do tipo som e vídeo. O RTP - Realtime Transport Protocol e o seu companheiro RTCP - Realtime Transport Control Protocol permitem respectivamente transportar e controlar ondas de dados que têm propriedades de tempo real. O RTP e o RTCP são protocolos que se situam no aplicativo e utilizam os protocolos subjacentes de transporte TCP ou UDP. Mas a utilização do RTP/RTCP faz-se geralmente no UDP. O RTP e o RTCP podem utilizar o modo 'Unicast' (ponto a ponto) bem como o modo 'Multicast' (multiponto). Cada um deles utiliza uma porta separada: o RTP utiliza a porta par e o RTCP a porta ímpar, imediatamente superior.

Como são os formato dos cabeçalhos e os seus conteúdos

O cabeçalho RTP comportará as seguintes informações:


<--------------------------- 32 bits --------------------------->
V=2 P X CC M Sequence number
Timestamp
Identificador da fonte de sincronização (SSRC)
Identificadores da fonte de contribuição (CSRC)


Veja o significado dos diferentes campos do cabeçalho:

O campo Versão V de 2 bits de comprimento indica a versão do protocolo (V=2)
O campo padding P de 1 bit, se P for igual a 1, o pacote contém bytes adicionais de preenchimento (padding) para terminar o último pacote.
O campo extensão:X de1 bit, se X=1 o cabeçalho é seguido de um pacote de extensão
O campo CSRC count CC de 4 bits, contém o número de CSRC que acompanham o cabeçalho
O campo marker M 1 bit, a sua interpretação é definidas por um perfil de aplicação (profile)
O campo payload type PT de 7 bits, este campo identifica o tipo de payload (áudio, vídeo, imagem, texto, HTML, etc.)
O campo sequence number e 16 bits, o seu valor inicial é aleatório e incrementa-se de 1 por cada pacote enviado, pode servir para detectar pacotes perdidos
O campo timestamp de 32 bits, reflete o momento em que o primeiro byte do pacote RTP foi amostrado. Este momento deve ser derivado de um relógio que avança de maneira monótona e linear no tempo, para permitir a sincronização e o cálculo ao destino
O campo SSRC de 32 bits, identifica de maneira única a fonte, o seu valor é escolhido de forma aleatória pela aplicação. O campo SSRC identifica a fonte de sincronização (ou simplesmente a fonte). Este identificador é escolhido de maneira aleatória para que seja único entre todas as fontes de uma mesma sessão. A lista dos CSRC identifica as fontes (SSRC) que contribuíram para a obtenção dos dados contidos no pacote que contém estes identificadores. O número de identificadores é dado no campo CC
O campo CSRC de 32 bits, identifica as fontes.

Qual a forma e o objetivo do cabeçalho RTCP

O objetivo do RTCP é fornecer diferentes tipos de informações e um feedback quanto à qualidade de recepção. Ele comportará as seguintes informações:


O campo versão (2 bits)
O campo padding (1 bits) indica que há enchimento cuja dimensão é indicada no último byte
O campo recepção report count (5 bits) são os números de relatórios no pacote
O campo packet tipo (8 bits) 200 para SR
O campo length (16 bits) é o comprimento do pacote em palavras de 32 bits
O campo SSRC (32 bits) é a identificação da fonte específica ao emissor
O campo NTP timestamp (64 bits)
O campo RTP timestamp (32 bits)
O campo sender' s packet count (32 bits)
O campo sender' s byte count (32 bits) estatísticas
O campo SSRC-n (32 bits) número da fonte cujo fluxo é analisado
O campo fraction lost (8 bits)
O campo cumulative number of packets lost (24 bits)
O campo extended highest sequence number received (32 bits)
O campo interarrival jitter (32 bits). É uma estimativa do intervalo de tempos de um pacote de dados RTP que é medido com o timestamp e que está sob a forma de um número inteiro. É o tempo relativo de trânsito entre dois pacotes de dados.

A fórmula para calculá-lo é:
J=J+ (|D (i-1, i)|- J) /16
. O interarrival jitter é calculado a cada pacote de dados recebido pela fonte
SSRC_n
:

i - Primeiro pacote
i-1 - pacote precedente
D - diferença
J - Segundo pacote

O campo last SR timestamp (32 bits)
O campo delay since last SR (32 bits)

Como é usado o RTCP no que diz respeito ao RTP

O RTCP é um protocolo de controle associado ao RTP e mede o desempenho. POr outro laldo, ele não oferece garantias. Por isso é necessário empregar um protocolo de reserva do tipo RSVP ou assegurar-se de que as relações de comunicações utilizadas são dimensionadas corretamente em relação à utilização que é feita.

Quais os protocolos que funcionam o RTP e o RTCP

O RTP/RTCP está acima do transporte UDP/TCP, mas praticamente acima do UDP.
O RTP é um protocolo de sessão, mas está colocado no aplicativo. Cabe ao programador integrá-lo.

Como funciona o fluxo veiculado

O RTP não tem nada a ver com o tipo de fluxo, está acima do UDP, e este acima do IP. O tipo de fluxo é teoricamente utilizado no IP. Ele traz um número de sequência, um timestamp e um identificador único da fonte (SSRC).

Veja também


RTP/RTCP protocols
RTP/RTCP protocols
Protocolos RTP/RTCP
Protocolos RTP/RTCP
Die RTP/RTCP Protokolle
Die RTP/RTCP Protokolle
Les protocoles RTP/RTCP
Les protocoles RTP/RTCP
I protocolli RTP/RTCP
I protocolli RTP/RTCP
Este documento, intitulado 'Os protocolos RTP/RTCP', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.