SMU29009: QoS e a Camada de Transporte

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

Uma aplicação multimidia

A concepção de uma aplicação multimidia:

  • Serviço a ser oferecido
  • Requisitos funcionais
  • Requisitos não-funcionais

Ex:

  • compartilhamento de video um-para-muitos (P2P)

Camada de transporte

Uma aplicação multimidia distribuída se comunica usando serviços da camada de transporte. Nessa camada há protocolos que implementam um serviço de comunicação fim-a-fim entre processos e através de uma rede não-confiável. As características dos protocolos de transporte influenciam o desempenho da aplicação multimidia, e por isso faz-se necessária uma revisão sobre os principais protocolos.

TCP

Negociação em três vias

O estabelecimento de conexão TCP envolve o intercâmbio de três mensagens entre o iniciador (cliente) e o atendente da conexão (servidor).

SMU-Three-way.svg
Intercâmbio de mensagens para estabelecimento de conexão


Para o desempenho de uma aplicação, a principal consequência é a percepção de uma latência para iniciar a comunicação de fato. Para aplicações que transmitem frequentemente pequenas quantidades de dados, o estabelecimento de nova conexão para cada transmissão reduz a taxa efetiva de dados obtida (além da latência). Uma proposta para atenuar o problema se chama TCP Fast Open, aplicável em situações em que ocorrem múltiplas conexões sucessivas entre um mesmo par cliente-servidor. Essa melhoria possibilita que, a partir da segunda conexão, o lado servidor comece a transmitir dados imediatamente após a recepção da mensagem SYN.

Controle e prevenção de congestionamento

O controle de congestionamento é um importante serviço do TCP, o qual evita sobrecarga de tráfego em uma rede e seu consequente colapso devido a congestionamento. Fazem parte dele o controle de fluxo, a partida lenta, e a prevenção de congestionamento.

As consequências para o desempenho de uma aplicação são:

  • Baixa taxa efetiva de dados para pequenas transferências de dados (e sensível ao atraso fim-a-fim)
  • Variações abruptas na taxa de dados caso qualquer erro ocorra (necessidade de retransmissão)

Produto da largura de banda pelo atraso

O produto da largura de banda pelo atraso corresponde à quantidade de dados em trânsito e ainda não confirmados. Ele se define pelo produto da capacidade dos links pelo atraso fim-a-fim. Esse produto tem implicação importante nos tamanhos das janelas de recepção tanto do cliente quanto do servidor. A janela de recepção deve ser ajustada em função do RTT e da taxa de dados estimada. Se as janelas de recepção forem inferiores a esse produto, um transmissor deve pausar a transmissão para esperar confirmações (devido ao controle de fluxo), quando poderia transmitir mais dados. Isso tem impacto negativo no desempenho de uma aplicação.

Apesar de o tamanho da janela de receção se ajustar automaticamente com as condições da comunicação, há que cuidar para que seu limite superior não se torne um gargalo. Para uma aplicação que precise de maior desempenho, deve-se conferir se a opção de multiplicação da janela (Window Scaling Option) está ativada no sistema operacional.

Head-of-line blocking

Otimmização para uso do TCP

UDP

DCCP


SCTP