Protocolo ICMP: mudanças entre as edições
Linha 9: | Linha 9: | ||
==Formato das Mensagens ICMP== | ==Formato das Mensagens ICMP== | ||
Cada '''mensagem ICMP''' tem um campo de '''tipo''' (''Type'') e um campo de '''código''' (''Code''), e | Cada '''mensagem ICMP''' tem um campo de '''tipo''' (''Type'') e um campo de '''código''' (''Code'') e um campo de '''''checksum''''', além de outros campos, dependendo do tipo da mensagem. | ||
;Mensagem Destino Inalcançável: Além dos campos ''Type'', ''Code'' e ''Checksum'' contém os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor pode determinar o pacote que causou o erro): | |||
0 1 2 3 | 0 1 2 3 | ||
Linha 20: | Linha 22: | ||
| Internet Header + 64 bits of Original Data Datagram | | | Internet Header + 64 bits of Original Data Datagram | | ||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
Destination Unreachable Message | |||
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: | Na sequência estão listados alguns tipos de mensagens ICMP: | ||
Linha 34: | Linha 46: | ||
15 Information Request | 15 Information Request | ||
16 Information Reply | 16 Information Reply | ||
==Ping== | ==Ping== |
Edição das 18h10min 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 um campo de checksum, além de outros campos, dependendo do tipo da mensagem.
- Mensagem Destino Inalcançável
- Além dos campos Type, Code e Checksum contém os primeiros 8 bytes do datagrama que causou o erro (com isto o emissor pode determinar o pacote que causou o erro):
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Destination Unreachable Message 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 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.
Referências
- ↑ 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)