*** Cronograma de Atividades da Iniciação Científica *** Por simplicidade, todas as datas limites são domingos. Até 12/08: - Configurar uma rede simples de testes com 8 nós, chamada Alpha. Atrasos iguais? Como otimizar o processo de configuração de rede? É possível configurar as VMs pela linha de comando, então é interessante fazer um script que configura cada máquina. Como todas irão usar o ndn-cxx e o NFD, é melhor configurar uma máquina inicial e depois fazer cópias da mesma. Colocar também uma linha no script de wget que instala os programas desenvolvidos para fazer os testes, que serão upados no meu GitHub a medida que forem desenvolvidos. Como a topologia é trivial, deve ser possível fazer um código relativamente simples de configuração. A - C - D - E - F - G - H ou A - B - C - D - E - F - G - H ? / B (Não vejo muita utilidade para o nó B, por isso acho melhor a segunda.) Os dois links abaixo me ajudaram a configurar a rede manualmente, e o primeiro principalmente explica como configurar uma VM remotamente da linha de comando, muito útil para fazer os scripts. http://www.brianlinkletter.com/how-to-use-virtualbox-to-emulate-a-network/ https://sandilands.info/sgordon/creating-a-virtual-network-of-linux-guests-using-virtualbox - Testar a rede e atrasos fazendo testes de ping. ^^^ TUDO ACIMA FEITO E TESTADO ^^^ - Tentar descobrir o que está acontecendo com os parâmetros da NFD (mensagens enviadas, hit rate) para poder usá-los em futuras análises. Acho que esse link vai me guiar para a solução; aparentemente, existem "comandos de management" que são enviados. Será que é possível configurar para que esses comandos não sejam contados? https://redmine.named-data.net/issues/4219/ Talvez mudar o .conf? https://github.com/named-data/NDN-Control-Center/blob/master/nfd.conf ^^^ DESCOBERTO O PROBLEMA. HITS NÃO MUDAM (OU SEJA, USÁ-LOS PARA MÉTRICAS) ^^^ Até 19/08: - Com a rede Alpha, experimentar a seguinte métrica: qual o ganho médio em função do nó em que teve acerto no cache? Ou seja, como se comporta o ganho se o conteúdo estiver cada vez mais próximo do consumidor, em um cache? Aumenta linearmente? Exponencialmente? E para conteúdos de tamanhos diferentes? - Rodar o código de consumidor (A) com contador e produtor (H) na rede, apenas para conferir se os caches estão funcionando de acordo. - Terminar os códigos de produtor e consumidor, onde este pediria conteúdos de tamanhos diferentes várias vezes, calculando os ganhos médios, salvando em um arquivo "cache-X.txt" (nó X) com a formatação " ". Ver como gerar conteúdos de tamanhos diferentes. Há alguma biblioteca em C++ que crie dados de tamanhos específicos? Ou fazer simplesmente strings com Y caracteres para gerar conteúdos de Y bytes? --- Aqui eu já estarei começando a ter provas quase semanalmente, então irei com mais calma. --- Até 26/08: - Ver como gerar gráficos com os dados e analisar os resultados. É possível gerar gráficos com LaTeX? Como já estou com o esqueleto da apresentação pronto de qualquer forma, seria interessante simplesmente inserir os dados no código (e deixar a apresentação bem homogênea). Outro traçador de gráficos que conheço é o matplotlib em Python, mas eu teria que dar uma revisada. * Enquanto estava fazendo o cronograma, descobri: é possível gerar gráficos em LaTeX de forma bem simples! Ver este link: https://pt.sharelatex.com/learn/Pgfplots_package - Ver se é possível medir a quantidade de dados transmitidos em um enlace para poder observar a economia de banda quando há um acerto no cache. Seria interessante talvez fazer uma métrica de economia de banda (dados enviados de volta para o consumidor - dados transmitidos para o produtor) de acordo com o hit rate do nó. Mas isso dependeria do tamanho do conteúdo (o que não é tanto um problema assim), mas também dependeria da contagem do NFD, que atualmente está estranha. Idealmente, se tudo der certo até 12/08, eu resolvi o problema e poderíamos usar o contador. - Para análises de cache desse tipo, seria interessante usar a política LRU (acho que a default é FIFO, que não tem graça nenhuma). Ela é facilmente configurada: sudo infoedit -f /usr/local/etc/ndn/nfd.conf -s tables.cs_policy -v lru (If you don't have infoedit, download from https://github.com/NDN-Routing/infoedit) - Começar a pensar em outra topologia interessante para fazer testes. Até 02/09: - Conferir a viabilidade e relevância de medir o hit rate médio se o consumidor pedir conteúdos aleatórios em intervalos de tempo aleatórios. E se dois consumidores estiverem pedindo? E se três? Considerar a topologia abaixo, rede Beta, para o experimento, onde F teria o cache analisado. Implementar a rede Beta, assim como foi feito para a rede Alpha. B A \ | C -- F -- G / | D E - Considerar também a rede Beta para fazer o teste da economia de banda, mas acho que também seria possível fazer isso com a rede Alpha, com apenas três nós e um arquivo com " " após um período x de pedidos. Até 09/09: - Tentar implementar os códigos necessários para as duas métricas mencionadas e/ou provavelmente outras métricas que serão elaboradas no meio do caminho. Até 16/09: - Provas se aproximando. Focar mais nas topologias que temos até agora, as ideias elaboradas e discutidas, medir e analisar resultados com os gráficos que nem feito anteriormente.