4.1.2.1 Gói tin ICMPv6
Gói tin ICMPv6 bắt đầu sau header cơ bản hoặc một header mở rộng của IPv6 và đƣợc xác định bởi giá trị trƣờng Next-Header 58 của header IPv6 này. Gói tin ICMPv6 bao gồm phần ICMPv6 header và phần thông điệp (ICMPv6 message).
ICMPv6 header bao gồm ba trƣờng: Type (8 bít), Code (8 bít) và Checksum (16 bít)
Hai trƣờng Type và Code của ICMPv6 header đƣợc sử dụng để phân loại thông điệp ICMPv6.
Type: Giá trị bít đầu tiên của trƣờng type sẽ xác định đây là thông điệp lỗi, hay thông điệp thông tin.
Code: 8 bít trƣờng code sẽ phân dạng sâu hơn gói tin ICMPv6, định rõ đây là gói tin dạng gì trong từng loại thông điệp ICMPv6.
Trƣờng Checksum cung cấp giá trị sử dụng để kiểm tra lỗi cho toàn bộ gói tin ICMPv6.
40 RFC2463 - Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
Hình 25: Cấu trúc gói tin ICMPv6
0 7 8 15 16 32
Type Code Checksum
ICMPv6 message
Cũng nhƣ ICMPv4, ICMPv6 đƣợc sử dụng để trao đổi các thông điệp điều khiển, bao gồm những thông điệp đảm nhiệm báo cáo tình trạng hoạt động của mạng, báo cáo lỗi, hỗ trợ chẩn đoán mạng. Tuy nhiên, nhằm phục vụ thực hiện những quy trình hoạt động cơ bản của địa chỉ IPv6, ICMPv6 còn bao gồm những dạng thông điệp mới, phục vụ cho các thủ tục và những quy trình giao tiếp của các node IPv6. Các thông điệp ICMP đƣơc phân chia làm hai loại: Thông điệp lỗi và Thông điệp thông tin.
4.1.2.2 Thông điệp lỗi (Error message)
Các thông điệp lỗi đƣợc sử dụng để báo lỗi trong quá trình chuyển tiếp và phân phối gói tin IPv6, thực hiện bởi node đích hoặc router đang xử lý gói tin. Các thông điệp này có giá trị của 8 bít trƣờng Type từ 0 đến 127 (bít đầu tiên đƣợc đặt giá trị 0). Các thông điệp lỗi bao gồm: Destination Unreachable, Packet Too Big, Time Exceeded, and Parameter Problem.
Dạng (type) Mô tả Giá trị trƣờng code
1 Destination unreachable.
0 – Không có tuyến tới đích 1 – Giao tiếp tới đích bị cấm 2 – Chƣa gán
3 - Địa chỉ không kết nối đƣợc. 4 – Port không kết nối tới đƣợc.
2 Packet too big. 0
3 Time exceeded. 0 – Vƣợt quá giới hạn hop limit
1 – Thời gian tạo lại gói tin vƣợt quá giới hạn cho phép
4 Parameter problem.
0 – Lỗi header
1 – Không nhận dạng đƣợc Next Header 2 – Không nhận ra IPv6 option
Bảng 6: Các thông điệp lỗi
Thông điệp lỗi “Destination unreachable” đƣợc gửi khi một node không thể chuyển tiếp gói tin vì một số lí do nào đó (không phải do tắc nghẽn mạng). Node gửi thông báo lỗi về nguồn của gói tin, trƣờng code sẽ chỉ định nguyên nhân, nhƣ trong bảng 6.
Node gửi thông điệp lỗi “Packet Too Big” khi kích thƣớc gói tin vƣợt quá giá trị MTU của đƣờng kết nối. Trong IPv6, việc phân mảnh không đƣợc thực hiện bởi router, chỉ có node nguồn thực hiện phân mảnh. Thông điệp “Packet Too Big” còn đƣợc sử dụng trong quy trình tìm kiếm giá trị MTU nhỏ nhất trên toàn bộ đƣờng truyền dẫn của IPv6, là một quy trình do thủ tục Neighbor Discovery đảm nhiệm 41.
Khi giá trị Hop limit trong header gói tin IPv6 đạt tới 0, gói tin sẽ bị huỷ bỏ và thông điệp lỗi “ Time Exceeded” đƣợc gửi.
Thông điệp lỗi “Parameter Problem” đƣợc gửi nếu một node nhận thấy có vấn đề trong header cơ bản, hoặc trong một header mở rộng của gói tin IPv6. Dạng lỗi đƣợc chỉ định bằng giá trị trƣờng code, nhƣ trong bảng 6.
4.1.2.3 Thông điệp thông tin
Thông điệp thông tin ICMPv6 chia thành hai nhóm: Thông điệp thông tin cơ bản và Thông điệp thông tin mở rộng. Trƣờng Type của gói tin thông điệp thông tin ICMPv6 có giá trị trong khoảng 128 - 255 (bít đầu tiên đƣợc thiết lập giá trị 1).
Thông điệp thông tin cơ bản: Bao gồm “Echo request” và “Echo reply” . Hai dạng thông điệp này đƣợc sử dụng trong các chƣơng trình dò tìm nhƣ ping, traceroute, thực hiện chức năng chẩn đoán mạng.
Thông điệp thông tin mở rộng: Là những thông điệp ICMPv6 đƣợc sử dụng bởi thủ tục thực hiện chức năng giao tiếp giữa các node lân cận trong một đƣờng kết nối Neighbor Discovery - ND và thủ tục quản lý quan hệ thành viên nhóm multicast Multicast Listener Discovery - MLD, phục vụ cho các quy trình hoạt động cốt yếu của địa chỉ IPv6. Những thông điệp này đƣợc liệt kê trong bảng 8. Trong đó Multicast Listener Query, Multicast Listener Report, Multicast Listener Done phục vụ cho thủ tục MLD, năm thông điệp Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement và Redirect phục vụ cho thủ tục ND
Type Mô tả Code 128 Echo request. 0
129 Echo reply. 0
Bảng7: Thông điệp thông tin cơ bản
Type Mô tả Code
130 Multicast Listener Query. 0
131 Multicast Listener Report. 0
132 Multicast Listener Done. 0
133 Router Solicitation. 0
134 Router Advertisement. 0
135 Neighbor Solicitation. 0
137 Redirect. 0
Bảng 8: Thông điệp thông tin mở rộng
Chúng ta sẽ tìm hiểu chi tiết hơn về những thông điệp thông tin mở rộng trong những mục sau, khi mô tả chi tiết về các quy trình hoạt động cơ bản của địa chỉ IPv6.