ICMP

Internet Control Message Protocol

Permite a troca de mensagens de controlo e diagnóstico

Os pacotes ICMP são encapsulados em pacotes IP

  • Os primeiros 3 campos são comuns a todos os pacotes ICMP

    • type (1 byte)

    • code (1 byte)

    • checksum (2 bytes)

      • É determinado com base em toda a mensagem

Tipos de mensagens ICMP

TypeSignificado

0

Echo reply

3

Destination unreachable

4

Source quench

5

Redirect

8

Echo request

11

Time exceeded

12

Parameter problem

13

Timestamp request

14

Timestamp reply

ICMP Redirect

Quando um router detecta que uma estação esta a usar uma rota que não é a melhor, envia uma mensagem ICMP Redirect para que ele mude de rota

O router inicial, para além do ICMP Redirect, envia também o datagrama original para o destino

Não possibilita mudanças de rotas entre routers; apenas entre um host e um router na mesma rede

O campo code é usado para passar mais informação

  • 0 - Datagrama de redirect para a rede

  • 1 - Datagrama de redirect para o host

  • 2 - Datagrama de redirect para Type of Service e para rede

  • 3 - Datagrama de redirect para Type of Service e para host

ICMP Destination Unreachable

Existem 6 valores possíveis para o campo code

  • 0 - Net Unreachable - enviado pelo router se este não sober a rota para a rede pedida

  • 1 - Host Unreachable - enviado pelo router quando sabe a rota mas não o host

  • 2 - Protocol Unreachable - enviado pelo host destino, se o protocolo destino não funcionar

  • 3 - Port Unreachable - enviado pelo host destino, se a porta estiver ""vazia"

  • 4 - Cannot Fragment - enviado pelo router, se for necessário fragmentar, mas o bit "do not fragment" estiver a 1

  • 5 - Source Route Failed - o IP Source routing é um dos IP Header Options

ICMP Time Exceeded message

É enviado por um router para a origem quando o TTL do pacote chega a 0

Comando Tracert

Permite descobrir o percurso utilizado no encaminhamento dos pacotes

Recorre ao campo TTL e a mensagens ICMP Time Exceeded

Envia ICMP Echo requests, 3 de cada vez, com TTL inicial de 1, e incrementa gradualmente TTL+=1, sempre que a resposta for Time exceeded é descoberto um novo router, isto é repetido ate deixar de receber a mensagem de Time exceeded

Last updated