Você está na página 1de 3

Ps-graduao em Engenharia da Informao UFABC

Tecnologias de Redes de computadores INF-102


Prof. Gustavo S. Pavani
Aula Prtica 1

Sockets UDP

1 Execute servidor (UDPServer.java) e cliente (UDPClient.java) na mesma


mquina.
2 O que acontece se voc executar o cliente antes do servidor?
3 Altere as portas do servidor e cliente no cdigo. O que acontece se as portas
forem diferentes?
4 Execute servidor e cliente em mquinas diferentes. Que modificaes so
necessrias no cdigo?
5 Envie vrias mensagens ao servidor a partir de vrias mquinas diferentes (ao
mesmo tempo!). O que acontece nesse caso?
Capturando pacotes com Wireshark:
6 Execute servidor (UDPServer.java) e cliente (UDPClient.java) em mquinas
diferentes e capture os pacotes enviados usando o Wireshark.
7 Selecione um pacote UDP. Quantos e quais so os campos do cabealho do
pacote?
8 Qual o nmero de protocolo para o UDP no cabealho 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
relao entre os nmeros de portas nos dois pacotes.
Sugesto de atividades para casa:
10 Modifique o programa cliente para enviar mais de uma mensagem digitada pelo
usurio. necessrio alterar tambm o cdigo do servidor? Faa as modificaes
necessrias.
11 Modifique o programa para que o servidor no responda a um usurio
indesejado. (Dica: use white ou black list).

Sockets TCP

1 Execute servidor (TCPServer.java) e cliente (TCPClient.java) na mesma


mquina.
2 O que acontece se voc executar o cliente antes do servidor?
3 Altere as portas do servidor e cliente no cdigo. O que acontece se as portas
forem diferentes?
4 Execute servidor e cliente em mquinas diferentes. Que modificaes so
necessrias no cdigo?
5 Envie vrias mensagens ao servidor a partir de vrias mquinas diferentes (ao
mesmo tempo!). O que acontece nesse caso?
6 Verifique o cliente e servidor UDP do tpico anterior. Quais as principais
diferenas para o cliente e servidor TCP?
Capturando pacotes com Wireshark:
7 Execute servidor (TCPServer.java) e cliente (TCPClient.java) em mquinas
diferentes e capture os pacotes enviados usando o Wireshark.
8 Qual o endereo 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 conexo
TCP entre cliente e servidor? Qual o nmero do segmento SYNACK enviado pelo
servidor em resposta ao SYN enviado pelo cliente? Qual o valor campo
Acknowledgment Number do cabealho TCP para o segmento SYNACK? Como o
servidor determinou este valor?
11 Identifique e explique os demais campos do cabealho TCP identificados na
troca de mensagens cliente/servidor (janela de recepo, flags, etc).
12 possvel achar no campo de dados as mensagens enviadas pelo cliente e
servidor?
Sugesto de atividades para casa:
13 Modifique o programa cliente para que permanea conectado enviando
mensagens ao servidor. A conexo s era desfeita se o cliente enviar o comando
tchau para o servidor. Faa tambm as modificaes necessrias no cdigo do
servidor.
14 Desafio: o servidor dos exerccios anteriores suporta requisies simultneas
de vrios clientes? Implemente um servidor que atenda a vrios clientes
simultaneamente. (Dica: use Threads).
2

Dicas
o
o
o
o
o
o

Descubra o IP da sua mquina com o comando ipconfig (Windows) ou ifconfig


(Linux).
Consulte a pgina de documentao do Java para aplicaes de rede:
http://docs.oracle.com/javase/7/docs/api/java/net/package-summary.html
Para usar threads, consulte a pgina de documentao do Java:
http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html
Obtenha o Wireshark em https://www.wireshark.org/
Aprenda a usar a filtragem no Wireshark: Menu Capture > Capture Filters
Tutorial interessante para entender o funcionamento do TCP:
http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequenceacknowledgment-numbers/

Você também pode gostar