Posso parar o handshake tcp enviando icmp de host inacessível

2

Foi o que aconteceu:

client - envia syn

server - envia icmp (host inacessível [eu também tento adicionar código = 10])          aguarde 100 ms          enviar syn-ack

client - envia o ack em resposta ao syn-ack.

Dosnt o cliente deve redefinir o handshake tcp, quando icmp do host inacessível foi enviado? Existe alguma maneira de fazer com que o cliente redefina a conexão enviando algum tipo de ICMP?

O teste foi feito em 2 máquinas Ubunto conectadas diretamente. Em wireshark, vejo que o icmp foi revivido antes do syn-ack e a conexão não foi redefinida. O cliente executa o telnet (na porta 80) para o servidor. No servidor, execute o apache. Eu simulo o icmp antes do synack usando pyapy scapy.

Obrigado

    
por Avihai Marchiano 06.08.2012 / 16:34

1 resposta

2

Sim, o cliente deve parar de tentar a conexão ... mas:

  1. Muitos ISPs com morte cerebral bloqueiam o ICMP ou um subconjunto de mensagens ICMP.
  2. Muitos NATs não passam mensagens ICMP para dentro corretamente.
  3. Muitos sistemas operacionais bloqueiam o ICMP no firewall.
  4. Muitos conjuntos de "segurança" bloqueiam o ICMP.
  5. Nem todas as pilhas IP respondem corretamente ao ICMP.
  6. Nem todas as aplicações / APIs respondem corretamente ao ICMP.

Com tudo isso, a situação que você descreveu não é apenas mais comum do que deveria ser, mas muito comum.

    
por 06.08.2012 / 21:15