Escolar Documentos
Profissional Documentos
Cultura Documentos
Comunicação Multimídia
em Redes IP
Referência:
Redes de Computadores e a Internet: uma abordagem top-down. J. F.
Kurose e K. W. Ross. Pearson, 2010.
Seções: 7.1 a 7.4
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Multimídia sobre IP
- Princípios -
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Comunicação Multimídia em Redes
Características Fundamentais:
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Classes de Aplicações Multimídia
Mídia armazenada, em tempo Tempo-real unidirecional (broadcasting):
contínuo (streaming):
Similar a TV e rádio convencionais,
Clientes solicitam de servidores mas via Internet.
arquivos com áudio e vídeo, Conteúdo gravado ou ao vivo.
recebem a informação pela rede e Não interativo; apenas escutar e ver.
a apresentam.
Tempo-real interativo (conferência):
Interativo: o usuário pode
controlar a operação (similar a um Conferência de áudio ou de vídeo.
tocador de DVD: pausa, toca, Mais exigente nos requisitos de
avança, retrocede, etc.). atraso que o tempo real unidirecional,
Atraso: a partir do pedido do devido à interatividade.
cliente até o início da Vídeo: < 150 ms aceitável.
apresentação, pode ser de 1 a 10 Áudio: < 150 ms, < 400 ms aceitável.
segundos (tipicamente). Jogos Online: 20-40 ms, < 100 ms
aceitável.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Multimídia em redes: desafios
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Aproveitando ao máximo o “melhor esforço”
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Como a Internet consegue trabalhar para
suportar melhor as aplicações multimídia?
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Transporte
- RTP e RTCP -
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Real-Time Transport Protocol (RTP)
O RTP especifica uma estrutura de Interoperabilidade: se duas
pacotes que transportam dados de aplicações usam RTP, então
áudio e vídeo (RFC 3550). elas podem ser capazes de
O RTP opera apenas nos sistemas trabalhar juntas.
finais (pontas) e seus pacotes são
comumente encapsulados em
datagramas UDP (que oferecem Aplicação
portas e detecção de erro).
OBS.: uso do TCP também é possível. camada de
Cada pacote RTP oferece: transporte
UDP (ou TCP)
identificação do tipo de carga;
numeração da sequência de
pacotes; Enlace
marcas de tempo (timestamps).
Física
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
RTP - características
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
RTP e QoS
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Fluxos RTP
O RTP permite atribuir a cada Contudo, algumas técnicas de
fonte (por exemplo, uma codificação populares, incluindo
câmara ou um microfone) o seu o MPEG2 e o MPEG4, reúnem
próprio fluxo independente de o áudio e o vídeo num único
pacotes RTP. fluxo durante o processo de
codificação. Quando o áudio e o
Por exemplo, para uma
vídeo já são reunidos pelo
videoconferência entre dois
codificador, então apenas um
participantes, quatro fluxos RTP
fluxo RTP é gerado em cada
poderiam ser abertos:
direção.
dois fluxos para transmitir o
áudio (um em cada direção); Para uma sessão multicast do
e dois fluxos para o vídeo tipo “muitos-para-muitos”, todos
(novamente, um em cada os transmissores e receptores
direção). tipicamente enviam seus fluxos
RTP na mesma árvore de
multicast, com o mesmo
endereço de multicast.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Cabeçalho RTP
Número de Identif. de fonte Extensões
Diversos Tipo de Carga Marca de Tempo
Sequência de sincronismo (opcionais)
Cabeçalho RTP
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
RTCP
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Sincronização de Fluxos
RTCP pode ser usado para Cada pacote relatório-do-
sincronizar diferentes fluxos transmissor RTCP contém
de mídia numa sessão RTP. para o último pacote gerado
Considere uma aplicação de no fluxo RTP associado, a
videoconferência para a qual marca de tempo do pacote
cada transmissor gera um RTP e o instante de tempo
fluxo RTP para áudio e um real no qual o pacote foi
outro para vídeo. criado.
As marcas de tempo nestes Desta forma o pacote RTCP
pacotes são vinculadas aos relatório-do-transmissor
relógios de amostragem de associa o relógio de
vídeo e de áudio, mas não amostragem com o relógio de
são vinculadas a um relógio tempo real.
de tempo real (isto é, a um Receptores podem usar esta
relógio de parede). associação para sincronizar a
reprodução de áudio e vídeo.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Controle de Banda do RTCP
O RTCP procura limitar seu Os 75 kbps dedicados aos
tráfego a 5% da banda receptores são divididos de forma
passante da sessão. igual entre todos os receptores.
Assim, se existem R receptores,
Por exemplo, suponha que cada receptor consegue enviar
existe um transmissor enviando tráfego RTCP a uma taxa de 75/R
vídeo com uma taxa de 2 Mbps. kbps e o transmissor envia tráfego
Então o RTCP procura limitar RTCP a uma taxa de 25 kbps.
seu tráfego a 100 Kbps.
Um participante (um transmissor
O protocolo dá 75% desta taxa, ou receptor) determina o período de
ou 75 kbps, para os receptores; transmissão de pacotes RTCP
ele dá os 25% restantes da dinamicamente calculando o
taxa, isto é, 25 kbps, para o tamanho médio do pacote (durante
transmissor. toda a sessão) e dividindo o
tamanho médio do pacote RTCP
pela sua taxa alocada.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Mídia armazenada, em tempo
contínuo (streaming)
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Áudio e Vídeo em Tempo Contínuo
Mídia armazenada em tempo Transdutor de Mídia (player):
contínuo (streaming):
remove jitter (via buffer);
Arquivos de áudio e de vídeo são descomprime;
armazenados em servidores. corrige erros;
Usuários solicitam os arquivos de oferece interface gráfica para
áudio e de vídeo por demanda. o usuário, com controles
O áudio ou vídeo inicia a para interatividade.
reprodução cerca de 10 s após o
pedido.
Plug-ins ou HTML5 podem ser
Uma vez iniciada, a reprodução usados para embutir o acesso ao
tem que se manter sem falhas. transdutor de mídia na janela de
Interatividade (pausas, avanços, um browser (navegador de web).
retrocessos, saltos) é possível na
reprodução .
Na rede podem ocorrer atrasos
variáveis, perdas e retransmissões.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Fluxo de tempo contínuo em servidores Web (I)
Os arquivos de áudio e de vídeo são armazenados em Servidores Web.
Abordagem simplória:
Browser envia mensagem HTTP do tipo pedido, para obter o arquivo de mídia.
Servidor Web envia o arquivo de mídia na mensagem HTTP do tipo resposta,
onde o cabeçalho “content-type” indica a codificação apropriada.
Browser dispara o Transdutor de Mídia e passa o arquivo para ele.
Maior problema: o Browser é um gargalo entre o Transdutor de Mídia e o
Servidor Web.
cliente servidor
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Fluxo de tempo contínuo em servidores Web (II)
Alternativa 1 - estabelecer conexão direta entre o servidor e o transdutor:
Browser 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 a codificação apropriada para áudio/vídeo.
Browser dispara o Transdutor de Mídia e passa o meta arquivo para ele.
Transdutor estabelece uma conexão TCP com o servidor e obtém dele o
arquivo de mídia na mensagem HTTP do tipo resposta.
Problemas: o HTTP não foi projetado para suportar comandos de controle de
apresentação; o HTTP opera sobre o TCP, que varia muito a taxa de
comunicação devido ao seu controle de congestionamento.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Fluxo de tempo contínuo em servidores Web (III)
Alternativa 2 – servidor de mídia separado do servidor web:
Browser solicita e recebe um meta arquivo (um arquivo descrevendo o
objeto), ao invés de receber o próprio arquivo.
Browser dispara o Transdutor de Mídia e passa o meta arquivo para ele.
Transdutor estabelece comunicação direta com um Servidor de Mídia, sem
usar o HTTP; o mais comum é usar UDP.
Problemas: o UDP não tem comandos de controle de apresentação (exige
RTSP - a seguir); comunicação UDP pode ser bloqueada por firewalls;
recuperação de erros fica por conta da aplicação; UDP não realiza controle
de congestionamento.
(1) pedido/resposta via
HTTP para o meta
arquivo
(2) meta
arquivo
transdutor servidor
de mídia (3) arquivo de áudio ou de vídeo
vídeo pedido e enviado
cliente servidores
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Questões ao usar um servidor dedicado de mídia
buffer
cliente
área com
mídia
via UDP:
Fonte envia a uma taxa constante (= taxa de codificação) sobre o UDP.
Para reduzir os efeitos do jitter, deve-se armazenar e exibir com um atraso de 1 a 10 s.
Taxa de leitura = d, tem que ser igual à taxa de codificação.
Taxa de enchimento x(t) é igual a d, exceto quando há jitter e perdas.
via TCP:
TCP envia na máxima taxa possível sobre a rede, mas evitando congestionamento.
TCP retransmite quando um erro é encontrado, garantindo a recuperação de erros.
x(t) agora varia e pode tornar-se muito diferente de d.
Destino deve usar um buffer muito maior, para compensar a variação na taxa de
entrega do TCP, assim como um atraso inicial maior na reprodução.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Real Time Streaming Protocol (RTSP)
RTSP (RFC 2326):
Protocolo de aplicação, do tipo cliente-servidor, que permite ao usuário controlar
apresentações de mídia contínua: voltar ao início, avançar, pausar, continuar, pular,
selecionar trilha, etc…
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Operação do RTSP e controles de entrega
O cliente obtém uma descrição da
apresentação multimídia, que pode consistir
de vários fluxos de dados.
HTTP GET O browser chama o transdutor de mídia
Web Web
browser descr. apresent.
presentation desc. server (aplicação auxiliar) com base no tipo de
SETUP conteúdo da descrição da apresentação.
A descrição da apresentação inclui
PLAY referências aos fluxos de mídia usando o
método rtsp://
media
Transdutor fluxo
mediade mídia
stream Servidor
media
de mídia
player
de mídia
server Transdutor envia o comando RTSP SETUP;
PAUSE
servidor envia a resposta RTSP SETUP.
TEARDOWN Transdutor envia o comando RTSP PLAY;
servidor envia a resposta RTSP PLAY.
cliente
client servidor
server O servidor de mídia descarrega o fluxo de
mídia.
Transdutor envia o comando RTSP PAUSE;
O número default de porta do RTSP é 554.
o servidor envia a resposta RTSP PAUSE.
RTSP pode ser usado sobre UDP ou TCP.
Cada mensagem RTSP pode ser enviada Transdutor envia o comando RTSP
numa conexão TCP separada. TEARDOWN; servidor envia a resposta
RTSP TEARDOWN.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Exemplo de um 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>
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
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
S: 200 3 OK
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Fluxo de tempo contínuo em servidores Web (IV)
Alternativa 3 - DASH: Dynamic, Adaptive Streaming over HTTP:
Servidor Web armazena várias codificações para a mesma mídia, com
diferentes qualidades e taxas de transmissão, sendo que cada codificação
é dividida em blocos de poucos segundos de duração (chunks).
Browser solicita e recebe um manifesto (arquivo listando as URLs das
codificações e os blocos disponíveis), ao invés de receber o próprio
arquivo.
Browser dispara o Transdutor de Mídia e passa o manifesto para ele.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Mídia interativa em tempo
real (conferência)
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Aplicações interativas em tempo-real
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Telefonia IP: cenário
Serviço “melhor esforço”:
atraso de pacotes, perdas e variação de atraso (jitter).
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Telefonia IP: desafios
Perda de pacotes: Atraso fim-a-fim:
O datagrama UDP é encapsu- Acúmulo dos atrasos de trans-
lado num datagrama IP, o qual missão, propagação, proces-
pode ser descartado por falta samento e filas.
de espaço num roteador. Mais que 400 ms de atraso fim-
Com o TCP se poderia eliminar a-fim comprometem a interativi-
perdas, mas retransmissões dade; menor atraso é melhor.
aumentariam o atraso e o Variação de atraso (jitter):
controle de congestionamento Pacotes consecutivos num
do TCP limitaria a taxa de intervalo de atividade saem com
transmissão. espaçamento de 20 ms, mas o
Pacotes redundantes podem espaçamento no receptor pode
ajudar. ser maior ou menor que 20 ms.
Remoção do jitter:
use números de sequência;
use marcas de tempo;
adie o momento da reprodução.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Telefonia IP com atraso fixo de reprodução
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’
pacotes
packets
pacotes
packets perda
loss
gerados
generated
pacotes
packets progr.schedule
reprodução
recebidos playout
p -pr - r
received
progr.
playoutreprodução
schedule
p’ --rr
p'
tempo
time
r
p p'
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Atraso de reprodução adaptativo (I)
• Estima o atraso da rede e ajusta o atraso de reprodução no início de
cada intervalo de atividade.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Atraso de reprodução adaptativo (II)
É 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.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Atraso de reprodução adaptativo (III)
Como saber se um pacote é o primeiro de um intervalo de atividade?
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Recuperação de perdas de pacotes (I)
Perdas: pacote nunca chega ou chega depois do seu tempo de
reprodução programado.
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Recuperação de perdas de pacotes (II)
2º esquema de FEC: Fluxo original
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Recuperação de perdas de pacotes (III)
3º esquema de FEC
(Intercalação): Fluxo original
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010
Recuperação de perdas de pacotes (IV)
Recuperação exclusivamente no receptor:
UFMG
© UFMG – Depto
- Depto Engenharia Eletrônica –- Prof. Luciano de Errico - 2022
de Eng. Eletrônica 2010