ICMP (Internet Control Message Protocol) là một giao thức cốt lõi trong bộ giao thức TCP/IP, được các thiết bị mạng sử dụng để chẩn đoán và báo cáo lỗi. ICMP đóng vai trò như “tai mắt” giúp các kỹ sư quản trị giám sát tình trạng hệ thống và xử lý sự cố mạng kịp thời. Cùng khám phá chi tiết ICMP là gì và 9 loại thông báo ICMP phổ biến nhất trong bài viết dưới đây của Tenten.
Contents
ICMP (Internet Control Message Protocol – Giao thức Điều khiển Thông báo Internet) là một giao thức cốt lõi thuộc bộ giao thức TCP/IP, hoạt động tại tầng mạng, có chức năng chẩn đoán sự cố, gửi thông báo lỗi và kiểm tra kết nối.
Ví dụ, nếu một gói tin IP không thể được chuyển đến thiết bị đích hoặc router gặp sự cố như tắc nghẽn, quá tải đường truyền hay lỗi định tuyến, router sẽ tạo và gửi một bản tin ICMP về thiết bị nguồn để thông báo nguyên nhân của lỗi.
Khác với TCP hoặc UDP, ICMP không dùng để truyền tải dữ liệu ứng dụng như tải trang web hay gửi email mà chỉ hoạt động như một hệ thống “cảnh báo và kiểm tra” của hạ tầng mạng.

Giao thức ICMP có nhiều công dụng quan trọng trong việc quản lý và duy trì mạng máy tính. Dưới đây là các chức năng chính của ICMP:

ICMP hoạt động song song với các giao thức mạng như TCP/IP và UDP, đảm nhiệm vai trò truyền tải các thông điệp điều khiển, thông báo lỗi và trạng thái giữa các thiết bị trong mạng. Khi phát sinh một sự kiện như lỗi truyền dữ liệu, thay đổi tuyến đường hoặc yêu cầu kiểm tra kết nối, các thiết bị như máy tính, máy chủ và router sẽ trao đổi các gói tin ICMP để thông báo và xử lý sự cố.
Quy trình hoạt động của ICMP diễn ra theo các bước sau:

Gói tin ICMP được tạo thành từ hai phần chính là phần header và phần dữ liệu. Cụ thể như sau:
Phần ICMP Header bao gồm:
Nội dung và kích thước của phần dữ liệu sẽ thay đổi tùy theo từng loại thông điệp ICMP. Chẳng hạn, với các bản tin Echo Request và Echo Reply, phần này chứa dữ liệu do thiết bị gửi tạo ra để kiểm tra khả năng kết nối. Với các thông điệp báo lỗi, phần này bao gồm một phần tiêu đề IP cùng 8 byte đầu tiên của gói tin IP đã phát sinh lỗi.

ICMP định nghĩa nhiều loại thông báo (Type) và mã trạng thái (Code) khác nhau nhằm phục vụ việc kiểm tra kết nối, thông báo lỗi và hỗ trợ quản lý mạng. Dưới đây là những loại thông báo ICMP được sử dụng phổ biến nhất:
|
Loại ICMP |
Type / Code |
Chức năng chính |
Tình huống sử dụng phổ biến |
|
ICMP Echo Request / Echo Reply |
Type 8 (Request), Type 0 (Reply) – Code 0 |
Kiểm tra khả năng kết nối giữa hai thiết bị mạng |
Được sử dụng trong lệnh Ping để xác minh thiết bị đích có thể truy cập và đo độ trễ mạng. |
|
ICMP Destination Unreachable |
Type 3 – nhiều Code |
Thông báo gói tin không thể đến được đích |
Xuất hiện khi mạng hoặc máy chủ không thể truy cập, cổng dịch vụ bị đóng (Port Unreachable) hoặc xảy ra lỗi phân mảnh gói tin. |
|
ICMP Time Exceeded |
Type 11 – Code 0 hoặc 1 |
Báo hiệu gói tin đã vượt quá giới hạn TTL |
Thường gặp khi sử dụng Traceroute/Tracert để xác định đường đi của gói tin qua các router trung gian. |
|
ICMP Parameter Problem |
Type 12 – Code 0–2 |
Thông báo lỗi trong phần tiêu đề IP |
Được gửi khi phát hiện tiêu đề IP chứa tham số không hợp lệ, sai định dạng hoặc dữ liệu bất thường. |
|
ICMP Redirect |
Type 5 – Code 0–3 |
Đề xuất sử dụng tuyến đường tối ưu hơn |
Router gửi bản tin này để hướng dẫn thiết bị cập nhật gateway hoặc lựa chọn tuyến định tuyến hiệu quả hơn. |
|
ICMP Source Quench |
Type 4 – Code 0 |
Yêu cầu thiết bị gửi giảm tốc độ truyền dữ liệu |
Trước đây được sử dụng để xử lý tình trạng tắc nghẽn mạng nhưng hiện đã bị loại bỏ khỏi các tiêu chuẩn ICMP hiện đại do các rủi ro bảo mật. |
|
ICMP Timestamp Request / Reply |
Type 13 (Request), Type 14 (Reply) – Code 0 |
Đồng bộ và xác minh thông tin thời gian |
Được dùng để đo độ trễ và trao đổi thông tin thời gian giữa hai thiết bị mạng. |
|
ICMP Information Request / Reply |
Type 15 (Request), Type 16 (Reply) – Code 0 |
Thu thập thông tin cấu hình mạng |
Từng được sử dụng để lấy thông tin cấu hình IP, tuy nhiên hiện nay hầu như không còn được áp dụng. |
|
ICMP Address Mask Request / Reply |
Type 17 (Request), Type 18 (Reply) – Code 0 |
Xác định subnet mask của mạng |
Hỗ trợ thiết bị xác định subnet mask và cấu hình địa chỉ IP trong một số hệ thống mạng cũ. |
Ping và Traceroute là 2 lệnh chẩn đoán thông dụng nhất sử dụng giao thức ICMP.
Ping là lệnh phổ biến nhất sử dụng giao thức ICMP, dùng để kiểm tra kết nối giữa các thiết bị và đo độ trễ (latency).
Cách sử dụng:
Một số tham số thường dùng:
Cách đọc kết quả:
Kết quả trả về sẽ hiển thị thời gian phản hồi (time) theo đơn vị mili giây (ms) và tỷ lệ mất gói tin (packet loss). Thời gian phản hồi càng thấp và tỷ lệ mất gói bằng 0% thì kết nối mạng càng ổn định.
Traceroute (Linux/macOS) hoặc Tracert (Windows) là công cụ chẩn đoán mạng giúp xác định lộ trình mà các gói tin đi từ thiết bị nguồn đến một máy chủ hoặc thiết bị đích.
Traceroute ICMP hoạt động bằng cách gửi các gói tin ICMP với giá trị TTL tăng dần. Mỗi khi gói tin đi qua một router (hop), giá trị TTL sẽ giảm đi một đơn vị. Khi TTL giảm về 0, router sẽ loại bỏ gói tin và gửi lại thông điệp ICMP Time Exceeded cho thiết bị gửi. Dựa trên các phản hồi này, Traceroute sẽ ghi nhận và hiển thị từng hop mà gói tin đã đi qua trước khi đến đích.
Cách sử dụng:
Cách đọc kết quả:
Kết quả sẽ liệt kê địa chỉ IP hoặc tên của từng router cùng với thời gian phản hồi tại mỗi hop. Nếu xuất hiện thông báo “Request timed out” hoặc một hop có thời gian phản hồi tăng bất thường, đó có thể là dấu hiệu của sự cố hoặc điểm nghẽn trên đường truyền.
ICMP, TCP, và UDP là ba giao thức nền tảng trong mạng máy tính. Về cơ bản, ICMP dùng để chẩn đoán và báo lỗi mạng, trong khi TCP và UDP là giao thức lớp vận chuyển dùng để truyền dữ liệu ứng dụng.
Dưới đây là bảng so sánh chi tiết:
|
Đặc điểm |
ICMP (Internet Control Message Protocol) |
TCP (Transmission Control Protocol) |
UDP (User Datagram Protocol) |
|
Tầng mạng (OSI Model) |
Tầng Mạng (Lớp 3) |
Tầng Giao Vận (Lớp 4) |
Tầng Giao Vận (Lớp 4) |
|
Mục đích chính |
Chẩn đoán mạng, thông báo lỗi. |
Truyền dữ liệu đáng tin cậy và có thứ tự. |
Truyền dữ liệu tốc độ cao. |
|
Độ tin cậy |
Không bảo đảm (chỉ gửi/nhận thông điệp lỗi). |
Rất cao (xác nhận gói tin, gửi lại nếu mất). |
Không bảo đảm (không có cơ chế báo nhận hay gửi lại). |
|
Xử lý kết nối |
Không hướng kết nối (Connectionless). |
Hướng kết nối (Connection-oriented). |
Không hướng kết nối (Connectionless). |
|
Kiểm tra lỗi |
Không kiểm tra lỗi dữ liệu. |
Có (checksum đầy đủ). |
Có (checksum cơ bản). |
|
Sử dụng Port (Cổng) |
Không sử dụng. |
Có sử dụng (Source/Destination Port). |
Có sử dụng (Source/Destination Port). |
|
Tốc độ truyền tải |
Cực nhanh (gói tin nhỏ, đơn giản). |
Chậm hơn (do phải bắt tay, xác thực, quản lý). |
Rất nhanh (truyền ngay lập tức). |
|
Ứng dụng tiêu biểu |
Lệnh Ping, Traceroute. |
HTTP/HTTPS, Email, Truyền tệp (FTP). |
[DNS](1.1.3, 1.3.4), VoIP, Game trực tuyến, Streaming. |
Mặc dù ICMP là giao thức quan trọng trong việc kiểm tra kết nối và chẩn đoán mạng, nhưng nếu không được cấu hình và kiểm soát đúng cách, giao thức này có thể bị kẻ tấn công lợi dụng để thực hiện nhiều hình thức tấn công mạng khác nhau.
Ping Flood là hình thức tấn công từ chối dịch vụ (DoS/DDoS) bằng cách gửi liên tục một lượng lớn gói ICMP Echo Request đến thiết bị mục tiêu. Việc phải xử lý và phản hồi quá nhiều yêu cầu trong thời gian ngắn có thể khiến băng thông hoặc tài nguyên hệ thống bị quá tải, làm giảm hiệu suất hoặc khiến dịch vụ ngừng hoạt động.
Smurf Attack là hình thức tấn công khuếch đại. Tin tặc gửi yêu cầu đến địa chỉ broadcast của mạng trung gian nhưng giả mạo địa chỉ IP nguồn thành IP của nạn nhân. Mọi thiết bị trong mạng đó sẽ đồng loạt gửi trả phản hồi đến nạn nhân, làm mạng của họ bị làm ngập trong lưu lượng lớn
Ping of Death là cuộc tấn công sử dụng các gói ICMP có kích thước vượt quá giới hạn cho phép của IPv4 (65.535 byte). Khi thiết bị nhận cố gắng ghép các mảnh dữ liệu này, lỗi tràn bộ nhớ có thể khiến hệ thống bị treo hoặc sập. Đây là một lỗ hổng đã tồn tại từ lâu và hiện phần lớn hệ điều hành hiện đại đều đã được vá.
ICMP Redirect thường được dùng để thông báo cho router biết tuyến đường tối ưu. Tin tặc có thể giả mạo thông điệp này, đánh lừa hệ thống chuyển hướng lưu lượng mạng qua thiết bị của chúng, từ đó thực hiện tấn công trung gian (Man-in-the-Middle) để nghe lén hoặc đánh cắp dữ liệu.
ICMP cũng bị lợi dụng trong các cuộc tấn công khai thác đường hầm (ICMP Tunneling) để vượt tường lửa, hoặc gửi thông điệp báo lỗi bị thao túng nhằm lập bản đồ cấu trúc mạng nội bộ. Ngoài ra, việc gửi các gói tin ICMP trinh sát không được kiểm soát giúp tin tặc dễ dàng phát hiện các thiết bị đang trực tuyến trong hệ thống.

ICMPv6 là phiên bản ICMP dành cho IPv6, đảm nhiệm việc thông báo lỗi, chẩn đoán mạng, phát hiện router và tự động cấu hình địa chỉ.
Giao thức ICMP (hoạt động tại tầng Mạng (Network Layer) trong mô hình OSI.
Không. ICMP hoạt động ở tầng mạng và không sử dụng port. Các thông điệp được phân biệt qua trường Type và Code.
ICMP ping là gì là cơ chế kiểm tra kết nối bằng cách gửi gói tin Echo Request và chờ Echo Reply để xác nhận phản hồi và đo độ trễ.
Về bản chất, ICMP không an toàn vì nó không có cơ chế mã hóa hay xác thực dữ liệu. Dữ liệu ICMP có thể bị lợi dụng để tấn công từ chối dịch vụ (DDoS). Do đó, quản trị viên cần thiết lập tường lửa để kiểm soát lưu lượng ICMP thay vì mở hoặc chặn hoàn toàn.
TTL (Time-To-Live) là bộ đếm số bước nhảy (hop) tối đa một gói tin được phép đi qua mạng. Mỗi khi đi qua một bộ định tuyến, giá trị TTL bị trừ đi 1. Nếu TTL giảm về 0 mà chưa đến đích, gói tin sẽ bị hủy nhằm tránh lặp vô hạn và gây nghẽn mạng.
giao thức icmp được sử dụng trong gói tin nào
Hy vọng qua bài viết, bạn đã hiểu rõ ICMP là gì, các loại thông báo phổ biến của giao thức này và cách ứng dụng chúng vào việc quản trị, xử lý sự cố mạng thực tế. Nắm vững kiến thức về ICMP sẽ giúp bạn chẩn đoán lỗi chính xác và tối ưu hiệu suất và bảo mật hạ tầng mạng của mình