IPv6 packet
An IPv6 packet is the smallest message entity exchanged using Internet Protocol version 6 (IPv6). Packets consist of control information for addressing and routing and a payload of user data. The control information in IPv6 packets is subdivided into a mandatory fixed header and optional extension headers. The payload of an IPv6 packet is typically a datagram or segment of the higher-level transport layer protocol, but may be data for an internet layer (e.g., ICMPv6) or link layer (e.g., OSPF) instead. IPv6 packets are typically transmitted over the link layer (i.e., over Ethernet or Wi-Fi), which encapsulates each packet in a frame. Packets may also be transported over a higher-layer tunneling protocol, such as IPv4 when using 6to4 or Teredo transition technologies. In contrast to IPv4, routers do not fragment IPv6 packets larger than the maximum transmission unit (MTU), it is the sole responsibility of the originating node. A minimum MTU of 1,280 octets is mandated by IPv6, but hosts are "strongly recommended" to use Path MTU Discovery to take advantage of MTUs greater than the minimum. Since July 2017, the Internet Assigned Numbers Authority (IANA) has been responsible for registering all IPv6 parameters that are used in IPv6 packet headers. Fixed header The fixed header starts an IPv6 packet and has a size of 40 octets (320 bits). The bytes of the multi-byte fields are in the network byte order. {| class="wikitable" style="text-align: center" |+Fixed header format |- ! style="border-bottom:none; border-right:none;"| Offsets ! style="border-left:none;"| Octet ! colspan="8" | 0 ! colspan="8" | 1 ! colspan="8" | 2 ! colspan="8" | 3 |- ! style="border-top: none" | Octet ! Bit ! style="width:2.6%;"| 0 ! style="width:2.6%;"| 1 ! style="width:2.6%;"| 2 ! style="width:2.6%;"| 3 ! style="width:2.6%;"| 4 ! style="width:2.6%;"| 5 ! style="width:2.6%;"| 6 ! style="width:2.6%;"| 7 ! style="width:2.6%;"| 8 ! style="width:2.6%;"| 9 ! style="width:2.6%;"| 10 ! style="width:2.6%;"| 11 ! style="width:2.6%;"| 12 ! style="width:2.6%;"| 13 ! style="width:2.6%;"| 14 ! style="width:2.6%;"| 15 ! style="width:2.6%;"| 16 ! style="width:2.6%;"| 17 ! style="width:2.6%;"| 18 ! style="width:2.6%;"| 19 ! style="width:2.6%;"| 20 ! style="width:2.6%;"| 21 ! style="width:2.6%;"| 22 ! style="width:2.6%;"| 23 ! style="width:2.6%;"| 24 ! style="width:2.6%;"| 25 ! style="width:2.6%;"| 26 ! style="width:2.6%;"| 27 ! style="width:2.6%;"| 28 ! style="width:2.6%;"| 29 ! style="width:2.6%;"| 30 ! style="width:2.6%;"| 31 |- ! 0 ! 0 | colspan="4"|Version | colspan="8"|Traffic class | colspan="20"|Flow label |- ! 4 ! 32 | colspan="16"|Payload length | colspan="8"|Next header | colspan="8"|Hop limit |- ! 8 ! 64 | colspan="32" rowspan="4"|Source address |- ! 12 ! 96 |- ! 16 ! 128 |- ! 20 ! 160 |- ! 24 ! 192 | colspan="32" rowspan="4"|Destination address |- ! 28 ! 224 |- ! 32 ! 256 |- ! 36 ! 288 |} Version (4 bits) The constant 6 (bit sequence ). Traffic Class (6+2 bits) The bits of this field hold two values. The six most-significant bits hold the differentiated services field (DS field), which is used to classify packets. Currently, all standard DS fields end with a '0' bit. Any DS field that ends with two '1' bits is