Você está na página 1de 5

Redes de Computadores

tico I Trabalho Pra

NetMaze
Valor do trabalho: 5 pontos Quantidade de alunos por grupo: at e 3 alunos Data de entrega: 09/09/2013

Introdu c ao
Este trabalho consiste em implementar um programa para percorrer um labirinto na Internet. Seu programa dever a conectar-se a um servidor para iniciar o percurso. Cada conex ao informar a a seu programa qual a pr oxima conex ao a ser feita. Esse processo continuar a at e que o programa chegue ` a u ltima conex ao, ou a sa da do labirinto.

Protocolo
As mensagens do protocolo de comunica ca o entre cliente e servidor come cam com um caractere informando qual o tipo da mensagem. Dependendo do tipo da mensagem, o primeiro byte pode estar seguido de dados. Os caracteres transmitidos devem estar codicados segundo a tabela ASCII e os inteiros devem ser transmitidos em network byte order. Abaixo descrevemos os tipos de mensagem do protocolo. O cabe calho da descri ca o cont em o tipo da mensagem, o primeiro caractere que identica aquela mensagem, o tamanho total da mensagem, e uma seta indicando se a mensagem e enviada do cliente para o servidor ou vice-versa. Autentica c ao (A, 22 bytes, ). A mensagem de autentica ca o informa ao servidor o identicador do seu programa e a senha gerada pelo sistema. Uma mensagem de autentica c ao come ca com um caractere A seguido pelo identicador, um caractere de espa co, e a senha. O identicador e a senha t em tamanho xo de 10 characteres. Exemplo: Aitalocunha e5e9938b0c Reconex ao (R, 22 bytes, ). Na primeira vez que um cliente conecta-se ao servidor, sua senha ainda n ao foi gerada. Nesse caso, a senha contida na mensagem de autentica c ao e ignorada e o servidor gera uma nova senha. A mensagem de reconex ao come ca com o caractere R, seguido pelo identicador do cliente (o mesmo da mensagem de autentica ca o), um espa co, e a senha gerada pelo servidor. Como numa mensagem

de autentica c ao, identicador e senha t em 10 bytes cada. Ao receber uma mensagem de reconex ao, o cliente deve fechar a conex ao atual e reconectar para autenticar-se com a nova senha. A mensagem de reconex ao e enviada apenas uma vez para cada identicador. Exemplo: Ritaloteste a8efd12dc4. Pr oxima conex ao com endere co IP (C, 7 bytes, ). A mensagem de conex ao informa ao cliente qual a pr oxima conex ao a ser estabelecida no percurso do labirinto. Esta mensagem come ca com o caractere C, seguido pelo endere co IP (4 bytes) e porta (2 bytes) da pr oxima conex ao a ser estabelecida. Exemplo: C\x96\xA4\x09\x1C\xC9\xD3; onde a sequ encia \x96 representa um byte com valor hexadecimal 96. Pr oxima conex ao com nome do servidor (N, tamanho vari avel, ). Esta mensagem, como a anterior, informa ao cliente qual a pr oxima conex ao que deve ser estabelecida no percurso do labirinto. Esta mensagem come ca com o caractere N, seguido por um byte indicando o tamanho do nome do servidor, seguido pelo nome do servidor, nalmente seguido pela porta onde a conex ao deve ser realizada (2 bytes). Exemplo: N\x19lefthand.eecs.harvard.edu\xC8\xDE. Sa da (S, 1 byte, ). A mensagem de sa da do labirinto indica que n ao existem mais conex oes a serem feitas. O cliente deve fechar a conex ao e informar ao servidor a u ltima conex ao realizada (a sa da encontrada para o labirinto). A mensagem de sa da cont em um u nico byte, o caractere S. Resultado (D, 7 bytes, ). A mensagem de resultado informa ao servidor qual a sa da do labirinto encontrada pelo cliente. Ela deve conter o endere co IP e a porta da conex ao onde o cliente recebeu a mensagem de sa da. A mensagem de resultado come ca com o caractere D, seguido do endere co IP e da porta da u ltima conex ao. Exemplo: D\x96\xA4\x09\x1C\xA2\x47. OK (O, 1 byte, ). A mensagem de OK informa ao cliente que a sa da informada na mensagem de resultado est a correta. Esta mensagem cont em apenas um byte, o caractere O. Erro (E, 22 bytes, ). A mensagem de erro informa ao cliente que a sa da informada na mensagem de resultado est a correta. A mensagem de erro tamb em e utilizada para descrever ao cliente v arios tipos de erro (por exemplo, erro de autentica ca o). Esta mensagem come ca com o caractere E seguido de 21 caracteres contendo a descri ca o do erro. Se

a descri c ao for menor do que 21 caracteres, os caracteres restantes s ao preenchidos com o caractere nulo (\x00). Ap os uma mensagem de erro, a conex ao e fechada. Exemplo: Ewrong result\x00\x00\x00\x00\x00\x00\x00\x00\x00

Sequ encia de mensagens


Clientes devem estabelecer a conex ao principal conectando-se ao ao servidor no endere co IP 150.164.9.28 (george.dcc.ufmg.br) e porta 51837. As conex oes estabelecidas durante o trajeto do labirinto s ao chamadas de conex oes secund arias. A primeira mensagem em cada conex ao estabelecida (principal ou secund aria) e uma mensagem de autentica ca o (A) do cliente para o servidor. Se for a mensagem de autentica ca o tiver um novo identicador, o servidor ir a responder com uma mensagem de reconex ao (R). Note que um novo identicador s o pode ser gerado na conex ao principal; depois de iniciado o percurso do labirinto, as conex oes secund arias apenas vericam o identicador. Se a autentica ca o for realizada com sucesso, o servidor ir a enviar uma mensagem de pr oxima conex ao (C) ou de sa da (S) para o cliente. Para cada mensagem de pr oxima conex ao, o cliente deve conectar-se ao endere co IP e porta informados, se autenticar novamente, e ent ao receber a pr oxima conex ao a ser realizada ou descobrir se chegou ` a sa da. Quando o cliente chegar ` a sa da, ele deve enviar uma mensagem de resultado (D) na conex ao principal contendo o endere co IP e a porta da u ltima conex ao secund aria realizada. Se o resultado estiver correto, o servidor retornara uma mensagem de OK (O); caso contr ario o servidor retornar a uma mensagem de erro (E).

O que deve ser entregue


Deve ser entregue o c odigo fonte do cliente. O cliente deve ser escrito em linguagem C ou C++ e deve usar apenas fun c oes da biblioteca padr ao. Modularizac ao, estilo, coment arios e qualidade do c odigo ser ao avaliados. Como refer encia pr atica, uma boa op ca o e o guia de programa c ao de redes do Beej.1 Voc es dever ao submeter, no Minha UFMG, um arquivo ZIP (formatos diferentes n ao ser ao aceitos), contendo o c odigo (arquivos .c, .h e .cc necess arios, Makele) e um arquivo leiame.txt indicando o nome dos alunos que participam do grupo. O programa deve compilar empregando o comando make, sem par ametros.
1

http://beej.us/guide/bgnet/

Deve ser entregue tamb em uma documenta c ao impressa explicando a arquitetura do cliente implementado, os desaos de implementa c ao e as solu co es adotadas, as limita c oes da implementa ca o, e uma an alise de desempenho. Sua documenta ca o deve ter no m aximo seis p aginas. A an alise de desempenho deve quanticar o tempo de estabelecimento da conex ao e autentica ca o das conex oes realizadas durante o percurso do labirinto. Execute o cliente v arias vezes para coletar uma quantidade suciente de amostras. Use as amostras para quanticar o tempo de estabelecimento de conex ao e autentica ca o para cada servidor do sistema (identique os servidores pelos seus endere cos). trabalhos fora da especica ca o (por exemplo, sem makele, que n ao gerem programas com os nomes especicados, que n ao compilem ou n ao possuam os par ametros esperados) n ao ser ao corrigidos. Trabalhos entregues fora do formato especicacado tomam muito trabalho do corretor, que deve entender como compilar e rodar cada programa avaliado, descobrir como descomprime o arquivo usando a extens ao .XYZ, tempo esse que deveria ser empregado para avaliar a execu c ao e corretude do c odigo.

Pontos extras
Ser ao valorizados funcionalidades adicionais implementadas no programa cliente, desde que descritas na documenta ca o e relacionadas ao conte udo do curso. Ser ao valorizados qualquer bug no sistema informado ao professor at e uma semana antes da data nal de submiss ao do trabalho.2 A quantidade de pontos extras por funcionalidade e bug encontrado vai depender da complexidade envolvida e deve variar entre 1 e 5 pontos extras. Como mencionado na primeira aula, os pontos extras ser ao computados na nota nal somente se o aluno obtiver pelo menos 50% da nota nas provas.

Desconto de nota por atraso


Os trabalhos poder ao ser entregues at e a meia-noite do dia especicado para a entrega. O hor ario de entrega deve respeitar o rel ogio do sistema Moodle, ou seja, a partir de 00:01 do dia seguinte ` a entrega no rel ogio do Moodle, os trabalhos j a estar ao sujeitos a penalidades. O valor do trabalho ir a decrementar 5% a cada hora de atraso. Para um aluno que entregou o trabalho a ` 1:38, ou seja, com 1:38 de atraso, iremos descontar 10%, empregando a f ormula a seguir:
Essa restri c ao de data para ganhar pontos extras por bugs encontrados e para evitar sobrecarga e travamento do sistema na semana de entrega do trabalho.
2

N ota = notacorrecao (1 0.05 horasatraso)

Refer encias
Programa ca o em C: http://www.dcc.ufla.br/~giacomin/Textos/tutorialc.pdf ftp://ftp.unicamp.br/pub/apoio/treinamentos/linguagens/c.pdf http://www.cs.cf.ac.uk/Dave/C/CE.html http://www2.its.strath.ac.uk/courses/c/ http://www.lysator.liu.se/c/bwk-tutor.html Uso do programa make e escrita de Makeles: http://comp.ist.utl.pt/ec-aed/PDFs/make.pdf http://haxent.com.br/people/ruda/make.html http://informatica.hsw.uol.com.br/programacao-em-c16.htm http://www.gnu.org/software/make/manual/make.html http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/

Você também pode gostar