This article, will explain the IPv6 header from the basics. In the next article, we will look at advanced features of IPv6 and try to understand them through our knowledge of the IPv6 header.
IPv6 is an improved version of the current Internet Protocol, IPv4. However, it is still an Internet Protocol. A protocol is a set of procedures for communications. In Internet Protocol, information such as IP addresses of the sender and the receiver of the data packet is placed in front of the data. This information is called “header”. This is similar to specifying the addresses of the sender and the recipient when you send a package by mail.
Let’s first compare the header of IPv4 and IPv6. Figure 1 shows IPv4 header, and IPv6 header is shown in Figure.
IPV4 HEADERIPv6 is an improved version of the current Internet Protocol, IPv4. However, it is still an Internet Protocol. A protocol is a set of procedures for communications. In Internet Protocol, information such as IP addresses of the sender and the receiver of the data packet is placed in front of the data. This information is called “header”. This is similar to specifying the addresses of the sender and the recipient when you send a package by mail.
Let’s first compare the header of IPv4 and IPv6. Figure 1 shows IPv4 header, and IPv6 header is shown in Figure.
IPV6 HEADER
One feature of IPv6 that immediately comes to our mind is huge address space. This refers to the fact that, among many elements shown in Figure 1 and 2, the Source Address and the Destination Address has each been expanded from 32 bits to 128 bits. If you just think in terms of pure combination of numbers, there used to be 232 possible ways to represent addresses, but now there are 2128 possible ways to represent them.
However, if you compare Figures 1 and 2 again, you will realize that although IPv6 uses four times more digits to express the addresses of the source and the destination, length of the header has not increased much from that of IPv4. This is because header format has been simplified in IPv6. You can see that among many elements (called “field”) shown in Figure 1, those shown in red do not exist in Figure .
One of the important changes is that there is no Options field in Figure 2. In IPv4, Options field can be used to add information about various optional services. For example, information related to encryption can be added here. Because of this, the length of the IPv4 header changes according to the situations. Due to this difference in length, routers that control communications according to the information in the IP header can’t judge the length of the header just by looking at the beginning of the packet. This makes it difficult to speed up packet processing with hardware assist.
On the other hand, IPv6 moves information related to additional services to a section called extension header. The part shown in Figure 2 is called basic header. Therefore, for plain packets, IP header length is fixed to 40 bytes. In terms of making it easier to process packets with hardware, you can say that IPv6 can be accelerated much easier than IPv4.
Another field that exists in Figure 1 but is absent from Figure 2 is the Header Checksum field. A Header Checksum is a number used to check for errors in header information, and is calculated using the numbers in the header. However, problem with this approach is that header contains a number called TTL (Time To Live), which changes every time the packet goes through a router. Because of this, Header Checksum must be recalculated every time the packet goes through a router. If we can free up routers from this type of calculations, we could reduce the delay. Actually, TCP layer that resides above IP layer checks errors of various information including sender address and destination address. Since performing same calculations at the IP layer is redundant and unnecessary, Header Checksum is removed from IPv6.
Figure 1 contains 8bit field called “Service Type”. This field is used to represent the priority of the packet, for example whether it should be delivered express or with normal speed, and allows communication devices to handle the packet accordingly. Service Type field is composed of TOS (Type of Service) field and Precedence field. TOS field specifies the type of service and contains cost, reliability, throughput, delay, or security. Precedence field specifies the level of priority using eight levels from 0 to 7. IPv6 provides the same function with a field called Traffic Class.
Flow Label field has a 20 bits length, and is a field newly established for IPv6. By using this field, packet’s sender or intermediate devices can specify a series of packets, such as Voice over IP, as a flow, and request particular service for this flow. Even in the world of IPv4, some communication devices are equipped with the ability to recognize traffic flow and assign particular priority to each flow. However, these devices not only need to check the IP layer information such as address of the sender and the destination, but also need to check the port number which is an information that belongs to a higher layer. Flow Label field attempts to put together all these necessary information and provide them at the IP layer. However, specifics on how to use it are still undecided.
As we have seen in this article, IPv6 aims to provide intelligent transmission framework that is easy to handle for intermediate devices by keeping the basic header simple and fixed length.
However, if you compare Figures 1 and 2 again, you will realize that although IPv6 uses four times more digits to express the addresses of the source and the destination, length of the header has not increased much from that of IPv4. This is because header format has been simplified in IPv6. You can see that among many elements (called “field”) shown in Figure 1, those shown in red do not exist in Figure .
One of the important changes is that there is no Options field in Figure 2. In IPv4, Options field can be used to add information about various optional services. For example, information related to encryption can be added here. Because of this, the length of the IPv4 header changes according to the situations. Due to this difference in length, routers that control communications according to the information in the IP header can’t judge the length of the header just by looking at the beginning of the packet. This makes it difficult to speed up packet processing with hardware assist.
On the other hand, IPv6 moves information related to additional services to a section called extension header. The part shown in Figure 2 is called basic header. Therefore, for plain packets, IP header length is fixed to 40 bytes. In terms of making it easier to process packets with hardware, you can say that IPv6 can be accelerated much easier than IPv4.
Another field that exists in Figure 1 but is absent from Figure 2 is the Header Checksum field. A Header Checksum is a number used to check for errors in header information, and is calculated using the numbers in the header. However, problem with this approach is that header contains a number called TTL (Time To Live), which changes every time the packet goes through a router. Because of this, Header Checksum must be recalculated every time the packet goes through a router. If we can free up routers from this type of calculations, we could reduce the delay. Actually, TCP layer that resides above IP layer checks errors of various information including sender address and destination address. Since performing same calculations at the IP layer is redundant and unnecessary, Header Checksum is removed from IPv6.
Figure 1 contains 8bit field called “Service Type”. This field is used to represent the priority of the packet, for example whether it should be delivered express or with normal speed, and allows communication devices to handle the packet accordingly. Service Type field is composed of TOS (Type of Service) field and Precedence field. TOS field specifies the type of service and contains cost, reliability, throughput, delay, or security. Precedence field specifies the level of priority using eight levels from 0 to 7. IPv6 provides the same function with a field called Traffic Class.
Flow Label field has a 20 bits length, and is a field newly established for IPv6. By using this field, packet’s sender or intermediate devices can specify a series of packets, such as Voice over IP, as a flow, and request particular service for this flow. Even in the world of IPv4, some communication devices are equipped with the ability to recognize traffic flow and assign particular priority to each flow. However, these devices not only need to check the IP layer information such as address of the sender and the destination, but also need to check the port number which is an information that belongs to a higher layer. Flow Label field attempts to put together all these necessary information and provide them at the IP layer. However, specifics on how to use it are still undecided.
As we have seen in this article, IPv6 aims to provide intelligent transmission framework that is easy to handle for intermediate devices by keeping the basic header simple and fixed length.
No comments:
Post a Comment