On the cisco.com website, there is an excellent write-up on IPv6 headers. The author describes in great detail how the IPv6 packets are created, and how they compare to IPv4.
The IHL – or Internet Header Length – was removed from IPv6, as each IPv6 header will always be 40 bytes in length, despite the content. The Time to Live has been rephrased to “Hop Limit", which more accurately describes its purpose. Each hop the fragment passes, the counter is reduced by value 1. As soon as the counter hits zero, the packet is destroyed. The Header Checksum was removed from IPv6.
The IPv6 looks less cluttered, and holds less fragmented data, but more to-the-point information. The Version holds value 6, to indicate IPv6. The Flow Label can be used to label certain packets belonging to the same stream or session, so they are more easily distinguishable. It could be used by routers to uphold certain Quality of Service settings, without having to analyze the packet entirely.
The Payload Length holds the length of the user data to be transmitted, as well as the length of any additional headers that might be sent along. Since the header has a fixed 40 byte size, the Total Length from IPv4 (which included both the header size + user data size) is no longer needed.
For a more detailed explanation, I’ll refer you to the post on Cisco’s website titled IPv6 internals.