ICMP – Internet Control Messages Protocol

 

Objetivo

 

ICMP – Internet Control Message Protocol é documentado na RFC 792

O ICMP é responsável por comunicar aos roteadores problemas como:

Congestionamento no roteador

Datagrama que não consegue chegar ao destino

Indicação errada de roteador default

Memória do roteador congestionada

 

O protocolo ICMP é transportado num datagrama IP.

Formato do Cabeçalho

 

 

Type

 

Expressa o motivo pelo qual o pacote ICMP foi emitido. Por exemplo:

 

Tipo 8 – Echo Request

Tipo 0 – Echo Reply

Tipo 3 – Destination Unreachable

Tipo 4 – Source Quench

Tipo 5 – Redirect

 

A tabela completa pode ser encontrada em

 

http://www.iana.org/assignments/icmp-parameters

 

 

Code

 

Acrescenta detalhes à informação do tipo.

 

Por exemplo:

 

Tipo 3 – Destination Unreachable

Código 0 – Net unreachable; Ex.: mais longe que 16 hops

Código 1 – Host unreachable

Código 3 – Port unreachable; serviço não disponível no host

Código 4 – Framentation needed and DF set

 

Internet Header

 

Contém o cabeçalho IP e mais 64 bits do pacote que causou o envio da mensagem

 

Exemplos de funcionamento

 

Destination Unreachable

 

No exemplo abaixo, o host 192.168.1.101 enviou um datagrama para a porta 161 do host 192.168.1.103. Esta porta não estava disponível. Por isso, o host 192.168.1.103 enviou um pacote ICMP, tipo 3, código 3 para p host 193.168.1.101 fornecendo esta informação.

 

 

Redirect

 

Este tipo é utilizado quando um host envia um pacote para o gateway incorreto. Este devolve o datagrama para o host, informando o caminho correto.

 

Analise a seqüência de pacotes neste trace file, que correspondem à figura ao lado.

Comando traceroute (tracert)

 

Este é um comando de linha de vários sistemas operacionais e também de aplicações gráficas como o Netrace.

 

Seu objetivo é descobrir qual o caminho percorrido por um datagrama até chegar ao destino.

 

Ele faz isso por gerar um pacote com time to live inicial de 1, e o aumenta progressivamente.

 

Analise seu funcionamento no trace file anexo, e veja ao o resultado gráfico do Neotrace Express.

 

 

 

Atividade

 

1. Baixe os arquivos abaixo, e os analise com o Ethereal

 

Arquivo 1

 

Arquivo 2

 

Arquivo 3

 

2. Gere pacotes ICMP com PING, capture com e Ethereal e os analise.

 

Referências

 

Artigo Using ICMP to Troubleshoot TCP/IP Networks – Laura Chappell

 

ICMP Tutorial - http://www.inetdaemon.com/tutorials/internet/icmp/index.html