Trabalho de Redes II Artilharia UDP Desenvolvido por: Leandro Rodrigues GRR20143009 Matheus Rotondano GRR20136059 1. Escolha da linguagem Escolhemos fazer o programa na linguagem C pois, ao conversar com nossos colegas, percebemos que poucas pessoas estavam fazendo em C e o professor Elias pediu para os alunos fazerem em linguagens diferentes para poder comparar as perdas das mensagens em cada linguagem. 2. Compilação Para compilar, basta baixar todos os arquivos (client.c, server.c, test.sh, makefile) no mesmo diretório e entrar com a linha de comando >make 3. Execução Apos compilado, para executar o cliente o usuario deve entrar com o comando: >./client E para executar o servidor: >./server Caso o usuario deseje rodar um script para exeturar vários clientes, ele deve entrar com o comando: >./test.sh Ao executar o script são dadas informações do que se deve fazer. O script pergunta o usuario o nome do servidor que ele deseja bombardear, a porta do servidor, o número de clientes, o número de inicio dos clientes, e o número de pacotes que cada cliente deve enviar. 4. Logs Tanto o cliente quanto o servidor criam diretórios onde são guardados os logs de execução. O diretório é criado e os arquivos e log são criados no formato: logClient ou logServer O log do cliente consta as informações: - Data e hora que o cliente foi iniciado - Data e hora que o cliente foi encerrado - Falha ou sucesso da execução do cliente e o motivo da possível falha - Número de mensagens que foram enviadas - Para qual servidor essas mensagens foram enviadas O log do servidor consta com as informações: - Data e hora que o servidor foi iniciado - Data e hora que o servidor foi encerrado - Falha ou sucesso da execução do servidor e o motivo da possível falha - Momento em que um cliente novo entra no servidor - Total de mensagens recebidas, perdidas, invertidas e duplicadas 5. Testes realizados Realizamos 3 baterias de 10 testes, cada bateria sendo feita com 5, 10 e 30 clientes. Nos testes de 10 e 30 clientes, dividimos os clientes em duas máquinas. Para 5 clientes, a média de perda foi 24.99%, e o desvio padrão 0.300 Para 10 clientes, a média de perda foi 28.43%, e o desvio padrão 0.246 Para 30 clientes, a média de perda foi 37.99%, e o desvio padrão 0.138 Para dados mais completos, ver o arquivo estatisticas.txt e os logs. 6. Informações adicionais Se um mesmo cliente é executado mais de uma vez no mesmo servidor (sem que o servidor seja fechado e reaberto) o servidor irá constar inversão nas mensagens. Se o usuário rodar o script para fazer com que múltiplos clientes bombardeiem o servidor, apenas o log do último cliente será criado, porque o script executa os clientes muito rapidamente.