IPv4 and IPv6 packet headers are shown in Figure 2.1. The main difference is that IPv6 addresses are four times longer (128 bits) than IPv4 addresses (which have a length of 32 bits). The main driver for introduction of IPv6 was in fact IPv4 address space exhaustion, which started to become evident with the exponential growth of the Internet in the 1990s. However, IPv6 does offer several other improvements to the IPv4 header, such as reducing some fields which refer to packet IP packet fragmentation (that is fragmentation of a single IP packet into multiple fragment packets at a cer- tain point in the network, such as a router, and then doing the reverse process at some point in the downstream direction) which has proven to be inefficient for practical use (e.g. if some of the routers on the way do not handle the fragmentation of the IP pack- ets well, the IP communication will suffer interruptions), hence these fields are omit- ted in the newer IPv6 header. However, due to longer IP addresses, IPv6 has a header that is at least two times longer (a minimum of 40 bytes) than its predecessor IPv4 minimum of 20 bytes), which influences certain traffic types such as voice which have low-length payload (due to lower traffic intensity of the voice). Another difference is the Flow Label field introduced in IPv6 with the intention of labeling individual IP flows on layer 3 (network layer), which may be important for QoS provisioning per flow. Nev- ertheless, the Internet was created for IPv4 networks and QoS solutions targeting IPv4 networks, SO one may expect such mechanisms (e.g. for traffic management) to continue to be used for IPv6 networks, which limits the possibilities of end-to-end use of the Flow Label. 2.1 Overview of Internet Technology Protocols 1 word = 32 bits (4 bytes) Version Header length Type of service Total length Fragment identification Flags Fragment offset Time to live Protocol Header checksum Source IPv4 address (32 bits) Destination IPv4 address (32 bits) Version Traffic class 32 bits (4 bytes) 