Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso:
Engenharia de Computao
Disciplina:
Redes de Computadores II
Turno:
Professor:
Emir Toktar
Aluno Nmero:
Aluno:
Assinatura:
Objetivo: Executar a atividade prtica para assimilar o contedo apresentado sobre o protocolo
TCP, as fases de negociao e troca de mensagens usando sockets em cliente e servidor simples
com mensagem ECHO (ida e volta de tamanhos iguais sem banner no server). O aluno dever
identificar as mensagens e entender o sequenciamento e numerao de conhecimento
(acknowledgement Number).
Baixe as fontes dos programas de testes para este LAB (pasta src)
Informaes a respeito de ENCODING (Cdigo de Pgina do Sistema) so obtidas usando a Classe Encoding,
que tem a funo de converter Bytes em uma determinada codificao de pgina, exemplo:
UTF7Encoding encodes Unicode characters using the UTF-7 encoding. This encoding supports all Unicode character
values. (Code page 65000)
UTF8Encoding encodes Unicode characters using the UTF-8 encoding. This encoding supports all Unicode character
values. (Code page 65001)
UnicodeEncoding encodes Unicode characters using the UTF-16 encoding. Both little endian (code page 1200) and big
endian (code page 1201) byte orders are supported.
UTF32Encoding encodes Unicode characters using the UTF-32 encoding. Both little endian (code page 12000) and big
endian (code page 12001) byte orders are supported.
Pratica A8 TcpEcho_C-S_SocketSimples
Abra o cdigo fonte e analise o cdigo e informe o instrutor para uma breve explanao com a turma.
Execute o WIRESHARK e capture os dados para anlise na sequncia. Compile e execute informando o
endereo IP da estao vizinha e dados a serem transmitidos.
1. Procedimento.
.:. Ambos alunos devero executar o Servidor e o Cliente em suas mquinas. Quando executar o SERVIDOR,
dever capturar os dados e anotar as informaes abaixo. Inverter para o outro aluno.
.:. Outra opo a execuo usando a mquina virtual (servidor no Host e cliente na VM)
Mquina Servidora: Dever capturar os dados.
Mquina Cliente: conectar e encaminhar alguns dados. Aps este passo, inverter o
procedimento.
Notem que cada ALUNO ter seu prprio conjunto de dados.
Utilize a frase Nome Aluno + IP Servidor no CLIENTE TCP
3. [0,5 ponto] Aps atuar como SERVIDOR e como CLIENTE para sua mquina vizinha, anote os dados
na sequencia.
Endereo IP CLIENTE 192.168.100.3 Guilherme Felipe da Silva PC1
Endereo IP SERVIDOR 192.168.1.100.2 Guilherme Felipe da Silva PC2
Ethernet
IP
MAC Origem -
MAC Destino
Type
Tamanho Payload (dados)
34:36:3b:c3:eb:28
FC:F8:AE:02:01:FC
IP (0x0800)
48bytes
192.168.100.3
IP Origem -
Pratica A8 TcpEcho_C-S_SocketSimples
192.168.100.2
48bytes
IP Destino
Tamanho Payload (dados)
Estabelecimento da Conexo
4. [1,0 ponto] O SERVIDOR est em execuo e ainda aguardando iniciar a comunicao. Ao executar o
cliente, este encaminhar uma mensagem de tamanho fixo ao servidor e ser fechada a conexo.
a. Anote na tabela abaixo a negociao.
b. Lembre que consumir 03 pacotes de rede esta informao do estabelecimento da conexo.
IP Destino (CLI):
IP Origem (SRV):
FLAGS TCP
CLIENTE
SERVIDOR
Sequencia
Nmero de Controle
Port
19475
19475
19475
(valor Hexa)
Port
SYN
SYN, ACK
ACK
Hex:0x002
Bin:0000000000010
9000
Seq =0
9000
Seq =0
Ack =1
Hex:0x012
Bin:0000000100010
9000
Seq =1
Ack =1
Hex:0x010
Bin:0000000100000
Transferncia de dados
5. [1,0 ponto] O SERVIDOR responder com ECHO da mensagem recebida. ANOTE tambm o tamanho da
mensagem observada no pacote (Length).
CLIENTE
Sequencia
Port
19475
PSH, ACK
Length( 39
19475
PSH, ACK
Length( 39
)bytes
)bytes
ACK
SERVIDOR
Port
Nmero de Controle
FLAGS TCP
(valor Hexa)
9000
Seq =1
Ack =1
Hex:0x018
Bin:000000011000
9000
Seq =1
Ack =40
Hex:0x018
Bin:000000011000
Seq =
Ack =
Hex:
Bin:
Anote o texto da Mensagem o tamanho da mesma na tabela acima. Os fluxos (setas) esto corretos?
Caso no exista alguma mensagem, justifique. Resposta:
No h a ultima mensagem, pois s h o envio do cliente e a resposta do servidor.
Mensagem Observada (est no cdigo): Guilherme Felipe da Silva 192.168.100.3 OK
Encerramento da Conexo
6. [1,0 ponto] O CLIENTE ao finalizar o envio da mensagem, sinalizar ao SERVIDOR e fechar o Socket.
Est correta esta afirmao ou o Servidor que sinaliza ao cliente??
Est incorreta, quem sinaliza o servidor.
Analise as mensagens e constate quem sinaliza e qual Code Bit enviado, preenchendo a tabela abaixo.
Que parte da mensagem o servidor analisa para saber que est fechando o Socket, qual CodeBit?
Pratica A8 TcpEcho_C-S_SocketSimples
3
Src_Port
Sequencia
Dst_Port
Nmero de Controle
19475
FIN, ACK
9000
Seq =39
Ack =39
19475
ACK
9000
Seq =39
Ack =40
19475
FIN, ACK
9000
Seq =40
Ack =40
19475
ACK
9000
Seq =40
Ack =40
Note que o encerramento foi realizado usando o semi-encerramento, ou seja, o cliente semi-encerra a
conexo transmitindo um segmento FIN, aceito pelo servidor que transmite um ACK. O cliente encerra a
transmisso de dados, mas o server pode transmitir algo dado.
Quando o servidor tiver transmitido todos os dados, ele sinaliza enviando um FIN ao cliente que responde
com um ACK.
7. [0,5 ponto] Anote os Dados do Pacote que INICIOU a CONEXO com o servidor.
P1) Qual dos CODE BITS pode identificar que est chegando uma conexo e qual seu valor?
P2) Esta informao pode ser til em qual situao considerando a segurana de rede?
[Recomendo leitura da Seo 23.3 TCP Forouzan Pag 725]
R1: SYN e o valor da flag 0x002
R2: til no sentido de identificar/evitar ataques por inundao de SYN.
8. [0,5 ponto] Analise o Pacote que iniciou a SINALIZAO com o SOCKET e anote todos os dados do
protocolo TCP;
Porta Destino:9000
Porta Origem:19475
Nmero de sequncia:0
Nmero do ACK: No utiliza
[Flags]
URG:
ACK:
PSH:
RST:
SYN:
FIN:
0x010
0x009
0x002
0x001
Window:8192
CRC:4
Anote os 4 bits e o tamanho do pacote TCP.
HEADER LENGTH (HLen): Bits:0101 Length (bytes):20
1) O Valor apresentado pelo WireShark est correto em relao aos 4 bits observados? Justifique a
mensagem e explique como foi obtido o valor.
Sim, est correto pois a variao ser entre 5 e 15, que quando multiplicados pelos 4bits
observados iro resultar em 20 a 60 bytes.
2) Qual o valor mnimo e o valor mximo VLIDOS para definio do tamanho do cabealho
apresentado nos 04 bits, em bytes?
Min: 20bytes
Max: 60 bytes
[Recomendo leitura da Seo 23.3 TCP Forouzan Pag 721/722]
Pratica A8 TcpEcho_C-S_SocketSimples
16
10
Source port
31
24
Destination port
Sequence number
Acknowledgement number
TCP
Hlen
Reserved
Code bits
Checksum
Window
Urgent point
Options
Pad
Data
As Repostas so INDIVIDUAIS, lembre-se, uma avaliao e tem objetivo de testar
seus conhecimentos. Seja honesto e responda individualmente, caso seja observado
cpia, ser anulada a avaliao de ambos os alunos.
Pratica A8 TcpEcho_C-S_SocketSimples
13. [0,5 ponto] Execute novamente o CLIENTE e observe a codificao usada para transmitir os dados.
Observe os dados no lado Servidor em todos os casos abaixo.
Informaes de Encoding usados no Cliente:
1252
---> Encoding CodePage
Europa Ocidental (Windows)
---> Encoding EncodingName
Iso-8859-1
---> Encoding BodyName
39bytes
Tamanho da mensagem transmitida:
14. Abra o projeto e altere o cdigo na Linha 38 no TcpEchoClientSocketSimples.cs, o tipo de
ENCODER.
DE:
<linha 38> ... Encoding codificacao = Encoding.Default;
PARA:
<linha 38> ... Encoding codificacao = Encoding.Unicode;
15. No Servidor, deixe como DEFAULT:
16. [1 ponto] Execute o Cliente e Servidor na sua mquina.
Compare o tamanho da mensagem Recebida no Servidor e no Cliente. Qual foi o tamanho anterior
e o atual? Se existe diferena, justifique.
Tamanho DEFAULT (Veja item 13): 78 bytes
Tamanho UNICODE: 39 bytes
Justificativa: H a adio de um espao para cada caractere.
F E L I P E
D A
S I L V A
1 9 2
O K
Tamanho UNICODE:39bytes
[Encoding.Default] Mensagem Servidor: GUILHERME FELIPE DA SILVA 192.168.100.3 OK
Tamanho ASCII:39bytes
[Encoding.Default] Mensagem Servidor: GUILHERME FELIPE DA SILVA 192.168.100.3 OK
O que ocorreu? Justifique:
Houve diferena apenas com relao ao default devido aos espaos adicionados.
Caso necessite maiores detalhes, usa a opo DEBUG (F9) e veja as informaes no BUFFER.
Pratica A8 TcpEcho_C-S_SocketSimples