Internet Control Message Protocol para IPv6 - Internet Control Message Protocol for IPv6
Suíte de protocolo de Internet |
---|
Camada de aplicação |
Camada de transporte |
Camada de Internet |
Camada de link |
Internet Control Message Protocol versão 6 ( ICMPv6 ) é a implementação do Internet Control Message Protocol (ICMP) para Internet Protocol versão 6 (IPv6). O ICMPv6 é parte integrante do IPv6 e executa relatórios de erros e funções de diagnóstico.
ICMPv6 tem uma estrutura para extensões para implementar novos recursos. Várias extensões foram publicadas, definindo novos tipos de mensagens ICMPv6, bem como novas opções para os tipos de mensagens ICMPv6 existentes. Por exemplo, Neighbour Discovery Protocol (NDP) é um protocolo de descoberta de nó baseado em ICMPv6 que substitui e melhora as funções do ARP . Secure Neighbor Discovery (SEND) é uma extensão do NDP com segurança extra. Multicast Listener Discovery (MLD) é usado por roteadores IPv6 para descobrir ouvintes multicast em um link conectado diretamente, da mesma forma que o Internet Group Management Protocol (IGMP) é usado no IPv4 . A descoberta de roteador multicast (MRD) permite a descoberta de roteadores multicast.
Tipos e formatos de mensagens
As mensagens ICMPv6 podem ser classificadas como mensagens de erro e mensagens informativas . As mensagens ICMPv6 são transportadas por pacotes IPv6 nos quais o valor do próximo cabeçalho IPv6 para ICMPv6 é definido como o valor 58.
A mensagem ICMPv6 consiste em um cabeçalho e na carga útil do protocolo. O cabeçalho contém apenas três campos: tipo (8 bits), código (8 bits) e soma de verificação (16 bits). tipo especifica o tipo da mensagem. Valores na faixa de 0 a 127 (o bit de alta ordem é 0) indicam uma mensagem de erro, enquanto valores na faixa de 128 a 255 (o bit de alta ordem é 1) indicam uma mensagem de informação. O valor do campo de código depende do tipo de mensagem e fornece um nível adicional de granularidade da mensagem. O campo de checksum fornece um nível mínimo de verificação de integridade para a mensagem ICMP.
Deslocamento de bit | 0–7 | 8-15 | 16-31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Modelo | Código | Checksum | |||||||||||||||||||||||||||||
32 | Corpo da mensagem |
Tipos
As mensagens de controle são identificadas pelo valor no campo tipo . O campo de código fornece informações de contexto adicionais para a mensagem. Algumas mensagens têm a mesma finalidade que os tipos de mensagens ICMP com os nomes correspondentes.
Modelo | Código | ||
---|---|---|---|
Valor | Significado | Valor | Significado |
Mensagens de erro ICMPv6 | |||
1 | Destino inalcançável | 0 | nenhuma rota para o destino |
1 | comunicação com destino proibida administrativamente | ||
2 | além do escopo do endereço de origem | ||
3 | endereço inacessível | ||
4 | porta inacessível | ||
5 | política de entrada / saída com falha no endereço de origem | ||
6 | rejeitar rota para o destino | ||
7 | Erro no cabeçalho de roteamento de origem | ||
2 | Pacote Muito Grande | 0 | |
3 | Tempo excedido | 0 | limite de salto excedido em trânsito |
1 | tempo de remontagem do fragmento excedido | ||
4 | Problema de parâmetro | 0 | campo de cabeçalho errôneo encontrado |
1 | encontrado tipo não reconhecido de próximo cabeçalho | ||
2 | opção IPv6 não reconhecida encontrada | ||
100 | Experimentação privada | ||
101 | Experimentação privada | ||
127 | Reservado para expansão de mensagens de erro ICMPv6 | ||
Mensagens informativas ICMPv6 | |||
128 | Pedido de Eco | 0 | |
129 | Echo Reply | 0 | |
130 | Consulta de escuta de multicast ( MLD ) | 0 |
Existem dois subtipos de mensagens de consulta de ouvinte multicast:
Esses dois subtipos são diferenciados pelo conteúdo do campo Multicast Address, conforme descrito na seção 3.6 da RFC 2710 |
131 | Relatório de escuta de multicast ( MLD ) | 0 | |
132 | Ouvinte multicast concluído ( MLD ) | 0 | |
133 | Solicitação de roteador ( NDP ) | 0 | |
134 | Anúncio de roteador ( NDP ) | 0 | |
135 | Solicitação de vizinho ( NDP ) | 0 | |
136 | Anúncio de vizinho ( NDP ) | 0 | |
137 | Mensagem de redirecionamento ( NDP ) | 0 | |
138 | Renumeração de roteador | 0 | Comando de renumeração de roteador |
1 | Resultado da renumeração do roteador | ||
255 | Reinicialização do número de sequência | ||
139 | Consulta de Informações de Nó ICMP | 0 | O campo Dados contém um endereço IPv6 que é o Assunto desta Consulta. |
1 | O campo Dados contém um nome que é o Assunto desta Consulta, ou está vazio, como no caso de um NOOP. | ||
2 | O campo Dados contém um endereço IPv4 que é o Assunto desta Consulta. | ||
140 | Resposta de Informação do Nó ICMP | 0 | Uma resposta bem-sucedida. O campo Reply Data pode ou não estar vazio. |
1 | O Respondente se recusa a fornecer a resposta. O campo Reply Data estará vazio. | ||
2 | O Qtype da consulta é desconhecido para o respondente. O campo Reply Data estará vazio. | ||
141 | Mensagem de solicitação de descoberta de vizinho inverso | 0 | |
142 | Mensagem de anúncio de descoberta de vizinho inverso | 0 | |
143 | Relatórios de descoberta de ouvinte multicast ( MLDv2 ) (RFC 3810) | ||
144 | Mensagem de solicitação de descoberta de endereço de agente doméstico | 0 | |
145 | Mensagem de resposta de descoberta de endereço de agente doméstico | 0 | |
146 | Solicitação de prefixo móvel | 0 | |
147 | Anúncio de prefixo móvel | 0 | |
148 | Solicitação de Caminho de Certificação ( ENVIAR ) | ||
149 | Anúncio do caminho de certificação (SEND) | ||
151 | Anúncio de roteador multicast ( MRD ) | ||
152 | Solicitação de roteador multicast ( MRD ) | ||
153 | Terminação de roteador multicast ( MRD ) | ||
155 | Mensagem de controle RPL | ||
200 | Experimentação privada | ||
201 | Experimentação privada | ||
255 | Reservado para expansão de mensagens informativas ICMPv6 |
Observe que a tabela acima não é abrangente. A lista completa atual de tipos de ICMPv6 atribuídos pode ser encontrada neste link: IANA: Parâmetros de ICMPv6 .
Checksum
O ICMPv6 fornece um nível mínimo de verificação da integridade da mensagem pela inclusão de uma soma de verificação de 16 bits em seu cabeçalho. A soma de verificação é calculada a partir de um pseudo-cabeçalho de campos de cabeçalho IPv6 de acordo com o padrão IPv6, que consiste nos endereços de origem e destino, o comprimento do pacote e o próximo campo de cabeçalho, este último definido com o valor 58. A seguir Neste pseudo cabeçalho, a soma de verificação continua com a mensagem ICMPv6. O cálculo da soma de verificação é executado de acordo com os padrões de protocolo da Internet usando a soma de complemento de 16 bits , seguido por um complemento final da própria soma de verificação e inserindo-o no campo de soma de verificação. Observe que isso difere da forma como é calculado para IPv4 no ICMP , mas é semelhante ao cálculo feito no TCP .
Deslocamento de bit | 0 - 7 | 8-15 | 16-23 | 24-31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Endereço de Origem | |||||||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||
128 | Endereço de destino | |||||||||||||||||||||||||||||||
160 | ||||||||||||||||||||||||||||||||
192 | ||||||||||||||||||||||||||||||||
224 | ||||||||||||||||||||||||||||||||
256 | Comprimento de ICMPv6 | |||||||||||||||||||||||||||||||
288 | Zeros | Próximo cabeçalho |
Processamento de mensagens
Quando um nó ICMPv6 recebe um pacote, ele deve realizar ações que dependem do tipo de mensagem. O protocolo ICMPv6 deve limitar o número de mensagens de erro enviadas ao mesmo destino para evitar a sobrecarga da rede. Por exemplo, se um nó continuar a encaminhar pacotes errôneos, o ICMP sinalizará o erro para o primeiro pacote e o fará periodicamente, com um período mínimo fixo ou com uma carga máxima de rede fixa. Uma mensagem de erro ICMP nunca deve ser enviada em resposta a outra mensagem de erro ICMP.