2 Bộ giao thức TCP/IP – Các giao thức và khuôn dạng dữ liệu chính
2.4.5 ICMP (internet control message protocol)
Giao thức ICMP cung cấp cơ chế thông báo lỗi và các tình huống không mong muốn cũng như điều khiển các thông báo trong bộ giao thức TCP/IP. Giao thức này được tạo ra để thông báo các lỗi dẫn đường cho trạm nguồn. ICMP phụ thuộc vào IP để có thể hoạt động và là một phần không thể thiếu của bộ giao thức TCP/IP, tuy nhiên nó không phải giao thức dùng để truyền tải dữ liệu nên thường được coi nằm trong tầng Internet (Internet layer) mà không phải là tầng giao vận (transport layer). Chức năng của ICMP như sau:
Cung cấp thông báo phản hồi và trả lời để kiểm tra độ tin cậy của kết nối giữ hai trạm. Điều này được thiết lập bởi câu lệnh PING (Packet internet gropher).
Địch hướng lại lưu lượng để cung cấp việc dẫn đường hiệu quả hơn khi một bộ dẫn đường quá tải dõ lưu lượng qua nó quá lớn.
Gửi thông báo về thời gian quá khi datagram của trạm nguồn đã vượt quá TTL và bị loại bỏ.
Gửi quảng cáo dẫn đường để xác định địa chỉ của các bộ dẫn đường trên đoạn mạng.
Cung cấp các thông báo quá hạn thời gian.
Xác định subnet mask nào được sử dụng trên đoạn mạng.
Dữ liệu của gói ICMP sẽ được đóng gói bởi giao thức IP và Ethernet như trong hình vẽ sau:
Đơn vị dữ liệu của ICMP bao gồm 2 phần: Header và Data. Phần Data trong Window có độ lớn là 32 và theo ngay sau phần Header. Header được bắt đầu sau bit thứ 160 của gói tin IP (trừ khi phần IP Option được sử dụng) có cấu trúc như sau:
Trong đó:
Type (8 bit): Loại gói tin ICMP.
Code (8 bit): Chi tiết về các đặc điểm của gói tin ICMP. Checksum( 16 bit) Mã sửa lỗi CRC.
ID & Sequence (32 bit): Có giá trị trong trường hợp ICMP Echo Request và Echo Reply.