Distribuição de Mídia Contínua
Voz sobre IP
Jussara M. Almeida
Junho 2005
Voz sobre IP
•
•
Comunicação interativa
Altos requisitos de latência e perdas de pacotes
– Atrasos de 100-150 ms ou acima disto são
perceptíveis ao ouvido humano
– Seres humanos têm baixa tolerância à
degradação de áudio
• Objetivo primário: minimizar latência
• Objetivo secundário: minimizar perdas de
pacotes
Voz sobre IP
•
Métodos atuais:
– UDP
•
•
–
–
Retransmissão de pacotes perdidos podem não
chegar a tempo no destino
Protocolos confiáveis como TCP travam em falhas de
retransmissão ou timeouts
FEC e/ou packet loss concealment
Recuperação limitada para perdas em rajadas
ou perdas súbitas
Voz sobre IP na Internet Atual
•
•
Perdas em rajadas são comuns
Probabilidade condicional de um pacote ser
perdido dado que o ultimo pacote foi
perdido é de 0.72 (muito alto)
–
•
Modelo de perdas: 2 estados
Falhas de links podem durar muito tempo :
5% das falhas duram mais que 2 horas
–
Estas características limitam eficácia de VoIP
Voz sobre IP: Avaliação Inicial
•
Avaliação no ambiente Emulab
–
–
–
•
Transferência de 5 minutos de voz
Rede com atrasos de 50 ms e banda de
10Mbps: link transcontinental
Taxas de perdas variáveis
Métrica:
–
–
PESQ: Perceptual Evaluation of Speech Quality
PESQ = 4 : qualidade de telefone
Voz sobre IP: Avaliação Inicial
•
Mesmo perda de 0.5%, PESQ < 4 para prob. rajada de 0.75
– Internet atual: perda de 0.42% com prob. rajada de 0.72
– Logo: precisa de novas soluções
Proposta
•
–
•
–
–
Arquitetura overlay que melhora o desempenho
de aplicações VoIP quando serviço da Internet
sofre
Taxa de entrega de pacotes alta mesmo frente a altas
perdas com baixo overhead (baixa latência)
Comunicação end-to-end pelo overlay: divisão do
caminho em vários segmentos de overlay
É possível recuperar pacotes com pouco atraso:
recuperação local tem baixo overhead pois links do
overlay tem baixo RTT se comparado à latência do
caminho total
Algoritmo de roteamento pode se adaptar evitando
links do overlay congestionados (alta perda ou
indisponíveis)
Proposta
•
Contribuições:
–
Um protocolo de recuperação de pacotes em tempo real
que entrega pacotes recebidos como UDP mas que
realiza recuperação de pacotes de forma local
•
–
Tenta-se a recuperação somente uma vez e somente se for
provável que o pacote chegue ao destino em tempo
Protocolo de roteamento no overlay adaptativo
específico para VoIP que seleciona o caminho com base
em uma métrica que combina a latência e a perda
observada nos links
Arquitetura Overlay
•
Spines: implementa protocolos específico para a
aplicação
–
–
–
–
•
Manutenção da rede: pings periódicos
Pacotes com número de sequência: deteção de perdas
Atribui um custo a cada link do overlay com base na
perda e latência observadas no link
Custo de links disseminados pela rede de forma
incremental
Melhorar VoIP: novos protocolos para
–
–
Recuperação localizada de pacotes
Roteamento adaptativo
Protocolo de Retransmissão
em Tempo Real
•
Recupera pacotes somente se há uma possibilidade dele
chegar a tempo no destino
Cada nó no overlay mantém um buffer circular de pacotes
para cada link de saída
•
–
•
Pacotes são mantidos no buffer por um período igual ao atraso
máximo suportado pelo codificador de voz
Nós intermediários enviam pacotes à medida que eles
chegam, mesmo fora de ordem
Ao detetar uma perda, um nó envia um NACK requisitando
cópia ao vizinho superior
•
–
–
Pedido de retransmissão enviado somente uma vez
NACKs limitam tráfego de controle quando não há perda
Protocolo de Retransmissão
em Tempo Real
•
Quando um nó recebe um pedido de
retransmissão, ele:
–
–
–
•
Checa se ele tem o pacote no seu buffer circular
Se tem re-envia, se não tem, não faz nada
Número máximo de retransmissões regulado em função
do número de pacotes enviados: limita retransmissões
em links com muitas perdas
Se um nó recebe o mesmo pacote duas vezes,
somente a primeira cópia será transmitida para
frente
Protocolo de Retransmissão
em Tempo Real
•
Protocolo não envia ACKs positivos:
–
•
Não acarreta tráfego adicional se não há perda (exceto
pelos pings)
Protocolo não trava para recuperar pacotes
–
•
Não tem timeouts
Desvantagem: não recupera todos pacotes
–
Pedido de retransmissão é perdido:
•
–
A retransmissão é perdida:
•
–
Se perdas independentes a taxa p, probabilidade é
p  (1-p)  p = p2 – p3
Probabilidade: p  (1-p)  (1 – p)  p = p2 – 2p3 + p4
Probabilidade de perda total ~ 2p2 – 3p3
Protocolo de Retransmissão
em Tempo Real
•
•
•
Distribuição da latência dos pacotes em um link com
atraso T e taxa de perda p:
– (1 – p) dos pacotes terão latência T
– (p - 2p2 + 3p3) dos pacotes terão latência 3T + 
–  = tempo para nó detetar perda
 depende dos tempos entre chegadas de pacotes e do
número máximo de pacotes fora de ordem que o protocolo
suporta
– Um pacote fora de ordem dispara pedido de
retransmissão: latência é crucial
Distribuição de latência em caminho com múltiplos links é
composta das latências em cada segmento
Avaliação
•
•
•
Implementação em Spines e avaliação no Emulab
Cada experimento : 10 fluxos de VoIP
Perda de pacotes após protocolo:
– link de 10 ms: vários níveis de perdas e rajadas
Nível de rajada com
pouco impacto
Aplicação do protocolo
em link com 5% de
perda reduz perda por
um fator de 10 (0.5%)
Avaliação
•
Perda de pacotes após protocolo:
– Dois links concatenados de 10 ms cada
Nível de rajada com
pouco impacto
Aplicação do protocolo
em link com 5% de
perda reduz perda por
um fator de 10 (0.5%)
Avaliação
•
Distribuição da latência
– Um link de 10 ms e 5% de perdas
• 95% dos pacotes chegam em 10 ms
• 4.5% chegam em 30 ms mais tempo entre chegadas de pacotes
• Varia com rajadas
•0.5% dos pacotes são perdidos
Avaliação
•
Distribuição da latência
– Concatenação de 2 links: cada um 10 ms e 5% de perdas
• Somente 1% dos pacotes são efetivamente perdidos
• 0.25% dos pacotes chegam com latência de 66ms: perdas nos dois links
(0.05 X 0.05)
Avaliação
•
•
•
Impacto do protocolo na qualidade da voz
Rede com 5 segmentos de 10 ms cada
– 10 fluxos VoIP de A pra F
– Perdas entre C e D
– Limite de atraso de 100 ms
Avaliação
• Com novo protocolo, independente de rajada ou não, o codec em questão
pode supeortar até 3.5% de perdas para garantir qualidade de telefone
Protocolo de Roteamento em
Tempo Real
•
Objetivo: max # pacotes que chegam no destino
dentro do limite imposto pelo codec (ex: 100ms)
–
–
•
Duas métricas por link: latência e taxa de perda
Computar a distribuição de latência para todos os
caminhos possíveis e escollher o melhor é ótimo mas
muito caro
Solução:
–
–
aproxima custo de cada link por uma métrica
dependente da latência e taxa de perdas
Usa algoritmo do caminho mais curto com esta métrica
Protocolo de Roteamento em
Tempo Real
•
Métrica: latência esperada
–
Latência esperada em um link:
Texp = (1 – p)T + (p - 2p2 + 3p3 )(3T+ ) + (2p2 + 3p3)Tmax
–
Latência esperada em um caminho: soma das latências
nos links
Avaliação
•
•
Topologias aleatórias criadas com o gerador Brite
Para cada topologia, avalia o roteamento entre o
par de nós que estão mais distantes
–
•
% de pacotes que chegam ao destino a tempo (100 ms)
Métricas para roteamento
–
–
–
–
–
–
Latência esperada: Cost = Texp
Distância em hops : Cost = 1
Latência do Link: Cost = T
Taxa de perdas: Cost = - log(1 – p)
Otimizador guloso: Dijkstra modificado onde a cada
iteração, escolhe o próximo nó com taxa de entrega
máxima
Ótimo
Avaliação
•
•
•
Topologias com diâmetro pequeno: roteamento baseado na taxa de
perdas é melhor
Topologias com diâmetro grande: latência é + importante
Latência esperada: bom compromisso
Download

Escalabilidade, Eficiência e Custo