Estou prestes a me formar, e lembrando-me de um convite do Arthur Furlan, decidi que estava na hora de liberar alguns trabalinhos legais que escrevi na faculdade.
Servidor/Cliente FTP usando raw socket.
Acho que este é o que será mais útil, principalmente aos meus colegas de Universidade.
Trabalho de redes1, a missão era implementar um cliente/servidor FTP baseado no Kermit utilizando raw sockets. Algumas pessoas fizeram utilizando UDP, mas ae fica sem graça né?! =)
Para controle de fluxo, foi implementado o pára-e-espera. Toda mensagem deve retornar um ack/nack. Obviamente, não há TCP nem IP, a “conexão” é feita sem endereçamento pelo cabo de rede. Os cabos devem ser ponto-a-ponto (até pode ser utilizado um hub, mas provavelmente ele mate todos os pacotes por serem inválidos).
Para detectar erros utilizo paridade-par (sux), e caso o cabo de rede seja removido e colocado depois de pouco tempo, o sistema deve continuar de onde parou. O arquivo final precisa ser consistente. Isto é muito complicado usando apenas paridade par, logo nas mensagens de fim de arquivo envio como dado o MD5, para garantir consistência.
O tamanho de cada arquivo nos pacotes está incorreto. Esta informação está sendo ignorada.
O resto está descrito no arquivo: Mensagens de atá 255 bytes, etc etc.
Como estava aprendendo GTK+ na época, fiz umas modificações para incluir uma interface gráfica. Ficou meio estranho pois incluà isto depois que o trabalho já estava pronto. De qualquer forma, para compilar esta versão, utilize o comando “make gui”
No Unix, o pacote deve ser puxado com o comando:
svn co http://danilocesar.com/svn/redes1
Outro dia publico outros códigos.
[]’ s
Danilo Cesar
One Trackback/Pingback
[…] a linha do “Liberando trabalhos da UFPR“, estou liberando o código do […]
Post a Comment