The IPv6 header doesn't look much like its IPv4 cousin, except for the Version and Priority fields and the source and destination addresses, which are larger in IPv6 (see Fig. A). Changes are made for different reasons. They fall into three categories. The first is the elimination of unnecessary fields, such as the checksum field, because typically the lower-level transport system handles error detection and correction.
Next, the header structure of an IPv6 packet varies in length versus the fixed format for IPv4 (see Fig. B). A number of standard header extensions can follow the standard IPv6 header. IPv4 standards placed this type of information in the payload, complicating packet analysis. The IPv6 standard even specifies the order of extension headers if they're included. For example, the routing header must precede the security header.
Finally, as some fields weren't used effectively, there was no reason to move them to IPv6. Of course, even hindsight doesn't guarantee a completely efficient design. For example, the flow label field hasn't been effectively used yet.
The IPv6 design has some disadvantages. Its larger headers require more space in buffers and tables. The extension approach to headers can be an issue in hardware implementations because, except for the first header, information isn't located at a fixed offset from the start of the packet. So, the extensions must be scanned sequentially to determine their contents and the location and type of the next extension header. Eventually, the payload data can be identified.
More details on the IPv6 specification can be found at the RFC-Editor and the Internet Engineering Task Force (IETF) Web sites.