Redes TCP/IP - Ex 04
by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>
Exercício de fixação ligado diretamente ao artigo Redes TCP/IP, existente neste wiki.
O conteúdo a seguir poderá ser utilizado por outros professores,
desde que a fonte seja citada e os créditos mantidos.
Última atualização: veja o rodapé desta página.
Base de conhecimento para a resolução do exercício
- Cartão de referência do TCP/IP e tcpdump, disponível em http://www.sans.org/resources/tcpip.pdf.
- Protocolos IP, disponível em /etc/protocols ou em http://www.iana.org/assignments/protocol-numbers.
- Portas TCP/UDP, disponível em /etc/services ou em http://www.iana.org/assignments/port-numbers.
Questões
- Qual RFC regulamenta o protocolo TCP?
- Por ocasião do cálculo do checksum, o TCP utiliza um pseudo cabeçalho IP. Como é constituído esse pseudo cabeçalho e para que ele serve?
- Quais elementos o checksum do TCP garante?
- Observe a captura a seguir:
- 13:46:40.916351 IP 10.1.1.25.36824 > 200.221.2.45.80: S 730962026:730962026(0) win 5840 <mss 1460,sackOK,timestamp 955039 0,nop,wscale 7>
- 13:46:40.916549 IP 200.221.2.45.80 > 10.1.1.25.36824: S 93022060:93022060(0) ack 730962027 win 5792 <mss 1460,sackOK,timestamp 862078256 955039,nop,wscale 6>
- 13:46:40.916571 IP 10.1.1.25.36824 > 200.221.2.45.80: . ack 93022061 win 46 <nop,nop,timestamp 955039 862078256>
- 13:46:50.532181 IP 10.1.1.25.36824 > 200.221.2.45.80: P 730962027:730962031(4) ack 93022061 win 46 <nop,nop,timestamp 957443 862078256>
- 13:46:50.532350 IP 200.221.2.45.80 > 10.1.1.25.36824: . ack 730962031 win 91 <nop,nop,timestamp 862080660 957443>
- 13:46:50.533215 IP 200.221.2.45.80 > 10.1.1.25.36824: P 93022061:93023259(1198) ack 730962031 win 91 <nop,nop,timestamp 862080660 957443>
- 13:46:50.533229 IP 10.1.1.25.36824 > 200.221.2.45.80: . ack 93023259 win 65 <nop,nop,timestamp 957443 862080660>
- 13:46:50.533237 IP 200.221.2.45.80 > 10.1.1.25.36824: F 93023259:93023259(0) ack 730962031 win 91 <nop,nop,timestamp 862080661 957443>
- 13:46:50.533355 IP 10.1.1.25.36824 > 200.221.2.45.80: F 730962031:730962031(0) ack 93023260 win 65 <nop,nop,timestamp 957443 862080661>
- 13:46:50.533483 IP 200.221.2.45.80 > 10.1.1.25.36824: . ack 730962032 win 91 <nop,nop,timestamp 862080661 957443>
- Responda:
- a) Qual protocolo de transporte (TCP ou UDP) está sendo utilizado? Justifique.
- b) Qual é o endereço IP do cliente? Justifique.
- c) Qual é o endereço IP do servidor?
- d) Qual é a porta do cliente?
- e) Qual é a porta do servidor?
- f) Que tipo de atividade o usuário da máquina cliente está realizando?
- g) Qual é o socket do servidor envolvido?
- h) Qual host iniciou a conexão?
- i) Qual host iniciou a finalização da conexão?
- j) O three-way handshake foi realizado corretamente?
- Observe a sequência de bytes a seguir, obtida a partir de uma captura em uma transação de rede, iniciada por um protocolo IP:
- 4500 003c 0000 4000 3f06 1e15 405a 3137
- ac15 0001 0050 c19b 276a 36df c9c7 ec0a
- a012 16a0 1aba 0000 0204 05b4 0402 080a
- 2dfd a2ee 08f2 4909 0103 0307
- Dica: para resolver esta questão, de acordo com a necessidade, transforme alguns campos de hexadecimal para binário ou decimal e consulte o cartão TCP/IP para entender o cabeçalho IP.
- Responda:
- a) Qual é o tamanho, em bytes, do cabeçalho IP em questão? (campo IHL)
- b) Qual é o endereço IP de origem?
- c) Qual é o endereço IP de destino?
- d) Que protocolo IP está sendo utilizado?
- e) Qual é o TTL do pacote?
- f) Qual é o tamanho do cabeçalho do protocolo encapsulado pelo IP?
- g) Qual ou quais flags estão ativas no protocolo encapsulado pelo IP?
- h) O protocolo encapsulado pelo IP possui payload? Justifique.
- Observe a captura a seguir:
- 14:07:06.963550 IP 10.1.1.25.56067 > 200.181.59.43.85: S 2035483032:2035483032(0) win 5840 <mss 1460,sackOK,timestamp 1261531 0,nop,wscale 7>
- 14:07:07.070582 IP 200.181.59.43.85 > 10.1.1.25.56067: R 0:0(0) ack 2035483033 win 0
- Responda:
- a) Qual protocolo de transporte (TCP ou UDP) está sendo utilizado? Justifique.
- b) Qual é o endereço IP do cliente?
- c) Qual é o endereço IP do servidor?
- d) Qual é a porta do cliente?
- e) Qual é a porta do servidor?
- f) O three-way handshake foi realizado corretamente?
- g) Qual é a conclusão a qual podemos chegar, em relação à situação da porta servidora?
- h) Qual é o window scale do cliente?
- i) Qual foi o window size concedido pelo cliente ao servidor? (em bytes)
- j) Em uma transação TCP, é necessário que cliente e servidor utilizem o mesmo window scale?
- Observe a linha a seguir:
- 23:31:02.548385 IP 143.166.83.21.3810 > 148.18.10.100.57237: S 1917438290:1917438290(0) ack 1663938704 win 1608 <mss 1440,nop,wscale 0,nop,nop,timestamp 1239410904 220700,sackOK,eol>
- Responda:
- a) Qual é o endereço IP do cliente envolvido na conexão?
- b) Qual é o socket do servidor envolvido na conexão?
- c) Qual foi o window size concedido, considerando o window scale como 1?
- Observe a captura a seguir:
- 14:37:25.915277 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1716241 0,nop,wscale 7>
- 14:37:28.916341 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1716991 0,nop,wscale 7>
- 14:37:34.916316 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1718491 0,nop,wscale 7>
- 14:37:46.916274 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1721491 0,nop,wscale 7>
- 14:38:10.920188 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1727491 0,nop,wscale 7>
- 14:38:58.920021 IP 10.1.1.25.39594 > 200.176.3.142.81: S 3953573771:3953573771(0) win 5840 <mss 1460,sackOK,timestamp 1739491 0,nop,wscale 7>
- Responda:
- a) Normalmente, uma porta servidora TCP responde Syn/ACK ou RST para um pedido de conexão. No caso mostrado, nenhuma resposta foi recebida. O que isso significa?
- b) Nos múltiplos pacotes enviados, o número de sequência e os sockets do cliente e do servidor sempre foram os mesmos. Explique o que isso significa.
- c) Identifique os tempos TCP e diga o que isso significa.
- O nmap é considerado um scanner de portas invisível e possui vários modos de funcionamento. Observe o resultado a seguir, a partir de um comando para scanear portas de 79 a 81 (TCP):
- # nmap -p 79-81 10.1.0.1
- Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2007-03-27 23:32 BRT
- Interesting ports on 10.1.0.1:
- PORT STATE SERVICE
- 79/tcp closed finger
- 80/tcp open http
- 81/tcp closed hosts2-ns
- Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds
- Observe agora a captura colhida na máquina alvo:
- 02:35:03.590719 IP 10.2.2.2.48175 > 10.1.0.1.80: S 2748381896:2748381896(0) win 1024
- 02:35:03.590835 IP 10.1.0.1.80 > 10.2.2.2.48175: S 1382448184:1382448184(0) ack 2748381897 win 32792 <mss 16396>
- 02:35:03.590884 IP 10.2.2.2.48175 > 10.1.0.1.80: R 2748381897:2748381897(0) win 0
- 02:35:03.591419 IP 10.2.2.2.48175 > 10.1.0.1.81: S 2748381896:2748381896(0) win 3072
- 02:35:03.591462 IP 10.1.0.1.81 > 10.2.2.2.48175: R 0:0(0) ack 2748381897 win 0
- 02:35:03.591769 IP 10.2.2.2.48175 > 10.1.0.1.79: S 2748381896:2748381896(0) win 4096
- 02:35:03.591810 IP 10.1.0.1.79 > 10.2.2.2.48175: R 0:0(0) ack 2748381897 win 0
- Responda:
- Com base nos fatos observados, explique por que o nmap é considerado invisível.
- Um usuário estava executando um download. Depois de algum tempo, tal usuário cancelou o download, fechando o navegador (Mozilla Firefox). Observe a captura relativa a isto e explique porque ocorreram resets.
- IP 192.168.33.36.37382 > 130.239.18.177.80: S 2142262123:2142262123(0) win 5840 <mss 1460,sackOK,timestamp 8074572 0,nop,wscale 7>
- IP 130.239.18.177.80 > 192.168.33.36.37382: S 2109548026:2109548026(0) ack 2142262124 win 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 0 0,nop,nop,sackOK>
- IP 192.168.33.36.37382 > 130.239.18.177.80: . ack 2109548027 win 46 <nop,nop,timestamp 8074580 0>
- IP 192.168.33.36.37382 > 130.239.18.177.80: P 2142262124:2142262704(580) ack 2109548027 win 46 <nop,nop,timestamp 8074580 0>
- IP 130.239.18.177.80 > 192.168.33.36.37382: . ack 2142262704 win 64955 <nop,nop,timestamp 938305 8074572>
- IP 130.239.18.177.80 > 192.168.33.36.37382: P 2109548027:2109548346(319) ack 2142262704 win 64955 <nop,nop,timestamp 938312 8074572>
- IP 192.168.33.36.37382 > 130.239.18.177.80: . ack 2109548346 win 54 <nop,nop,timestamp 8074840 938312>
- IP 130.239.18.177.80 > 192.168.33.36.37382: . 2109548346:2109549794(1448) ack 2142262704 win 64955 <nop,nop,timestamp 938312 8074572>
- IP 192.168.33.36.37382 > 130.239.18.177.80: . ack 2109549794 win 77 <nop,nop,timestamp 8074847 938312>
- ---------------------------------------------------------------------------------------
- IP 130.239.18.177.80 > 192.168.33.36.37382: P 2109904446:2109904970(524) ack 2142262704 win 65535 <nop,nop,timestamp 938655 8083212>
- IP 192.168.33.36.37382 > 130.239.18.177.80: . ack 2109907471 win 501 <nop,nop,timestamp 8083387 938648,nop,nop,sack 1 {2109904446:2109904970}>
- IP 192.168.33.36.37382 > 130.239.18.177.80: F 2142262704:2142262704(0) ack 2109907471 win 501 <nop,nop,timestamp 8085108 938648>
- IP 130.239.18.177.80 > 192.168.33.36.37382: P 2109907471:2109907995(524) ack 2142262705 win 65535 <nop,nop,timestamp 938724 8085108>
- IP 192.168.33.36.37382 > 130.239.18.177.80: R 2142262705:2142262705(0) win 0
- IP 130.239.18.177.80 > 192.168.33.36.37382: P 2109907995:2109908519(524) ack 2142262705 win 65535 <nop,nop,timestamp 938724 8085108>
- IP 192.168.33.36.37382 > 130.239.18.177.80: R 2142262705:2142262705(0) win 0
- Explique para que servem as flags TCP S, F, R, P e A.
- Qual flag TCP nunca aparecerá em tráfegos bem sucedidos?
- Qual ou quais flags finalizam uma conexão?
- Qual flag aparecerá sempre que o payload não estiver vazio?
- Em quais casos a flag ACK não aparecerá em um segmento TCP?
- Observe a captura a seguir:
- 21:44:39.556512 IP 172.21.0.4.51147 > 10.0.0.1.80: S 891058249:891058249(0) win 32792 <mss 16396,sackOK,timestamp 3324542 0,nop,wscale 7>
- 21:44:39.570707 IP 10.0.0.1.80 > 172.21.0.4.51147: S 895475878:895475878(0) ack 891058250 win 32768 <mss 16396,sackOK,timestamp 3324542 3324542,nop,wscale 7>
- 21:44:39.570835 IP 172.21.0.4.51147 > 10.0.0.1.80: . ack 895475879 win 257 <nop,nop,timestamp 3324542 3324542>
- 21:44:39.570930 IP 172.21.0.4.51147 > 10.0.0.1.80: P 891058250:891058790(540) ack 895475879 win 257 <nop,nop,timestamp 3324542 3324542>
- 21:44:39.571047 IP 10.0.0.1.80 > 172.21.0.4.51147: . ack 891058790 win 265 <nop,nop,timestamp 3324542 3324542>
- 21:44:39.739720 IP 10.0.0.1.80 > 172.21.0.4.51147: P 895475879:895476059(180) ack 891058790 win 265 <nop,nop,timestamp 3324587 3324542>
- 21:44:39.739744 IP 172.21.0.4.51147 > 10.0.0.1.80: . ack 895476059 win 265 <nop,nop,timestamp 3324587 3324587>
- 21:44:55.274201 IP 10.0.0.1.80 > 172.21.0.4.51147: F 895476059:895476059(0) ack 891058790 win 265 <nop,nop,timestamp 3328471 3324587>
- 21:44:55.317096 IP 172.21.0.4.51147 > 10.0.0.1.80: . ack 895476060 win 265 <nop,nop,timestamp 3328481 3328471>
- 21:44:59.538721 IP 172.21.0.4.51147 > 10.0.0.1.80: F 891058790:891058790(0) ack 895476060 win 265 <nop,nop,timestamp 3329537 3328471>
- 21:44:59.538747 IP 10.0.0.1.80 > 172.21.0.4.51147: . ack 891058791 win 265 <nop,nop,timestamp 3329537 3329537>
- 21:45:00.945185 IP 172.21.0.4.43390 > 10.0.0.1.8080: S 889692465:889692465(0) win 32792 <mss 16396,sackOK,timestamp 3329888 0,nop,wscale 7>
- 21:45:03.945578 IP 172.21.0.4.43390 > 10.0.0.1.8080: S 889692465:889692465(0) win 32792 <mss 16396,sackOK,timestamp 3335888 0,nop,wscale 7>
- 21:45:09.946365 IP 172.21.0.4.43390 > 10.0.0.1.8080: S 889692465:889692465(0) win 32792 <mss 16396,sackOK,timestamp 3347888 0,nop,wscale 7>
- Responda:
- Considerando que o usuário digitou somente http://10.0.0.1 no seu navegador, explique o que, aparentemente, aconteceu na captura mostrada anteriormente.
- Responda:
- a) Quais são o menor e o maior tamanho possíveis para um cabeçalho TCP?
- b) Qual é o menor tamanho possível para o payload de um segmento TCP?
- c) Como se calcula o tamanho do payload de um segmento TCP?
- d) O que acontecerá com as portas clientes a cada nova conexão TCP ou UDP?
- Observe a linha a seguir:
- 00:10:08.856865 IP 65.54.171.23.1863 > 192.168.1.100.32947: . ack 133 win 65073 <nop,nop,timestamp 4114962 807224>
- Responda:
- Qual é o endereço IP do cliente? Justifique.