Redes TCP/IP - Ex 04

De Eriberto Wiki
Ir para navegação Ir para pesquisar

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.




Exercício 4 - Protocolo TCP





Base de conhecimento para a resolução do exercício



Questões

  1. Qual RFC regulamenta o protocolo TCP?

  2. 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?

  3. Quais elementos o checksum do TCP garante?

  4. Observe a captura a seguir:

    20:43:18.298939 IP 192.168.0.180.60661 > 203.0.113.11.80: Flags [S], seq 955502169, win 29200, options [mss 1460,sackOK,TS val 12340322 ecr 0,nop,wscale 7], length 0

    20:43:18.491990 IP 203.0.113.11.80 > 192.168.0.180.60661: Flags [S.], seq 4226401775, ack 955502170, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0

    20:43:18.492032 IP 192.168.0.180.60661 > 203.0.113.11.80: Flags [.], ack 4226401776, win 229, length 0

    20:43:24.167664 IP 192.168.0.180.60661 > 203.0.113.11.80: Flags [P.], seq 955502170:955502178, ack 4226401776, win 229, length 8

    20:43:24.360782 IP 203.0.113.11.80 > 192.168.0.180.60661: Flags [.], ack 955502178, win 115, length 0

    20:43:24.361441 IP 203.0.113.11.80 > 192.168.0.180.60661: Flags [P.], seq 4226401776:4226402002, ack 955502178, win 115, length 226

    20:43:24.361461 IP 192.168.0.180.60661 > 203.0.113.11.80: Flags [.], ack 4226402002, win 237, length 0

    20:43:24.361469 IP 203.0.113.11.80 > 192.168.0.180.60661: Flags [F.], seq 4226402002, ack 955502178, win 115, length 0

    20:43:24.361554 IP 192.168.0.180.60661 > 203.0.113.11.80: Flags [F.], seq 955502178, ack 4226402003, win 237, length 0

    20:43:24.554194 IP 203.0.113.11.80 > 192.168.0.180.60661: Flags [.], ack 955502179, win 115, length 0

    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?
    k) Qual tipo de fechamento ocorreu?
    l) A hora mostrada é confiável? Justifique.

  5. 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) Qual 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.

  6. Observe a captura a seguir:

    20:52:21.783238 IP 192.168.0.180.37678 > 192.168.0.100.81: Flags [S], seq 3228599059, win 29200, options [mss 1460,sackOK,TS val 12476193 ecr 0,nop,wscale 7], length 0

    20:52:21.783395 IP 192.168.0.100.81 > 192.168.0.180.37678: Flags [R.], seq 0, ack 3228599060, win 0, length 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?

  7. Observe a linha a seguir:

    IP 143.166.83.21.38100 > 148.18.10.100.57237: Flags [S.], seq 3919056759, ack 4201821685, win 4000, options [mss 1460,nop,wscale 6,sackOK,TS val 1962400699 ecr 12502807], length 0

    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 ao host 148.18.10.100?

  8. Observe a captura a seguir:

    12:39:38.250246 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1095931 ecr 0,nop,wscale 7], length 0

    12:39:39.248228 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1096181 ecr 0,nop,wscale 7], length 0

    12:39:41.252223 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1096682 ecr 0,nop,wscale 7], length 0

    12:39:45.260227 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1097684 ecr 0,nop,wscale 7], length 0

    12:39:53.276224 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1099688 ecr 0,nop,wscale 7], length 0

    12:40:09.308224 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1103696 ecr 0,nop,wscale 7], length 0

    12:40:41.372217 IP 192.168.0.180.43901 > 203.0.113.12.81: Flags [S], seq 3317140577, win 29200, options [mss 1460,sackOK,TS val 1111712 ecr 0,nop,wscale 7], length 0

    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.

  9. 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 6.47 ( http://nmap.org ) at 2015-08-26 21:09 BRT
    Nmap scan report for 192.168.0.2
    Host is up (0.00091s latency).
    PORT STATE SERVICE
    79/tcp closed finger
    80/tcp open http
    81/tcp closed hosts2-ns
    MAC Address: E8:94:F6:D8:CE:D6 (Tp-link Technologies Co.)

    Nmap done: 1 IP address (1 host up) scanned in 1.68 seconds

    Observe agora a captura colhida na máquina alvo:

    21:09:58.128163 IP 192.168.0.180.49995 > 192.168.0.2.80: Flags [S], seq 1148726886, win 1024, options [mss 1460], length 0

    21:09:58.128171 IP 192.168.0.180.49995 > 192.168.0.2.81: Flags [S], seq 1148726886, win 1024, options [mss 1460], length 0

    21:09:58.128174 IP 192.168.0.180.49995 > 192.168.0.2.79: Flags [S], seq 1148726886, win 1024, options [mss 1460], length 0

    21:09:58.128474 IP 192.168.0.2.80 > 192.168.0.180.49995: Flags [S.], seq 2029920065, ack 1148726887, win 5840, options [mss 1460], length 0

    21:09:58.128507 IP 192.168.0.180.49995 > 192.168.0.2.80: Flags [R], seq 1148726887, win 0, length 0

    21:09:58.128593 IP 192.168.0.2.81 > 192.168.0.180.49995: Flags [R.], seq 0, ack 1148726887, win 0, length 0

    21:09:58.128676 IP 192.168.0.2.79 > 192.168.0.180.49995: Flags [R.], seq 0, ack 1148726887, win 0, length 0

    21:09:59.229115 IP 192.168.0.180.49996 > 192.168.0.2.79: Flags [S], seq 1148792423, win 1024, options [mss 1460], length 0

    21:09:59.229132 IP 192.168.0.180.49996 > 192.168.0.2.81: Flags [S], seq 1148792423, win 1024, options [mss 1460], length 0

    21:09:59.229443 IP 192.168.0.2.79 > 192.168.0.180.49996: Flags [R.], seq 0, ack 1148792424, win 0, length 0

    21:09:59.229485 IP 192.168.0.2.81 > 192.168.0.180.49996: Flags [R.], seq 0, ack 1148792424, win 0, length 0

    Responda:

    Com base nos fatos observados, explique por que o nmap é considerado invisível.

  10. 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

  11. Explique para que servem as flags TCP S, F, R, P e A.

  12. Qual flag TCP nunca aparecerá em tráfegos bem sucedidos?

  13. Qual ou quais flags finalizam uma conexão?

  14. Qual flag aparecerá sempre que o payload não estiver vazio?

  15. 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.

  16. 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) O que acontecerá com as portas clientes a cada nova conexão TCP ou UDP?

  17. Faça download do arquivo ex04_cap01.pcap. A seguir, observando o payload dos pacotes, responda às perguntas.

    (Dica: use tcpdump com -n, -r e -A.)

    a) Qual tipo de atividade está ocorrendo? Justifique.
    b) Qual o FQDN da máquina de destino?
    c) Qual é o programa cliente que está sendo utilizado?
    d) Qual servidor está sendo utilizado?
    e) Qual a data e a hora do início do tráfego? (dica: -tttt)
    f) Essa data e hora são confiáveis? Justifique.