Wee already have some information about IPV6 packet structure and IPv6 addressing.
This post will be about ICMPv6 protocol. It is gonna be upper layer protocol for IPv6 packet and "next header" value of the main ipv6 protocol will be set to 58.
Header ICMPv6
After host/router decode this value it knows that the next header will be ICMPv6 header:
ICMPv6 protocol message have the next format:
Pic.1 ICMPv6 message.
Type
The "type" field value is determines which data encoded to ICMPv6 message ( ping request, ND protocol message e.t.c)
All ICMPv6 messages are divided into two common types : error messages and informational messages. Informational messages and error messages are different in it's "type" field: error messages have "type" value <128, all other values to 255 are informational.
Informational messages are: ICMPv6 request/response messages(type 128/129) , Neighbour Discovery Protocol messages (will be described in future post) .
Error messages are: Destination unreachable message (Type=1) , Packet too big (Type=2), Time Exceeded (Type=3), Parameter problem (Type=4)
Code
The "code" field depends on the type of the message. Different codes of messages of the same type have different functions.
Checksum
"Checksum" field is used to detect some data corruption in the ICMPv6 message. As you already know there is no any header shecksum inside IPv6 packet but "Checksum" field protects ICMPv6 message of any errors.
Message body
Message body is a payload of ICMPv6 protocol message. for example there is a ICMPv6 request message sent from source to destination IPv6 addresses. You can see "Identifier", "Sequence" and "Data" field that are message body of the ICMPv6 Echo request message.
Pic.2 ICMPv6 Echo request message.
Read RFC4333 to dig deeper ad to find full information about other ICMPv6 messages values.
No comments:
Post a Comment