Modificada: 15/8/05
Entrega
· T1( 4ª) entrega 26/8 (6a.)
· T2 (2ª) entrega 24/8 (4ª)
· T3,T4 (6ª) entrega 29/8 (2ª)
O arquivo UDPtimed.c contém o código para o servidor TIME iterativo sem conexão UDPtimed, baseado no algoritmo 2 apresentado no texto texto Projeto e implementação de servidores. UDPtimed usa as funções passiveUDP() e passivesock(), definidas os arquivos passiveUDP.c e passivesock.c.
1. Estude o texto acima e traga as suas dúvidas para discussão em sala.
2. Estude o código fornecido e responda (1 ponto):
a. Para que serve a variável global portbase no arquivo passivesock.c?
b. O que indica e para que serve a constante UNIXEPOCH, em UDPtimed.c?
3. Compile e teste o servidor UDPtimed usando o cliente UDPtime apresentado anteriormente. O servidor UDPtimed necessita de algum privilégio especial para rodar em seu sistema local? Para rodar o cliente TIME é necessário algum privilégio? Justifique. (1 ponto)
4. Como o servidor UDPtimed obtém o endereço do cliente para lhe enviar a resposta? (1 ponto)
5. O código do exemplo UDPtimed.c especifica um buffer de 1 byte quando chama recvfrom(). O que aconteceria se um buffer de 0 (zero) byte fosse especificado? Teste esta alteração e explique o resultado. (1 ponto)
6. Conduza um experimento e determine o que acontece se N clientes enviarem pedidos simultâneos para o servidor UDPtimed. Varie o valor de N (número de clientes) e S (tamanho do datagrama enviado). Explique como foi realizado o experimento e mostre e explique os resultados obtidos. (4 pontos).
Observações:
·
O
trabalho poderá ser feito em grupos de até 3 componentes.
·
Os comandos script ou tee do Linux podem ser úteis para gerar
a transcrição de sessões de testes e levantamento de dados.
·
Tenha sempre à mão todo o código e relatórios
entregues.
Forma de entrega
Enviar um arquivo compactado (extensão .zip), anexado a uma mensagem, seguindo as instruções abaixo:
· Destinatário: juan@puc-campinas.edu.br
·
Campo assunto (subject):
REDES-I/ATIVIDADE:<atividade>/Turma:<turma>/<RA do 1º.
Autor>/<RA do 2º. Autor>/<RA do 3º. Autor>
Onde <atividade> será substituído pelo número da atividade, neste caso
2, <turma> será a turma em que os
membros do grupo estão matriculados, <RA 1º. Autor> será o RA do primeiro
autor etc. Os RAs devem ser colocados em ordem crescente. Por exemplo, o
campo assunto da mensagem de encaminhamento do relatório feito por alunos da
turma 3, com RAs 02123456, 03123456 e 03123457 será o seguinte:
REDES-I/ATIVIDADE:2/Turma:3/02123456/03123456/03123457
Observe que não há espaço após “ATIVIDADE:” e “Turma:”
· Corpo da mensagem: nomes e RAs dos membros do grupo
·
Nome do arquivo compactado:ATIV2-<RA
do 1º. Autor>.zip. No exemplo acima, ele se chamaria ATIV2-02123456.zip.
· Conteúdo do arquivo compactado:
1. Arquivos com os
códigos fonte dos programas modificados ou desenvolvidos, incluindo o makefile.
A primeira linha de cada arquivo deve ser um comentário com o nome do arquivo.
A segunda e terceira linhas devem indicar os nomes e RAs dos autores, também na
forma de comentários.
2. Arquivo (formatos
doc ou pdf) contendo uma breve descrição
(até uma página, fonte Times New Roman 12, espaço simples) do código
implementado e dos testes realizados. Informar o local e ambiente (distribuição
e versão do Linux) onde os testes foram realizados.
3. Arquivo com a
transcrição da sessão de testes.