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:
Hình 2.7 Cấu trúc gói tin ICMP 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.
bit 160 – 167 168 – 175 176 – 183 184 – 191
160 Type Code Checksum
ID & Sequence (32 bit): Có giá trị trong tr ờng hợp ICMP Echo Request và Echo Reply.