**Internet Control Message Protocol version 6** (**ICMPv6**) е имплементацијата на Internet Control Message Protocol (ICMP) за Internet Protocol version 6 (IPv6) дефинирана во RFC 4443. ICMPv6 e интегрален дел од IPv6 и извршува пријавување на грешки, дијагностички фукции, и фрејмворк за екстензии за имплеметација на идни промени. 
Објавени се неколку екстензии, кои дефинираат нови ICMPv6 типови на пораким како и нови опции за веќе постоечки типови. NDP е протокол за откривање на јазли во IPv6 кој ги заменува и збогатува функциите од ARP. SEND е екстензија на NDP со додатна сигурност. MDR дозволува откривање на мултикаст насочувачи.

Технички детали
---------------

ICMPv6 пораките можат да бидат класифицирани во две категории: **пораки за грешки** и **пораки за информации**.
ICMPv6 пораките се транспортираат со IPv6 пакети во кои IPv6 Next Header вредноста е 58.

Формати на пакети
-----------------

ICMPv6 пакетот се содржи од заглавие и содржина на протоколот. Заглавието се содржи од три полиња: **тип** (8 бита), **код** (8 бита) и **контролен збир** (16 бита). „Тип" го укажува типот на порака. Вредностите кои се движат од 0 до 127 се пораки за грешка, додека вредностите од 128 до 255 определуваат информациска порака. Вредноста во полето „код" зависи од типот на пораката и овозможува додатно ниво на грануларност на порака. Полето „контролен збир" овозможува минимално ниво на заверка на интегритетот на ICMP пораката.

ICMPv6 пакет| Битово отстапување | 0–7 | 8–15 | 16–31 |
| --- | --- | --- | --- |
| **0** | Тип | Код | Контролен збир |
| **32** | Тело на пораката |
|

Типови ICMPv6 пораки
--------------------

| Тип | Код |
| --- | --- |
| Value | Meaning | Value | Значење |
| ICMPv6 пораки за грешка |
| 1 | Destination Unreachable | 0 | нема пат до одредиштето |
| 1 | комуникација со одредиштето е забранета од администрација |
| 2 | надвор од распонот на изворната адреса |
| 3 | адресата е недостапна |
| 4 | портот е недостапен |
| 5 | изворната адреса падна на ingress/egress полиса |
| 6 | одбиена патеката до одредиштето |
| 7 | грешка во изворното насочувачко заглавје |
| 2 | Packet Too Big | 0 |
| 3 | Time Exceeded | 0 | лимитот на скокови е престигнат |
| 1 | времето за составување на фрагменти е преминато |
| 4 | Parameter Problem | 0 | грешно поле за заглавје |
| 1 | непрепознаен Next Header тип |
| 2 | непрепознаена IPv6 опција |
| 100 | Private experimentation |  |  |
| 101 | Private experimentation |  |  |
| 127 | резервирано за проширување на ICMPv6 пораки |  |  |
| ICMPv6 информациски пораки |
| 128 | Echo Request | 0 |  |
| 129 | Echo Reply | 0 |  |
| 130 | Multicast Listener Query | 0 |  |
| 131 | Multicast Listener Report | 0 |  |
| 132 | Multicast Listener Done | 0 |  |
| 133 | Router Solicitation (NDP) | 0 |  |
| 134 | Router Advertisement (NDP) | 0 |  |
| 135 | Neighbor Solicitation (NDP) | 0 |  |
| 136 | Neighbor Advertisement (NDP) | 0 |  |
| 137 | Redirect Message (NDP) | 0 |  |
| 138 | Router Renumbering | 0 | Команда за пребројување на насочувачи |
| 1 | Резултат од пребројување на насочувачи |
| 255 | Рестартирање на број на секвенца |
| 139 | ICMP Node Information Query | 0 | Полето за податоци содржи IPv6 адреса која е субјект во ова барање |
| 1 | Полето за податоци содржи име кое е субјект во ова барање, или полето е празно |
| 2 | Полето за податоци содржи IPv4 адреса која е субјект во ова барање |
| 140 | ICMP Node Information Response | 0 | Успешен одговор. |
| 1 | Полето за одговор ќе биде празно.
  |
| 2 | Qtype на барањето е непознато од одговарачот |
| 141 | Inverse Neighbor Discovery Solicitation Message | 0 |  |
| 142 | Inverse Neighbor Discovery Advertisement Message | 0 |  |
| 143 | Multicast Listener Discovery (MLDv2) reports (RFC 3810) |  |  |
| 144 | Home Agent Address Discovery Request Message | 0 |  |
| 145 | Home Agent Address Discovery Reply Message | 0 |  |
| 146 | Mobile Prefix Solicitation | 0 |  |
| 147 | Mobile Prefix Advertisement | 0 |  |
| 148 | Certification Path Solicitation (SEND) |  |  |
| 149 | Certification Path Advertisement (SEND) |  |  |
| 151 | Multicast Router Advertisement (MRD) |  |  |
| 152 | Multicast Router Solicitation (MRD) |  |  |
| 153 | Multicast Router Termination (MRD) |  |  |
| 155 | RPL Control Message |  |  |
| 200 | Private experimentation |  |  |
| 201 | Private experimentation |  |  |
| 255 | Reserved for expansion of ICMPv6 informational messages |  |  |

Моменталната целосна листа може да биде најдена на следниот линк: IANA: ICMPv6 Parameters.

Операција
---------

### Контролен збир на пораки

ICMPv6 добавува само минимален степен на заштита и заверка на интегритетот на пораките, преку вклучувањето на 16-битни суми за проверки во заглавјето на пораките. Овој збир се пресметува почнувајќи со псевдо-заглавје за IPv6 полињата, според IPv6 стандардот, којшто се состои од изворот и одредиштате за пораките, како и од должината на пакетите и последното поле во заглавјето, кое е по дефиниција 58. Следејќи го ова псевдо-заглавје, збирот се продолжува со ICMPv6 пораката, во која збирот е почетно поставен на 0. Збирот се пресметува според IP стандардите користејќи 16-битен единечен комплемент, продолжено со комплементирањето на самиот збир и внесувајќи ја во соодветното поле. Забележете дека ова се разликува од начинот на којшто збирот се пресметува за IPv4 во ICMPv4, но е многу слично со пресметките во TCP.

ICMPv6 псевдо-заглавје| Битово отстапување | 0 - 7 | 8–15 | 16–23 | 24–31 |
| --- | --- | --- | --- | --- |
| 0 | Изворна адреса |
| 32 |
| 64 |
| 96 |
| 128 | Дестинациска адреса |
| 160 |
| 192 |
| 224 |
| 256 | ICMPv6 должина |
| 288 | Нули | Следно заглавје |
|

### Обработка на порака

Кога ICMPv6 јазол ќе прими пакет, мора да преземе акции што зависат од типот на пораката. ICMPv6 протоколот мора да го ограничи бројот на пораки за грешки пратени до исто одредиште, за да се избегне преоптоварување на мрежата. На пример, ако јазол продолжува да препраќа пораки за грешка, ICMP ќе ја сигнализира грешката на првиот пакет, и ќе продолжи да го прави тоа периодично, со фиксен минимум период, или со фиксен максимум товар на мрежата. ICMP порака за грешка никогаш не смее да се прати како одговор на друга ICMP порака за грешка.

Наводи
------

1. ↑  RFC 4443, *Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification*

Надворешни врски
----------------

* IANA: ICMPv6 Parameters
* RFC 2894, *Router Renumbering for IPv6*

Предлошка:IPv6