Irei descrever uma "falha" no ICMP, permitindo que uma pessoa utilize de um tunel ou canalexistente no protocolo para trafego de dados arbitrarios.Internet Control Message ProtocolO ICMP eh um protocolo que faz parte do conjunto de protocolos designados pelo TCP/IP.Esse protocolo esta no nivel 3 do modelo OSI.Ele eh utilizado para einviar menssagens aos hosts por anomalias na rede, tambem pode ser usado para obter informacao sobre a rede.Em sistemas do tipo "connection less" os roteadores operam por si soh distribuindo os datagramas sem nenhum tipo de verificacao.O IP falha a intrega dos datagramas quando:-A maquina destino esta temporariamente ou permanentemente desligada da rede;-O contador de tempo de vida (time-to-live) expira; -Quando os roteadores estao tao congestionados que nao podem processar mais trafego;Inicialmente projetado para permitir que os routeadores reportassem erros de entrega aos hosts, o ICMP nao se restringe so a roteadores.Ainda que haja restricoes na utilizacao de algumas mensagens ICMP, uma maquina arbitraria pode enviar uma mensagem ICMP para qulquer outra maquina.Uma explicacao mais pratica:Os cabecalhos IP apenas contem campos que especificam o emissor original e o destinatario final, estes nao contem um registo completo da sua viagem ao longo das redes (exceto em casos onde a opcao de registo do caminho eh utilizada). Alem disso, os roteadores podem apenas estabelecer e modificar as suas PROPRIAS tabelas de roteamento, nao existe um conhecimento "global" dos caminhos. Dessa forma, qdo um datagrama chega a um determinado roteador, eh impossivel conhecer o caminho que percorreu para chegar alih. Se oroteador detecta um problema, este nao pode saber o conjunto das maquinas intermediarias que processaram o datagrama e, por isso, nao pode informa-las sobre o problema. Em vez de descartar o datagrama, o roteador utiliza o ICMP para informar o emissor original da ocorrencia de um problema e aguardar que os administradores do host cooperem com os administradores da rede naprocura e resolucao do problema.Menssagens ICMP: Os datagramas que transportam mensagens ICMP sao encaminhados exatamente como os datagramas que transportam informacao para os utilizadores, nao existe confianca ou prioridade adicional. Assim, as proprias menssagens de erro podem causar congestionamentos adicionais no trafego da rede. Os pacotes ICMP ficam encapsulados dentro dos datagramas IP.Os primeiros 3 campos do header sao os mesmos para todos os tipos de menssagens ICMP, resultando um total de 4-bytes.-TYPE (8 bits): Identifica a mensagem, o valor desse campo determina oformato do datagrama;-CODE (8 bits): Fornece mais informacoes sobre o tipo de mensagem;-CHECKSUM (16 bits): Verifica a integridade dos valores do cabecalho (header).Tipos de menssagens: | Type | ICMP Message | 0 | Echo reply | 3 | Destination unreachable | 4 | Sorce Quench | 5 | Redirect | 8 | Echo request | 11 | Time exceeded | 12 | Parameter(IP) unintelligible | 13 | Timestamp request | 14 | Timestamp reply | 15 | Information request | 16 | Information reply | 17 | Address mask request | 18 | Address mask reply Os tipos que estamos interessados sao os tipos ICMP_ECHO listados abaixo:- ICMP ECHO_REQUEST (Tipo = 8): Eh o query dado por um client (um