A Família de Protocolos RTP O que não é Não é um protocolo que trate de reserva de recursos ou de garantias de qualidade de serviço para serviços de tempo real. Não existem mecanismos que garantam a entrega de dados a tempo. O que é O RTP fornece as funções de Transporte que podem ser utilizadas por aplicações preocupadas com o tempo real. Existe um serviço de Transporte com uma identificação do tipo de dados no payload, uma numeração de sequência a estampagem de tempo, a monitorização da entrega de dados Estrutura Geral Família, porque define um ambiente onde existem RTP, RTCP, profiles e especificações de formatos de payload O RTP está integrado com a aplicação, em vez de ser um nível separado. RTP - 1 Paulo Pinto & Luis Bernardo
O RTCP (RTP Control Protocol) monitora a qualidade de serviço transporta informação relacionada com os participantes O RTP tem uma funcionalidade mínima, comum a todos os usos. O mecanismo de adição de funcionalidades está bem definido e é flexível. 2 documentos: especificação de um profile parte de dados define um conjunto de códigos para os tipos de dados, e como os dados devem ser colocados (o som da esquerda, depois o da direita) parte algorítmica define extensões ao RTP básico (controlo de fluxo) especificação do formato do payload define como um certo tipo de informação, áudio, é codificado para ser levado no RTP. Conjuntamente com um profile e uma especificação de formato, tem-se a especificação completa do RTP para um determinado tipo de aplicações. RTP - 2 Paulo Pinto & Luis Bernardo
RTP Real-Time Transport Protocol Cenário de referência com as hipóteses mais comuns mixer REDE firewall translator translator mixer age como uma máquina de destino, mas mistura os sinais para os outros pouca largura de banda tratamento especial do vídeo etc. translator liga dois mundos multicast que por alguma razão não podem estar ligados segurança (firewalls) protocolos diferentes RTP - 3 Paulo Pinto & Luis Bernardo
Tipicamente o RTP trabalha sobre UDP/IP. Necessita da rede de suporte: multiplexagem de dois sub-canais por ligação (um para dados, outro para o RTCP) indicação do comprimento do pacote se trabalhar sobre fluxo (stream) tem de haver encapsulamento de pacotes RTP. Dados: Têm uma estampagem temporal Utilidade: sincronismo no receptor, misturar vários sinais define também um espaço de números de sequência é importante saber qual a origem de sincronismo para se saber se se deve comparar ou não os dados. SSRC (Synchronization Source) Exemplos: Estações de trabalho, mixers CSRC (Contributing Source) Controlo: O RTP não especifica as acções a serem efectuadas em resultado da monitorização. Para isso existem os monitores, externos à norma RTP. estimar a qualidade de serviço fazer diagnósticos de falhas fazer estatísticas de longa duração RTP - 4 Paulo Pinto & Luis Bernardo
Transferência de Dados V P X CC M PT sequence number timestamp identificador SSRC identificadores CSRC P padding de octetos no final X Se tem, ou não, um cabeçalho de extensão CC quantos identificadores CSRC existem M bit de marcação específico da aplicação PT tipo de dados contidos (e.g. MP3, áudio 8 bits, etc.) Número de sequência e timestamp devem começar com um número aleatório. Pode ter até 15 CSRCs. O RTP trabalha com um par de endereços de destino. Se for IP multicast o par é igual para todos os participantes. Por eficiência não se faz multiplexagem de sessões. Podia ser feita com base no payload, na identificação do SSRC, etc. RTP - 5 Paulo Pinto & Luis Bernardo
O Protocolo de Controlo do RTP RTCP Baseado na transmissão periódica de pacotes de controlo a todos os participantes da sessão. 1. Fornecer informação sobre a qualidade da distribuição preocupações típicas de transporte (fluxo e congestão) informação usada para adaptar dinamicamente codificações e como diagnóstico de falhas de distribuição num ambiente de multicast. Como os relatórios vão para todos, é mais simples avaliar se os problemas são globais ou locais. Estes relatórios podem ir para entidades terceiras. 2. Transportar um identificador persistente de nível transporte, da origem. Este identificador chama-se CNAME (canonical name). Permite que os receptores associem múltiplos fluxos de dados, várias sessões RTP, originárias do mesmo utilizador (podem ter SSRC diferentes mas o mesmo CNAME). O CNAME identifica um participante. utilizador@máquina e pode ser utilizável pelo programa finger. Por exemplo, pr4@fccn.pt. 3. Controlo de ritmo de pacotes RTCP. Em ambientes multicast, com muitos utilizadores, existe o perigo do número de pacotes de controlo subir bastante. Como todos os participantes enviam pacotes para todos os outros, cada um pode saber o número de participantes. Este número é usado num algoritmo para condicionar o ritmo a que os pacotes de controlo são enviados. 4. Transportar informação mínima de controlo da sessão. Por exemplo, nome dos participantes, endereço electrónico, número de telefone, etc.. É útil em sessões onde não existe quase nenhum controlo e os participantes saem e entram sem controlo ou negociação. RTP - 6 Paulo Pinto & Luis Bernardo
Tipos de Pacotes SR: Sender Report, para o envio de estatísticas de transmissão e recepção dos participantes que são emissores activos. RR: Receiver Report, para o envio de estatísticas de recepção dos participantes que não são emissores activos SDES: Source Description, para distribuir informação mínima de controlo da sessão, incluindo o CNAME. BYE: Indica o fim da participação. APP: Application, é dependente da aplicação. É possível empilharem-se muitos pacotes RTCP Em vez do número de sequência tem o comprimento do pacote. RTP - 7 Paulo Pinto & Luis Bernardo
Intervalo de Transmissão do RTCP Às vezes existe autocontrolo: conferência áudio Depois de se decidir qual a largura de banda que a aplicação irá usar, o RTCP utiliza 5% dessa largura de banda. Para cumprir este limite existe um algoritmo. Características principais A largura de banda atribuída aos emissores é, no máximo, ¼ da banda de controlo Um novo participante pode receber rapidamente a identificação dos outros O intervalo entre pacotes RTCP deve ser maior do que 5 segundos. Impedir que rajadas de pacotes de controlo excedam os 5% O valor calculado para o intervalo deve variar aleatoriamente com um factor do intervalo [0,5;1,5] Evitar correlações entre participantes É calculada uma estimativa da média dos comprimentos dos pacotes agregados para adaptar a quantidade de informação a enviar. RTP - 8 Paulo Pinto & Luis Bernardo
Exemplo Banda de sessão 1 emissor a enviar 2Mbps Período médio de transmissão de pacotes RTCP para emissores T emi número _ emissores = 0,25 0,05 Banda _ sessão ( dim_ média _ pac _ RTCP) Período médio de transmissão de pacotes RTCP para receptores T rec número _ receptores = 0,75 0,05 Banda _ sessão ( dim_ média _ pac _ RTCP) Quem está a participar? Todos os participantes vão pondo em lista as identificações dos SSRC e CSRC Quando alguém envia um pacote BYE, tira-se da lista. Quem não dá notícias há, pelo menos, 5 intervalos, a sua entrada é posta inactiva, mas conta para o algoritmo Porquê? Depois de um tempo elevado, 30 minutos, são tirados da lista. Em cada intervalo envia-se um RR (os SR) e um pacotes SDES com o CNAME. Mais espaçadamente, envia-se a outra informação (nome, e-mail, etc.). RTP - 9 Paulo Pinto & Luis Bernardo
Relatórios de Emissores e Receptores Todos enviam informação sobre a qualidade de recepção. Só enviam o SR os emissores que tenham transmitido algo durante, pelo menos, um dos dois últimos intervalos. Cabeçalho relatório de emissão relatório de recepção bloco 1 relatório de recepção bloco 2 relatório de recepção bloco n extensão específica do profile Cabeçalho: V P RC PT comprimento SSRC of sender RC (Reception Report Count) contém o número de blocos de recepção no pacote RTP - 10 Paulo Pinto & Luis Bernardo
Relatório de Emissão NTP timestamp, palavra mais significativa NTP timestamp, palavra menos significativa RTP timestamp sender s packet count sender s octet count NTP timestamp horas absolutas de quando o relatório foi emitido. Serve para calcular o tempo de ida e volta. RTP timestamp mesmo tempo que o NTP, mas nas unidades e com a mesma translação que o timestamp dos pacotes de dados. sender s packet count número total de pacotes de dados enviados desde que começou a transmissão até este momento. sender s octet count número total de octetos transmitidos desde que começou a transmissão até este momento. RTP - 11 Paulo Pinto & Luis Bernardo
Relatório de Recepção SSRC_1 (SSRC of first source) fraction lost cumulative number of packets lost extended highest sequence number received interarrival jitter last SR (LSR) delay since last SR SSRC_n indica o emissor ao qual se referem os dados fraction lost indica a fracção de pacotes de dados perdidos desde o último relatório. Se não houver pacotes recebidos (porque não foram enviados, ou porque se perderam) não se envia o relatório. cumulative number of packets indica o número total de pacotes de dados que foram perdidos desde o princípio da recepção. extended highest sequence number received. Os 16 bits menos significativos indicam o maior número de sequência recebido por este emissor. Os 16 bits mais significativos contam as voltas que o contador anterior já deu. interarrival jitter é uma estimativa da variância estatística dos tempos entre chegadas dos pacotes de dados. RTP - 12 Paulo Pinto & Luis Bernardo
Utilidade destes relatórios Os emissores podem modificar a sua transmissão baseados no que está a acontecer Os receptores podem identificar se os problemas são locais, regionais ou globais. Entidades terceiras (aplicações de gestão de rede) podem usar monitores independentes dos profiles que recebam apenas os pacotes de controlo e avaliem o desempenho da rede em situações de multicast. usar os relatórios de emissão para saber a taxa de emissão de um certo emissor, sem terem de receber os dados. Os campos com resultados cumulativos dão uma perspectiva de longo termo uma perspectiva de curto termo pela diferença entre os valores de relatórios sucessivos. Pode-se calcular a taxa de pacotes perdidos por segundo e ter também uma ideia absoluta 1 perdido em 5, é menos importante do que 200 perdidos em 1000 Outra medida de curto termo é o jitter entre chegadas de pacotes. Reflecte o estado de congestão da rede. melhor ainda consegue-se prever a congestão, pelo aumento da variância, antes de ela ter uma influência muito grande. RTP - 13 Paulo Pinto & Luis Bernardo
Tipos de payload definidos até Novembro de 2002 RFC Formato de payload RTP 1890 Audio and Video Conferences with Minimal Control 2029 Sun's CellB Video Encoding 2032 H.261 Video Streams 2035 JPEG-compressed Video 2190 H.263 Video Streams 2198 Redundant Audio Data 2250 MPEG1/MPEG2 Video 2343 RTP Payload Format for MPEG1/MPEG2 Video 2429 1998 Version of ITU-T Rec. H.263 Video (H.263+) 2431 BT.656 Video Encoding 2435 JPEG-compressed Video 2658 PureVoice(tm) Audio 2733 Generic Forward Error Correction 2793 Text Conversation 2833 DTMF Digits, Telephony Tones and Telephony Signals 2862 RTP Payload Format for Real-Time Pointers 3016 RTP Payload Format for MPEG-4 Audio/Visual Streams 3047 ITU-T Recommendation G.722.1 3119 MP3 Audio 3189 DV (IEC 61834) Video 3190 12-bit DAT Audio and 20- and 24-bit Linear Sampled Audio 3267 Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs 3389 Comfort Noise (CN) As regras para a definição de novos formatos de dados RTP estão definidas no RFC 2736. RTP - 14 Paulo Pinto & Luis Bernardo