ICMPv6

Bách khoa toàn thư mở Wikipedia

Internet Control Message Protocol version 6 (ICMPv6) là phiên bản được biến đổi và nâng cấp của Internet Control Message Protocol (ICMP) cho giao thức liên mạng thế hệ 6 (IPv6). ICMPv6 được định nghĩa trong RFC 4443.[1] ICMPv6 là một phần gắn liền với IPv6 và thực hiện thông báo lỗi mạng và chức năng chẩn đoán (ví dụ, ping), và có một khuôn khổ cho các phần mở rộng để thực hiện những thay đổi trong tương lai.

Một số phần mở rộng đã được công bố, xác định các loại thông điệp ICMPv6 mới cũng như tùy chọn mới với nhiều loại thông điệp có ở ICMPv6. Giao thức Neighbor Discovery (NDP) là một giao thức phát hiện các nút trong IPv6 thay thế và mở rộng các chức năng của ARP.[2]Secure Neighbor Discovery (SEND) là một phần mở rộng của NDP thêm những chức năng an ninh. Multicast Listener Discovery (MLD) được sử dụng bởi các bộ định tuyến IPv6 để khám phá multicast listener trên một đường kết nối trực tiếp, giống như Internet Group Management Protocol (IGMP) được sử dụng trong IPv4. Multicast Router Discovery (ĐBSCL) cho phép phát hiện các multicast router.

Chi tiết kỹ thuật[sửa | sửa mã nguồn]

Cũng như ICMP, các thông điệp ICMPv6 được chia ra làm hai loại: thông điệp lỗithông điệp thông tin. Các thông điệp ICMPv6 được các gói IPv6 chuyên chở trong đó giá trị của Next Header cho ICMPv6 là 58.

Gói tin ICMPv6[sửa | sửa mã nguồn]

Gói tin ICMPv6 bao gồm phần header và phần thông điệp. ICMPv6 header bao gồm ba trường: Type (8 bít), Code (8 bít) và Checksum (16 bít).

  • type xác định loại thông điệp. Giá trị từ 0 tới 127 (bít đầu tiên là 0) chỉ thông điệp lỗi, từ 128 tới 255 (bít đầu tiên là 1) thông điệp thông tin.
  • code 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.
  • checksum cung cấp giá trị sử dụng để kiểm tra lỗi cho toàn bộ gói tin ICMPv6.
Gói tin ICMPv6
Bit offset 0–7 8–15 16–31
0 Type Code Checksum
32 Thông điệp

Loại thông điệp[sửa | sửa mã nguồn]

Type Code
Giá trị Nghĩa Giá trị Nghĩa
Thông điệp lỗi ICMPv6
1 Destination Unreachable 0 no route to destination
1 communication with destination administratively prohibited
2 beyond scope of source address
3 address unreachable
4 port unreachable
5 source address failed ingress/egress policy
6 reject route to destination
7 Error in Source Routing Header
2 Packet Too Big 0
3 Time Exceeded 0 hop limit exceeded in transit
1 fragment reassembly time exceeded
4 Parameter Problem 0 erroneous header field encountered
1 unrecognized Next Header type encountered
2 unrecognized IPv6 option encountered
100 Private experimentation
101 Private experimentation
127 Reserved for expansion of ICMPv6 error messages
Thông điệp thông tin ICMPv6
128 Echo Request 0
129 Echo Reply 0
130 Multicast Listener Query (MLD) 0

Có hai dạng thông điệp Multicast Listener Query: Truy vấn thông thường tới mọi node và Truy vấn gắn với địa chỉ multicast cụ thể.

131 Multicast Listener Report (MLD) 0
132 Multicast Listener Done (MLD) 0
133 Router Solicitation (NDP) 0
134 Router Advertisement (NDP) 0
135 Neighbor Solicitation (NDP) 0
136 Neighbor Advertisement (NDP) 0
137 Redirect Message (NDP) 0
138 Router Renumbering 0 Router Renumbering Command
1 Router Renumbering Result
255 Sequence Number Reset
139 ICMP Node Information Query 0 The Data field contains an IPv6 address which is the Subject of this Query.
1 The Data field contains a name which is the Subject of this Query, or is empty, as in the case of a NOOP.
2 The Data field contains an IPv4 address which is the Subject of this Query.
140 ICMP Node Information Response 0 A successful reply. The Reply Data field may or may not be empty.
1 The Responder refuses to supply the answer. The Reply Data field will be empty.
2 The Qtype of the Query is unknown to the Responder. The Reply Data field will be empty.
141 Inverse Neighbor Discovery Solicitation Message 0
142 Inverse Neighbor Discovery Advertisement Message 0
143 Multicast Listener Discovery (MLDv2) reports (RFC 3810)
144 Home Agent Address Discovery Request Message 0
145 Home Agent Address Discovery Reply Message 0
146 Mobile Prefix Solicitation 0
147 Mobile Prefix Advertisement 0
148 Certification Path Solicitation (SEND)
149 Certification Path Advertisement (SEND)
151 Multicast Router Advertisement (MRD)
152 Multicast Router Solicitation (MRD)
153 Multicast Router Termination (MRD)
155 RPL Control Message
200 Private experimentation
201 Private experimentation
255 Reserved for expansion of ICMPv6 informational messages

Chú ý là bản trên không đầy đủ. Danh sách toàn bộ hiện tại có thể xem tại: IANA: ICMPv6 Parameters.

Thông điệp thông tin[sửa | sửa mã nguồn]

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.

  • 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.

Xử lý thông điệp[sửa | sửa mã nguồn]

Khi một nút ICMPv6 nhận một gói tin, nó phải thực hiện những hành động tùy thuộc vào loại thông điệp. Giao thức ICMPv6 phải hạn chế số lượng các thông điệp lỗi gửi đến cùng một điểm đến để tránh quá tải mạng. Ví dụ, nếu một nút tiếp tục chuyển các gói tin lỗi, ICMP sẽ báo hiệu lỗi tới gói đầu tiên và sau đó làm như vậy theo định kỳ, với thời gian tối thiểu cố định hoặc với tải trọng mạng tối đa cố định. Một thông điệp lỗi ICMP không bao giờ được gửi để đáp ứng với một thông điệp lỗi ICMP khác.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ RFC 4443, Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
  2. ^ RFC 3315, § 3

Liên kết ngoài[sửa | sửa mã nguồn]