Вы находитесь на странице: 1из 3

Pós-graduação em Engenharia da Informação UFABC Tecnologias de Redes de computadores INF-102 Prof. Gustavo S. Pavani

Sockets UDP

1

máquina.

Execute

servidor

Aula Prática 1

(UDPServer.java)

e

cliente

(UDPClient.java)

na

mesma

2 O que acontece se você executar o cliente antes do servidor?

3 Altere as portas do servidor e cliente no código. O que acontece se as portas forem diferentes?

4 Execute servidor e cliente em máquinas diferentes. Que modificações são necessárias no código?

5 Envie várias mensagens ao servidor a partir de várias máquinas diferentes (ao mesmo tempo!). O que acontece nesse caso?

Capturando pacotes com Wireshark:

6 Execute servidor (UDPServer.java) e cliente (UDPClient.java) em máquinas diferentes e capture os pacotes enviados usando o Wireshark.

7 Selecione um pacote UDP. Quantos e quais são os campos do cabeçalho do pacote?

8 Qual é o número de protocolo para o UDP no cabeçalho IP?

9 Examine um par de pacotes UDP em que o primeiro pacote é enviado pelo cliente e o segundo pacote é a resposta do servidor a este pacote. Descreva a relação entre os números de portas nos dois pacotes.

Sugestão de atividades para casa:

10 Modifique o programa cliente para enviar mais de uma mensagem digitada pelo

usuário. É necessário alterar também o código do servidor? Faça as modificações necessárias.

11 Modifique o programa para que o servidor não responda a um usuário indesejado. (Dica: use white ou black list).

Sockets TCP

1

máquina.

Execute

servidor

(TCPServer.java)

e

cliente

(TCPClient.java)

na

mesma

2 O que acontece se você executar o cliente antes do servidor?

3 Altere as portas do servidor e cliente no código. O que acontece se as portas forem diferentes?

4 Execute servidor e cliente em máquinas diferentes. Que modificações são necessárias no código?

5 Envie várias mensagens ao servidor a partir de várias máquinas diferentes (ao mesmo tempo!). O que acontece nesse caso?

6 Verifique o cliente e servidor UDP do tópico anterior. Quais as principais diferenças para o cliente e servidor TCP?

Capturando pacotes com Wireshark:

7 Execute servidor (TCPServer.java) e cliente (TCPClient.java) em máquinas diferentes e capture os pacotes enviados usando o Wireshark.

8 Qual é o endereço IP e porta TCP usado pelo cliente? E pelo servidor?

9 Execute novamente o cliente. Verifique a porta e IP do cliente.

10 Qual o Sequence Number do segmento TCP SYN usado para iniciar a conexão

TCP entre cliente e servidor? Qual é o número do segmento SYNACK enviado pelo servidor em resposta ao SYN enviado pelo cliente? Qual o valor campo Acknowledgment Number do cabeçalho TCP para o segmento SYNACK? Como o servidor determinou este valor?

11 Identifique e explique os demais campos do cabeçalho TCP identificados na

troca de mensagens cliente/servidor (janela de recepção, flags, etc).

12 É possível achar no campo de dados as mensagens enviadas pelo cliente e

servidor?

Sugestão de atividades para casa:

13 Modifique o programa cliente para que permaneça conectado enviando mensagens ao servidor. A conexão só era desfeita se o cliente enviar o comando “tchau” para o servidor. Faça também as modificações necessárias no código do servidor.

14 Desafio: o servidor dos exercícios anteriores suporta requisições simultâneas

de vários clientes? Implemente um servidor que atenda a vários clientes

simultaneamente. (Dica: use Threads).

Dicas

o

Descubra o IP da sua máquina com o comando ipconfig (Windows) ou ifconfig (Linux).

o

Consulte a página de documentação do Java para aplicações de rede:

 

o

Para

usar

threads,

consulte

a

gina

de

documentação

do

Java:

 

o

Obtenha o Wireshark em https://www.wireshark.org/

 

o

Aprenda a usar a filtragem no Wireshark: Menu Capture > Capture Filters

 

o

Tutorial interessante para entender o funcionamento do TCP: