fernandonakayama / TP2

TP2 INFO7015 - Tópicos em Redes de Computadores

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TP2 INFO7015 - Tópicos em Redes de Computadores

Como utilizar

Usar a pasta codigoexemplo cedida no enunciado do trabalho como base. Copiar os arquivos controller.cc e controller.hh das pastas exercicioa, exerciciob, exercicioc, para dentro da pasta codigoexemplo/datagrump (para cada exercício a ser executado).

Executar na pasta codigoexemplo:

$ ./autogen.sh $ ./configure $ make

Executar na pasta codigoexemplo/datagrump:

./run-conteste "NOME"

Relatório de atividades

EXERCÍCIO DE AQUECIMENTO A [10%]:

Para o exercício A foram testados diferentes valores de janela com 10 repetições para cada valor, acrescendo o tamanho de 10 em 10.

A ideia principal foi identificar uma faixa de janela otimizada (melhores valores de potência para cada valor de janela) e posteriormente realizar mais testes dentro dessa faixa para identificar a estabilidade com a janela escolhida.

Podemos observar as variações nos valores de janela e a potência obtida , na Tabela 1. O gráfico que representa o Atraso x Largura de Banda pode ser observado na Figura 1.

Tabela 1 - Variações da Janela

TP2

Figura 1 - Largura de Banda (Média) x Atraso

TP2

A faixa otimizada de janelas ficou entre 10 e 15. Testes com a janela fixada acima de 15 levavam a uma queda na potência, essa tendência pode ser observada na Figura 2.

Figura 2 - Potência x Tamanho da Janela

TP2

Após identificar a faixa de melhores resultados, foram realizadas 40 repetições com as janelas em valor 10, 11, 12, 13, 14, 15 e 16. A potência foi maior com o valor de janela 15. Na tabela 2 podemos observar a estatística descritiva dos dados.

Tabela 2 - Estatística descritiva das repetições

TP2

Exercício de aquecimento B [40%]:

Para o exercício B foi adicionado um mecanismo simples, tentando replicar o funcionamento do AIMD (additive-increase/multiplicative-decrease). O funcionamento básico do AIMD é atuar sobre o tamanho da janela quando ele se depara com congestionamento. Com base no algoritmo original, fora estipuladas algumas variáveis de controle, sendo as principais uma ação a ser tomada quando se identifica o congestionamento, e um mecanismo de controle para limitar o envio em massa e aumentar gradativamente o tamanho da janela depois do congestionamento.

O algoritmo original foi modificado com base em valores fixos, ele não calcula os valores de redução e acréscimo automaticamente, sendo necessária a configuração no início de cada teste.

Inicialmente o algoritmo foi implementado, posteriormente alguns testes foram realizados nos tamanhos de redução de janela, limite para início do controle de congestionamento e valor de acréscimo da janela, para refinar e obter melhores valores na potência.

Para calibração inicial do algoritmo modificado, foram utilizados os valores do exercício A para identificar o melhor tamanho de janela x Potência, e melhor valor de atraso obtido.

No decorrer dos experimentos os testes foram feitos com valores diferentes ao detectar o congestionamento e também com a mudança nos valores de aumento da janela ao chegar em um determinado limite, conforme observado na tabela 3.

Tabela 3 - Testes dos valores da replicação do AIMD

TP2

Após identificar os melhores valores, testes de estabilidade com os valores ótimos foram realizados, com o objetivo de analisar se os valores são constantes após várias repetições.

A média de 31 repetições foi 22,08. Observou-se que em alguns dos testes a potência caia drásticamente, mesmo sem nenhuma alteração no esquema. Não foi possível identificar a causa dos valores discrepantes, podendo a causa ser o código do esquema ou o sistema de fluxos utilizado na implementação remota.

A estatística das repetições pode ser observada na Tabela 4. O gráfico com os valores das repetições pode ser observado na Figura 3.

Tabela 3 - Estatística descritiva de 30 repetições com valores otimizados

TP2

Figura 2 - Repetições com valores otimizados - Esquema similar ao AIMD

TP

Exercício D [50%]:

Para o exercício D, foram realizadas melhorias no esquema anterior, com mudanças sutis, mas que permitiram maior variação dos valores assumidos pela janela. O incremento com valores menores (0,1), possibilitou um ajuste mais fino, melhorando sensivelmente a potência, e oferecendo maior estabilidade, conforme visto na Figura 3.

Outro benefício pode ser obtido por conta da utilização do RTT como variável de controle para o Treshold, ao contrário de simplesmente utilizar um valor fixo como gatilho.

A experiência adquirida nos exercícios A e B fez com que o esquema fosse ajustado de forma facilitada, muitos dos valores ótimos já haviam sido identificados, mesmo assim vários testes foram realizados até o ajuste final.

Por ser um esquema muito simples, a principal dificuldade é encotrar o equilíbrio entre o envio de segmentos e as ações a serem tomadas no início do congestionamento. Um tamanho de janela que permita um envio mais agressivo gera uma melhor vazão, mas penaliza o esquema no caso de congestionamento. O melhor equilibrio foi alcançado no esquema atual, tentando controlar o envio de forma mais racional, e sendo relativamente conservador no caso de congestionamento.

As variações testadas, foram feita basicamente na variação da janela no caso de congestionamento, no incremento dos valores quando a taxa de envio é relativamente baixa (anterior ao treshold), e no valor de timeout.

Figura 3 - Repetições - Esquema melhorQigual

TP2

Os valores obtidos em 33 repetições foi mais regular quando comparado ao esquema similar ao AIMD simples no exercício B, o que pode ser comprovado na estatística descritiva na Tabela 4.

Tabela 4 - Estatística descritiva das repetições do modelo melhorQigual

TP2

Figura 4 - Summary Statistics

TP2

Figura 5 -Throughput

TP2

Figura 6 -Delay

TP2

Exercício E [0%]:

melhorQigual

Average capacity: 5.04 Mbits/s

Average throughput: 3.62 Mbits/s (71.8% utilization)

95th percentile per-packet queueing delay: 51 ms

95th percentile signal delay: 94 ms

Power: 38.53

About

TP2 INFO7015 - Tópicos em Redes de Computadores


Languages

Language:C++ 38.0%Language:Roff 26.9%Language:Makefile 20.4%Language:Shell 10.7%Language:Perl 2.5%Language:C 0.8%Language:M4 0.7%