Capítulo 6: Redes Multimídia Objetivos do Capítulo: entender os requisitos de serviço para redes com multimídia atraso taxa de transmissão perda aprender como aproveitar o máximo do serviço de melhor esforço da Internet Aprender como a Internet poderá evoluir para um melhor desempenho dos serviços multimídia Resumo do capítulo: aplicações de rede com multimídia aúdio e vídeo de tempo contínuo armazenados RTSP aplicações interativas de tempo- real Exemplo: telefonia na Internet RTP H.323 e SIP além do melhor esforço programando e verificando serviços integrados serviços diferenciados Multimídia em Redes Características Fundamentais: Tipicamente sensíveis ao atraso. Mas tolerante a perdas: perdas esparsas causam pequenas falhas que podem passas desapercebidas. Antítese de dados (programas , informações bancárias, etc.), que não toleram falhas mas aceitam atrasos sem problemas. Multimídia também é chamada de “mídia de tempo contínuo” Classes de aplicações MM: Aúdio e vídeo de tempo contínuo armazenados Audío e vídeo de tempo contínuo ao vivo Vídeo interativo em temporeal Multimídia em redes (2) Aplicações MM com aúdio e vídeo armazenados Clientes solicitam arquivos com aúdio e vídeo de servidores, recebem a informação pela rede e a apresentam Interativo: o usuário pode controlar a operação (similar a um VCR: pause, resume, fast forward, rewind, etc.) Atraso: a partir do pedido do cliente até o início da apresentação pode ser de 1 a 10 segundos Tempo-real unidirecional: similar à TV convencional, mas a transferência de informação é feita pela Internet Não interativo, apenas escutar e ver Tempo-Real Interativo: Conferência de aúdio ou de vídeo Mais exigente nos requisitos de atraso que o tempo real unidirecional por causa da necessidade de interatividade em tempo real Vídeo: < 150 ms aceitável Aúdio: < 150 ms bom, <400 ms aceitável Multimídia em redes (3): desafios Arquitetura TCP/UDP/IP fornece melhor esforço, não garantias sobre o atraso ou sobre a variação de atraso. Aplicações de tempo contínuo com atrasos inicias de 5-10 segundos são comuns hoje me dia, mas o desempenho deteriora se os enlaces estão congestionados (transoceânicos) Aplicações Interativas e,m tempo real têm requisitos rígidos para atraso de pacotes e variação de atraso (jitter). Jitter é a variabilidade do atraso de pacotes dentro do mesmo feixe de pacotes. Projeto de aplicações multimídia seria fácil se houvesse várias classes de serviço. Mas na Internet pública todos os pacotes recebem igual tratamento. Pacotes contendo aúdio e vídelo interativo de tempo real permanecem nas filas, como todos os outros. Esforços vêm sendo desenvolvidos para prover serviços diferenciados. Multimídia em redes (4): aproveitando ao máximo o “melhor esforço” Para reduzir o impacto do serviço de melhor esforço da Internet, nós podemos: Usar UDP para evitar o TCP e sua fase de partida lenta… Armazenar o conteúdo no cliente e controlar a apresentação para remediar o jiter Podemos acrescentar marcas de tempo nos pacotes para que o receptor saiba quando reproduzí-los. Adaptar o nível de compressão à taxa de transmissão disponível Nós podemos transmitir pacotes redundantes para atenuar os efeitos das perdas de pacotes. Nós discutiremos todos esses “truques”. Como a Internet deveria evoluir para suportar melhor as aplicações multimídia? Filosofia de serviços Integrados: Mudar os protocolos da Internet de forma que as aplicações possam reservar uma banda de transmissão fim-a-fim Necessita de um novo protocolo que reserva banda de transmissão Deve modificar as regras de escalonamento nos roteadores para poder honrar às reservas Aplicação deve fornecer à rede uma descrição do seu tráfego e deve posteriormente respeitar esta descrição. Exige um novo e complexo software nos hosts e nos roteadores Filosofia de serviços Diferenciados Exige menos mudanças na infraestrutura da Internet, embora forneça serviços de primeira e de segunda classe. Datagramas são marcados. Usuários pagam mais para enviar e receber pacotes de primeira classe. ISPs pagam mais aos provedores de backbone para enviar e receber pacotes de primeira classe. Como a Internet deveria evoluir para suportar melhor as aplicações multimídia? Filosofia Laissez-faire Não há reservas, nem marcações de datagramas Quando a demanda aumenta, mais banda de transmissão deve ser provida Coloque armazenadores de conteúdo nas bordas da rede: ISPs e provedores de backbone acrescentam caches Provedores de conteúdo armazenam conteúdo em nós CDN P2P: escolhe o parceiro mais próximo com o conteúdo desejado Redes privadas virtuais (VPNs) Reserva blocos permanentes de banda de transmissão para empresas. Roteadores distinguem o tráfego de cada VPN usando endereços IP Roteadores usam esquemas de escalonamento especiais para fornecerem a banda de transmissão reservada. Aúdio e Vídeo Armazenados Mídia de tempo contínuo armazenada: Arquivos de Aúdio e de Vídeo são armazenados em servidores Usuários solicitam os arquivos de aúdio e de vídeo por demanda. Aúdio/vídeo são aprsentandos, digamos, 10 s após o pedido. Interatividade (pausa, deslocamento da apresentação) é permitido. Transdutor de Mídia (player): remove jitter descomprime correção de erros interface gráfica de usuário com controles para interatividade Plug-ins podem ser usados para embutir o transdutor de mídia na janela de um browser. Informações de tempo contínuo em servidores Web (1) Os arquivos de aúdio e de vídeo são armazenados em servidores Web abordagem ingênua browser pede o arquivo com uma mensagem HTTP do tipo pedido Servidor Web envia o arquivo na mensagem HTTP do tipo resposta O cabeçalho “content-type” indica uma codificação apropriada para aúdio e vídeo browser dispara o transdutor de mídia e passa o arquivo para ele transdutor de mídia apresenta o arquivo cliente servidor • Maior problema: o transdutor de mídia interage com o servidor WEB através do Web browser que atua como intermediário. Informações de tempo contínuo em servidores Web (2) Alternativa: estabelecer conexão entre o servidor e o transdutor browser Web solicita e recebe um meta arquivo (um arquivo descrevendo o objeto) ao invés de receber o próprio arquivo; O cabeçalho “Content-type” indica uma específica aplicação de aúdio e vídeo Browser dispare o transdutor de mídia e passa o meta arquivo para ele Transdutor estabelece uma conexão TCP com o servidor e envia a ele a mensagem HTTP do tipo pedido. (1) pedido/resposta HTTP por um meta arquivo (2) meta arquivo transdutor de mídia (3) arquivo solicitado é enviado usando o HTTP Algumas preocupações: O transdutor de mídia se comunica usando HTTP, que não foi projetado mpara suportar comandos de controle de apesentação Pode desejar enviar o aúdio e o vídeo sobre UDP Obtendo o vídeo de um servidor dedicado Esta arquitetura permite o uso de outros protocolos (além do HTTP) entre o servidor e o transdutor de mídia Pode também usar UDP ao invés do TCP (1) HTTP pedido/resposta para o arquivo descritor da apresentação (2) arquivo descritor transdutor de mídia cliente (3) arquivo de aúdio e vídeo pedido e enviado servidor de vídeo servidores Opções ao utilizar um servidor de vídeo Enviar a uma taxa constante sobre UDP. Para reduzir os efeitos do jitter, armazenar e exibir com uma atraso entre 1 e 10s. Taxa de transmissão = d, igual à taxa de codificação. Taxa de enchimento x(t) é igual a d, ecxeto quando há perdas. Use TCP, e envie na máxima taxa possível sobre TCP; TCP retransmite quando um erro é encontrado; x(t) agora flutua, e pode tornar-se muito maior que d. Decodificador deve usar um buffer muito maior para compensar a taxa de entrega do TCP. buffer cliente taxa de leitura =d decodificação e apresentação taxa de chegada = x(t) da rede área com vídeo Real Time Streaming Protocol: RTSP HTTP Projetistas do HTTP tinham mídias fixas em mente: HTML, imagens, applets, etc. HTTP não pretende tratar mídia contínua armazenada (isto é, aúdio, vídeo, apresentações SMIL, etc.) RTSP: RFC 2326 Protocolo de aplicação do tipo cliente-servidor. Permite ao usuário controlar apresentações de mídia contínua: voltar ao início, avançar, pausa, continuar, seleção de trilha, etc… O que ele não faz: não define como o aúdio e o vídeo é encapsulado para transmissão sobre a rede não restringe como a mídia contínua é transportada: pode usar UDP ou TCP não especifica como o receptor armazena o aúdio e o vídeo RealNetworks Servidor e transdutor usam RTSP para enviar informações de controle de um para o outro RTSP: controle for a da banda FTP usa um canal de controle “fora-da-banda”: Um arquivo é transferido sobre um canal. Informação de controle (mudanças de diretório, remoção de arquivos, trocas de nomes, etc.) é enviada sobre uma conexão TCP separada. Os canais “dentro-dabanda”e “fora-dabanda”usam diferentes números de portas. Mensagens RTSP també são enviadas “for a-da-banda”: As mensagens de controle RTSP usam diferentes números de portas em relação ao fluxo de dados de mídia contínua, e, portanto, são enviados “fora-da-banda”. O fluxo de dados de mídia contínua cuja estrutura de pacotes não é definida pelo RTSP, é considerada “dentro-da-banda”. Se as mensagens do RTSP devessem usar os mesmos números de portas do fluxo de mídia contínua, então as mensagens RTSP seriam consideradas como “intercaladas” com o fluxo de mídia contínua. Iniciação do RTSP e controles de entrega Web browser HTTP GET presentation desc. descr. apresent. Web server SETUP PLAY media Transdutor player de mídia fluxo mídia mediade stream PAUSE media Servidor deserver mídia TEARDOWN client cliente server servidor Cliente obtém uma descrição da apresentação multimídia, que pode consistir de vários fluxos de dados. O browser chama o transdutor de mídia (aplicação auxiliar) com base no tipo de conteúdo da descrição da apresentação. A descrição da apresentação inclui referências aos fluxos de mídia usando o método rtsp:// Transdutor envia o comando RTSP SETUP; servidor envia a resposta RTSP SETUP. Transdutor envia o comando RTSP PLAY; servidor envia a resposta RTSP PLAY. O servidor de mídia descarrega o fluxo de mídia. Transdutor envia o comando RTSP PAUSE; o servidor envia a resposta RTSP PAUSE. Transdutor envia o comando RTSP TEARDOWN; servidor envia a resposta RTSP TEARDOWN. Exemplo de Meta-arquivo <title>Twister</title> <session> <group language=en lipsync> <switch> <track type=audio e="PCMU/8000/1" src = "rtsp://audio.example.com/twister/audio.en/lofi"> <track type=audio e="DVI4/16000/2" pt="90 DVI4/8000/1" src="rtsp://audio.example.com/twister/audio.en/hifi"> </switch> <track type="video/jpeg" src="rtsp://video.example.com/twister/video"> </group> </session> Sessão RTSP Cada sessão RTSP tem um identificador de sessão, que é escolhido pelo servidor. O cliente inicia a sessão com o comando SETUP, e o servidor responde ao comando com um identificador. O cliente repete o identificador de sessão em cada comando, até que o cliente encera a sessão com o comando TEARDOWN. O número de porta do RTSP é 554. RTSP pode ser usado sobre UDP ou TCP. Cada mensagem RTSP pode ser enviada numa conexão TCP separada. RTSP: exemplo de mensagens C: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Transport: rtp/udp; compression; port=3056; mode=PLAY S: RTSP/1.0 200 1 OK Session 4231 C: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=0C: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=37 C: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 S: 200 3 OK RTSP: cache de dados O cache de mensagens de resposta RTSP faz pouco sentido. Mas é desejável armazenar fluxos de mídia contínua próximos ao cliente. Muito do controle de cache do HTTP/1.1 foi adotado pelo RTSP. Cabeçalhos e controle de cache podem ser acrescentados às mensagens RTSP SETUP, sejam comandos ou respostas: • If-modified-since: , Expires: , Via: , CacheControl: O servidor de cache pode manter somente segmentos de um dado fluxo de mídia. O servidor de cache pode começar a servir um cliente com dados do seu cache local, e então conectar o servidor para obter material complementar, se possível sem introduzir pausas indevidas no cliente. Quando o servidor original está enviando um fluxo de dados de mídia contínua para um cliente e este fluxo passa por um servidor de cache, o servidor pode usar o TCP para obter os dados; mas o servidor intermediário ainda envia as mensagens de controle RSTP para o servidor original. Aplicações interativas em tempo-real telefone PC-a-PC PC-a-telefone Dialpad Net2phone videoconferência Webcams Vamos agora examinar um produto do tipo telefone PC-a-PC da Internet em detalhes Telefonia Internet sobre melhoresforço (1) Melhor esforço atraso de pacotes, perdas e variação de atraso (jitter) Exemplo de telefone Internet agora vamos examinar como atrasos de pacotes, perdas e jitter são muitas vezes tratados num exemplo de telefonia IP. As aplicações de telefonia na Internet geram pacotes durante momentos de atividade da voz taxa de bits é 64 kbps nos intervalos de atividade durante os intervalos de atividade a aplicação produz um bloco de 160 bytes a cada 20 ms (8 kbytes/s * 20 ms) cabeçalho é acrescentado ao bloco; então bloco mais cabeçalho sáo encapsulados num pacote UDP e enviados alguns pacotes podem ser perdidos e o atraso de pacote irá flutuar. receptor deve determinar quando reproduzir um bloco e determinar o que fazer com um bloco faltante Telefonia Internet (2) perda de pacotes O segmento UDP é encapsulado num datagrama IP datagrama pode ser descartado por falta de espaço num roteador TCP pode eliminar perdas, mas retransmissões aumentam o atraso O controle de congestionamento do TCP limita a taxa de transmissão Pacotes redundantes podem ajudar atraso fim-a-fim acúmulo dos atrasos de transmissão, propagação, processamento e atrasos de filas mais que 400 ms de atraso fim-a-fim compromete a interatividade; quanto menor o atraso melhor variação de atraso considere dois pacotes consecutivos num intervalo de atividade espaçamento inicial é de 20 ms, mas o espaçamento no receptor pode ser maior ou menor que 20 ms removendo o jitter número de seqüência marcas de tempo atrasando a reprodução Telefonia Internet (3): atraso de reprodução fixo Receptor tenta reproduzir cada bloco exatamente q ms depois que o bloco é gerado. Se o bloco tem marca de tempo t, receptor usa o bloco no instante t+q . Se o bloco chega após o instante t+q, receptor o descarta. Números de seqüência não são necessários. Estratégia permite pacotes pedidos. Escolha do valor de q: q grande: menos perda de pacotes q pequeno: melhor controle da interatividade Telefonia Internet (4): atraso de reprodução fixo Transmissor gera pacotes a cada 20 ms durante os intervalos de atividade. Primeiro pacote é recebido no instante r Primeira programação de reprodução: começa em p Segunda programação de reprodução: começa em p’ packets pacotes pacotes packets gerados generated loss perda pacotes packets recebidos received progr. reprodução playout schedule p - rp - r progr. playoutreprodução schedule p’ --rr p' tempo time r p p' Atraso de reprodução adaptativo (1) • Estima o atraso da rede e ajusta o atraso de reprodução no início de cada intervalo de atividade. • Intervalos de silêncio são aumentados e diminuídos. • Blocos ainda são gerados a cada 20 ms nos intervalos de atividade. ti marca de tempodo i ésimo pacote ri instanteno qual o pacotei é recebido pelo receptor pi instanteno qual o pacotei é reproduzido no receptor ri ti atrasoda rede para o i - ésimo pacote d i estimat ivado atrasona rede após receber o i - ésimo pacote Estimativa dinâmica do atraso médio no reeptor: di (1 u)di 1 u(ri ti ) onde u é uma constante fixa (ex., u = 0,01). Atraso de reprodução adaptativo (2) É também usual estimar a variância média do atraso, vi : vi (1 u)vi 1 u | ri ti di | As estimativas de di e vi são calculadas para cada pacote recebido, embora elas sejam usadas apenas no início de um intervalo de atividade. Para o primeiro pacotes de um intervalo de atividade, o instante de reprodução é: pi ti di Kvi onde K é uma constante positiva. Para este mesmo pacote, o atraso de reprodução é: qi pi ti Para o pacote j no mesmo intervalo de atividade, o pacote deve ser reproduzido em: p j t j qi Atraso de reprodução adaptativo (3) Como saber se um pacote é o primeiro de um intervalo de atividade: Se nunca houvesse perdas o receptor poderia simplesmente olhar nas marcas de tempo sucessivas. Se a diferença de marcas de tempo sucessivas for maior que 20 ms, então temos o início de um intervalo de atividade. Mas porque as perdas são possíveis, o receptor deve olhar tanto as marcas de tempo como os números de seqüência dos pacotes. Se a diferença de marcas de tempo sucessivas for maior que 20 ms e não há pulos nos números de seqüência então tem-se o início de um intervalo de atividade. Recuperação de perdas de pacotes (1) Perdas: pacote nunca chega ou chega depois do seu tempo de reprodução programado correção de erro de envio (FEC): esquema simples para cada grupo de n blocos cria um bloco redundante realizando uma operação OU exclusivo entre os n blocos originais envia os n+1 blocos, aumentando a banda passante por um fator de 1/n. pode reconstruir os n blocos originais se houver no máximo um bloco perdido nos n+1 blocos enviados Atraso de reprodução precisa ser definido para receber todos os n+1 pacotes Compromisso: aumentar n, menor disperdício de banda aumentar n, maior atraso de reprodução aumentar n, maior a probabilidade que dois ou mais blocos sejam perdidos Recuperação de perdas de pacotes (2) 2o, esquema FEC • enviar um fluxo de menor qualidade como “carona” • envia fluxo de aúdio de menor resolução como a informação redundante • por exemplo, um fluxo PCM nominal a 64 kbps e um fluxo GSM redundante a 13 kbps. • Transmissor cria pacote tomando o bloco n do fluxo nominal e anexando a ele o bloco (n-1) do fluxo redundante Fluxo original Redundância Perda de Pacote Fluxo reconstruído • Sempre que ocorre perda não-consecutiva, o receptor pode esconder a perda. • Apenas dois pacotes precisam ser recebidos antes do início da reprodução • Pode também anexar os blocos (n-1) e (n-2) do fluxo de baixa qualidade Recuperação de perdas de pacotes (3) Intercalação blocos são quebrados em unidades menores por exemplo, 4 blocos de 5 ms cada intercalar os blocos como mostrado no diagrama pacote agora contém unidades menores de diferentes blocos Fluxo original Fluxo intercalado Perda de pacote Fluxo reconstruído Remontar os blocos no receptor Se o pacote é perdido, ainda resta mais de cada bloco Recuperação de perdas de pacotes (4) Recuperação pelo receptor de fluxos de aúdio danificados produzir uma substituição para um pacote perdido que seja similar ao pacote original pode produzir bons resultados para baixas taxas de perdas e pacotes pequenos (4-40 ms) estratégia mais simples: repetiçãon estratégia mais complexa: interpolação Real-Time Protocol (RTP) RTP especifica uma estrutura de pacotes que transportam dados de aúdio e vídeo: RFC 1889. pacote RTP oferece identificação do tipo de carga numeração da seqüência de pacotes marcas de tempo RTP roda nos sistemas terminais. os pacotes RTP são encapsulados em segmentos UDP Interoperabilidade: se duas aplicações de telefonia IP usam RTP, então elas podem ser capazes de trabalhar juntas RTP roda em cima do UDP As bibliotecas do RTP fornecem uma interface de camada de transporte que extendem o UDP: • número de portas, endereços IP • verificação de erros dentro dos segmentos • identificação do tipo de carga • numeração da seqüência de pacotes • marcas de tempo Aplicação camada de transporte Enlace Física RTP: Exemplo Considere enviar 64 kbps de voz codificada em PCM sobre RTP. A aplicação reúne dados codificados em blocos, por exemplo, a cada 20 ms = 160 bytes por bloco. O bloco de aúdio, junto com o cabeçalho RTP forma o pacote RTP, que é encapsulado num segmento UDP. O cabeçalho RTP indica o tipo de codificação de aúdio em cada pacote, os transmissores podem mudar a codificação durante a conferência. O cabeçalho RTP também contém os números de seqüência e marcas de tempo. RTP e QoS RTP não fornece nenhum mecanismo para assegurar a entrega dos pacotes e dados no tempo correto, nem fornece outras garantias de qualidade de serviço. O encapsulamento RTP é visto apenas nos sistemas finais -ele não é percebido pelos roteadores intermediários. Roteadores fornecem o serviço de melhor-esforço tradicional da Internet. Eles não fazem nenhum esforço especial para assegurar que os pacotes RTP cheguem no destino no momento correto. A fim de fornecer QoS para uma aplicação, a Internet deve prover um mecanismo, tal como o RSVP, para que a aplicação possa reservar recursos da rede. Fluxos RTP RTP permite atribuir a cada fonte (por exemplo, uma câmara ou um microfone) o seu próprio fluxo de pacotes RTP independente. Por exemplo, para uma videoconferência entre dois participantes, quatro fluxos RTP poderiam ser abertos: dois fluxos para transmitir o aúdio (um em cada direção) e dois fluxos para o vídeo (novamente, um em cada direção). Contudo, algumas técnicas de codificação populares, incluindo MPEG1 e MPEG2 -reúnem o aúdio e o vídeo num único fluxo durante o processo de codificação. Quando o aúdio e o vídeo são reunidos pelo codificador, então apenas um fluxo RTP é gerado em cada direção. Para uma sessão multicast do tipo muitos-para-muitos, todos os transmissores e receptores tipicamente enviam seus fluxos RTP na mesma árvore de multicast com o mesmo endereço de multicast. Cabeçalho RTP Tipo de Carga Número de Seqüência Marca de tempo Identificador campos de sincronismo fonte miscelânias Cabeçalho RTP Tipo de Carga (7 bits): Usado para indicar o tipo de codificação que está sendo usado no momento. Se um transmissor muda o tipo de codificação durante uma conferência, o transmissor informa o receptor através deste campo de tipo de carga. •Tipo de carga 0: PCM mu-law, 64 Kbps •Tipo de carga 3, GSM, 13 Kbps •Tipo de carga 7, LPC, 2.4 Kbps •Tipo de carga 26, Motion JPEG •Tipo de carga 31. H.261 •Tipo de carga 33, MPEG2 video Número de Seqüência (16 bits): O número de seqüência é incrementado de um a cada pacote RTP enviado; pode ser usado para detectar perdas de pacotes e para recuperar a seqüência de pacotes. Cabeçalho RTP (2) Campo de marca de tempod (32 bytes). Reflete o instante de amostragem do primeiro byte no pacote de dados RTP. O receptor pode usar esta marca de tempo para remover o jitter do pacote e para obter o sincronismo de reprodução. A marca de tempo é derivada do relógio de amostragem no transmissor. Como exemplo, para aúdio o relógio de marca de tempo incrementa de um a cada intervalo de amostragem (por exemplo, cada 125 us para uma taxa de amostagem de 8 KHz); se a aplicação de aúdio geram blocos contendo 160 amostras codificadas, então a marca de tempo do RTP aumenta de 160 para cada pacote RTP quando a fonte está ativa. O relógio de marca de tempo continua a aumentar numa taxa constante mesmo quando a fonte está inativa. campo SSRC (identificador de sincronismo fonte) (32 bits). Identifica a fonte do fluxo RTP. Cada fluxo numa sessão RTP deve ter um SSRC distinto. Real-Time Control Protocol (RTCP) Trabalha em conjunto com o RTP. Cada participante de uma sessão RTP transmite periodicamente pacotes de controle RTCP para todos os outros participantes. Cada pacote RTCP contém relatórios do transmissor e/ou do receptor que são úteis para a aplicação. As estatísticas incluem o número de pacotes enviados, número de pacotes perdidos, variação de atraso entre chegadas, etc. Esta informação de realimentação para a aplicação pode ser usada para controle do desempenho e para fins de diagnóstico. O transmissor pode mudar suas transmissões com base nestas informações de realimentação. RTCP - Continuação - Para uma sessão RTP existe tipicamente um único endereço de multicast todos os pacotes RTP e RTCP pertencentes à sessão usam este endereço de multicast. - Os pacotes RTP e RTCP são distintos um dos outros pelo uso de números de portas diferentes. - Para limitar o tráfego, cada participante reduz seu tráfego RTCP quando o número de participantes da conferência aumenta. Pacotes RTCP Pacotes de relatório do receptor: fração de pacotes perdidos, último número de seqüência, variância média do atraso entre chegadas. Pacotes de relatório do transmissor: SSRC do fluxo RTP, o tempo corrente, o número de pacotes enviados e o número de bytes enviados. Pacotes de descrição da fonte: endereço de e-mail do transmissor, o nome do transmissor, o SSRC do fluxo RTP associado. Esses pacotes fornecem um mapeamento entre o SSRC e o nome do usuário ou do host. Sincronização de Fluxos RTCP pode ser usado para sincronizar diferentes fluxos de mídia numa sessão RTP. Considere uma aplicação de videoconferência para a qual cada transmissor gera um fluxo RTP para aúdio e um para vídeo. As marcas de tempo nestes pacotes são vinculadas aos relógios de amostragem de vídeo e de aúdio, mas não são vinculadas a um relógio de tempo real (isto é, a um relógio de parede). Cada pacote relatório-do- transmissor RTCP contém para o último pacote gerado no fluxo RTP associado, a marca de tempo do pacote RTP e o instante de tempo real no qual o pacote foi criado. Desta forma o pacote RTCP relatório-dotransmissor associa o relógio de amostragem com o relógio de tempo real. Receptores podem uar esta associação para sincronizar a reprodução de aúdio e de vídeo. Controle de Banda do RTCP O RTCP procura limitar seu tráfego a 5% da banda passante da sessão. Por exemplo, suponha que existe um transmissor enviando vídeo com uma taxa de 2 Mbps. Então o RTCP procura limitar seu tráfego a 100 Kbps. O protocolo dá 75% desta taxa, ou 75 kbps, para os receptores; ele dá os 25% restantes da taxa, isto é, 25 kbps, para o transmissor. Os 75 kbps dedicados aos receptores são divididos de forma igual entre todos os receptores. Assim, se existem R receptores, cada receptor consegue enviar tráfego RTCP a uma taxa de 75/R kbps e o transmissor envia tráfego RTCP a uma taxa de 25 kbps. Um participante (um transmissor ou receptor) determina o período de transmissão de pacotes RTCP dinamicamente calculando o tamanho médio do pacote (durante toda a sessão) e dividindo o tamanho médio do pacote RTCP pela sua taxa alocada. H.323 Visão geral Terminal H.323 Codificação H. 323 Gatekeeper Gateway Codecs de Aúdio Codecs de Vídeo Visão Geral (1) Base para conferência de aúdio e de vídeo através de redes IP. Objetiva comunicação de tempo real (ao invés de por demanda) Recomendação quardachuva do ITU-T. Escopo largo: equipamentos isolados (ex., telefones Web) aplicações em PCs conferências ponto-aponto e multiponto A especificação H.323 inclui: Como os equipamentos terminais fazem e recebem chamadas. Como os equipamentos terminais negociam codificações comuns de aúdio e vídeo. Como os blocos de aúdio e vídeo são encapsulados e enviados para a rede. Como o aúdio e o vídeo são sincronizados entre si. Como os equipamentos terminais se comunicam com seus respectivos gatekeepers. Como os telefones IP e os telefones PSTN/ISDN convencionais se comunicam. Visão Geral (2) Chamadas telefônicas Internet Chamadas de vídeo Conferências Quadros brancos Telefone "Ethernet" MS Netmeeting NetSpeak WebPhone Todos os terminais suportando H.323 Visão Geral (3) Gatekeeper Internet PSTN Gatew ay H.323 SS7, Inband Terminais H.323 Devem Suportar: G.711 - padrão do ITU para compressão de voz RTP - protocolo para encapsular blocos de dados de mídia em pacotes H.245 - Protocolo de controle “fora-da-banda” para controlar a mídia entre os terminais H.323. Q.931 - Um protocolo de sinalização para estabelecer e encerrar chamadas. RAS (Registration/Admission/S tatus) protocolo de canal Protocolo para comunicação com o gatekeeper (se um gatekeeper está presente) Terminal H.323 Codificação H.323 Aúdio: Terminais H.323 devem suportar o padrão G.711 para compressão de voz e transmissão a 56/64 kbps. H.323 está considerando exigir a codificação G.723 = G.723.1, que opera a 5.3/6.3 kbps. Opcionais: G.722, G.728, G.729 Vídeo Capacidade de vídeo para um terminal H.323 são opcionais. Qualquer terminal H.323 com capacidade de vídeo deve suportar o formato QCIF H.261 (176x144 pixels). O suporte a outros esquemas da recomendação H.261 é opcional: CIF, 4CIF e 16CIF. H.261 é usado com canais de comunicação cuja taxa de transmissão é múltipla de 64 kbps. Gerando fluxo de pacotes de aúdio no H.323 Fonte de Aúdio Codificação: ex., G.711 ou G.723.1 encapsulamento de pacote RTP porta UDP Internet ou Gatekeeper Canal de Controle H.245 O fluxo H.323 pode conter múltiplos canais para diferentes tipos de mídia. Um canal de controle H.245 por sessão H.323. O canal de controle H.245 é um canal confiável (TCP) que transporta mensagens de controle. Principais tarefas: Abrir e fechar canais de mídia. Troca de informações de capacidades: antes de enviar dados os terminais devem concordar sobre o algoritmo de codificação Nota: H.245 para conferência multimedia é análogo ao RTSP para mídia contínua armazenada Fluxos de Informação Canal de Controle de Chamada Canal de sinalização de Chamada Terminal H.323 Canal de Controle de Mídia Terminal H.323 Canal RAS H.323 Gatekeeper Canal de Mídia 1 Canal de Mídia 2 TCP UDP terminais H.323 Gatekeeper 1/2 Internet Rotea dor RAS Gatekeeper LAN = “Zona” • O gatekeeper é opcional. Pode oferecer aos terminais: • translação de endereços para endereços IP • gerenciamento de banda-passante: pode limitar o total de banda-passante consumida pelas conferências de tempo real • Opcionalmente, as chamadas H.323 podem ser roteadas através do gatekeeper. Conveniente para bilhetagem. • Protocolo RAS (sobre TCP) para comunicação entre terminal-gatekeeper. Gatekeeper 2/2 Terminal H.323 deve se registrar com o gatekeeper na sua zona. Quando a aplicação H.323 é chamada no terminal, o terminal usa o RAS para enviar seu endereço IP e apelido (alias) fornecido pelo usuário ao gatekeeper. Se o gatekeeper está presente numa zona, cada terminal da zona deve contacta-lo para pedir permissão para realizar uma chamada. Uma vez que ele obtém a permissão, o terminal pode enviar ao gatekeeper um endereço de e-mail, um nome de referência (alias) ou uma extensão de telefone. O gatekeeper translada o nome de referência num endereço IP. Se necessário, o gatekeeper poderá consultar outros gatekeepers em outras zonas para resolver um endereço IP. O processo varia entre os fornecedores. Gateway PSTN Terminais H.323 Gateway Router Internet RAS Gatekeeper LAN = “Zona” • Ponte entre a zona IP e as redes PSTN (ou ISDN). • Terminais se comunicam com gateways usando H.245 e Q.931 Codecs de Aúdio Codec Bandwidth [kbit/s] MOS Complexidade [MIPS] Packetização (tamanho) [ms] G.711 64 4.5 - - G.721 (ADPCM) 32 4.4 6.5 - GSM 13 3.8 4 20 G.729 8 4.1 15 10 G.723 6.4/5.3 4.0 20 30 MOS (Mean Opinion Score) 5 Qualidade comercial 4 interlocutor reconhecível 3 intelegível 2 problemas de inteleg. 1 MOS (Mean Opinion Score) Codecs de Vídeo • H.261 (p x 64 kbit/s) – Vídeo sobre ISDN – Resoluções : QCIF, CIF • H.263 (< 64 kbit/s) – Comunicação de baixa taxa de bits – Resoluções: SQCIF, QCIF, CIF,4CIF, 16CIF SQCIF QCIF CIF 4CIF 16CIF (128 x 96) (176 x 144) (352 x 288) (704 x 576) (1408 x 1152)