ICMPv6
Bộ giao thức Internet |
---|
Tầng ứng dụng (Application layer) |
Tầng giao vận (Transport layer) |
Tầng mạng (Internet layer) |
Tầng liên kết (Link layer) |
|
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Icmpv6_echo.jpg/220px-Icmpv6_echo.jpg)
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
Cũng như ICMP, các thông điệp ICMPv6 được chia ra làm hai loại: thông điệp lỗi và thô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
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.
Bit offset | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Type | Code | Checksum | |||||||||||||||||||||||||||||
32 | Thông điệp |
Loại thông điệp
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
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
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
Liên kết ngoài
- IANA: ICMPv6 Parameters
- RFC 2894, Router Renumbering for IPv6