Protocolo ICMP: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 3: Linha 3:
O '''protocolo ICMP''' (''Internet Control and Message Protocol''), definido na RFC 792, permite que os roteadores enviem '''mensagens de erro e controle''' a outros roteadores ou hosts, proporcionando uma comunicação entre a camada rede de uma máquina e a camada rede de outra máquina <ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>.
O '''protocolo ICMP''' (''Internet Control and Message Protocol''), definido na RFC 792, permite que os roteadores enviem '''mensagens de erro e controle''' a outros roteadores ou hosts, proporcionando uma comunicação entre a camada rede de uma máquina e a camada rede de outra máquina <ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>.


Quando um datagrama sofre um '''erro''', o '''protocolo ICMP''' reporta a condição de erro de volta a fonte original do datagrama. Por exemplo, quando rodando uma aplicação HTTP, podemos encontrar mensagens como '''rede destino não encontrada''' (''Destination Network Unreachable''), que tem origem no protocolo ICMP.  
Quando um datagrama sofre um '''erro''', o '''protocolo ICMP''' reporta a condição de erro de volta a fonte original do datagrama. Por exemplo, quando rodando uma aplicação HTTP, podemos encontrar mensagens como '''rede destino não encontrada''' (''Destination Network Unreachable''), que tem origem no protocolo ICMP. Também se um roteador não consegue encontrar uma rota ou entregar um datagrama, ou se uma condição anormal é detectada, o roteador precisa informar a fonte original dos dados para que esta tome alguma ação ou corrija o problema.
 
O '''protocolo ICMP''' é considerado como parte do IP, todavia as mensagens ICMP são carregadas na porção de dados de um datagrama IP, que as identifica no campo '''''protocol''''' como tipo '''ICMP''' (1). Os datagramas contendo as mensagens ICMP seguem de volta, seguindo o caminho que tomaram os dados do usuário, podendo elas também serem perdidas ou corrompidas.
 
==Formato das Mensagens ICMP==
 
Cada '''mensagem ICMP''' tem um campo de '''tipo''' (''Type'') e um campo de '''código''' (''Code''), e também contém os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor pode determinar o pacote que causou o erro).
 
Por exemplo, a '''mensagem ICMP''' '''Destino Inalcançável''':
 
Destination Unreachable Message
    0                  1                  2                  3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Type      |    Code      |          Checksum            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                            unused                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |      Internet Header + 64 bits of Original Data Datagram      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
  Type 3
  Code
      0 = net unreachable;
      1 = host unreachable;
      2 = protocol unreachable;
      3 = port unreachable;
      4 = fragmentation needed and DF set;
      5 = source route failed.
 
Na sequência estão listados alguns tipos de mensagens ICMP:
 
          Summary of Message Types
              0  Echo Reply
              3  Destination Unreachable
              4  Source Quench
              5  Redirect
              8  Echo
            11  Time Exceeded
            12  Parameter Problem
            13  Timestamp
            14  Timestamp Reply
            15  Information Request
            16  Information Reply
==Ping==


Nem todas as mensagens do protocolo ICMP são mensagens de erro. Por exemplo, o '''ping''' está baseado no envio de mensagens do protocolo ICMP de '''solicitação de eco''' (''echo request'') e de '''resposta de eco''' (''echo reply'').  
Nem todas as mensagens do protocolo ICMP são mensagens de erro. Por exemplo, o '''ping''' está baseado no envio de mensagens do protocolo ICMP de '''solicitação de eco''' (''echo request'') e de '''resposta de eco''' (''echo reply'').  
==Traceroute==


O '''traceroute''' também usa mensagens ICMP. O traceroute é capaz de traçar uma rota aproximada entre dois hosts. Para determinar o nome e o endereço dos roteadores entre a fonte e o destino, o traceroute na fonte envia uma série de datagrama IP ao destino. O primeiro datagrama tem o '''TTL''' (''time to live'' – '''tempo de vida''') igual a 1, o segundo 2, o terceiro 3, e assim por diante, e inicia temporizadores para cada datagrama. Quando o enésimo datagrama chega ao enésimo roteador, este verifica que o '''tempo de vida''' do datagrama acaba de terminar. Pelas regras do IP, o datagrama é então descartado e uma '''mensagem ICMP''' de advertência tempo de vida excedido é enviada a fonte com o nome do roteador e seu endereço IP. Quando a resposta chega de volta a fonte, a mesma calcula o tempo de viagem em função dos temporizadores.  
O '''traceroute''' também usa mensagens ICMP. O traceroute é capaz de traçar uma rota aproximada entre dois hosts. Para determinar o nome e o endereço dos roteadores entre a fonte e o destino, o traceroute na fonte envia uma série de datagrama IP ao destino. O primeiro datagrama tem o '''TTL''' (''time to live'' – '''tempo de vida''') igual a 1, o segundo 2, o terceiro 3, e assim por diante, e inicia temporizadores para cada datagrama. Quando o enésimo datagrama chega ao enésimo roteador, este verifica que o '''tempo de vida''' do datagrama acaba de terminar. Pelas regras do IP, o datagrama é então descartado e uma '''mensagem ICMP''' de advertência tempo de vida excedido é enviada a fonte com o nome do roteador e seu endereço IP. Quando a resposta chega de volta a fonte, a mesma calcula o tempo de viagem em função dos temporizadores.  
O '''ICMP''' é considerado como parte do IP, entretando, as mensagens ICMP são carregadas na porção de dados de um datagrama IP, que as identifica como tipo ICMP (''Type'' 1).


==Referências==
==Referências==

Edição das 17h54min de 28 de maio de 2015

Protocolo ICMP

O protocolo ICMP (Internet Control and Message Protocol), definido na RFC 792, permite que os roteadores enviem mensagens de erro e controle a outros roteadores ou hosts, proporcionando uma comunicação entre a camada rede de uma máquina e a camada rede de outra máquina [1].

Quando um datagrama sofre um erro, o protocolo ICMP reporta a condição de erro de volta a fonte original do datagrama. Por exemplo, quando rodando uma aplicação HTTP, podemos encontrar mensagens como rede destino não encontrada (Destination Network Unreachable), que tem origem no protocolo ICMP. Também se um roteador não consegue encontrar uma rota ou entregar um datagrama, ou se uma condição anormal é detectada, o roteador precisa informar a fonte original dos dados para que esta tome alguma ação ou corrija o problema.

O protocolo ICMP é considerado como parte do IP, todavia as mensagens ICMP são carregadas na porção de dados de um datagrama IP, que as identifica no campo protocol como tipo ICMP (1). Os datagramas contendo as mensagens ICMP seguem de volta, seguindo o caminho que tomaram os dados do usuário, podendo elas também serem perdidas ou corrompidas.

Formato das Mensagens ICMP

Cada mensagem ICMP tem um campo de tipo (Type) e um campo de código (Code), e também contém os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor pode determinar o pacote que causou o erro).

Por exemplo, a mensagem ICMP Destino Inalcançável:

Destination Unreachable Message
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     Code      |          Checksum             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                             unused                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |      Internet Header + 64 bits of Original Data Datagram      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  Type 3
  Code
     0 = net unreachable;
     1 = host unreachable;
     2 = protocol unreachable;
     3 = port unreachable;
     4 = fragmentation needed and DF set;
     5 = source route failed.

Na sequência estão listados alguns tipos de mensagens ICMP:

          Summary of Message Types
             0  Echo Reply
             3  Destination Unreachable
             4  Source Quench
             5  Redirect
             8  Echo
            11  Time Exceeded
            12  Parameter Problem
            13  Timestamp
            14  Timestamp Reply
            15  Information Request
            16  Information Reply

Ping

Nem todas as mensagens do protocolo ICMP são mensagens de erro. Por exemplo, o ping está baseado no envio de mensagens do protocolo ICMP de solicitação de eco (echo request) e de resposta de eco (echo reply).

Traceroute

O traceroute também usa mensagens ICMP. O traceroute é capaz de traçar uma rota aproximada entre dois hosts. Para determinar o nome e o endereço dos roteadores entre a fonte e o destino, o traceroute na fonte envia uma série de datagrama IP ao destino. O primeiro datagrama tem o TTL (time to livetempo de vida) igual a 1, o segundo 2, o terceiro 3, e assim por diante, e inicia temporizadores para cada datagrama. Quando o enésimo datagrama chega ao enésimo roteador, este verifica que o tempo de vida do datagrama acaba de terminar. Pelas regras do IP, o datagrama é então descartado e uma mensagem ICMP de advertência tempo de vida excedido é enviada a fonte com o nome do roteador e seu endereço IP. Quando a resposta chega de volta a fonte, a mesma calcula o tempo de viagem em função dos temporizadores.

Referências

  1. KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem top-down, São Paulo: Pearson, 2010.

--Evandro.cantu (discussão) 10h25min de 1 de setembro de 2014 (BRT)