3.8 IPv6 Extention Header
Trong IPv6, những Option được cấu trúc thành những Header riêng biệt và được
chèn vào giữa IPv6 Header và Upper-layer Header. Những Extention Header này
được nhận dạng bởi giá trị trong trường Next-Header của Header đứng trước nó. Một gói tin IPv6 bắt buộc có một IPv6 Header, có thể có hoặc không có Extention Header, có thể mang nhiều Extention Header cùng lúc.
Khi gói đi từ nguồn đến đích, các Node trung gian không được phép xử lý các
Extension Header đến khi đến trạm đích, hoặc những trạm đích (trong trường hợp
Multicast) trừ một vài trường hợp ngoại lệ. Và việc xử lý các Header này cũng phải diễn ra theo đúng tuần tự mà các Header sắp xếp trong gói tin IPv6. Không bao giờ được phép xảy ra trường hợp trạm đích Scan qua toàn bộ gói tin và chọn ra một Header nào đó để xử lý trước.
Trường hợp ngoại lệ như vừa đề cập chính là trường hợp Hop-by-hop Extension
Header. sự hiện diện của Hop-by-hop Extension Header buộc gói tin phải bị kiểm tra bởi tất cả các Node trung gian trên đường từ nguồn đến đích, bao gồm cả trạm nguồn và đích. Vì vậy, Hop-by-hop Extension Header luôn phải đứng sau IPv6 Header. Sự hiện diện của Extension Header này được chỉ thị bởi giá trị 0 trong Next-Header của IPv6 Header.
Kích thước của các Extension Header có thể tùy ý, nhưng luôn là bội số của 8
octet. Nếu trong gói tin có chứa nhiều Extension Header, chúng được sắp xếp theo thứ tự sau :
- IPv6 Header.
- Hop-by-Hop Options Header.
- Destination Options Header (Ghi chú 1).
- Routing Header.
- Fragment Header.
- Authentication Header (Ghi chú 2).
- Encapsulating Security Payload Header (Ghi chú 2).
- Destination Options Header (Ghi chú 3).
- Upper-layer Header.
Ghi chú 1: Được xử lý bởi Trạm đích đầu tiên trong IPv6 Header và
những trạm còn lại được chỉ ra trong Routing Header.
Ghi chú 2: Liên quan đến thứ tự của Authentication Header và
Encapsulation Header.
Ghi chú 3: Chỉ được xử lý bởi đích đến cuối cùng trong gói tin.
3.8.1 Option
Hop-by-hop và Destination Option Header có mang những Type-length-value
(TLV) còn được gọi là “option” theo định dạng sau:
- Option Type: 8 bit định nghĩa loại Option.
- Opt Data Len: 8 bit Unsigned Interger, thông tin về kích thước của Option
(đơn vị Octet).
- Option Data: Dữ liệu.
Các Option cũng được xử lý theo tuần tự của chúng.
Highest-order quy định cách mà Node thực hiện trong trường hợp Node không
nhận ra Option Type.
- 00 :Bỏ qua Option đó và tiếp tục xử lý Header.
- 01 :Loại bỏ gói tin.
- 10 : Loại bỏ gói và gửi ICMPv6 Parameter Problem về nguồn.
- 11 : Loại bỏ gói và chỉ gửi ICMPv6 Parameter Problem về nguồn nếu địa
chỉ đích không phải là địa chỉ Multicast.
Bit thứ 3 : giá trị 1 (Option Data không được phép thay đổi trên toàn tuyến)
Giá trị 1 (có thể thay đổi).
3.8.2 Hop-by-hop Extension Header
Hop-by-hop Extension Header mang những thông tin tùy chọn, được kiểm tra
bởi tất cả các Node trên đường gói tin đi từ nguồn đến đích. Hop-by-hop Extension Header được nhận dạng bởi giá trị 0 của Next-Header trong IPv6 Header. Có định dạng như sau:
- Next-Header: 8 bit giúp xác định loại Extension Header theo ngay sau Hopby-
hop Extension Header.
- Hdr Ext Len: 8 bit unsigned interger, chỉ thị kích thước của Hop-by-hop
Extension Header theo đơn vị 8-octet (không tính đến 8 octet đầu tiên).
- Option : như đã mô tả ở trên.
3.8.3 Routing Header
Routing Header được trạm nguồn dùng để liệt kê tất cả các Node trung gian mà
gói tin IPv6 phải đến (visit) trên đường từ nguồn đến đích. Routing Header được nhận dạng bởi giá trị Next-Header 43 của Header ngay trước nó.
Trong IPv6, những Option được cấu trúc thành những Header riêng biệt và được
chèn vào giữa IPv6 Header và Upper-layer Header. Những Extention Header này
được nhận dạng bởi giá trị trong trường Next-Header của Header đứng trước nó. Một gói tin IPv6 bắt buộc có một IPv6 Header, có thể có hoặc không có Extention Header, có thể mang nhiều Extention Header cùng lúc.
Khi gói đi từ nguồn đến đích, các Node trung gian không được phép xử lý các
Extension Header đến khi đến trạm đích, hoặc những trạm đích (trong trường hợp
Multicast) trừ một vài trường hợp ngoại lệ. Và việc xử lý các Header này cũng phải diễn ra theo đúng tuần tự mà các Header sắp xếp trong gói tin IPv6. Không bao giờ được phép xảy ra trường hợp trạm đích Scan qua toàn bộ gói tin và chọn ra một Header nào đó để xử lý trước.
Trường hợp ngoại lệ như vừa đề cập chính là trường hợp Hop-by-hop Extension
Header. sự hiện diện của Hop-by-hop Extension Header buộc gói tin phải bị kiểm tra bởi tất cả các Node trung gian trên đường từ nguồn đến đích, bao gồm cả trạm nguồn và đích. Vì vậy, Hop-by-hop Extension Header luôn phải đứng sau IPv6 Header. Sự hiện diện của Extension Header này được chỉ thị bởi giá trị 0 trong Next-Header của IPv6 Header.
Kích thước của các Extension Header có thể tùy ý, nhưng luôn là bội số của 8
octet. Nếu trong gói tin có chứa nhiều Extension Header, chúng được sắp xếp theo thứ tự sau :
- IPv6 Header.
- Hop-by-Hop Options Header.
- Destination Options Header (Ghi chú 1).
- Routing Header.
- Fragment Header.
- Authentication Header (Ghi chú 2).
- Encapsulating Security Payload Header (Ghi chú 2).
- Destination Options Header (Ghi chú 3).
- Upper-layer Header.
Ghi chú 1: Được xử lý bởi Trạm đích đầu tiên trong IPv6 Header và
những trạm còn lại được chỉ ra trong Routing Header.
Ghi chú 2: Liên quan đến thứ tự của Authentication Header và
Encapsulation Header.
Ghi chú 3: Chỉ được xử lý bởi đích đến cuối cùng trong gói tin.
3.8.1 Option
Hop-by-hop và Destination Option Header có mang những Type-length-value
(TLV) còn được gọi là “option” theo định dạng sau:
- Option Type: 8 bit định nghĩa loại Option.
- Opt Data Len: 8 bit Unsigned Interger, thông tin về kích thước của Option
(đơn vị Octet).
- Option Data: Dữ liệu.
Các Option cũng được xử lý theo tuần tự của chúng.
Highest-order quy định cách mà Node thực hiện trong trường hợp Node không
nhận ra Option Type.
- 00 :Bỏ qua Option đó và tiếp tục xử lý Header.
- 01 :Loại bỏ gói tin.
- 10 : Loại bỏ gói và gửi ICMPv6 Parameter Problem về nguồn.
- 11 : Loại bỏ gói và chỉ gửi ICMPv6 Parameter Problem về nguồn nếu địa
chỉ đích không phải là địa chỉ Multicast.
Bit thứ 3 : giá trị 1 (Option Data không được phép thay đổi trên toàn tuyến)
Giá trị 1 (có thể thay đổi).
3.8.2 Hop-by-hop Extension Header
Hop-by-hop Extension Header mang những thông tin tùy chọn, được kiểm tra
bởi tất cả các Node trên đường gói tin đi từ nguồn đến đích. Hop-by-hop Extension Header được nhận dạng bởi giá trị 0 của Next-Header trong IPv6 Header. Có định dạng như sau:
- Next-Header: 8 bit giúp xác định loại Extension Header theo ngay sau Hopby-
hop Extension Header.
- Hdr Ext Len: 8 bit unsigned interger, chỉ thị kích thước của Hop-by-hop
Extension Header theo đơn vị 8-octet (không tính đến 8 octet đầu tiên).
- Option : như đã mô tả ở trên.
3.8.3 Routing Header
Routing Header được trạm nguồn dùng để liệt kê tất cả các Node trung gian mà
gói tin IPv6 phải đến (visit) trên đường từ nguồn đến đích. Routing Header được nhận dạng bởi giá trị Next-Header 43 của Header ngay trước nó.
Comment