Você está na página 1de 17

Redes de Computadores

Wireshark - Protocolos HTTP, DNS, TCP, UDP, IP.

Rodrigo José de Souza Leite 11049610

Prof. João Henrique Kleinschmidt / Gustavo S. Pavani

Santo André, 24 de Abril de 2014.


Introdução

Em redes de computadores pacotes são uma estrutura unitária de transmissão de


dados ou uma sequência de dados transmitida por uma rede ou linha de comunicação
que utilize a comutação de pacotes.A informação a transmitir geralmente é quebrada
em inúmeros pacotes e então transmitida.

Além da parte da informação, o pacote possui um cabeçalho, que contém informações


importantes para a transmissão, como o endereço do destinatário, soma para
checagem de erros, prioridades, entre outras. Dentro da internet utilizamos esses
pacotes para transmitir dados de um servidor para outro (usuário), para isso devemos
ver como funciona o protocolo HTTP , como o protocolo DNS resolve as requisições do
site, e como isso se relaciona ao TCP E UCP já comentados no relatório anterior.

Objetivo
O objetivo é que através da realização dos exercícios propostos, os conceitos sobre
pacotes e transmissão de dados os quais foram ensinados no decorrer das aulas
teóricas sejam assimilados e sua aplicação prática seja conhecida.

1 - Protocolos HTTP E DNS


Os arquivos UDPClient.java e UDPServer.java foram compilados e executados.

1.1 – Capturando pacotes

Para iniciarmos esse experimento, e necessário captura os dados, e observar os


campos de cada pacote , como pode ser observado nas imagens abaixo
2 - HTTP

2.1 – Acessando a Pagina: “http://gaia.cs.umass.edu/wireshark-


labs/INTRO-wireshark-file1.html” com o filtro HTTP

2.2 – Observe os pacotes capturados e identifique:


2.2.1 - Versão do HTTP do navegador e do servidor web acessado.
A versão HTTP do navegador é a 4 e a do servidor web é a 6, conforme pode ser visto
respectivamente nas imagens abaixo

2.2.2 - Quais são as línguas que o navegador aceita e o IP do seu


computador e do servidor.
As Línguas são Português e Inglês, representadas por PT e EN.
O IP do computador é 192.168.0.100 ( o ip na internet seria 189.33.162.192 , porém a
conexão local passa por um roteador wireless que deixa com o ip de 192.168.0.100)
O Ip do servidor é 128.119.245.12

Conforme pode ser visto nas imagens abaixo

2.2.3 - Qual é o Código de status retornado do servidor para o


navegador e o HTTP é persistente ou não é persistente ?
O código de status é 200 é o HTTP não é persistente , o que pode ser observado pela
flag Connection vindo com o valor Keep Alive n.
2.2.4 - Qual é a ultima modificação do arquivo HTML do servidor e o
número de bytes de conteúdo retornado ao navegador ?

A ultima modificação foi em segunda-feira, 12 de maio de 2014 as 14:20:01 (aproximadamente 30


segundos depois de tirado a captura), e o numero de bytes retornados foram 81 bytes.

2.2.5 - Analise os dados (raw data) do pacote


Ao analisar a raw data, podemos observar que todos os dados contidos nele , já estão contidos nos
cabeçalhos acima

Foi repetido o procedimentos para o site http://www.pudim.com.br/ é foram observado só


seguintes dados

Versão do HTTP do navegador e do servidor web acessado : Versão 4/Versão 4


Línguas que o navegador aceita : PT/EN
IP do seu computador e do servidor : 192.168.0.100/200.219.245.95
Código de status retornado do servidor para o navegador : 200 (ok)
HTTP persistente ou não persistente : Não Persistente
Última modificação do arquivo HTML do servidor :Quinta feira , 02 de fevereiro de 2014 as 14:08
Número de bytes de conteúdo retornado ao navegador : 1146 bytes

2.3 – GET Condicional

Após limpar o cache e acessar o site http://gaia.cs.umass.edu/wireshark-labs/HTTP-


wireshark-file2.html foi analisado e respondido as perguntas:

2.3.1 – Verifique o conteúdo da primeira requisição GET. É possível


ver “IF-MODIFIED-SINCE” no HTTP GET?
Não aparece esse Campo
2.3.2 - Verifique a resposta do servidor. O servidor retorna o
conteúdo do arquivo?
Sim, ele retorna o arquivo

2.3.3 - Verifique a segunda requisição GET. É possível ver “” no


HTTP GET? Explique.
Sim, pois como o site esta no cache do computador, ele fica armazenada com a ultima versão a qual
foi obtida na data que foi acessado, assim o “IF-MODIFIED-SINCE” é usado para verificar se é
necessário ou não atualizar a informação

2.3.4 - Verifique a resposta do servidor ao segundo GET. O servidor


retorna o conteúdo do arquivo? Explique.
Não, pois como não houve modificação o cliente acaba pegando os dados que estão guardados no
cache.

2.3.5 - Repita os procedimentos para outro site web escolhido por


você.

Foi utilizado o site http://www.pudim.com.br/ é no primeiro acesso não apareceu a flag “IF-
MODIFIED-SINCEf” e o arquivo foi baixo do servidor, já no segundo a flag apareceu e o arquivo não
foi baixo ( ele foi baixado do cache), conforme tinha acontecido com o outro site web.

2.4 - HTML com objetos

Apos acessar o site: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html foi


respondido as seguintes perguntas:

2.4.1 - Quantas requisições HTTP GET foram feitas pelo navegador?


Para qual endereço IP estas requisições foram feitas?

Foram feitas 3 requisições do tipo HTTP GET as quais vieram de 3 servidores


diferentes(128.119.245.12/165.193.140.14/128.119.240.90)

2.4.2 - Identifique se o navegador fez o download das imagens


(objetos) de maneira serial ou paralela. Explique.

Foi feito de maneira paralela , pois o navegador não esperou o recebimento de um arquivo antes de
requisitar o outro

2.4.3 - Repita os procedimentos para outro site web escolhido por


você.

Foi refeito o procedimentos para o site http://www.pudim.com.br/ , o qual foi feito 2 requisições
de http os quais também vieram de servidores diferentes.
Já os objeto provavelmente vieram de forma paralela igual ao site da web anterior, porém não é
possível verificar pois o site só tem um objeto.
2.5 - Autenticação HTTP

Após acessar o site http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-


file5.html usando o Nome de usuário como wireshark-students e a Senha como network foi
respondido as seguintes perguntas:

2.4.5 - Qual a resposta do servidor ao HTTP GET inicial do


navegador?

Foi observado a mensagem : Authorization Required

2.4.5 - Na segunda mensagem GET do navegador, qual novo campo


é incluído na mensagem GET?
Foi observado um campo (Credencials) com os valores do nome de usuário e senha.
2.4.5 - É possível visualizar o nome de usuário e senha no pacote
capturado pelo wireshark? Discuta sobre a segurança desta autenticação
HTTP.
Sim. Como é possível observar o usuário e senha através da captura de pacotes, o http não
apresenta nenhuma criptografia em seus dados, fazendo assim ele não ser muito seguro

3 – DNS

Acesse o site www.ietf.org

3.1- Localize as mensagens DNS. São enviadas sobre TCP ou UDP?


São enviadas por udp, podemos ver isso no flag Protocol
3.2- Identifique a porta de destino da mensagem query DNS e a porta de
origem da mensagem de resposta do DNS.
A porta de destino da mensagem é a 53( que seria a porta do domínio) e a porta de origem
é a 57342
3.3 - Identifique o endereço IP para qual a mensagem de query do DNS foi
enviada. Use ipconfig para determinar seu servidor DNS local. Estes dois
endereços são iguais?
Sim. Ambos são iguais (192.168.0.100)
3.4 -Examine a resposta DNS. Quantas “respostas” foram dadas? Qual o
conteúdo destas respostas?
Foi dada uma resposta, contendo o endereço ip do site.
3.5 -Considere o pacote TCP SYN subsequente enviado pelo navegador. O
IP de destino do pacote TCP SYN corresponde ao endereço IP fornecido
pela mensagem de resposta DNS?
Sim, ele apresenta um ip igual ao que foi enviado como resposta pelo DNS (4.31.198.44).

3.6 -Esta página contém imagens. Antes de requisitar cada imagem, seu
host faz novas queries DNS?
Não, ele faz apenas uma requisição de Dns, após isso ele utiliza o ip obtido para fazer as
requisições.

4 - nslookup

4.1 -Execute o comando “nslookup www.mit.edu”


4.1.1 - Identifique a porta de destino da mensagem query DNS e a
porta de origem da mensagem de resposta do DNS.
São a mesma (192.168.0.100)
4.1.2 - Identifique o endereço IP para qual a mensagem de query do
DNS foi enviada. Use ipconfig para determinar seu servidor DNS local.
Estes dois endereços são iguais?
Ambos são iguais (192.168.0.100)
4.1.3 - Examine a resposta DNS. Quantas “respostas” foram dadas?
Qual o conteúdo destas respostas?
6 resposta. Essas respostas são as respostas dos servidores dns por quais a mensagem passa.

4.2 – Execute o comando “nslookup www.aiit.or.kr google-public-dns-


a.google.com”

4.2.1 - Identifique o endereço IP para qual a mensagem de query do


DNS foi enviada. Este endereço IP é o mesmo do seu servidor DNS local?
Caso contrário, esse endereço IP corresponde a que servidor?
8.8.8.8. Não, esse endereço ip corresponde ao servidor da google
4.2.2 - Examine a resposta DNS. Quantas “respostas” foram dadas?
Qual o conteúdo destas respostas?
6 resposta. Essas respostas são as respostas dos servidores dns por quais a mensagem passa.

5 - UDP

5.1- Execute a aplicação socket UDP cliente/servidor em Java. Envie uma mensagem de
um cliente para o servidor (em outra máquina do laboratório). Capture os pacotes enviados
com o Wireshark.

5.1.1 - Selecione um pacote UDP. Quantos e quais são os campos do


cabeçalho do pacote?
Quatro pacotes, um para porta de origem, um para porta de destino, um para o tamanho e uma para o
checksum
5.1.2 - O valor no campo length (comprimento) é o comprimento do
que? Do cabeçalho, dados ou do pacote UDP inteiro?
O length e referente ao tamanho em bytes do pacote UDP inteiro, incluindo o cabeças e os dados
5.1.3 - Qual o maior número possível de porta de origem no UDP? E
destino?
O numero de portas são 65536 (2^16) a de origem é apenas uma, pois é a porta escolhida ao sair a
informação, Já a do destino é dinâmica podendo assumir qualquer uma das 65536 possibilidades (
desde que não pegue nenhum porta reservada)
5.1.4 - Qual é o número de protocolo para o UDP? (Para responder,
você precisa verificar no cabeçalho IP).
17
5.1.5 - 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.
O que ocorre é que na primeira mensagem do cliente para o servidor a porta de origem é x , porta
escolhida pelo protocolo, e a porta de destino e y.
Quando o servidor responde ocorre a troca, sendo que a porta de origem fica y e a do destino x.

6- TCP

6.1 Execute a aplicação socket TCP cliente/servidor em Java. Envie uma


mensagem de um cliente para o servidor (em outra máquina do laboratório) e
capture os pacotes com o Wireshark.
6.1.2 - Qual é o endereço IP e porta TCP usado pelo cliente? E pelo
servidor?
ip cliente = 172.17.13.196 porta 50577 e ip servidor = 172.17.13.197 porta 9000

6.1.3 - Qual o número de sequência 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 de reconhecimento do cabeçalho TCP
para o segmento SYNACK? Como o servidor determinou este valor?
Explique como funciona todo este processo de estabelecimento de
conexão TCP.
O numero de sequencia é 1. O numero do segmento SYNACK enviado pelo servidor como resposta
ao SYN é 2.
O número de reconhecimento é o próximo número de sequencia esperado. EX: seq=4 depois enviou
5 bytes → ack= foi pra 9 e o próximo seq =9.

O processo de estabelecimento de conexão Tcp funciona da seguinte forma , primeiro o cliente envia
uma pacote com o flag SYN marcado , que inicia a conexão, o servidor responde com um flag
ACK/SYN confirmando que recebeu a conexão e autoriza a conexão e finalmente o cliente envia um
flag ACK para confirmar o recebimento (Esse processo tem o nome de Hand-Shake).

6.2 Acesse uma página web.


6.2.1- Identifique e explique o processo de estabelecimento de
conexão. É similar ao programa Java executado?
O Processo de conexão para acessar uma pagina web é semelhante ao do programa java , ocorrendo o
handshake , entre o usuário e o servidor o qual hospeda o site.
6.2.2 - Identifique os segmentos TCP trocados entre o cliente
(navegador) e o servidor (site web).

6.2.2 - Identifique o RTT (round trip time) – tempo de viagem


de ida e volta dos 6 primeiros segmentos. Calcule o RTT estimado
para 2 segmentos através da seguinte equação:
RTT Estimado = 0,875 RTT Estimado + 0,125 RTT
RTT 1 = 0,0338

RTT 2 =0,00086

RTT 3 =0,000968
RTT 4 =0,000005

RTT 5 =0,000002

RTT 6 =0,001221

Calculo de RTT Estimado:

RTT 1 = RTT Estimado = 0,0338


RTT 2 = 0,875 RTT Estimado + 0,125 RTT = 0,0296825

7. IP

7.1 Comando ping

Execute o comando “ping www.uol.com.br”. Repare nas mensagens que ele mostra na tela.

7.1.1- Execute o comando “ping X.X.X.X”. Veja que é possível


executar o comando para um endereço IP diretamente.

7.1.2- Execute o comando “ping www.receita.fazenda.gov.br”. Houve


resposta? Qual pode ser o problema?
Não, provavelmente o servidor da receita não aceita ping sem ser autentificado.

7.1.3- Execute o comando “ping www.uol.com.br” novamente. Pare a


captura e observe os pacotes capturados. Identifique os pacotes ICMP com
as mensagens “echo request” e “echo reply”. Quais informações é
possível verificar nos pacotes?

É possível verificar o ID dos pacotes, a sequencia e o numero de roteadores que a informação que
passa.
7.1.4- Execute o comando ping para vários endereços, explique o
tempo de resposta obtido para os diversos endereços.
O tempo de resposta diferente para os diversos endereços se da pela distancia física entre os
servidores, pois quanto maior a distancia maior o tempo de resposta.

7.2 Comando traceroute

7.2.1 - Execute o comando traceroute na linha de comando para


alguns destinos escolhidos.
7.2.1.1 - · traceroute www.uol.com.br

7.2.1.2 - · traceroute www.globo.com, o que é possível observar?

Para chegar ao servidor da uol e preciso passar por uma rota de 10 servidores partindo do roteador
local ( o traceroute foi feito num pc pessoal).
Já para o da globo.com é necessário 9 servidores
Os servidores em * são servidores os quais a identidade e escondida para dar mais segurança a
conexão.

7.2.2 - Agora execute o traceroute capturando os pacotes com o


Wireshark. Filtre os pacotes ICMP e verifique a sequência de pacotes
enviada. Como funciona o traceroute?
O Traceroute é uma feramente que rastreia a rota de uma pacote através de uma rede de
computadores que utiliza o protocolo ip.
Seu funcionamento esta baseado no uso de TTL do pacote IPv4 destinado a limitar o tempo de vida
dele.
O valor e diminuído cada vez que um pacote é encaminhado por um roteador.
Ao atingir o valor zero o pacote é descartado e aparece a mensagem ICMP_TIME_EXCEEDED para
o receptor.

Conclusão
Através desse experimento podemos observar como funciona a transmissão de dados na arquitetura
ip, foi-se usado conceitos da aula passada (UTP,TCP) como também foi visto como os servidores
HTTP respondem as requisições , devemos citar também que os servidores HTTP não possui nenhum
tipo de criptografia, além de virmos o funcionamento dos servidores DNS utilizando varias
ferramentas, como o wireshark e o traceroute.
Também foi possível observar o tempo de demora para um pacote chegar de um servidor para outro,
mostrando assim a importância de servidores mais próximos para aumentar a velocidade da conexão

Você também pode gostar