Suatu implementasi penuh dari IPv6 meliputi implementasi dari header ekstensi berikut ini:
1. Hop-by-Hop Options
Extension Header Order (Urutan Header Tambahan)
Ketika lebih dari satu extension header digunakan dalam paket yang sama, seharusnya header tersebut muncul sebagai berikut:
1. IPv6 header
2. Hop-by-Hop Options header
3. Destination Options header (note 1)
4. Routing header
5. Fragment header
6. Authentication header (note 2)
7. Encapsulating Security Payload header (note 2)
8. Destination Options header (note 3)
9. upper-layer header
Note 1 : Untuk opsi yang diproses dalam field Destination Address IPv6.
Note 2 : Rekomendasi tambahan yang berkaitan dengan urutan relatif dari header Authentication dan Encapsulating Security Payload yang terdapat dalam RFC-2406
Note 3 : Untuk opsi yang diproses hanya oleh Destination terakhir dari paket.
Setiap extension header seharusnya terjadi hanya sekali, kecuali untuk header Destination Options yang seharusnya terjadi dua kali (sekali sebelum header Routing dan sekali sebelum header upper-layer).
Jika header upper-layer adalah header IPv6 yang lain (dalam hal ini adalah IPv6 yang disalurkan melalui atau dienkapsulasi dalam IPv6), ini mungkin diikuti oleh extension header-nya sendiri, yang merupakan subyek terpisah pada rekomendasi pengurutan yang sama.
Ketika extension header yang lain didefinisikan, batasan pengurutannya yang relatif pada header yang terdaftar diatasnya harus ditentukan.
Node-node IPv6 harus menerima dan mencoba untuk memproses extension header dalam urutan apapun dan membuat terjadi berapa kali pun dalam paket yang sama, kecuali untuk header Hop-by-Hop Options yang tiba-tiba muncul tiba-tiba setelah header IPv6 saja. Meskipun demikian, sangat disarankan agar source dari paket IPv6 menempel diatas urutan yang direkomendasikan sampai dan kecuali kalau spesifikasi berikutnya merevisi rekomendasi tersebut.
Option
Dua dari extension header yang terdefinisi saat ini – header Hop-by-Hop Options dan header Destination Options – membawa variabel jumlah dari Type-length-value (TLV) yang meng-encode “Options”, dari format berikut ini:
Option Type 8-bit pengidentifikasi dari tipe opsi.
Opt Data Len 8-bit unsigned integer. Panjang field Option Data dari opsi ini, dalam oktet.
Option Data Field Variable-length. Data Option-Type-spesific.
Rangkaian opsi dalam suatu header harus diproses secara cepat dalam urutan dimana opsi tersebut muncul dalam header tersebut; penerima tidak harus demikian, sebagai contoh, mendeteksi sepanjang header tersebut untuk mencari jenis opsi dasar dan proses opsi itu sebelum pemrosesan semua opsi sebelumnya.
Pengidentifikasi Option Type di-encode secara internal sedemikian hingga dua bit urutan tertinggi-nya menentukan aksi yang harus diambil jika pemrosesan node IPv6 tidak mengenali Option Type tersebut :
00 - Menghiraukan/meloncati opsi tersebut dan melanjutkan pemrosesan header.
01 - Membuang paket.
10 - Membuang paket dan, tanpa menghiraukan apakah Destination Address dari paket tersebut adalah Address multicast, mengirim suatu ICMP Parameter Problem, Code 2, memberitahu Source Address dari paket, menunjuk pada Option Type yang tidak dikenali.
11 - Membuang paket tersebut dan, hanya jika Destination Address dari paket bukan merupakan suatu alamat multicast, mengirim suatu ICMP Parameter Problem, Code 2, memberitahu Source Address dari paket, menunjuk pada Option Type yang tidak dikenali.
Bit urutan tertinggi ketiga dari Option Type menentukan apakah Option Data dari opsi tersebut dapat merubah route pada Destination terakhir dari paket. Ketika terdapat suatu header Authentication dalam paket tersebut, untuk opsi manapun yang memiliki data yang dapat mengubah en-route, keseluruhan field Option Data-nya harus perlakukan sebagai nilai nol oktet ketika menghitung atau memverifikasi nilai autentikasi dari paket.
0 - Option Data tidak merubah route
1 - Option Data dapat merubah route
Bit urutan tertinggi ketiga yang dijelaskan diatas diperlakukan sebagai bagian dari Option Type, bukan di luar Option Type. Karena itu, suatu opsi utama yang diidentifikasi oleh 8-bit penuh Option Type, tidak hanya 5-bit urutan terendah dari Option Type.
Penomoran Option Type yang sama digunakan baik untuk header Hop-by-Hop Option dan header Destination Options. Bagaimanapun juga, Spesifikasi suatu opsi utama dapat membatasi fungsinya hanya pada satu dari dua header tersebut.
Opsi individual dapat memiliki syarat pensejajaran yang spesifik, untuk memastikan bahwa nilai multi-octet dalam field Option Data yang terletak pada batasan alami. Syarat pensejajaran dari suatu opsi ditentukan menggunakan notasi xn+y, berarti Option Type harus muncul pada suatu perkalian integer x oktet dari awal header, ditambah y oktet. Sebagai contoh :
2n Artinya offset 2-oktet manapun dari awal header.
8n+2 Artinya offset 8-oktet manapun dari awal header, plus 2-oktet
Ada dua padding Option yang digunakan jika perlu untuk mensejajarkan Option berikutnya dan untuk membagi header menjadi 8-oktet ganda. Padding Option ini harus dikenali oleh seluruh implementasi IPv6.
CATATAN! Format dari Pad1 Option adalah kasus khusus – tidak memiliki field length dan value.
Pad1 Option digunakan untuk menyisipkan satu oktet padding ke dalam area Option dari suatu header. Jika lebih dari satu oktet padding diharuskan, PadB Option, yang akan dijelaskan selanjutnya, seharusnya digunakan dibanding Pad1 Option ganda.
PadN Option digunakan untuk menyisipkan dua atau lebih oktet padding ke dalam area Option dari suatu header. Untuk N oktet padding, field Opt Data Len berisi nilai N-2, dan Option Data terdiri atas N-2 nilai nol oktet.
Hop-by-Hop Option Header (Header Pilihan Hop-by-Hop)
Header Hop-by-Hop Option digunakan untuk membawa informasi opsional yang harus dicek oleh setiap node sepanjang path pengiriman dari suatu paket. Header Hop-by-Hop Option dikenali dengan nilai 0 Next Header dalam header Ipv6, dan memiliki format sebagai berikut:
Format Header Hop-by-Hop