aplicações multimídia limitações da internet atual ... · em relação ao fluxo de dados de...

9
1 1 Redes de Computadores II Aplicações Multimídia e Protocolos de Streaming Profa. Débora Christina Muchaluat Saade [email protected] Departamento de Ciência da Computação - UFF 2 Redes de Computadores II Aplicações Multimídia e Protocolos de Streaming ð Aplicações Multimídia Requisitos ð Limitações da Internet Atual ð Controle da Apresentação de Mídia Contínua Armazenada Procotolo RTSP ð Usando o serviço de melhor esforço Compensação da variação do retardo ð Protocolos de Streaming Protocolos RTP e RTCP ð Referência: Capítulo 6 (Kurose, Redes de Computadores e a Internet) 3 Redes de Computadores II Aplicações Multimídia ð Aplicações multimídia (mídia contínua) Sensíveis ao retardo e variação do retardo (jitter) Pacotes que sofrem retardos de centenas de ms (telefonia IP) até poucos segundos (recepção de mídia armazenada) são inúteis Tolerantes a perdas Perdas ocasionais causam pequenas perturbações na recepção de áudio e vídeo ð Essas características diferem das aplicações tradicionais (mídia discreta) 4 Redes de Computadores II Aplicações Multimídia ð Classificação das aplicações multimídia: Transmissão de mídia contínua armazenada Transmissão de mídia contínua ao vivo Transmissão de mídia contínua interativa 5 Redes de Computadores II Aplicações Multimídia ð Aplicações Multimídia com mídia contínua armazenada Conteúdo foi pré-gravado e armazenado em um servidor Clientes solicitam arquivos de aúdio e vídeo de servidores, recebem a informação pela rede e a apresentam Usuário pode controlar a operação similar a um VCR: pause, resume, fast forward, rewind, etc. Fluxo contínuo: Clientes reproduzem parte do conteúdo ao mesmo tempo em que recebem o restante pela rede Reprodução contínua: Assim que se inicia a reprodução da mídia, ela deve prosseguir de acordo com a temporização original da gravação Restrições ao atraso na entrega dos dados Retardo: Resposta considerada aceitável se o tempo a partir do pedido do cliente até o início da apresentação for de 1 a 10 segundos 6 Redes de Computadores II Aplicações Multimídia ð Aplicações Multimídia com mídia contínua transmitida ao vivo tempo-real unidirecional similar à difusão de rádio e TV convencional, mas a transferência de informação é feita pela Internet Se armazenar o fluxo no cliente, pode pausar e retroceder Muitos clientes recebem o mesmo conteúdo simultaneamente Distribuição eficiente precisa de comunicação multicast Retardo: Resposta considerada aceitável se o tempo a partir do pedido do cliente até o início da apresentação for de 1 a 10 segundos

Upload: others

Post on 27-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

1

1

Redes de Computadores II

Aplicações Multimídia e Protocolos de Streaming

Profa. Débora Christina Muchaluat Saade

[email protected]

Departamento de Ciência da Computação - UFF

2

Redes de Computadores II

Aplicações Multimídia e Protocolos de Streaming

ð  Aplicações Multimídia •  Requisitos

ð  Limitações da Internet Atual ð  Controle da Apresentação de Mídia Contínua Armazenada

•  Procotolo RTSP ð  Usando o serviço de melhor esforço

•  Compensação da variação do retardo ð  Protocolos de Streaming

•  Protocolos RTP e RTCP

ð  Referência: •  Capítulo 6 (Kurose, Redes de Computadores e a Internet)

3

Redes de Computadores II

Aplicações Multimídia

ð  Aplicações multimídia (mídia contínua) •  Sensíveis ao retardo e variação do retardo (jitter)

–  Pacotes que sofrem retardos de centenas de ms (telefonia IP) até poucos segundos (recepção de mídia armazenada) são inúteis

•  Tolerantes a perdas –  Perdas ocasionais causam pequenas perturbações na

recepção de áudio e vídeo

ð  Essas características diferem das aplicações tradicionais (mídia discreta)

4

Redes de Computadores II

Aplicações Multimídia

ð  Classificação das aplicações multimídia: •  Transmissão de mídia contínua armazenada •  Transmissão de mídia contínua ao vivo •  Transmissão de mídia contínua interativa

5

Redes de Computadores II

Aplicações Multimídia

ð  Aplicações Multimídia com mídia contínua armazenada •  Conteúdo foi pré-gravado e armazenado em um servidor •  Clientes solicitam arquivos de aúdio e vídeo de servidores, recebem a

informação pela rede e a apresentam •  Usuário pode controlar a operação

–  similar a um VCR: pause, resume, fast forward, rewind, etc. •  Fluxo contínuo:

–  Clientes reproduzem parte do conteúdo ao mesmo tempo em que recebem o restante pela rede

•  Reprodução contínua: –  Assim que se inicia a reprodução da mídia, ela deve prosseguir de acordo

com a temporização original da gravação –  Restrições ao atraso na entrega dos dados

•  Retardo: –  Resposta considerada aceitável se o tempo a partir do pedido do cliente

até o início da apresentação for de 1 a 10 segundos

6

Redes de Computadores II

Aplicações Multimídia

ð  Aplicações Multimídia com mídia contínua transmitida ao vivo •  tempo-real unidirecional •  similar à difusão de rádio e TV convencional, mas a transferência

de informação é feita pela Internet •  Se armazenar o fluxo no cliente, pode pausar e retroceder •  Muitos clientes recebem o mesmo conteúdo simultaneamente

–  Distribuição eficiente precisa de comunicação multicast •  Retardo:

–  Resposta considerada aceitável se o tempo a partir do pedido do cliente até o início da apresentação for de 1 a 10 segundos

Page 2: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

2

7

Redes de Computadores II

Aplicações Multimídia

ð  Aplicações Multimídia com mídia contínua interativa •  Tempo-real interativo •  Conferência de aúdio ou de vídeo •  Mais exigente nos requisitos de retardo e variação do

retardo que o tempo-real unidirecional por causa da necessidade de interatividade em tempo-real

•  Retardos: –  Aúdio:

•  < 150 ms bom •  de 150 a 400 ms aceitável

8

Redes de Computadores II

Limitações da Internet Atual

ð  Arquitetura Internet fornece serviço de melhor esforço ð  Não há garantias sobre o retardo ou sobre a variação do

retardo •  Congestionamento na rede causa problema •  na Internet pública todos os pacotes recebem tratamento

igual •  Pacotes contendo aúdio e vídeo interativo de tempo-real

permanecem nas filas, como todos os outros. ð  Projeto de aplicações multimídia seria mais fácil se

houvesse várias classes de serviço •  Esforços vêm sendo desenvolvidos para prover serviços

diferenciados com garantias de QoS – qualidade de serviço.

9

Redes de Computadores II

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 jitter ð  Acrescentar marcas de tempo nos pacotes para que o receptor saiba

quando reproduzi-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 todas essas técnicas

10

Redes de Computadores II

Como a Internet deveria evoluir para dar o suporte necessário?

ð  Aumentar a largura de banda •  Junto com aumento do armazenamento

intermediário na rede •  Problema para aplicações que demandam muito

(HDTV sob demanda)

ð  Modificar a infraestrutura de transmissão existente

11

Redes de Computadores II

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 infra-estrutura 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.

13

Redes de Computadores II

Aúdio e Vídeo Armazenados

ð Mídia Contínua armazenada •  Arquivos de Aúdio e de Vídeo são armazenados em servidores •  Usuários solicitam os arquivos por demanda. •  Aúdio/vídeo são apresentados, digamos, 10s após o pedido. •  Controle da apresentação é permitido.

ð Executor da mídia (player) •  remove jitter (variação do retardo) •  Decodifica (descomprime) a mídia •  Realiza correção de erros •  Oferece interface gráfica para controle da apresentação

ð Plug-ins podem ser usados para embutir o executor no browser web •  3 abordagens para a implementação

Page 3: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

3

14

Redes de Computadores II

Acesso a Mídia Contínua a partir de servidores Web (1a. abordagem)

ð  browser cliente solicita o arquivo com uma mensagem HTTP

ð  Servidor Web envia o arquivo na mensagem HTTP de resposta

ð  O cabeçalho “content-type” indica uma codificação apropriada para aúdio e vídeo

ð  browser dispara o executor da mídia e passa o arquivo para ele

ð  executor apresenta o arquivo

•  Maior problema: o executor de mídia interage com o servidor WEB através do Web browser que atua como intermediário.

15

Redes de Computadores II

Alternativa: estabelecer conexão entre o servidor e o executor

ð  browser Web solicita e recebe um metarquivo (um arquivo descrevendo o objeto) ao invés de receber o próprio arquivo;

ð  O cabeçalho “Content-type” indica uma aplicação específica de aúdio e vídeo

ð  Browser dispara o executor de mídia e passa o metarquivo para ele

ð  executor estabelece uma conexão TCP com o servidor e envia a ele a mensagem HTTP

Algumas preocupações: ð  O executor de mídia se

comunica usando HTTP, que não foi projetado para suportar comandos de controle de apresentação

ð  Pode desejar enviar o aúdio e o vídeo sobre UDP

Acesso a Mídia Contínua a partir de servidores Web (2a. abordagem)

(1) pedido/resposta HTTP por um metarquivo

(3) arquivo solicitado é enviado usando o HTTP

(2) metarquivo

16

Redes de Computadores II

Acesso a Mídia Contínua a partir de um servidor específico (3a. abordagem)

ð  Esta arquitetura permite o uso de outros protocolos (RTP, RTSP) (além do HTTP) entre o servidor e o executor de mídia (player)

ð  Pode usar também o UDP ao invés do TCP

(1) HTTP pedido/resposta para o arquivo descritor

da apresentação

(2) arquivo descritor

(3) arquivo de aúdio e vídeo pedido e

enviado

cliente servidores

servidor de vídeo

17

Redes de Computadores II

Real Time Streaming Protocol: RTSP

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 Exemplo de uso: RealNetworks ð  Servidor e cliente usam RTSP para enviar informações de controle

de um para o outro

18

Redes de Computadores II

RTSP: controle fora da banda (out-of-band)

FTP usa um canal de controle “fora-da-banda”:

ð  Um arquivo é transferido sobre uma conexão TCP.

ð  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-da-banda”e “fora-da-banda” usam diferentes números de portas.

Mensagens RTSP também são enviadas “fora-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 enviadas “fora-da-banda”. •  RTSP usa porta 544 do TCP ou

UDP ð  O fluxo de dados de mídia contínua,

cuja estrutura de pacotes não é definida pelo RTSP, é considerada “dentro-da-banda”.

19

Redes de Computadores II

Iniciação do RTSP e controles de entrega

ð  Cliente obtém uma descrição da apresentação multimídia, que pode consistir de vários fluxos de dados (através do HTTP).

ð  O browser chama o executor 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 (URLs) usando o esquema “rtsp://…” 1.  executor envia o comando RTSP SETUP;

servidor envia a resposta RTSP SETUP. 2.  executor envia o comando RTSP PLAY; servidor

envia a resposta RTSP PLAY. 3.  O servidor de mídia descarrega o fluxo de mídia. 4.  executor envia o comando RTSP PAUSE; o

servidor envia a resposta RTSP PAUSE. 5.  executor envia o comando RTSP TEARDOWN;

servidor envia a resposta RTSP TEARDOWN.

HTTP GET

SETUP

PLAY

media stream PAUSE

TEARDOWN

media player

Web server

media server

Web browser

client server

presentation desc.

executor de mídia

Servidor de mídia

cliente servidor

descr. apresent.

fluxo de mídia

Page 4: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

4

20

Redes de Computadores II

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> </session>

21

Redes de Computadores II

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 encerra a sessão com o comando TEARDOWN.

ð  O número de porta do RTSP é 544.

ð  RTSP pode ser usado sobre UDP ou TCP. Cada mensagem RTSP pode ser enviada numa conexão TCP separada.

22

Redes de Computadores II

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=0- C: 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

24

Redes de Computadores II

Aplicações interativas em tempo-real

ð  Exemplo: •  Telefonia IP

25

Redes de Computadores II

Telefonia Internet sobre melhor-esforço

Serviço de Melhor esforço ð  Acarreta atraso de pacotes, perdas e variação de retardo (jitter) Exemplo de telefone Internet ð  As aplicações de telefonia na Internet geram pacotes durante

momentos de atividade da voz •  Rajadas de voz alternadas com períodos de silêncio

ð  taxa de bits é 64 kbps nos intervalos de atividade (G.711) ð  durante os intervalos de atividade a aplicação produz um bloco de

160 bytes a cada 20 ms (8 kbytes/s x 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 retardo de um pacote irá

flutuar. ð  receptor deve determinar quando reproduzir um bloco e

determinar o que fazer com um bloco perdido 26

Redes de Computadores II

Telefonia Internet sobre melhor-esforço

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 ð  Taxas de perda entre 1 e 20% podem ser toleradas ð  Pacotes redundantes podem ajudar

•  Mecanismos de FEC (forward error control) ajudam a ocultar as perdas

Page 5: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

5

27

Redes de Computadores II

Telefonia Internet sobre melhor-esforço

retardo fim-a-fim ð  acúmulo dos retardos de transmissão, propagação, atrasos

nas filas dos roteadores e retardos de processamento nos sistemas finais

ð  mais que 400 ms de retardo fim-a-fim compromete a interatividade; quanto menor o retardo melhor •  Normalmente o receptor descarta pacotes com retardo maior

que um patamar

28

Redes de Computadores II

Telefonia Internet sobre melhor-esforço

variação de atraso (jitter) ð  Retardo nas filas dos roteadores é aleatório ð  considere dois pacotes consecutivos num intervalo de atividade ð  Os retardos fim-a-fim desses dois pacotes podem ser diferentes ð  espaçamento inicial é de 20 ms, mas o espaçamento no receptor

pode ser maior ou menor que 20 ms o jitter pode ser removido: ð  Precedendo cada bloco com um número de seqüência

•  transmissor incrementa esse número para cada novo pacote ð  Precedendo cada bloco com uma marca de tempo

•  transmissor marca cada bloco com o tempo em que foi gerado ð  Atrasando a reprodução

•  O atraso na reprodução deve ser suficiente para que a maioria dos pacotes seja recebida antes do seu tempo de reprodução programado

–  Atraso de reprodução fixo ou adaptativo

29

Redes de Computadores II

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.

ð  Escolha do valor de q: •  q grande: menos perda de pacotes •  q pequeno: melhor controle da interatividade

30

Redes de Computadores II

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

time

packetsgenerated

packetsreceived

loss

rp p'

playout schedulep - r

playout schedulep' - r

pacotes gerados

pacotes recebidos

perda

progr. reprodução Retardo de (p – r)

progr. reprodução Retardo de (p’ – r)

tempo

pacotes

31

Redes de Computadores II

Atraso de Reprodução Adaptativo

pacote ésimo- oreceber após rede na atraso do estimativapacote ésimo- o para rede da atraso

receptor no oreproduzid é pacote o qual no instantereceptor pelo recebido é pacote o qual no instante

pacote ésimo do tempode marca

iditripir

it

i

ii

i

i

i

=

=−

=

=

−=

•  para serviços com interatividade, atrasos fixos longos podem se tornar incômodos ou intoleráveis • Estima o retardo da rede e ajusta o retardo de reprodução no início de cada intervalo de atividade. •  Intervalos de silêncio são comprimidos e alongados. •  Blocos ainda são gerados a cada 20 ms nos intervalos de atividade.

Estimativa dinâmica do retardo médio no receptor: )()1( 1 iiii trudud −+−= −

onde u é uma constante fixa (ex., u = 0,01).

32

Redes de Computadores II

É também usual estimar a variância média do atraso, vi :

||)1( 1 iiiii dtruvuv −−+−= −

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 pacote de um intervalo de atividade, o instante de reprodução é:

iiii Kvdtp ++=

onde K é uma constante positiva. Para este mesmo pacote, o retardo de reprodução é:

iii tpq −=

Para o pacote j no mesmo intervalo de atividade, o pacote deve ser reproduzido em:

ijj qtp +=

Atraso de Reprodução Adaptativo

Page 6: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

6

33

Redes de Computadores II

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 sequê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 sequência então tem-se o início de um intervalo de atividade.

Atraso de Reprodução Adaptativo

34

Redes de Computadores II

Recuperação de Perdas de Pacotes

ð  Perdas: pacote nunca chega ou chega depois do seu tempo de reprodução programado

ð  Correção por FEC ou intercalamento Forward error correction (FEC): esquema simples ð  para cada grupo de n blocos, cria um bloco redundante realizando uma

operação OU exclusivo (XOR) 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 ð  retardo de reprodução precisa ser definido para receber todos os n+1

pacotes ð  Compromisso:

•  aumentar n, menor desperdício de banda •  aumentar n, maior retardo de reprodução •  aumentar n, maior a probabilidade que dois ou mais blocos sejam perdidos

35

Redes de Computadores II

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 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.

Recuperação de Perdas de Pacotes

36

Redes de Computadores II

Recuperação de Perdas de Pacotes

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 (aumento no retardo de reprodução é pequeno) • Pode também anexar os blocos (n-1) e (n-2) do fluxo de baixa qualidade

37

Redes de Computadores II

Intercalamento ð  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 ð  Remontar os blocos no receptor ð  Se o pacote é perdido, ainda resta mais de cada bloco ð  Vantagem: não aumenta a largura de banda!!

Recuperação de Perdas de Pacotes

Fluxo original

Fluxo intercalado

Perda de pacote

Fluxo reconstruído 38

Redes de Computadores II

Recuperação pelo receptor de fluxos de aúdio danificados ð  produzir um substituto para um pacote perdido que

seja similar ao pacote original ð  pode produzir bons resultados para baixas taxas de

perdas (< 15%) e pacotes pequenos (4-40 ms) (fonema dura de 5 a 100ms)

ð  estratégia mais simples: repetição ð  estratégia mais complexa: interpolação

•  Resultado melhor •  Mais processamento

Recuperação de Perdas de Pacotes

Page 7: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

7

39

Redes de Computadores II

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 sequê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

40

Redes de Computadores II

RTP roda em cima do UDP

As bibliotecas do RTP fornecem uma interface que estende o UDP:

•  número de portas, endereços IP •  identificação do tipo de carga •  numeração da sequência de pacotes •  marcas de tempo

Aplicação

Enlace

Física

camada de transporte

RTP é um protocolo de aplicação Alguns autores o colocam como subcamada de transporte

41

Redes de Computadores II

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 sequência e marcas de tempo.

42

Redes de Computadores II

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.

43

Redes de Computadores II

Fluxos RTP

ð  RTP permite atribuir a cada fonte (por exemplo, uma câmera 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, p.e. 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.

44

Redes de Computadores II

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 7, LPC, 2.4 Kbps • Tipo de carga 9, G.722, 48-64 Kbps • Tipo de carga 14, MPEG1 áudio • Tipo de carga 26, Motion JPEG • Tipo de carga 31. H.261 • Tipo de carga 32, MPEG1 vídeo • Tipo de carga 33, MPEG2 vídeo

Número de Sequência (16 bits): O número de sequência é incrementado de um a cada pacote RTP enviado; pode ser usado para detectar perdas de pacotes e ocultar os dados perdidos.

Tipo de Carga Número de Sequência Marca de tempo

Identificador sincronismo fonte

campos de miscelânias

Cabeçalho RTP

Page 8: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

8

45

Redes de Computadores II

ð  Campo de marca de tempo (32 bits). 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 microsseg para uma taxa de amostragem de 8 KHz); se a aplicação de aúdio gera 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 (atribuído aleatoriamente pela fonte). (serve para multiplexar vários fluxos de mídia em um único fluxo UDP)

Cabeçalho RTP

46

Redes de Computadores II

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 retardo 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.

47

Redes de Computadores II

RTCP - Continuação

- Para uma sessão RTP existe tipicamente um único endereço multicast, todos os pacotes RTP e RTCP pertencentes à sessão usam este endereço multicast. - Os pacotes RTP e RTCP são distintos uns 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.

48

Redes de Computadores II

Pacotes RTCP

Pacotes de relatório do receptor: ð  fração de pacotes perdidos,

último número de sequência, variância média do atraso entre chegadas.

Pacotes de relatório do transmissor:

ð  SSRC do fluxo RTP, marca de tempo e o tempo corrente real do pacote mais recente, 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.

49

Redes de Computadores II

Sincronização de Fluxos

ð  RTCP (relatórios dos remetentes) 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-do-transmissor associa o relógio de amostragem com o relógio de tempo real.

ð  Receptores podem usar esta associação para sincronizar a reprodução de aúdio e de vídeo.

50

Redes de Computadores II

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.

Page 9: Aplicações Multimídia Limitações da Internet Atual ... · em relação ao fluxo de dados de mídia contínua e, portanto, são enviadas “fora-da-banda”. • RTSP usa porta

9

51

Redes de Computadores II

Controle de Banda do RTCP

ð  Período para transmitir pacotes RTCP:

ð  Transmissor: •  T = (no. de transmissores / (0,25 x 0,05 x largura de banda

da sessão)) x (tamanho médio do pacote RTCP)

ð  Receptor: •  T = (no. de receptores / (0,75 x 0,05 x largura de banda da

sessão)) x (tamanho médio do pacote RTCP)