Teoria de Rede e Segurança
 
 
ICMP

.O ICMP é um protocolo que trabalha na camada de rede do modelo de referência OSI. Ele é usado para dar suporte a outros protocolos, pois algumas vezes um host ou um gateway precisa se comunicar com a origem ou com o destino para reportar um erro no pacote processado. Palma e Prates (2003, p. 56) expõem que o ICMP é usado internamente pelo IP para fornecer informações sobre as transmissões e sobre os erros. Para se ter uma idéia, o ICMP pode ser enviado quando um datagrama não consegue chegar no destino, quando o gateway não tem capacidade de buffering para encaminhar (forward) um datagrama, quando o gateway redireciona a origem para enviar o tráfego por uma outra rota etc.

O IP e UDP, por exemplo, não foram projetados para serem confiáveis. Assim, o ICMP prover um feedback sobre os problemas na comunicação, mas não tem o intuito de torná-los confiáveis. Na maioria das vezes o ICMP reporta erros, mas também é muito utilizado para verificar se um determinado host está ativo (comando “ping”).

O cabeçalho e os dados ICMP são transportados dentro da área de dados do pacote IP. Apesar de cada tipo de pacote ICMP ter um formato único, todos começam com os mesmos três campos: type, code e checksum. Ele é composto de 4 bytes mais uma parte que depende do tipo do pacote ICMP.

O ICMP echo request e o echo reply são usados para determinar se uma estação está ativa. Ao se enviar uma requisição echo request a um destino, este deve responder com um echo reply. Um comando muito utilizado para realizar essa tarefa é o ping. Geralmente, em linha de comando de um Sistema Operacional, se digita o comando ping e endereço IP (ex: ping 10.0.0.1), sendo exibida na tela informações sobre a estação de destino (10.0.0.1). Essas informações indicam qual é o estado do destino. A seguir é apresentado o pacote ICMP echo request, o echo reply e em seguida o conceito de cada campo, sendo realizada uma síntese de acordo com Tanenbaum (1997); Diógenes (2004); Comer (1998); Firewall.cx [200-?]; Postel (1981b):

Figura 1: ICMP echo request e echo reply.
Fonte: Postel (1981b, p. 14) adaptado.

O ICMP destination unreachable é enviado quando um roteador ou uma estação não consegue entregar um datagrama. Dentre as vária possibilidades, isso pode acontecer quando um roteador não sabe quem é o destino ou quando o bit DF do datagrama IP está ligado e a rede de destino precisa fragmentar o datagrama. A seguir é apresentado o pacote ICMP destination unreachable e em seguida o conceito de cada campo, sendo realizada uma síntese de acordo com Tanenbaum (1997); Diógenes (2004); Comer (1998); Firewall.cx [200-?]; Postel (1981b):

Figura 2: ICMP destination unreachable.
Fonte: Postel (1981b, p. 4) adaptado.
 
 




ETI - Especialista em Tecnologia
da Informação