Entrega: Todos os trabalhos serão acessados na terça-feira dia 9 de julho de 2013; não serão aceitos trabalhos disponibilizados após esta data. Atenção, são 4 semanas de prazo, organize-se!
O trabalho deve preferencialmente ser feito em dupla; o código, os testes e o relatório devem ser feitos por ambos os membros da dupla. Use esta oportunidade para melhorar sua habilidade de trabalhar em equipe.
Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP REDES II 2013-1"
O programador de aplicações para a Internet que opta pelo UDP como seu protoco de transporte tem um trabalho adicional, se compararmos com o TCP. O UDP, bem como o IP, é um protocolo não- confiável, não-orientado à conexão. Assim o UDP permite que todos os problemas eventualmente surgidos na rede IP se estendam à camada de aplicação. O programador tem que, portanto, projetar sua aplicação para detectar se os dados (1) se perderam; (2) duplicaram; (3) chegaram fora de ordem, e tomar as medidas necessárias para resolver estes problemas.
Neste Trabalho Prático você vai implementar uma aplicação cliente-servidor sobre UDP. Cada datagrama UDP/IP carrega um número inteiro positivo que identifica a ordem sequencial do datagrama. O identificador do primeiro pacote é escolhido aleatoriamente. O último datagrama tem identificador -1. O cliente tem uma interface que permite que o usuário escolha se quer (1) perder dados; (2) duplicar dados; (3) embaralhar dados. Se a opção é perder ou duplicar dados, deve ser adotada uma estratégia aleatória para escolher quais dados são perdidos ou duplicados. Se a opção é perder os dados, o servidor deve fazer um pedido explícito de retransmissão.
O servidor deve imprimir os dados que recebeu (com dados perdidos, duplicados, fora de ordem) bem como os dados corretos, com todos os problemas resolvidos.
A linguagem de programação permitida é de livre escolha dos alunos. Sugere-se Python. Todos os detalhes, como configuração, mensagens e o que não estiver especificado aqui deve ser definido e documentado no relatório. Interface, organização, criatividade são valorizadas! Capriche!
Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR