Optional and supplementary information are moved to a separate extension headers. These headers may or may not place after header. Each extension header is a separate block. To concatenate the extension headers, the Next Header Value field is used. This field contains a code that represents the type of extension or data. This way you can concatenate any number of headers.
The goal is that interesting information for the nodes are located immediately behind the header and other information that are interesting only for end nodes are located after them. When the concatenation of headers is used, the headers are concatenated in the following order:
Each extension header can appear only once in the IPv6 datagram, except the Destination Options header.