SMU29009: Sistemas Multimidia

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Próxima aula


Desafios para multimidia

Multimidia tem se tornado pervasiva em aplicações, e elas envolvem:

  • Manipulação de uma variedade de formas de midia
  • Aquisição, armazenamento e obtenção, transmissão e reprodução de diferentes tipos dados:
    • texto, imagens, voz, áudio, video, animação, ...
    • filmes: video + audio + legendas + outros dados descritivos ...


De forma genérica, sistemas multimidia apresentam certos desafios em seus projetos e operações. Tomando como caso representativo o caso de video, podem-se citar:

  • Entrega de dados de forma sincronizada, contínua, e respeitando prazos estritos
  • Demanda por grandes áreas de armazenamento
  • Do lado do provedor de serviço, a catalogação e indexação, busca e obtenção dentre milhares de videos (imagine Netflix, Amazon Prime, Youtube, e similares ...)


Aproveitando o exemplo sobre videos, e para ilustrar a questão do sincronismo para correta reprodução de diferentes tipos de conteúdo (ver figura a seguir), considere-se a constituição de um filme em meio digital. Estruturalmente, um filme é formado por um sequência de quadros de imagem acompanhada por uma ou mais trilhas de áudio e possivelmente trilhas de legendas. O usuáiro que deseja reproduzir um filme seleicona a trilha de áudio e de legendas (esta última caso necessário). A reprodução deve assim apresentar esses conteúdos de forma sincronizada, respeitando tempos estritos, para que o filme possa ser apreciado.


SMU-Video-exemplo.jpg
A constituição típica de um filme em meio digital


Dificuldades parecidas podem ser identificadas em outras aplicações multimidia. Tais desafios têm forte relação com o fornecimento desses serviços através da Internet. No cenário atual, como ilustrado na figura a seguir, diversas aplicações coexistem na Internet e são acessadas em larga escala. Em alguma medida elas envolvem interatividade, comunicação de tempo-real, exigências quanto a largura de banda, e até, em alguns casos, mecanismos específicos de disseminação.


SMU-Sistemas-exemplos.jpg
Um cenário atual de aplicações multimidia


Dentre essas aplicações, vale citar alguns exemplos específicos:

  • Video em broadcast ou multicast: videos armazenados ou ao vivo distribuidos de forma simultânea a múltiplos clientes
  • Video por demanda (VoD): videos armazenados que são selecionados por usuários, possivelmente com previsualização e possibilidade de controle de reprodução (pausa, avançar, retroceder)
  • Video quase por demanda (nVoD): videos populares que são transmitidos periodicamente, para que possam ser assistidos pelos interessados (isso dificulta o controle de reprodução)
  • Videoconferência: video, áudio, chat e possivelmente documentos compartilhados entre usuários dispersos geograficamente. A qualidade da conferência depende da disseminação sincronizada e eficiente de conteúdos entre os participantes.
  • Educação a distância (EaD): forums e aulas à distância envolvem as mesmas questôes de videoconferência, somadas ao trabalho cooperativo em documentos compartilhados
  • Jogos: jogos com múltiplos jogadores dispersos geograficamente, em que suas ações devem ser finamente sincronizadas para que a experiência do jogo seja consistente


Todas essas aplicaçoes requerem recursos para funcionarem corretamente, o que gera uma pressão sobre a infraestrutura e organização da rede e dos sistemas computacionais envolvidos.

Demandas por recursos

Dependendo do tipo de conteúdo, existe uma certa demanda por armazenamento, processamento e largura de banda. A tabela a seguir exemplifica alguns casos, comparando-os com as capacidades de transmissão de alguns tipos de dispositivos e tecnologias.


SMU-Demandas-recursos.jpg
Demandas por largura de banda de alguns tipos de conteúdo


Os dados exemplificados se referem à largura de banda bruta, sem qualquer compressão. Na prática, dados multimidia são (quase) sempre compactados. Sendo assim, a demanda por largura de banda (e armazenamento !) pode ser reduzida consideravelmente, como mostrado a seguir:

SMU-Compressao.jpg
Efeito da compressão na demanda por largura de banda


Mesmo com compressão de dados, existe uma largura de banda mínima que deve estar disponível para que uma transmissão multimidia possa ser realizada efetivamente. Mas, ainda que tal largura de banda possa ser fornecida, ela pode não ser suficiente. Existem outros efeitos de transmissão que podem inviabilizar o correto funcionamento de uma aplicação multimidia. Em particular existem o atraso fim-a-fim (delay) e a variação do atraso (jitter). Esses dois fatores estão diretamente relacionados com a sincronização entre transmissor e receptor, como ilustrado a seguir:


SMU-Delay-jitter.jpg
Atraso fim-a-fim e variação de atraso


Uma aplicação VoIP é um bom exemplo do efeito desses fatores relacionados com atraso. Seja um sistema de transmissão de voz como mostrado a seguir:

SMU-Voip-exemplo.jpg

Nesse sistema, o sinal de voz é amostrado a cada 125 us (8000 amostras/segundo). Cada amostra possui um tempo específico de 125 us para ser reproduzida, de forma que o som possa ser reproduzido no destino. Se um conjunto de 160 amostras é empacotado e enviado a cada 20 ms, cada pacote tem um prazo de até 20 ms, contados da recepção do pacote anterior, para ser recebido de forma que o som possa ser reproduzido sem interrupções (spikes). Porém quando um pacote viaja pela Internet ele se sujeita a um atraso entre sua transmissão pela origem e seua recepção no destino, caracterizando-se um atraso fim-a-fim. Além disso, podem ocorrer atrasos variáveis, principalmente devido a filas de espera em roteadores. Aplicações VoIP, portanto, precisam de técnicas para compensar esses fatores, sendo corriqueiro o uso de um buffer de reprodução que prearmazena uma certa quantidade de amostras de forma a evitar que o reprodutor fiquem sem dados (ver imagem a seguir). Porém isso tem limite, pois existe um valor máximo de atraso entre geração e reprodução que pode ser imposto sem tornar uma conversa difícil de entender (tipicamente 300 ms).

SMU-Buffer-reprodução.jpg
Efeito do buffer de reprodução para compensar jitter


Buffers de reprodução são largamente utilizados, o que indica que na maioria das vezes os atrasos de transmissão de pacotes são suficientemente pequenos (assim como seus jitters). A figura a seguir ilustra uma curva de densidade de probabilidade para atrasos de transmissão de pacotes. De acordo com ela, apenas 1% dos pacotes na Internet tem atrasos superiores a 150ms. Esses resultados foram obtidos em algum estudo (cuja fonte não foi identificada), porém é plausível. Se estiver correto, então a maior parte do tempo o uso de buffers de reprodução consegue ressincronizar o destino de uma transmissão com sua origem, possibilitando a reprodução correta de conteúdo.

SMU-Distribuicao-atrasos.jpg
Distribuição de atrasos de transmissão de pacotes


Se com audio esses problemas são relevantes, no caso de video se tornam ainda mais proeminentes. A demanda por recursos por video é significativamente maior que por audio. Um video tipicamente é formado por sequências de quadros (imagens), porém as técnicas de compressão utilizadas fazem com que cada novo quadro demande uma certa quantidade de dados para ser representado. Isso causa uma taxa de transmissão variável quando o video é transmitido, como exemplificado a seguir. Com taxa de dados variável, porém mantendo a demanda por sincronismo, o problema se torna mais complexo: com taxa vartiável os prazos para reprodução de quadros também variam, e a transmissão se caracteriza por rajadas (o que nçao ajuda na variação de atraso ao longo da rede).

SMU-Mpeg4-frame-sizes.jpg
Taxa de bits variável de um video

Essas demandas por recursos, e suas consequências infraestrutura de geração, transmissão e reprodução motivam o conceito de qualidade de serviço (QoS), que descreve o que é necessário para que uma determinada aplicação funcione conforme projetada.

Atividade

  1. Identifique as demandas por recursos de alguns conteúdos multimidia: largura de banda mínima e máxima requerida, atraso e jitter máximo
  2. Faça um estudo sobre o atraso fim-a-fim em diversos pontos da Internet: isso implica realizar uma quantidade significativa de medições do atraso entre sua localização e diferentes outros locais da Internet. Ao final, deve-se informar qual o atraso máximo com 1, 2 e 3 percentis de confiança.
  3. Faça um estudo sobre a variação de atraso nas transmissões de conteúdos multimidia: isso envolve analisar os intervalos entre pacotes, e gerar um histograma de frequência das variações de atraso. Ao final, deve-se informar qual o jitter máximo com 1, 2 e 3 percentis de confiança.
  4. Investigue e caracterize a taxa de bits de alguns videos ao longo de suas transmissões: isso envolve medir a taxa de bits dentro de intervalos regulares ao longo da transmissão. Gere um gráfico das taxas de bits do video do início ao fim da transmissão.

Qualidade de Serviço (QoS)


De acordo com Jens B. Schmitt, em seu livro Heterogeneous Network Quality of Service Systems, qualidade de serviço é o comportamento bem definido e controlável de um sistema de acordo com parâmetros mensuráveis quantitativamente. De forma parecida, o padrão ITU-T G.9660 define qualidade de serviço como um conjunto de requisitos nas comunicações na rede, cujo suporte se refere a mecanismos que podem prover prioridades diferentes para diferentes fluxos, ou podem garantir um nível mensurável de desempenho para um fluxo com base em um conjunto de parâmetros de qualidade de serviço. Essa definição do ITU-T se refere mais especificamente à comunicação, porém o conceito de QoS se aplica a outros domínios de um sistema.


Em uma visão geral, QoS está presente em diferentes níveis de um sistema. Sendo assim, requisitos de QoS podem se apresentar desde o processamento de uma aplicação em um nodo até a rede, como ilustrado a seguir. No caso desta disciplina, o foco do estudo sobre QoS está na rede, por isso devem-se caracterizar seus parâmetros e identificar mecanismos nesse nível.

SMU-Qos-layers.jpg
QoS em diferentes camadas


As definições sobre QoS enfatizam que devem existir parâmetros mensuráveis quantitativamente para caracterizar qualidade de serviço em cada nível. A tabela a seguir mostra alguns parâmetros que podem ser usados para essa finalidade, dependendo do nível em que especifiquem os requisitos de QoS.

SMU-Qos-parameters.jpg
Parâmetros de QoS


No caso específico de qualidade de serviço nas comunicações (na rede), podem-se definir parâmetros tais como:

  • Relacionados à vazão: taxa de bits máxima sustentável, tamanho máximo de rajada, tamanho máximo de pacote
  • Relacionados à atraso ou latência: máximo atraso fim-a-fim, máxima variação do atraso fim-a-fim (jitter)
  • Relacionados a perdas/resiliência: quantidade máxima de perdas por intervalo de tempo (taxa de perdas), quantidade máxima de perdas de pacotes sucessivas
  • Relacionados à disponibilidade: máxima duração de indisponibilidade por intervalo de tempo, intervalo mínimo enter indisponibilidades


Por exemplo, algumas aplicações típicas podem ter seus requisitos de QoS especificados como mostrado nesta tabela (de acordo com padrão G.114:

PJI4-Qos-itut.png
Requisitos de QoS de comunicação de algumas aplicações


O atendimento de requisitos de QoS de comunicação pode ser feito:

  • No nodo onde reside a aplicação: isso envolve mecanismos como prearmazenamento de dados para compensar jitter, regulação de taxa de transmissão para adaptar à largura de banda disponível, tratamento de perda de dados, entre possivelmente outros, negociação de qualidade de transmissão, entre possivelmente outros.
  • Na rede, envolvendo seus protocolos e equipamentos de interligação: isso envolve o tratamento de filas de saída em equipamentos de interligação, tais como mecanismos de conformação de tráfego (traffic shaping), priorização de fluxos e política de descarte em caso de congestionamento; e também mecanismos como reserva de recurso, escolha de caminho e disseminação, entre outros.

Transmissão de dados multimidia

  • Capitulo 7 do livro Redes de Computadores e a Internet, 5a ed. de James Kurose.


A transmissão de dados multimidia está sujeita a alguns fatores, destacando-se:

  • Banda disponível: cada tipo de transmissão demanda uma certa banda mínima (ver o exemplo dos videos gerados na aula anterior, que demandam em torno de 250 kbps). A banda requerida depende do codec, podendo mesmo ser variável (ver figura abaixo). Se a banda disponível na rede não for suficiente, a reprodução dos dados transmitidos não será possível (quer dizer, a reprodução contínua simultânea ao recebimento dos dados).
    Rt-transmission.png
  • Atrasos fim-a-fim: alguns tipos de transmissão são mais sensíveis a atrasos fim-a-fim, como por exemplo conversações VoIP, porém todas transmissões de dados multimidia apresentam pouca tolerância a variações de atraso. A variação de atraso excessiva causa a perda de sincronismo entre a transmissão e a recepção, impedindo a reprodução contínua dos dados recebidos.

Componentes do atraso fim-a-fim

O atraso fim-a-fim, contado portanto desde a origem de um pacote até seu destino, se compõe de um conjunto de tempos despendidos ao longo de sua transmissão. Alguns desses tempos são constantes, porém outros são variáveis.

Atraso Descrição Tipo Expressão
(F: tamanho de um pacote em bytes,
B: taxa de bits do link)
Transmissão Tempo entre o início da saída do 1o bit até a saída do último bit de um pacote pela interface de rede. Depende basicamente da taxa de bits do link onde se dá a transmissão. Variável (depende do tamanho do pacote)
Propagação Tempo entre a saída do 1o bit de um pacote da interface de rede do equipamento transmissor, e sua chegada na interface de rede do equipamento receptor. Depende basicamente da latência do meio de transmissão. Constante
Processamento Tempo entre a recepção de um pacote e a ação a ser feita sobre ele dentro de um equipamento de rede (seja encaminhá-lo por outro link, ou entregá-lo a uma aplicação que o consumirá) Usualmente desprezível
Enfileiramento Tempo de espera de um pacote na fila de saída de uma interface de rede por onde deve ser transmitido. Depende de quantos pacotes (e quantos bytes) estão na sua frente nessa fila. Variável


No exemplo abaixo, os links LAN (link1, link2, link7 e link8) possuem taxa de 1 Gbps, e os links WAN (demais links) possuem taxa de 10 Mbps. As filas dos roteadores podem conter até 100 pacotes de 1500 bytes (tamanho máximo de pacote). Os links WAN possuem latência de 2 ms (a dos links LAN é desprezível). Sendo assim, calcular o atraso mínimo e máximo que cada pacote pode sofrer entre sua saída do servidor de video e sua chegada no reprodutor. Os pacotes de vídeo têm tamanho de 1500 bytes:

Componentes-atraso.png

Atrasos de transmissão nos links WAN:
Atrasos de transmissão nos links LAN:
Atraso de enfileiramento em roteador: melhor caso
(fila vazia)
Atraso de enfileiramento em roteador: pior caso
(fila cheia):

O menor atraso pode ser calculado assim:


... e o maior atraso possível é:

Com isso, uma transmissão de video nessa rede está sujeita a atrasos máximo de cerca de 492 ms por pacote, e variação de atraso de até . Note-se que, nessa rede, a variação de atraso se deve essencialmente a atrasos de enfileiramento nos roteadores. Em outras redes pode haver fatores adicionais para variações de atraso: perdas de pacotes por erros de transmissão ou congestionamento, priorização de pacotes, e até o controle de congestionamento TCP (se esse protocolo for usado para a transmissão).

O exemplo acima diz respeito a uma pequena rede com bons links WAN e pequeno número de saltos (roteadores intermediários) entre origem e destino. Em um cenário mais realista, como um usuário doméstico acessando videos no Youtube, a situação pode ser bem pior. Para fins de comparação, da rede da escola até o Youtube foram contados 9 saltos, e de casa se contaram 8 saltos (o caso do Youtube é um pouco mais complicado, pois sua infraestrutura é baseada em um tipo de CDN).

Se cada pacote está sujeito a um atraso variável, o reprodutor de video no receptor precisa de algum mecanismo para compensar essas variações e apresentar o video de forma contínua. O mesmo raciocínio vale para transmissões de audio.

Estratégias para tratar a variação de atraso

Mecanismos para compensar atraso e variação de atraso da rede:

  • Numerar cada mensagem com um número de sequência.
  • Registrar o instante em que cada mensagem foi gerada (i.e. registrar seu timestamp).
  • Atrasar a reprodução do conteúdo no receptor, para compensar variações de atraso.

Rt-traffic.png
Atrasos devido a transmissão


Esses mecanismos são combinados nas seguintes estratégias para compensar variação de atraso:


Atraso de reprodução fixo

Compensa atrasos de mensagens com a imposição de um atraso fixo q no reprodutor de midia. Mensagens recebidas após seu instante de reprodução (i.e. chegam após timestamp + q) são descartados.


Atraso-de-reproducao-fixo.png
Atraso de reprodução: midia será tocada somente no instante , sendo que . O atraso q corresponde ao atraso de reprodução imposto do lado do cliente, para compensar variações de atraso das mensagens.


Por exemplo, uma sequência de mensagens pode ser reproduzida da seguinte forma se for imposto um atraso fixo:

Atraso-de-reproducao-fixo2.png

Atraso de reprodução adaptativo

Procura minimizar o atraso de reprodução, estimando o atraso da rede e sua variação. O atraso de reprodução assim calculado é imposto no receptor antes de cada rajada de mensagens (isso faz mais sentido em transmissão de voz).


Por exemplo, uma sequência de mensagens pode ser reproduzida da seguinte forma se for imposto um atraso adaptativo:

Atraso-de-reproducao-adaptativo-1.png


Se uma determinada mensagem se atrasar além do tolerável, será descartada (não reproduzida):

Atraso-de-reproducao-adaptativo-2.png


Atividade

  1. Na figura abaixo um transmissor começa a enviar audio empacotado periodicamente em t = 1. O primeiro pacote chega quando o transmissor está em t = 8.
    • Quais são os atrasos (do transmissor ao receptor, ignorando qualquer atraso de transmissão) dos pacotes 2–8? Cada segmento de linha vertical e horizontal na figura tem o comprimento de 1, 2 ou 3 unidades de tempo
    • Se a reprodução de audio começa assim que o receptor está em t = 8, qual dos primeiros oito pacotes enviados não chegará em tempo para a reprodução? E para o caso do receptor estar em t = 9?
    • Qual o mínimo de atraso de reprodução no receptor que resulta em todos os oito primeiros pacotes chegarem a tempo para a reprodução?

      SMU-Exercicio-buffer.jpg
  2. O efeito do uso de um buffer de reprodução pode ser percebido com uma aplicação que possibilite dimensionar ou mesmo desabilitar seu buffer. O reprodutor mplayer oferece muitos recursos para reprodução de conteúdo, e possibilita a parametrização de suas diversas funcionalidades.
    • Reproduza este video usando o mplayer.
      mplayer http://tele.sj.ifsc.edu.br/~msobral/smu/innersection.mp4
      
      ... e experimente avançar 10 minutos teclando PAGE UP. Observe a cotinuidade de reprodução tanto do video quanto do audio.
    • Reproduza novamente o video, porém desta vez desativando o buffer de reprodução:
      mplayer -nocache http://tele.sj.ifsc.edu.br/~msobral/smu/innersection.mp4
      
      ... e avance 10 minutos, novamente observando a continuidade do video e do audio. Algo mudou ?
    • Reproduza novamente o video, porém desta vez dimensionando o buffer de reprodução para 2 MB:
      mplayer -cache 2000 http://tele.sj.ifsc.edu.br/~msobral/smu/innersection.mp4
      
      ... e avance 10 minutos, novamente observando a continuidade do video e do audio. Algo mudou ?

Mecanismos para tratamento de QoS na rede


Como PROVER qualidade de serviço em uma rede ?

  • Como classificar os pacotes, para que sejam tratados de acordo com os requisitos de QoS especificados ?
  • Como garantir banda para um determinada classe de tráfego ?
  • Como limitar o uso de banda ?
  • Como limitar o atraso fim-a-fim de pacotes ?
  • Como limitar a variação de atraso (jitter) de pacotes ?

Assume-se que a rede considerada seja formada por uma malha de roteadores. Cada interface de um roteador possui uma fila de saída, onde ficam os pacotes à espera de serem transmitidos, como mostrado na figura a seguir. Essas filas possuem tamanho limitado, sendo implementadas por buffers de memória. Para prover QoS, uma primeira necessidade é controlar quando saem pacotes por uma interface (para limitar banda), e a ordem em que pacotes saem (para priorizar pacotes, garantir banda e limitar atrasos). Isso significa atuar principalmente sobre as filas de saída das interfaces de rede.

Filas-roteador.png


Algumas técnicas conhecidas podem ser usadas para atender os requisitos acima:

  • Classificador: classifica os pacotes em classes de serviço, de acordo com contratos de tráfego predefinidos. Atua na entrada de pacotes no roteador.
  • Disciplinas de filas: trata de definir a ordem de saída de pacotes. Com isso se consegue implementar garantia de banda mínima, priorização de tráfego, redução de atraso fim-a-fim e variação de atraso.
  • Condicionamento de tráfego (traffic shaping): trata de definir quando pacotes podem sair. Com isso se pode fazer limitação de banda. Usualmente realizado nos sistemas finais (ou na borda da rede).
  • Policiamento de tráfego: cuida de impor que o tráfego respeite o nível de serviço negociado. Implica em descarte de pacotes quando houver violação. Usualmente realizado nos roteadores e switches (núcleo da rede).
  • Controle de admissão: envolve mecanismos para que usuários ou aplicações negociem com a rede o nível de serviço a ser oferecido, conferindo se os requisitos de QoS podem ser atendidos. Pode ser feito por meio de protocolos de sinalização, ou estaticamente pelo operador da rede.


SMU-Juniper-quality-of-service.png
Mecanismos de QoS em roteadores Juniper

A combinação dessas técnicas possibilita atender os requisitos de QoS especificados para diferentes tipos de tráfego. Elas são amplamente usadas em arquiteturas para QoS na Internet, tais como Intserv e Diffserv.

Disciplinas de filas

Disciplinas de filas são algoritmos para definir a ordem de saída de pacotes de uma fila de acordo com algum critério. Algumas disciplinas de filas clássicas são:

  • FIFO: pacotes saem na mesma ordem de chegada.
    SMU-Fifo-qdisc.jpg
    Disciplina de filas FIFO
  • Prioridades: existem múltiplas filas, e pacotes são armazenados em filas de acordo com suas prioridades. Pacotes saem na ordem de prioridade das filas.
    SMU-Prio-qdisc.jpg
    Disciplinas de filas com prioridades
  • Varredura cíclica (RR): existem múltiplas filas, e pacotes são classificados e dispostos em diferentes filas. As filas são servidas igualmente, de forma que pacotes saem ciclicamente de cada uma das filas.
    SMU-Rr-qdisc.jpg
    Disciplina de filas RR
  • Enfileiramente justo ponderado (WFQ): semelhante a varredura cíclica, porém cada fila é atendida com uma frequência definida por um peso.
    SMU-Wfq-qdisc.jpg
    Disciplina de filas WFQ

Condicionamento de tráfego

O condicionamento de tráfego se baseia num algoritmo clássico chamado de balde furado (leaky bucket). A inspiração para o nome desse algoritmo reside numa analogia com um balde com um furo no qual se deposita água. A água sai do balde com uma vazão constante, independente da vazão da água que entra no balde (outra analogia parecida é a caixa d'água de residências). Esse algoritmo apresenta assim duas propriedades:

  1. A taxa de saída é constante, independente da taxa de entrada (tamanho do furo)
  2. Dados que chegam a uma taxa superior à taxa de saída são enfileirados até certo limite (volume do balde)

SMU-Balde.jpg
A analogia do balde furado para condicionamento de tráfego


Em redes de dados, além de regular a taxa de saída em um certo elemento de rede, é útil tolerar rajadas. Afinal, em redes com comutação de pacotes é usual que as transmissões ocorram em ciclos de atividade e inatividade, caracterizando-se um padrão de tráfego em rajadas. Um balde furado que regule estritamente a taxa de saída pode ser muito restritivo, por isso o algoritmo é estendido para ter um mecanismo de crédito. Basicamente, a cada unidade de tempo o balde recebe um crédito de transmissão. Para que pacote seja transmitido, um crédito deve estar disponível. Se o balde estiver vazio durante algum tempo, créditos podem se acumular até um limite definido. Quando pacotes chegam a um balde com créditos acumulados, podem ser transmitidos imediatamente. A essa extensão se denomina balde furado com fichas (token bucket). Com isso, o balde furado tem uma proprieddae adicional: 3. Rajadas podem ser toleradas até uma certa quantidade de dados, de forma que seus pacotes sejam transmitidos com uma taxa de pico.


SMU-Leaky-bucket.jpg
Balde furado com fichas

Atividade

  1. Ao usar uma política de fila RR + WFQ em uma fila que provê suporte a três classes de tráfego, sendo os pesos: 0.3, 0.5 e 0.2, em que sequência devem ser servidas estas classes, considerando que cada classe possui um grande número de pacotes na fila ?
    • E no caso de não haver pacotes na classe 2, qual seria a sequência?
  2. Analise a figura abaixo e para cada uma das seguintes disciplinas para escalonamento de filas (FIFO, enfileiramento prioritário, varredura cíclica e enfileiramento justo ponderado) responda:
    • O instante de saída de cada um dos pacotes de 2 a 12
    • O atraso de cada pacote desde a sua chegada até o instante de sua transmissão. Indique ainda o atraso médio para os 12 pacotes.
    • OBS: para o problema de enfileiramentos RR e WFQ:
      • classe 1 (peso 2 no caso do WFQ) = pacotes 2,3,6,8,9,12
      • classe 2 (peso 4 no caso do WFQ) = pacotes 4,5,7,10,11
      • No caso do enfileiramento com prioridades: pacotes ímpares são mais prioritários.

        SMU-Exercicio-enfileiramentos.jpg
  3. Pesquise que políticas de enfileiramento (ou disciplinas de filas) similares existem:
    • Em roteadores Cisco ou Huawey
    • No Linux

Experimento

A rede abaixo será usada para os experimentos com disciplinas de enfileiramento:


Rede-qos-rtp2.png

  1. O primeiro experimento envolve medir a vazão na rede antes de definir qualquer tipo de enfileiramento:
    1. Emserver1 e server2 execute o comando netserver
    2. Em pc1 digite este comando (mas não o execute ainda):
      netperf -f k -H 192.168.1.1
      
      ... e em pc2 digite:
      netperf -f k -H 192.168.1.2
      
      Em seguida, execute ambos comandos simultaneamente
    3. Observe as taxas de bit informadas pelo netperf (coluna da direita)
  2. Agora deve-se repetir a medição, porém limitando globalmente a vazão no enlace entre r1 e r2.
    1. Em r1 e r2 execute o script 'filas1.sh.
    2. Repita os passos 1.2 e 1.3
  3. O próximo experimento envolve limitar a vazão entre r1 e r2 dependendo se o fluxo envolve server1 ou server2.
    1. Em r1 e r2 execute o script 'filas2.sh.
    2. Repita os passos 1.2 e 1.3
    3. Após verificar a vazão, deve-se testar o atraso fim-a-fim e jitter
    4. Em server1 execute este comando:
      pjsua --config-file pjsua.cfg
      
    5. Em pc1 execute este comando:
      pjsua --config-file pjsua.cfg
      
    6. Em pc2 execute a medição de vazão:
      netperf -f k -H 192.168.1.2
      
      ... e, simultaneamente, em pc1 faça uma chamada para o contato 1 (digite m, seguido de 1 e então ENTER)
    7. Em pc1 digite dq seguido de ENTER para observar as estatísticas de atraso e jitter da chamada.
    8. Como se comportam os atrasos da chamada ?
  4. Este experimento envolve priorizar os fluxos de server1, porém limitando-os a 160 kbps.
    1. Em r1 e r2 execute o script filas3.sh.
    2. Repita os passos 3.1 em diante

Tarefa

Leia este texto sobre mecanismos de adaptação para transporte de media, e escreva um resumo sobre os mecanismos apresentados. Para cada um desses mecanismos, informe seu princípio de funcionamento e suas características. Submeta seu resumo pelo Moodle.