Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Aplicações Multimídia • Crescimento de aplicações que recebem e transferem áudio e vídeo pela internet • Aplicações Multimídia também são conhecidas como “aplicações de mídia de taxa constante” – – – – – – Vídeos de entretenimento Telefonia IP Rádio pela Internet Teleconferências Aprendizado a distância Etc... Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia Aplicações Multimídia: áudio e vídeo na rede (“mídia contínua”) Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Este tipo de aplicação se difere muito das aplicações vistas anteriormente – – – – E-mail Imagens FTP DNS • Aplicações Multimídias são sensíveis a atrasos, mas podem tolerar perdas de dados ocasionais – Modelos de comunicação tradicionais não são uma boa escolha para estes fins – Overhead em excesso, ocasionando atrasos Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Sensíveis ao atraso – Atraso fim a fim • Acúmulo de atrasos de processamento, fila, propagação, transmissão ao longo do trajeto entre origem e destino • Para aplicações de áudio altamente interativas (telefone por Internet, por exemplo): – Atrasos de menores do que 150 milissegundos não são percebidos pelo ouvido humano – Atrasos entre 150 e 400 milissegundos são aceitáveis (mas não ideal) – Atrasos maiores que 400 milissegundos podem atrapalhar consideravelmente a conversação Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Sensíveis ao atraso – Jitter • Variação do atraso dos pacotes dentro de um mesmo fluxo • Causados por atrasos aleatórios nas filas dos roteadores • Assim, o tempo entre o momento que o pacote é gerado na fonte e chega no destino pode variar de pacote para pacote • Isto chama-se variação do atraso • Exemplo – 2 pacotes consecutivos em uma rajada de voz com 20 milissegundos de diferença entre um e outro » No receptor, este tempo pode ser maior ou menor – Analogia da rodovia Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Sensíveis ao atraso – Jitter • Se for ignorada, esta variação pode resultar em níveis inteligíveis de áudio • A variação do atraso pode ser removida com a utilização de alguns mecanismos – Números de sequência » Remetente aumenta em 1 o número de sequência para cada pacote que gera – Marcas de tempo » Remetente marca cada porção com o tempo em que foi gerada – Atraso de reprodução » Atrasar a reprodução das porções de áudio no receptor Redes de Computadores I – Prof. Mateus Raeder Variação do atraso (jitter) transmissão de áudio a uma taxa constante recepção do áudio no cliente atraso variável da rede (jitter) atraso de reprodução reprodução do áudio a taxa constante no cliente tempo • Armazenamento no lado do cliente, o atraso de reprodução compensa a variação do atraso (jitter) provocados pela rede Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia Classes de aplicações de Multimídia: 1) Áudio e vídeo de fluxo contínuo (Streams) armazenados 2) Áudio e vídeo de fluxo contínuo ao vivo 3) Áudio e vídeo interativos em tempo real Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Fluxo contínuo, áudio e vídeo armazenados – O cliente solicita a qualquer momento arquivos de áudio e vídeos comprimidos que estão armazenados no servidor – 3 características importantes: • Mídia armazenada: o conteúdo foi pré-gravado e armazenado no servidor – Pode pausar, voltar, avançar, etc • Fluxo contínuo: o cliente inicia a reprodução alguns segundos após começar a receber os arquivos do servidor Redes de Computadores I – Prof. Mateus Raeder Fluxo Contínuo Multimídia Armazenada: Como funciona? 2. vídeo transmitido 1. vídeo gravado atraso da rede 3. vídeo recebido, reproduzido no cliente tempo Fluxo contínuo: neste instante, o cliente está reproduzindo uma parte anterior do vídeo, enquanto o servidor ainda está transmitindo as partes seguintes Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Fluxo contínuo, áudio e vídeo armazenados – O cliente solicita a qualquer momento arquivos de áudio e vídeos comprimidos que estão armazenados no servidor – 3 características importantes: • Mídia armazenada: o conteúdo foi pré-gravado e armazenado no servidor – Pode pausar, voltar, avançar, etc • Fluxo contínuo: o cliente inicia a reprodução alguns segundos após começar a receber os arquivos do servidor. – Evita a necessidade de armazenar todo a mídia antes • Reprodução contínua: quando começa a reprodução, deve prosseguir normalmente, com sérias restrições aos atrasos – Devem ser recebidos a tempo de serem reproduzidos Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Áudio e vídeo de fluxo contínuo ao vivo – Semelhante à transmissão de rádio e televisão – Permite que sejam recebidas transmissões de qualquer parte do mundo – Como o fluxo não é armazenado, não se pode adiantar o programa que está sendo recebido – Entretanto, os dados são armazenados localmente • Pausa, retrocesso podem ser realizadas em algumas aplicações – Mesma idéia da reprodução contínua – Atrasos causam danos “mais severos” do que em mídia armazenada Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Vídeo e áudio interativos em tempo real – Permite comunicação entre as pessoas em tempo real • Telefonia pela Internet • Videoconferências – Usuários podem se mover ou falar a qualquer instante – Os atrasos devem ser menores do que algumas centenas de segundos Redes de Computadores I – Prof. Mateus Raeder Multimídia Sobre a Internet Atual TCP/UDP/IP: “serviço de melhor esforço” • sem garantias sobre atrasos, perdas As aplicações MM na Internet atual usam técnicas da camada de aplicação para minimizar (da melhor forma) efeitos de atrasos e perdas • • • • Enviar áudio e vídeo por UDP Retardar a reprodução no receptor Marcas de tempo para saber quando devem ser reproduzidos Enviar informações redundantes para diminuir efeitos de perda Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Aplicações de áudio e vídeo de fluxo contínuo tornaram-se popular – Custo de armazenamento em disco muito baixo • Mais multimídia armazenada na Internet – Melhorias na infra-estrutura na Internet • Acesso doméstico de alta velocidade, por exemplo • Clientes solicitam arquivos de áudio e vídeo residentes no servidor – Podem ser servidores Web “comuns” – Podem ser servidores de fluxo contínuo especiais para fluxo contínuo Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Servidor, então, envia o arquivo desejado • Antes de enviar o arquivo de áudio/vídeo – Arquivo é segmentado – Os segmentos são encapsulados em cabeçalhos especiais para tráfego de áudio e vídeo • RTP é um protocolo padrão para este encapsulamento – Quando começa a receber o arquivo, o cliente começa a reprodução • Com interatividade (pausa, avanço, retrocesso, etc) • Esta interatividade necessita um protocolo específico – RTSP é responsável pela interatividade com o usuário Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Geralmente, é solicitado através de um cliente Web – Ou seja, um browser • A reprodução não está integrada com estes clientes Web – Necessidade de uma aplicação auxiliar separada para reproduzir • Comumente chamada de transdutor – Real Player, Windows Media Player, etc • Desempenham algumas funções: – – – – Descompressão Remoção da variação do atraso Correção de erros Interface gráfica de usuário com botões de controle • Podem ser utilizados programas especiais para inserir a interface do transdutor dentro da janela do browser – Plug-ins Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Acesso a áudio e vídeo a partir de um servidor Web – Quando um áudio está no servidor Web, ele é um objeto normal dentro do sistema de arquivos (como HTML e JPEG) – Usuário quer um arquivo de áudio • • • • Conexão TCP é criada Envia requisição HTTP para o objeto Servidor anexa o arquivo e responde Cabeçalho indica a codificação específica • Browser analisa o tipo e chama o transdutor correspondente • Transdutor reproduz o arquivo – Objeto inteiro deve ser armazenado • Atraso inaceitável Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Assim, o servidor deve enviar o arquivo de áudio/vídeo diretamente para o transdutor – Uma conexão direta entre o servidor e transdutor – Utilização de um metarquivo • Contém informações sobre o arquivo a ser entregue Redes de Computadores I – Prof. Mateus Raeder Aplicações Multimídia • Usuário sobre o hiperlink do arquivo de áudio/vídeo – Este link não aponta para o objeto, mas sim para um metarquivo • Contém a URL do arquivo • Mensagem de resposta HTTP contém um tipo que identifica a aplicação específica (transdutor) • Browser examina o tipo e passa o metarquivo para o transdutor • Transdutor estabelece uma conexão TCP com o servidor HTTP – Solicitando o arquivo • Arquivo é enviado dentro de uma resposta HTTP Comunicação realizada via HTTP, logo, TCP Redes de Computadores I – Prof. Mateus Raeder Fluxos a partir de um servidor de fluxo contínuo • Esta arquitetura permite o uso de protocolos não-HTTP entre o servidor e o reprodutor de mídia (transdutor) • Também pode usar UDP ao invés do TCP Redes de Computadores I – Prof. Mateus Raeder RTSP (Protocolo de fluxo contínuo em tempo real) • Usuários querem controlar a reprodução da mídia – Avançar, pausar, reposicionar em outro ponto, etc • RTSP (real-time streaming protocol) permite este interação – Controle da transmissão pelo transdutor • Funciona fora da banda – Mensagens RTSP são enviadas fora da banda – Corrente de mídia dentro da banda – Usa a porta 544 (roda sobre TCP ou UDP) Redes de Computadores I – Prof. Mateus Raeder Exemplo RTSP Cenário: • metarquivo enviado para o browser web • browser inicia o tocador/transdutor • Tocador/transdutor estabelece uma conexão de controle RTSP e uma conexão de dados para o servidor de mídia contínua Redes de Computadores I – Prof. Mateus Raeder Operação do RTSP Redes de Computadores I – Prof. Mateus Raeder Exemplo de Metarquivo <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> Redes de Computadores I – Prof. Mateus Raeder </session> Perda de Pacotes • FEC (Correção de erros e repasse) Corrente Original 1 Redundância 1 1 2 Corrente Recebida 1 1 2 Corrente Reconstituída 1 2 2 3 2 3 Perda 4 3 4 3 4 3 Redes de Computadores I – Prof. Mateus Raeder 4 Perda de Pacotes • Intercalamento Corrente Original 1 2 3 4 5 6 7 8 9 10 11 12 Corrente Intercalada 1 4 7 10 2 5 8 11 3 6 9 12 1 4 7 10 Perda 3 6 9 12 3 4 6 9 10 Corrente Recebida Corrente Reconstituída 1 7 Redes de Computadores I – Prof. Mateus Raeder 12 Protocolo de Tempo Real (RTP) • RTP = Real Time Protocol • RTP especifica uma estrutura de pacote para pacotes que transportam dados de áudio e de vídeo • RFC 1889. • Pacote RTP provê – Identificação do tipo da carga – Numeração da seqüência de pacotes – Marca de tempo • RTP roda nos sistemas terminais. • Pacotes RTP são encapsulados em segmentos UDP • Interoperabilidade: Se duas aplicações de telefone Internet rodarem RTP então elas poderão trabalhar em conjunto Redes de Computadores I – Prof. Mateus Raeder RTP roda sobre UDP Bibliotecas RTP provêm uma interface da camada de transporte que estende o UDP: • números de portas, endereços IP • verificação de erro através de segmentos • identificação do tipo da carga • numeração da seqüência de pacotes • marca de tempo Redes de Computadores I – Prof. Mateus Raeder RTP e QoS • RTP não provê nenhum mecanismo para garantir a entrega em tempo dos dados nem nenhuma outra garantia de qualidade de serviço. • O encapsulamento RTP é visto apenas nos sistemas finais – não é visto por roteadores intermediários. – Roteadores provendo o serviço tradicional Internet de melhor esforço não fazem nenhum esforço adicional para garantir que os pacotes RTP cheguem ao destino em tempo. Redes de Computadores I – Prof. Mateus Raeder Cabeçalho RTP Cabeçalho RTP Tipo da carga útil (7 bits): Usado para indicar o tipo de codificação que está sendo usada. Se o transmissor modificar a codificação no meio de uma conferência, o transmissor informará o receptor através do campo do tipo de carga útil. Número de Seqüência (16 bits): O número de seqüência é incrementado de um para cada pacote RTP enviado; pode ser usado para detectar a perda de pacotes e para restaurar a sequência de pacotes. Redes de Computadores I – Prof. Mateus Raeder Cabeçalho RTP (2) Cabeçalho RTP • Campo de marca de tempo (32 bits). Reflete o instante de amostragem do primeiro byte no pacote de dados RTP. • Campo de identificador de sincronização da fonte (SSRC) (32 bits). Identifica a fonte de um fluxo RTP. Cada fluxo numa sessão RTP deve possuir um SSRC distinto. Redes de Computadores I – Prof. Mateus Raeder Protocolo de Controle de Tempo Real (RTCP) • Real-Time Control Protocol • Trabalha em conjunto com o RTP. • Cada participante numa sessão RTP periodicamente transmite pacotes de controle RTCP para todos os demais participantes. • Cada pacote RTCP contém relatórios do transmissor e/ou receptor – relatam estatísticas úteis para as aplicações. • Estas estatísticas incluem o número de pacotes enviados, o número de pacotes perdidos, jitter entre chegadas, etc. • Esta realimentação de informação para as aplicações pode ser usada para controlar o desempenho – O transmissor pode modificar as suas taxas de transmissão baseadas na realimentação. Redes de Computadores I – Prof. Mateus Raeder RTCP - Continuação • Para uma sessão RTP há tipicamente um único endereço multicast; todos os pacotes RTP e RTCP pertencentes à sessão usam o endereço multicast. • Pacotes RTP e RTCP são diferenciados uns dos outros através do uso de números de portas distintos. • Para limitar o tráfego, cada participante reduz o seu tráfego RTCP à medida que cresce o número de participantes da conferência. Redes de Computadores I – Prof. Mateus Raeder Exercícios • As figuras a seguir apresentam três esquemas para fluxo contínuo de mídia armazenada. Quais as vantagens e as desvantagens de cada esquema? Redes de Computadores I – Prof. Mateus Raeder