Giao thức ICMP (Internetwork Control Message Protocol) cho phép việc thử nghiệm và khắc phục các sự cố của giao thức TCP/IP. ICMP định nghĩa các các thông điệp được dùng để xác định khi nào một hệ thống mạng có thể phân phối các gói tin. Thật ra, ICMP là một thành phần bắt buộc của mọi hiện thực IP.

 
Trong một vài trường hợp, một gateway hoặc một máy đích sẽ cần giao tiếp với máy nguôn để báo cáo lại các lỗi xảy ra trong quá trình xử lý gói tin. Trong trường hợp đó, ICMP sẽ được dùng. ICMP sử dụng IP như thể nó (ICMP) nằm ở một mức cao hơn.

ARP không phải là một giao thức lớp network. Nó là một ứng dụng được viết trực tiếp trên lớp Datalink. Có một cách thức khác để chia các loại thông điệp này là control plane, management plane và data plane.

 

Đôi khi gói tin ping còn được gọi là ICMP echo request và ICMP echo replies, nhưng thật ra, ICMP bao gồm nhiều loại thông điệp khác nhau.

 
Ping thường được dùng để kiểm tra kết nối giữa các thiết bị. Đây là một giao thức rất phổ biến để kiểm tra sự tồn tại của một máy. Ping cũng có thể được dùng để khắc phục những vấn đề phức tạp hơn trong mạng. Phần lớn các hiện thực của lệnh ping cho phép bạn thay đổi kích thước của gói tin. Bảng dưới đây mô tả một vài thống kê về kích thước gói tin ping trong Cisco IOS và các thiết bị switch Catalyst.

 

bảng: Kích thước gói tin ping

Device

Minimum Packet Size

Maximum Packet Size

Default Packet Size

Cisco IOS

36 bytes

18024 bytes

100 bytes

Cisco Catalyst

56 bytes

472 bytes

64 bytes

 

Phần lớn các hiện thực của lệnh ping trên các máy gửi từng gói tin mỗi giây. Cisco IOS cho phép bạn gửi các gói tin nhanh hay chậm tùy thuộc vào khả năng của CPU và các thiết bị mạng có thể truyền nó như thế nào.

 

Có vài vấn đề bạn cần phải nhận biết khi dùng lệnh ping. Ping được tạo ra và được trả lời bởi CPU của các thiết bị Cisco. Mặc dù lệnh ping không có chiếm nhiều thời gian CPU, bạn phải cẩn thận khi dùng các thiết bị có tải lớn để trả lời hoặc tạo ra lệnh ping. Trên các thiết bị Cisco, tác vụ ping được gán độ ưu tiên rất thấp. Vì vậy, có thể một thiết bị đang bận rộn không thể trả lời lệnh ping. Nếu một thiết bị mà bạn đang ping không có trong bảng ARP, gói tin ping đầu tiên thường bị time-out. Do đó, phần lớn các ứng dụng mạng dùng ping sẽ gửi ra vài gói tin ping trước khi thực sự thông báo là bị mất kết nối. Cũng tương tự, bạn phải rất cẩn thận khi dùng lệnh ping để xác định độ trễ hay thông lượng của một hệ thống mạng bởi vì bạn đang đo lường ICMP performance của các đầu cuối chứ không phải đo hiệu năng thực sự của hệ thống mạng.

 

Bảng dưới đây liệt kê các loại thông điệp ICMP quan trọng nhất:

 

Loại thông điệp ICMP

Mục đích

Destination Unreachable

Thông báo cho máy nguồn là có một vấn đề trong phân phối gói tin

Time Exceed

Thời gian để chuyển một gói tin là quá lớn. Gói tin bị loại bỏ.

Source Quench

Máy nguồn đang gửi dữ liệu ở mức nhanh hơn mà máy đích có thể xử lý. Thông điệp này yêu cầu máy gửi gửi chậm lại.

Redirect

Được dùng bởi một router thông báo cho một host dùng một địa chỉ router khác tốt hơn cho những lần gửi khác sắp tới.

Echo

Được dùng bởi lệnh ping để kiểm tra kết nối.

Address/mask request/reply

Được dùng để học và để truy vấn địa chỉ IP/ mask được dùng.

Router Advertisement and Selection

Được dùng để cho phép các host học địa chỉ IP của các router gắn vào subnet.

 

Mỗi thông điệp ICMP chứa một trường Type và trường Code. Trường type để chỉ ra loại thông điệp trong bảng trên. Trường code ngầm định một loại kiểu con. Ví dụ, nhiều người hay mô tả lệnh ping như là ICMP Echo request và ICMP Echo reply nhưng trong thực tế, hai loại thông điệp trên có cùng kiểu Echo nhưng khác Code (request và reply).