Viabilizando Aplicações Multimídia na Internet Prof. André Drummond Depto de Ciência da Computação
Material utilizado na maioria dos slides Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Multimídia e Qualidade de Serviço: O que é isso? Aplicações multimídia: vídeo e audio em rede ( mídia contínua ) QoS Rede provê à aplicação o nível de desempenho necessário para que a aplicação funcione.
Agenda Classificar aplicações multimídia Serviço provido pela Internet Identificar os serviços de rede que as aplicações necessitam Obtendo o melhor do serviço de melhor esforço
CLASSIFICAR APLICAÇÕES MULTIMÍDIA
Aplicações Multimídia em Rede Classes de aplicações MM: 1) fluxo armazenado 2) fluxo ao-vivo 3) interativo, tempo-real Jitter é a variabilidade do retardo dos pacotes pertencentes a um mesmo fluxo Características fundamentais: Typicamente sensível ao retardo retardo fim-a-fim retardo jitter Tolerante a falhas: perdas infrequentes não são relevantes Inverso do que ocorre com a transmissão de dados.
Multimídia de Fluxo Armazenado Fluxo armazenado: mídia armazenada na fonte transmitida para o cliente streaming: reprodução no cliente inicia antes da chegada de todos os dados restrição de tempo para dados que ainda precisam ser transmitidos: em tempo para reprodução
Multimídia de Fluxo Armazenado: O que é isso? Cumulative data 1. video recorded 2. video sent network delay 3. video received, played out at client time streaming: nesse momento, o cliente executa a primeira parte do vídeo, enquanto o servidor ainda está enviando a última parte do vídeo
Multimídia de Fluxo Armazenado: Interatividade Videocassete: cliente pode congelar, voltar, avançar, usar a barra de rolagem do tempo 10 seg retardo inicial OK 1-2 seg reposta ao comando OK restrição de tempo para dados que ainda precisam ser transmitidos: em tempo para reprodução
Multimídia de Fluxo Ao-Vivo Exemplos: rádio pela Internet evento esportivo ao-vivo Streaming (como fluxo armazenado) buffer para playback (replay) playback pode ocorrer dezenas de segundos após a transmissão ainda possui restrição de tempo Interatividade impossível avançar possível voltar e congelar!
Multimídia Interativa de Tempo-Real applicações: telefonia IP, vídeo conferência, mundos interativos distribuídos requisito de retardo fim-a-fim: áudio: < 150 mseg bom, < 400 mseg OK inclui retardo da aplicação (empacotamento) e da rede retardos mais altos perceptíveis, dificulta a interatividade
Algumas palavras sobre compressão de áudio analog signal sampled at constant rate telephone: 8,000 samples/sec CD music: 44,100 samples/sec each sample quantized, i.e., rounded e.g., 2 8 =256 possible quantized values each quantized value represented by bits 8 bits for 256 values example: 8,000 samples/sec, 256 quantized values --> 64,000 bps receiver converts bits back to analog signal: some quality reduction Exemplo de taxas CD: 1.411 Mbps MP3: 96, 128, 160 kbps Internet telephony: 5.3 kbps and up
Algumas palavras sobre compressão de vídeo video: sequence of images displayed at constant rate e.g. 24 images/sec digital image: array of pixels each pixel represented by bits redundancy spatial (within image) temporal (from one image to next) Exemplos: MPEG 1 (CD-ROM) 1.5 Mbps MPEG2 (DVD) 3-6 Mbps MPEG4 (often used in Internet, < 1 Mbps) Pesquisa: Vídeo em camadas (escalável) adapta as camadas a quantidade de banda deisponível
SERVIÇO PROVIDO PELA INTERNET
Camadas da Internet (TCP/IP) Transporte: reponsável pela transferência de dados entre aplicações Protocolos: TCP, UDP Rede: reponsável pelo roteamento dos dados da origem até o destino Protocolo IP transporte rede
Estrutura da Internet: rede de redes Um pacote passa por várias redes desde a origem até o destino! Large Content Distributor (e.g., Akamai) IXP Tier 2 ISP Tier 2 ISP Tier 2 ISP Tier 1 ISP IXP Large Content Distributor (e.g., Google) Tier 2 ISP Tier 2 ISP Tier 1 ISP Tier 2 ISP Tier 2 ISP Tier 1 ISP Tier 2 ISP Tier 2 ISP
Exemplo real de uma rota na Internet traceroute: gaia.cs.umass.edu to www.eurecom.fr 1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms 2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms 3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms 4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms 5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms 6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms 7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms 8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms 9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms 10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms 11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms 12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms 13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms 14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms 15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms 16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms 17 * * * 18 * * * 19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms cabo transoceânico
O núcleo da rede Malha de roteadores interconectados
Como ocorre o retardo na rede? Pacotes são enfileirados nos buffers dos roteadores packet arrival rate to link exceeds output link capacity packets queue, wait for turn packet being transmitted (delay) A d nodal = d proc + d queue + d trans + d prop B packets queueing (delay) free (available) buffers: arriving packets dropped (loss) if no free buffers
Como ocorre a perda de pacotes? queue (aka buffer) preceding link in buffer has finite capacity packet arriving to full queue dropped (aka lost) lost packet may be retransmitted by previous node, by source end system, or not at all A buffer (waiting area) packet being transmitted B packet arriving to full buffer is lost
Quantidade de banda disponível? per-connection endend throughput: min(r c,r s,r/10) in practice: R c or R s is often bottleneck R s R s R s R R c R c R c 10 connections (fairly) share backbone bottleneck link R bits/sec
Protocolos de Transporte da Internet Entrega confiável (TCP) controle de congestionamento controle de fluxo estabelecimento de conexão Entrega não confiável (UDP) extensão do IP Serviços não disponíveis garantia de entrega garantia de retardo garantia de banda application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical
Multimídia Sobre a Internet TCP/UDP/IP: serviço de melhor esforço sem garantias de retardo, perda e banda??????? Mas vc disse que as aplicações multimídia requerem QoS para funcionarem!???? As aplicações multimídia de hoje utilizam técnicas no nível da aplicação para mitigar os efeitos do retardo, perdas e pouca banda
SERVIÇOS DE REDE QUE AS APLICAÇÕES NECESSITAM
Multimídia de Fluxo Armazenado application-level streaming techniques for making the best out of best effort service: client-side buffering use of UDP versus TCP multiple encodings of multimedia Media Player jitter removal decompression error concealment graphical user interface w/ controls for interactivity
Multimídia na Internet: abordagem simplista audio, video not streamed: audio or video stored in file files transferred as HTTP object received in entirety at client then passed to player no, pipelining, long delays until playout!
Multimídia na Internet: abordagem de fluxo browser GETs metafile browser launches player, passing metafile player contacts server server streams audio/video to player
Transmitindo de um Servidor de Fluxo allows for non-http protocol between server, media player UDP or TCP for step (3), more shortly
Multimídia de Fluxo: Client Buffering Cumulative data constant bit rate video transmission variable network delay client video reception buffered video constant bit rate video playout at client client playout delay time Armazenamento no cliente, o retardo de reprodução compensa o retardo e jitter adicionado pela rede
Multimídia de Fluxo: Client Buffering variable fill rate, x(t) constant drain rate, d buffered video Armazenamento no cliente, o retardo de reprodução compensa o retardo e jitter adicionado pela rede 7-30
Multimídia de Fluxo: UDP ou TCP? UDP TCP server sends at rate appropriate for client (oblivious to network congestion!) often send rate = encoding rate = constant rate then, fill rate = constant rate - packet loss short playout delay (2-5 seconds) to remove network jitter error recover: time permitting send at maximum possible rate under TCP fill rate fluctuates due to TCP congestion control larger playout delay: smooth TCP delivery rate HTTP/TCP passes more easily through firewalls
Multimídia de Fluxo: taxas dos clientes 1.5 Mbps encoding 28.8 Kbps encoding Q: how to handle different client receive rate capabilities? 28.8 Kbps dialup 100 Mbps Ethernet A: server stores, transmits multiple copies of video, encoded at different rates
OBTENDO O MELHOR DO SERVIÇO DE MELHOR ESFORÇO 33
Aplicações Multimídia em Tempo-Real PC-2-PC phone Skype PC-2-phone Dialpad Net2phone Skype videoconference with webcams Skype Polycom Going to now look at a PC-2-PC Internet phone example in detail
Multimídia Interativa: Internet Phone Introduce Internet Phone by way of an example speaker s audio: alternating talk spurts, silent periods. 64 kbps during talk spurt pkts generated only during talk spurts 20 msec chunks at 8 Kbytes/sec: 160 bytes data application-layer header added to each chunk. chunk+header encapsulated into UDP segment. application sends UDP segment into socket every 20 msec during talkspurt
Internet Phone: Retardo e Perda de Pacotes perda pela rede: IP datagram lost due to network congestion (router buffer overflow) perda pelo retardo: IP datagram arrives too late for playout at receiver delays: processing, queueing in network; endsystem (sender, receiver) delays typical maximum tolerable delay: 400 ms tolerância a perdas: depending on voice encoding, losses concealed, packet loss rates between 1% and 10% can be tolerated.
Retardo Jitter Cumulative data constant bit rate transmission variable network delay (jitter) client reception buffered data constant bit rate playout at client client playout delay time Considera retardo fim-a-fim de 2 pacotes consecutivos: mais ou menos 20 ms
Internet Phone: Retardo de Reprodução Fixo receiver attempts to playout each chunk exactly q msecs after chunk was generated. chunk has time stamp t: play out chunk at t+q. chunk arrives after t+q: data arrives too late for playout, data lost tradeoff in choosing q: large q: less packet loss small q: better interactive experience
Retardo de Reprodução Fixo sender generates packets every 20 msec during talk spurt. first packet received at time r first playout schedule: begins at p second playout schedule: begins at p
Retardo de Reprodução Adaptativo (1) Objetivo: minimize playout delay, keeping late loss rate low Abordagem: adaptive playout delay adjustment: estimate network delay, adjust playout delay at beginning of each talk spurt. silent periods compressed and elongated. chunks still played out every 20 msec during talk spurt. dynamic estimate of average delay at receiver: where u is a fixed constant (e.g., u =.01).
Reprodução Adaptativa (2) Q: Como o receptor determina quando o pacote é o primeiro em uma rajada de fala? if no loss, receiver looks at successive timestamps. difference of successive stamps > 20 msec -->talk spurt begins. with loss possible, receiver must look at both time stamps and sequence numbers. difference of successive stamps > 20 msec and sequence numbers without gaps --> talk spurt begins.
Recuperação de Perda de Pacotes (1) Forward Error Correction (FEC): simple scheme for every group of n chunks create redundant chunk by exclusive OR-ing n original chunks send out n+1 chunks, increasing bandwidth by factor 1/n. can reconstruct original n chunks if at most one lost chunk from n+1 chunks retardo de reprodução: enough time to receive all n+1 packets compromisso: increase n, less bandwidth waste increase n, longer playout delay increase n, higher probability that 2 or more chunks will be lost
Recuperação de Perda de Pacotes (2) 2nd FEC scheme piggyback lower quality stream send lower resolution audio stream as redundant information e.g., nominal stream PCM at 64 kbps and redundant stream GSM at 13 kbps. Perdas não consecutivas podem ser recuperadas! can also append (n-1)st and (n-2)nd low-bit rate chunk
Recuperação de Perda de Pacotes (3) Entrelaçamento chunks divided into smaller units for example, four 5 msec units per chunk packet contains small units from different chunks se houver a perda de um pacote, ainda possui a maior parte do dado Sem redundância, mas aumenta o retardo de reprodução
Redes de Distribuição de Conteúdo (CDN) Content replication challenging to stream large files (e.g., video) from single origin server in real time solution: replicate content at hundreds of servers throughout Internet content downloaded to CDN servers ahead of time placing content close to user avoids impairments (loss, delay) of sending content over long paths CDN server typically in edge/access network origin server in North America CDN distribution node CDN server in S. America CDN server in Europe CDN server in Asia
Redes de Distribuição de Conteúdo (CDN) Content replication CDN (e.g., Akamai) customer is the content provider (e.g., CNN) CDN replicates customers content in CDN servers. when provider updates content, CDN updates servers origin server in North America CDN distribution node CDN server in S. America CDN server in Europe CDN server in Asia
CDN example 1 origin server HTTP request for www.foo.com/sports/sports.html client 2 3 CDN s authoritative DNS server DNS query for www.cdn.com HTTP request for CDN server near client www.cdn.com/www.foo.com/sports/ruth.gif origin server (www.foo.com) distributes HTML replaces: http://www.foo.com/sports.ruth.gif with sports/ruth.gif http://www.cdn.com/www.foo.com/ CDN company (cdn.com) distributes gif files uses its authoritative DNS server to route redirect requests
Resumo: Multimídia na Internet (truques) use UDP para evitar o controle congestionamento do TCP (retardo) para o tráfego sensível ao tempo lado-cliente retardo de reprodução adaptativo: compensa o retardo lado servidor ajusta o fluxo para a banda de acordo com a banda disponível no caminho entre cliente e servidor escolhe entre taxas de fluxos pre-codificados Servidores com codificação dinâmica de taxa recuperação de erros (UDP) FEC, entrelaçamento, cancelamento de erros retransmissão, permitidas pelo tempo CDN: trás o conteúdo para perto dos clientes
PROBLEMA RESOLVIDO?
Voz (VoIP) Presente Futuro
Vídeo (Stream) Presente Futuro
Resumo dos princípios de QoS QoS para aplicações em redes classificação de pacotes isolação: programação e policiamento alta eficiência de utilização admissão de chamadas Mas isso fica para próxima aula venha fazer pós-graduação!
THE END