Relatório do Laboratório de Redes 5
Professor Valter Roesler
Diogo Costa 180188
Lucas Magrini Rigo 161064
1) Instalar o software Polycom PVX e estabelecer uma chamada em duplas.
Medir o atraso ida e volta da transmissão com câmera (não é com captura de tela).
Disparar o “xnote stopwatch” na máquina A. A máquina A filma (com a webcam) a tela
da máquina A, transmitindo essa imagem para a máquina B. A máquina B filma a tela. Na
máquina A é recebida a imagem transmitida, do seu próprio cronômetro. Captura-se a
tela e obtém-se o atraso.
Fizemos 2 amostragens. Segue as figuras:
No primeiro temos uma diferença de 28-9 = 19 centésimos de segundo. No segundo
temos uma diferença de 40 - 21 = 19 centésimo de segundo. Fazendo uma média aritmética
dessas duas amostragem verificamos que o atraso médio é de 190 ms.
2) Instalar o sniffer de redes Wireshark e fazer uma comunicação em duplas via
PVX. Sugestão: usar filtros: ip.src==… ou RTCP ou RTP ou …
a) Identificar cabeçalhos RTP e RTCP (mostrar uma imagem com RTP e outra com
RTCP no wireshark). Qual a diferença de direção e quantidade de pacotes de cada um?
Observa-se muito mais pacotes RTP, pois é através desse protocolo que os dados de
áudio e vídeo são transmitidos em “tempo real”. Na imagem, aparecem pacotes RTP sendo
enviados e recebidos, pois na comunicação do Polycom o PC 1 tanto enviava como recebia
áudio e vídeo para o PC 2. Já o RTCP é um pacote de controle para qualidade da transmissão,
não necessitando ser enviado muitas vezes, por isso seu baixo número de pacotes. É enviado
um “Sender”, do emissor para o receptor, e este envia um “Receiver” para o emissor.
b) Para o RTP, identificar e justificar os campos “versão”, “Payload
Type”, “Sequence Number”, “timestamp”
Versão: é a versão do RTP utilizada, a atual é a 2.
Payload Type: identifica o tipo de payload (áudio, vídeo, etc.).
Sequence Number: é a ordem do pacote ao longo da transmissão de áudio/vídeos.
Timestamp: é a posição dos dados na sequência a ser exibida.
c. Descobrir quais pacotes são de áudio e quais são de vídeo. Justificar,
utilizando como base a diferença entre tamanho e quantidade dos pacotes de cada fluxo.
Utilize como apoio o timestamp dos pacotes. Sugere-se fortemente filtrar por fluxo.
Os pacotes com payload type 126 são os de vídeo e os de 127 são os de áudio. É fácil
observar os pacotes de vídeo (126) pela grande quantidade necessária para montar um frame
(Mark), sendo 0 a diferença de timestamp entre esses pacotes. Já os pacotes de áudio (127)
possuem uma diferença de timestamp bem maior que 0, pois não precisam mais de um pacote
para ser criado um “frame de áudio”.
3) Para a codificação de áudio utilizada e características do laboratório, calcule:
a) Tempo médio de inserção
Tempo de inserção = L/T (L=tamanho do quadro em bits; T=taxa em bits/s).
Analisando os quadros RTP da questão anterior, vimos que um quadro de áudio tem
tamanho 294 bytes ou 2352 bits. Como a rede local tem uma taxa de 100Mbits/s temos:
L = 2352
T = 100’000’000
Tempo de inserção = 2352/100’000’000
Tempo de inserção = 23,52 x 10^-6 = 23,52 us
b) Atraso no meio físico, supondo 40m a distância entre sua máquina e o switch
do INF.
Assumindo que Velocidade da Luz (C) = 300.000.000 m/s,
Atraso no meio físico = distância / velocidade = 2*40m / (2/3)C m/s = 400ns
4) Leia o help do ping (ping /?) e efetue os seguintes testes:
a) Fazer um ping com 8 requisições de echo, tamanho do pacote de 200 bytes,
TTL de 80. Mostre o comando utilizado e prove que funcionou através de uma imagem.
b) Fazer um ping forçando a não fragmentação do pacote (-f) e tamanho do pacote
de 1600 bytes. Verificar qual o máximo tamanho do pacote que funciona. Explique.
Com um tamanho de 1600 bytes sem fragmentação é impossível enviar pacotes. Ao
enviar pacotes menores que 1600 bytes encontramos, na força bruta, que o tamanho máximo é
1472 bytes. Um quadro Ethernet possui tamanho máximo de 1500 bytes, mas como o
protocolo ICMP utiliza 8 bytes de cabeçalho e o IP mais 20 bytes, sobram os 1472 bytes de
dados obtidos no envio do ping.
c) Qual a mensagem (pacote de dados) enviados
num comando de ping? Sugestão: analise o pacote
ICMP.
É enviado uma sequência de caracteres a-w, repetidamente.
5. Utilizar um sniffer de redes para analisar o funcionamento do ping. Capturar
o ping de sua máquina para um vizinho, preencha na tabela linha a linha a seqüência
de comandos de um ping, explicando cada linha (mostrando o endereço nível 2 e nível
3 envolvido em cada linha). Também deve ser considerado o protocolo ARP, além do
ICMP. Pode-se utilizar a simbologia MAC_A (MAC da máquina A), MAC_B (MAC da
máquina B) e MAC-R (MAC do roteador), por exemplo. Da mesma forma, pode-se utilizar
IP_A, IP_B, etc. Quando não existir pacotes no nível, basta colocar “Não tem” na tabela.
Protocolo
End. Nível 2
End. Nível 3
Descrição
Ex: arq request
Ex: Mac_x -> …
Ex: icmp request
Ex: Mac_x -> Mac_y
Ex: IPx->IPy
Protocolo
End. Nível 2
End. Nível 3
Descrição
ARP Request
MAC_A -> broadcast
-
A máquina A envia
um broadcast para
obter o endereço
MAC da
máquina B
ARP Reply
MAC_B -> MAC_A
IP_B
A máquina B
blá
responde seu
endereço MAC para
a máquina A
ICMP Request
MAC_A -> MAC_B
IP_A, IP_B
A máquina A envia o
ping para a máquina
B
ICMP Reply
MAC_B -> MAC_A
IP_B, IP_A
A máquina B
responde o ping da
máquina A
Conforme a figura abaixo (ping apr-icmp 5.PNG):
-MAC_A → 00:24:1d:f1:05:35
-MAC_B → 00:24:1d:f1:06:b9
-broadcast → ff:ff:ff:ff:ff:ff
-IP_A → 10.67.105.3
-IP_B → 10.67.105.2
6. Repetir a tabela acima, porém fazendo ping para uma subrede diferente. Qual a
principal diferença?
Como já se conhece o endereço MAC tanto da máquina A para o gateway quanto do
gateway para a máquina A, só precisa fazer o ping. O ping é transmitido até o gateway, que
encaminha para a máquina da subrede diferente. Esta máquina responde para o gateway, que
repassa para a máquina A. A tabela e figura a seguir exemplificam.
Protocolo
End. Nivel 2
End. Nivel 3
Descrição
ICMP Request
MAC_A ->
mac_router
ip de A, IP de B
pedido de ping
ICMP Reply
mac_router -> mac_A ip de B, IP de A
resposta de ping
7. SOBRE O ARP:
a. Explicar o funcionamento do protocolo ARP baseado nos seus campos de
cabeçalho. Para isso, pode-se olhar na especificação do protocolo (buscar na RFC)
ou analisar no sniffer, pois o mesmo provê todos os campos do protocolo. Explique
o motivo do ARP request não conter o endereço MAC do destino (campo zerado), e o
motivo que o ARP reply contém todos os campos preenchidos.
O protocolo ARP tem como objetivo obter o endereço de máquina de uma interface com
a qual a máquina que envia quer se comunicar. Para isto, ela faz um broadcast da requisição.
No cabeçalho ARP estão especificados:
• Tipo de hardware (do nível de enlace, ethernet)
• Tipo de protocolo (do nível de rede, IP)
• Tamanho do endereço de hardware (6)
• Tamanho do endereço de protocolo (4)
• Opcode (algumas opções)
• Endereço MAC da origem (00:24:id:f1:04:db)
• Endereço IP da origem (10.67.105.3)
• Endereço MAC do alvo (00:00:00:00:00:00)
• Endereço IP do alvo (10.67.105.254)
O MAC destino está zerado justamente porque a máquina que fez a requisição quer
saber este campo. O MAC da origem é necessário para que a resposta possa ser retornada
à origem da requisição. Os endereços IP servem para as máquinas saberem quem está
solicitando e quem deve responder.
b. Explicar o motivo pelo qual o ARP acontece somente na primeira vez que é
feito o ping para uma determinada máquina. Dica: utilizar "arp /?" e "arp -a". Quanto
tempo dura essa informação?
A requisição ARP ocorre apenas na primeira vez, porque a máquina guarda uma tabela
de resolução de MAC que armazena os endereços tanto quanto solicitando, quanto solicitado.
Essa tabela é atualizada a cada intervalo de minutos, para não causar uma sobrecarga na
rede. Através do comando “arp -a” é possível verificar o estado atual da tabela. O tamanho
mínimo do pacote ethernet é 64 bytes e, no caso das mensagens do protocolo ARP, existe
um trailer inserido pelo protocolo ethernet para que a mensagem chegue ao valor mínimo
especificado. A seguir é apresentado o campo Trailer no nivel de Ethernet.
8. SOBRE O TRACEROUTE
a. Utilizar o traceroute (ou tracert) para descobrir o número de hops e os
roteadores por onde os pacotes estão trafegando até:
i. www.ufrgs.br
ii. http://www.nhk.or.jp
b. Para que serve o traceroute? Qual sua relação com o TTL? Para que serve o
TTL?
O traceroute serve para estimar o caminho (roteadores) entre duas máquinas, através
de mensagens ICMP sucessivas. O Time to Leave (TTL) é um contador que é decrementado
cada vez que passa por um roteador. Ele serve para indicar o número máximo de hops que um
pacote
realizará até ser descartado. A cada vez que o TTL chega a 0, a estação atual retorna uma
mensagem ao emissor informando-o. Portanto é possivel descobrir os roteadores presentes no
caminho da conexão iniciando mensagens com TTL 1 e ir incrementando até chegar no destino
final.
c. Não precisa comentar no relatório, mas assista os seguintes vídeos:
i. http://www.youtube.com/watch?v=SXmv8quf_xM
ii. http://www.youtube.com/watch?v=6WHu1EM8CgY&feature=related
9. Obtenha um histograma do valor médio do tamanho dos pacotes que
trafegaram pela rede durante o período considerado. Ver opção “statistics+packet
lengths”. Faça a análise duas vezes: a) iniciando a captura e navegando na web (perfil
navegação web); b) iniciando a captura e fazendo um download de arquivo de tamanho
razoavelmente grande (acima de 10 Mbytes). Compare os resultados em relação ao
tamanho do pacote. Explique.
A seguir são apresentados dois histogramas. O primeiro é referente à navegação web,
enquanto o segundo representa um download.
O primeiro histograma tem cerca de 32% dos pacotes de tamanho 40-79 bytes e cerca
35% de tamanho 1280-2559 bytes. Como uma página web possui muita variação no tamanho
dos elementos, por exemplo código fonte html, texto com poucos bytes versus imagem grande,
muitos pixels, há uma distribuição dos pacotes em vários tamanhos.
Já o segundo histograma tem cerca de 29% dos pacotes de tamanho 40-79 bytes e
cerca de 71% de tamanho 1280-2559 bytes. Como o arquivo é uma stream de bytes, o ideal é
sempre ocupar o máximo de um pacote e é o que acontece no download desse arquivo.
Em ambos casos, há cerca de 30% mensagens pequenas, que dizem respeito a ACKs
em ambos sentidos.
10. Faça uma análise completa de um quadro MAC que contenha encapsulado
um pacote IP e TCP (sugestão: faça um download qualquer). Liste todos os valores dos
diversos campos encontrados no cabeçalho do quadro MAC e nos cabeçalhos do pacote
IP e do segmento TCP encapsulado. Explique os valores encontrados e suas unidades
quando for o caso.
A figura abaixo mostra um pacote TCP/IP.
Os campos do MAC são:
● destino (00:0b:db:8f:2c:56)
● fonte (00:1f:d0:e8:9c:f6)
● tipo: IP (0x0800)
Os campos do IP são:
● versão do IP (4)
● tamanho do cabeçalho IP (20 bytes)
● prioridade: (0x00)
● tamanho total do payload (40 bytes)
● identificação (0x6c54)
● flags: não fragmentar (0x04)
● offset do fragmento: 0 (sem fragmentos)
● TTL (128 hops)
● protocolo usado :TCP (0x06)
● checksum do cabeçalho (0x80ef) [correto]
● origem (10.67.105.3)
● destino (143.54.11.16)
Os campos do TCP são:
● porta origem: casp (1130)
● porta destino: http (80)
● número de sequência: (1)
● número de ACK, próximo byte a ser enviado (984177º byte)
● tamanho do cabeçalho (20 bytes)
● flags: ACK (0x10)
● tamanho de janela (65535 bytes)
● checksum do segmento (0x0da7)
● análises de SEQ/ACK
11. Utilizar o software Iperf (iperf –h para help), que deve ser disparado em duas
máquinas, uma sendo servidor “iperf –s” e outra cliente. Tem que disparar o servidor
de forma diferente para teste em UDP ou TCP. “iperf –s –u” para UDP ou “iperf –s” para
TCP. EXEMPLO DE CLIENTE COM UDP: iperf –f m –i 1 –c “ipservidor” –t 30 –p 2000 –
u –b 10M –l 1400 (formato em Mbit/s, informa banda enviada a cada segundo, tempo de
30s, porta 2000, banda máxima de 10Mbit/s, tamanho de pacote 1400 bytes). No relatório
devem constar o resultado dos três seguintes objetivos:
a. Mostrar linhas de comando utilizadas e gerar gráfico udp para 3 bandas
diferentes (ex: 1Mbit/s, 10Mbit/s e 30Mbit/s). Mostrar e explicar o gráfico gerado.
1mb:
10mb:
30mb:
O protocolo UDP usa a máxima banda disponivel, nesse caso a informada pelo
parâmetro.
b. Mostrar linhas de comando utilizadas e gerar gráfico TCP da estação
incrementando o número de conexões para uma máquina servidora. Pode-se fazer de
duas formas: a) aumentando o número de clientes gradativamente, com 1, 2 e 3 clientes,
utilizando máquinas diferentes para clientes; b) utilizando o resultado do próprio
iperf (opção “-i 1”), que mostra a média a cada segundo, e depois gerando o gráfico
com outra ferramenta. Nesse caso, bastam duas máquinas com 3 janelas cliente e 3
servidoras. O objetivo é ver a adaptação do TCP (tcp-friendly).
OBS: não esquecer que definição de banda só faz sentido com o UDP. No TCP,
não se deve utilizar flags de controle de taxa, pois o controle é feito em nível 4.
Com esses três prints claramente se ve a divisão igualtária entre os clientes, a cada
cliente que é adicionado a banda se adapta a esses clientes(podemos ver que com 2 clientes
a banda é dividida entre 2, bem como quando há 3 clientes a banda é dividida em 3), o mesmo
vale quando se remove algum cliente.
12. Utilizando a ferramenta Wireshark, obtenha a curva de variação da carga
da rede local da sua máquina. Explique, sucintamente, como foi obtida e comente os
resultados obtidos. Para esta tarefa considere uma estatística de 1 a 5 minutos. Ver
opção “statistics+io-graph”. Altere o uso da rede (através do iperf ou outro método) e
explique as variações na rede. Gere gráficos de TCP e UDP e compare os resultados.
Nessa imagem obtida no Wireshark fica fácil perceber a diferença de pacotes UDP e
TCP. Esse gráfico foi obtido durante 5 minutos de navegação WEB e downloads aleatórios de
tamanho maior que 100mb. Deve-se a isso o fato de haver muito mais pacotes TCP, pois essas
aplicações(download e navegação) precisam de uma conexão segura(TCP).
Download

Relatório do Laboratório de Redes 5 Professor Valter Roesler Diogo