cursos:icsr30:trab2
Table of Contents
Trabalho com UDP.
O Protocolo UDP
Neste trabalho iremos explorar a implementação de uma aplicação rodando sobre UDP através da programação com sockets. Este trabalho tem a finalidade de trazer o conhecimento de programação e funcionamento básico do protocolo UDP, principalmente comparando o UDP com os serviços que o TCP fornece para a camada de aplicação. Baseado no primeiro trabalho, mas agora transformando o anterior em um Servidor UDP simplificado.
Fluxo do trabalho:
- Procurar um código “Hello word” usando servidor UDP e seu cliente.
- Este trabalho pode ser realizado em qualquer linguagem de programação, a escolha do aluno, mas lembre-se: não pode ser usado bibliotecas que manipulem o UDP, e sim usar o UDP diretamente através da criação e manipulação dos sockets.
- Servidor UDP (deve executar antes do cliente)
- Escolher um porta para comunicação (maior que 1024)
- Na recepção de dados :
- Tratar esses dados (requisição necessária - propor o seu próprio protocolo para substituir o HTTP )
- Ex.: GET /arquivo
- Transmitir o arquivo requisitado pelo cliente (deve ser grande > 1 MB)
- Dividir o arquivo em pedaços (tamanho do buffer ⇐ MTU ?)
- Qual o tamanho do buffer?
- Buffer cliente e servidor devem ser iguais?
- O valor do MTU influencia?
- Para que colocar checksum?
- Preciso numerar os pedaços?
- Se o arquivo não existir, como aviso o cliente?
- Cliente UDP (deve executar depois do servidor)
- Colocar o endereço da máquina e porta escolhida para o servidor
- @ip do servidor:(Porta servidor)/arquivo
- Requisitar um arquivo
- Dar a opção ao usuário (Professor) para descartar uma parte do arquivo
- Para simular a perda de dados e testar o mecanismo de recuperação de dados proposto pelo aluno.
- Receber, montar e conferir (checksums) o arquivo recebido do servidor
- Se arquivo OK:
- Apresentar o arquivo requisitado
- Se arquivo não OK
- Verificar quais pedaços faltam e pedir para re-enviar.
- Interpretar ERROS.
- Ex.: Arquivo não encontrado etc.
Para fazer a apresentação via video
Deve conter:
- Servidor UDP (obrigatório)
- ClienteUDP (obrigatório)
- Usar api sockets (obrigatório)
- Colocar o endereço e porta do servidor
- Propor protocolo Ex.: GET /arq
- Cliente pode requisitar diferentes arquivos
- Transmitir arquivo grande > 10MB
- Dividir o arquivo em pedaços(Chunk)? Qual tamanho do buffer usado?
- O tamanho do pedaço influencia? Qual a relação com o MTU?
- Preciso numerar os pedaços?
- Para que colocar checksum?
- Servidor tem opção de descartar aleatoriamente um pedaço do arquivo.
- Cliente recebe, monta e confere o arquivo recebido do servidor. Usa Hash ou checksum ?
- Cliente verifica se faltam partes do arquivo e avisa servidor para re-enviar. Por timer(tempo) e/ou ACK?
- Se o arquivo não existir, como avisa o cliente?
- Apresenta ERROS. Ex.: Arquivo não encontrado etc.
- Use dois clientes simultâneos requisitando arquivos diferentes.
- Cliente UDP pode executar antes do servidor?
- O que acontece se desligar o servidor durante a transmissão do arquivo e liga-lo depois?
- O aluno deve usar Socket UDP e não pode usar bibliotecas que mascarem o trabalho.
- Para agilizar a verificação de integridade são utilizadas somas de verificação (checksums) ou resumos criptográficos como o MD5 e SHA.
cursos/icsr30/trab2.txt · Last modified: 2024/10/31 14:48 by fonseca