As we discussed in last post about IPv6 and IPv4 headers. In this post we will see in details about it.
IPv6 header design is focused mainly on simplicity - to keep the datagram as simple as possible and to keep the size of the headers fixed.
The reason for this was to increase processing performance - simple constant size headers can be processed quickly, at or very close to wire-speed.
- The IPv4 header format contains a lot of fields including some unpredictable optional ones leading to fluctuating header sizes.
- IPv6 shows a different approach - the basic header is minimized and with constant/fix size.
- Only important fields are included in IPv6 headers.
- Everything else has been separated from header and formed extension headers, which are attached on requirements in IPv6 headers.
Check in below diagram, the similarities and differences between IPv4 header format and IPv6 header format.
While designing IPv6 header, Engineers maintained some important IPV4 header fields in IPv6 header format also.
In above diagram, you can check different colours indicating similarities and differences.
Header Fields –
- Version - Protocol version identification. It helps to identify protocol version as IPv6.
- Traffic Class - Intended for the Quality of Service (QoS). It may distinguish various classes or priorities of traffic (in combination with other header fields, e.g. source/destination addresses).
- Flow Label - Identifies a flow which is a “group of related datagrams or flow from same session”.
- Payload Length – The Total Length is the length of the IPv4 packet including the header.But in IPv6, the Payload Length does not include the 40-byte IPv6 header. It save the host or router receiving a packet from having check whether the packet is large enough to hold the IP header in initial phase. Making for a small efficiency gain. Despite the name, the Payload Length field includes the length of any additional headers, not just the length of the user data.It is in Bytes, so the maximum possible payload size is 64 KB.
- Next Header -The protocol header which follows, It identifies the type of following data - it may be some extension header or upper layer protocol (TCP, UDP) data.
- Hop Limit - Time to Live (TTL) is now called Hop Limit in IPv6. The sending node assigns some value to this field defining the reach of given datagram. Every forwarding host decreases the value by 1. If decremented to zero, the datagram is dropped and an ICMP message is sent to the sender. It protects the IPv6 transport system against routing loops - in the case of such loop the datagram circulates around the loop for a limited time only.
- Source Address - It contains the IPv6 address of the host who sent this datagram.
- Destination Address - This is the target/destination address where the datagram should be delivered to particular IPv6 address.
- The total length of the datagram header doubled (from 20 bytes to 40 bytes) although the IPv6 addresses are four times as long.
- In IPv6 just a subset of IPv4 header fields have been adopted.
- The whole second line of the IPv4 datagram, designed for fragmentation, has been moved to an extension header in IPv6.
- The CRC (cyclic redundancy check) has been skipped for two good reasons: First, frame consistency is checked in lower layers, so it is largely redundant.
- Second, CRC decelerates the datagram processing – every forwarding node decreases the datagram lifetime, so it changes the header and must recalculate the CRC.
- Thanks to the constant header length the corresponding header length field is not necessary anymore.
Due to all these reasons, IPv6 headers are more efficient and less CPU intense to Routers than IPv4 headers.
Hope this post is informative for you.
Thanks for reading. For feedback and likes, Plz comment with Name and mail id, New users can use Name/URL option.