1. ICMPv6
ICMPv6 được chỉnh sửa từ phiên bản ICMPv4. Các thông báo lỗi và nhiều chức năng của IPv6 như là MTU Path Discovery và Neighbor Discovery đều sử dụng IPv6. Gói tin ICMPv6 theo sau header IPv6 hoặc một trong số các header mở rộng và được định nghĩa bởi Next-header IPv6. Giá trị next-header của ICMPv6 là 58. Khi các bit này là bit 0 thì nó là bản tin Error ngược lại nếu nó là 1 thì đó là bản tin Information.
1.1. Loại bản tin ICMPv6
* Error messages: Bản tin này báo cáo các lỗi trong chuyển tiếp và vận chuyển gói tin IPv6. ICMPv6 error messages thông báo lỗi bao gồm:
- Bản tin Destination unreachable: Được gửi cho node nguồn khi R nhận được gói tin mà nó không thể gửi đi đâu được.
- Bản tin Packet too big: Được gửi cho node nguồn khi R nhận được gói tin mà nó không thể gửi đi đâu được.
- Bản tin Time exceeded:
Gồm 2 trường hợp:
+ Khi gói tin chạy trong mạng trong khoảng thời gian quá lâu mà không đến đích
+ Gói tin vượt quá có thời gian phân mảnh và ghép mảnh quá lâu
- Bản tin Parameter problem: Được gửi cho node nguồn khi có vấn đề với 1 vài phần của gói tin IPv6 hoặc trường extension header khiến cho Router không thể xử lý và phải xoá gói tin.
* Information messages: Bản tin này cung cấp chức năng chuẩn đoán và chức năng máy chủ bổ sung như MLD và ND. ICMPv6 Information messages mô tả trong RFC 2463 bao gồm Echo Request và Echo Relay.
- Echo request: Bản tin này được gửi đến đích để yêu cầu một bản tin Echo Reply tức thì. Các bản tin này dễ dàng cung cấp một chức năng chẩn đoán lỗi đơn để giúp đỡ trong việc khử lỗi.
- Echo reply: Thông điệp này được gửi trong đáp ứng khi nhận được thông điệp Echho request.
1.2. ICMPv6 Header
ICMPv6 Header xác định bằng Next-header với giá trị 58. Nó có các trường như sau:
ICMPv6 Header
- Type: Xác định loại bản tin ICMPv6. Trường này có giá trị 8bit. Khi các bit này là bit 0 thì nó là bản tin Error ngược lại nếu nó là 1 thì đó là bản tin Information.
- Code: Phân biệt giữa nhiều bản tin trong một loại thông điệp nhất định. Kích thước của trường này là 8bit.
- Checksum: Lưu trữ checksum của bản tin ICMPv6. Kích thước của trường này là 16 bit.
- Messager body: chứa dữ liệu cụ thể.
2. Neighbor Discovery (ND)
Giao thức ND giải quyết các vấn đề liên quan đến các node trên một link. Nó cung cấp chức năng cho serverless automatic configuration cấu hình tự động không cần server, router discovery, prefix discovery, address resolution, phát hiện trùng địa chỉ.
Với IPv4, một kết hợp của nhiều giao thức bao gồm DHCP, ICMP router discovery, một giao thức định tuyến và ARP (Address Resolution Protocol), được yêu cầu để cung cấp chỉ một vài chức năng này. ND sử dụng ICMPv6 để thực hiện những công việc này. ND được dự định cải tiến tiến trình của IPv4 bằng cách tích hợp tất cả vào trong ICMPv6 thành một phần cần thiết của IPv6.
3. MTU Path Discovery (khám phá MTU đường dẫn)
MTU được yêu cầu phải dài tối thiểu 1280 byte trên mỗi link trong mạng IPv6. Tuy nhiên, thực tế thì được kiến nghị là 1500 byte để có được sự hiệu quả khi sử dụng. Khi một link không thể xử lý được gói tin lớn thì nó sẽ yêu cầu cung cấp chức năng phân mảnh ở mức độ link. Có nghĩa là gói tin đó sẽ được chia ra thành nhiều gói nhỏ để có thể truyền được trong link đó.
Sự phân mảnh được thực hiển chỉ bởi node nguồn, router dọc đường dẫn của gói tin không được tham gia phân mảnh. Sử dụng MTU Path Discovery có thể tận dụng lợi thế của các gói dữ liệu lớn nhất có thể và đạt được hiệu quả cao hơn khi không dùng MTU Path Discovery vì mặc định không dùng là sử dụng gói có độ dài 1280 byte.
Quá trình khám phá đường dẫn MTU
MTU Path Discovery sử dụng thông tin báo lỗi ICMP packet too big. Ví dụ như hình trên ta thấy 1 node bắt đầu gửi dữ liệu với MTU = 1500 byte, khi nó đến một router mà trên link của router đó chỉ có thể truyền được gói có MTU = 1350 byte thì router đó sẽ gửi về một bản tin báo lỗi ICMP packer too big, trong thông báo này sẽ chứa kích thước của MTU và nó sẽ xoá gói tin lớn. Node nguồn khi nhận được thông báo này sẽ giảm kích thước gói tin bằng kích thước được gửi về từ thông báo lỗi. Quá trình này có thể sẽ được lặp đi lặp lại trên đường truyền.
Nguyễn Ngọc Tân – VnPro