Protocolo ICMP
ICMP é sigla para Internet Control Message Protocol,é um protocolo integrante do protocolo IP, é utilizado para fornecer erros à fonte original, ou seja com o ICMP, os hosts e roteadores que usam a comunicação IP podem relatar erros e trocar informações de status e controle limitado,este protocolo não se destina a aplicações de utilizadores sendo usado somente para controlo de erro. Um exemplo de uso deste protocolo,num sistema Unix fazemos telnet à máquina A e recebemos a mensagem de erro – host unreachable, esta é uma mensagem ICMP a dizer que que a máquina A não está disponível.
O ICMP é similar ao UDP pois utiliza mensagens que cabem num só datagrama, sendo no entanto ainda mais simples uma vez que não possui a indicação no seu cabeçalho dos portos de origem. As mensagens ICMP são interpretadas pelo software de rede pelo que não é necessário indicar os portos, o ICMP pode ainda ser usado para se obter informações acerca da rede. Depende dos Protocolos das camadas superiores para garantir a confiabilidade. Geralmente, as mensagens ICMP são enviadas automaticamente em uma das seguintes situações:
- Um datagrama IP não consegue chegar ao seu destino.
- Um roteador IP (gateway) não consegue encaminhar datagramas na atual taxa de transmissão.
- Um roteador IP redireciona o host remetente para usar uma rota melhor para o destino.
No campo de dados do pacote IP é inserido mais um camp ode controle ,o chamado ICMP Type field,que identifica o tipo de mensagem que o ICMP vai transportar,esses códigos são definidos no RFC1700.
Mensagens ICMP
ICMP As mensagens ICMP são enviados utilizando a base cabeçalho IP. O primeiro octeto dos dados do datagrama ICMP é um tipo de campo, o valor deste campo determina o formato dos dados restantes. Qualquer campo denominado “inutilizados” é reservado
para mais tarde extensões e deve ser zero quando enviada, mas não deve usar receptores destes campos(exceto para incluí-los no checksum).
Salvo observou no âmbito do indivíduo formato descrições,os valores do cabeçalho domínios Internet são as seguintes:
Version:4
IHL:32 bits
Type of Service:Tamanho do IHL e informações em octetos
Identification,Flags,Fragment offset:usado na fragmentação
Time to live:Tempo de vida em segundos, como esse campo é diminuído em cada
máquina em que o datagrama é processado, o valor neste campo deve ser pelo menos tão
grande como o número de maquinas que este datagrama irá percorrer.
Protocol:ICMP=1
Header Checksum:Os 16 bits de um complemento de um complemento da soma
de todas as palavras de 16 bits do cabeçalho.Para calcular o checksum, o
checksum campo deve ser zero.Este checksum poderão ser substituídos no futuro.
ICMP type field.

Pacote ICMP encapsulado.
Alguns dos tipos de mensagens precisam de parâmetros para funcionar,outros,desenvolvem valores que informam o estado dos testes realizados. O campo em que esses valores são guardados,logo após o Service Type,é chamado de code Byte.
Echo Request e Echo Reply [RFC792]
- Utilizada pelo comando ping
- É utilizada principalmente para fins de testes de conectividade (endereçamento e roteamento) entre as duas máquinas.
Destination Unreacheable [RFC792]
- Notifica impossibilidade de entrega do datagrama
- Código identifica motivo da impossibilidade de alcançar o destino
- Network Unreachable – Rede destino inacessível
- Host Unreachable (ou falha no roteamento para subnet) – Máquina destino inacessível
- Protocol Unreachable – Protocolo destino desativado ou aplicação inexistente
- Port Unreachable – Porta destino sem aplicação associada.
- Fragmentation Needed and DNF set – Fragmentação necessária mas bit DNF setado.
- Utilizado como forma de um host descobrir o menor MTU nas redes que serão percorridas entre a origem e o destino (ICMP MTU Discovery Protocol).
- Source Route Failed – Roteamento por rota especificada em opção IP, falhou.
- Destination Network Unknown
- Destination Host Unknown
- Source Host Isolated
- Communication with destination network administratively prohibited
- Communication with destination host administratively prohibited
- Network unreacheable for type of service
- Host unreacheable for type of service
Source Quench [RFC792]
- Utilizada por um roteador para informar ao host origem, o descarte do pacote devido a incapacidade de roteá-lo por causa do tráfego.
- Hosts geradores de pacotes reduzem a taxa de envio.
Redirect [RFC792]
Utilizada por roteadores para informar ao host origem de uma mensagem que existe uma rota direta mais adequada através de outro roteador, para envio dos próximos datagramas.
CODE: 0:Redirect datagrams for the Net (Obsoleto)
1:Redirect datagrams for the Host
2:Redirect datagrams for the Type of Service and Net
3:Redirect datagrams for the Type of Service and Host
TTL Expired [RFC1393/RFC792]
Mensagem ICMP originada em um roteador que informa ao host de origem que foi obrigado a descartar o pacote, uma vez que o TTL chegou a zero, ou pelo Host destino para informar término do tempo para REMONTAGEM.
Códigos usados:
- Code (0) : Temporizador do Tempo de Vida.
- Code (1) : Tempo de Remontagem de Fragmentos Excedido.
ICMP Router Solicitation/Advertisement[RFC1256]
Foi projetada para permitir que um roteador possa divulgar sua existência para as máquinas presentes na rede.
- Evitar a configuração manual das estações da rede com a rota default
- Permitir que uma estação conheça outros roteadores além do default (roteamento no caso de falha do principal ).
Objetivo:
- A mensagem é composta de duas formas:
- a solicitação de divulgação de um roteador
- o anúncio de um roteador.
Configuração do roteador:
- envio automático das mensagens de anúncio
- comandado por uma mensagem de solicitação.
ICMP Router Solicitation[rfc1256]
- A mensagem ICMP Router Solicitation é mostrada abaixo :
- Contém a divulgação de diversos roteadores iniciada a partir de um que seja configurado para divulgá-los
- O número de preferência é a ordem de preferência que estes roteadores podem ser utilizados pelas estações.
Parameter Problem Datagram[RFC792]
- Quando um Router ou um host encontra problema com o datagrama que não esteja coberto pelas mensagens de erro ICMP, ele envia uma mensagem de problema de parâmetro ao transmissor.
Utilização de um campo PONTEIRO para identificar o octeto do datagrama que originou o problema.
Timestamp Request/Reply[RFC792
- Cada máquina mantém sua própria noção de tempo presente (operação independente).
- Problema: diferenças entre relógios podem confundir usuários em sistemas distribuídos.
- Os hosts utilizam os 3 campos de indicação de horas para:
- Calcular as estimativas do tempo decorrido entre elas
- Sincronizar os relógios
ORIGINAR TIMBRE DE HORA: Preenchido antes da transmissão pelo originador.
RECEBER TIMBRE DE HORA: Preenchido após o recebimento da solicitação.
TRANSMITIR TIMBRE DE HORA: Preenchido antes do envio da resposta.
Adress Mark Request/Reply[RFC950]
- Direta: se souber o endereço do roteador.
- Broadcast: se não souber.
Information Request/Reply[RFC792]
- Permite que os hosts descubram seus endereços na interligação em redes quando da inicialização do sistema.
- Considerado obsoleto hoje em dia.
- Substituído pelo BOOTP , RARP e DHCP
Referências:
http://paginas.fe.up.pt/~goii2000/M3/tcpip6.htm
http://www.ietf.org/rfc/rfc792.txt
http://www.ietf.org/rfc/rfc950.txt
http://www.ietf.org/rfc/rfc1256.txt
http://pt.wikipedia.org/wiki/ICMP
http://technet.microsoft.com/pt-br/library/cc758065.aspx
redes.cefetrn.br/~alex_santos/alfredo/TCP-IP%20-%20Alfredo/Aula%2008%20-%20Protocolo%20ICMP.ppt
Últimos Comentários