ICMP là gì? Đây là một giao thức thuộc tầng mạng (network layer) trong bộ giao thức TCP/IP. Để hiểu rõ hơn về giao giao thức icmp này, hãy cùng với HostingViet tìm hiểu chi tiết trong bài viết dưới đây.
ICMP là gì?
ICMP (Internet Control Message Protocol) là một giao thức mạng được sử dụng để gửi các thông báo lỗi và thông tin kiểm soát giữa các thiết bị trên mạng. Bạn có thể hình dung ICMP như một hệ thống báo cáo lỗi trong mạng.
Trong quá trình trao thông tin nhắn giữa người gửi và nhận, có thể xảy ra một số lỗi như tin nhắn quá dài hoặc những dữ liệu không được gửi đi theo đúng thứ tự, trong những trường hợp này, người ta sẽ dùng ICMP để thông báo cho người gửi để họ gửi lại thông báo.
Cấu trúc của ICMP
ICMP có cấu trúc gồm 2 phần chính là header và data. Cụ thể từng phần như sau:
- Header: chứa 3 trường dữ liệu quan trọng là code, type và checksum để có thể xác định loại thông báo ICMP và có thể kiểm tra tính toàn vẹn của dữ liệu.
- Data: chứa những thông tin cụ thể về lỗi hay trạng thái của kết nối mạng.
Cách ICMP hoạt động
Giao thức ICMP hoạt động cùng những giao thức mạng khác như giao thức UDP hay TCP/IP. Nó tập trung vào việc truyền tải những thông báo kiểm soát cùng với thông báo các lỗi giữa những thiết bị mạng.
Dưới đây là chi tiết cách mà ICMP hoạt động:
- Tạo thông điệp ICMP: Khi cần gửi thông báo lỗi hay thông báo kiểm soát, giao thức này sẽ tạo ra một gói tin ICMP chứa những trường dữ liệu quan trọng như mã lỗi, loại thông điệp, checksum và dữ liệu khác liên quan.
- Nhúng vào gói tin IP: Gói tin ICMP vừa được tạo sẽ được nhúng vào trong một gói tin IP như một phần dữ liệu.
- Chuyển địa chỉ đích: Gói tin ICMP được chuyển tới địa chỉ ip của thiết bị đích
- Truyền tải gói tin ICMP: Gói tin ICMP được chuyển tiếp theo quy trình định tuyến qua những thiết bị mạng như router, cách truyền tải sẽ giống với các gói tin IP khác.
- Xử lý tại thiết bị đích: Sau khi được truyền tới thiết bị đích, gói tin ICMP sẽ được rút trích và xử lý bởi chính giao thức này. Các hành động tiếp theo sẽ phụ thuộc vào mã lỗi và loại thông điệp ICMP
- Xử lý thông điệp ICMP: Thiết bị đích sẽ dựa vào mã lỗi và loại thông điệp để xử lý thông điệp ICMP
- Phản hồi (nếu cần): Đối với một số loại thông điệp ICMP thì thiết bị đích có thể sẽ phản hồi lại bằng một thông điệp tương ứng.
Chức năng của giao thức ICMP
Giao thức tin nhắn được kiểm soát trên Internet có các chức năng như sau:
Thông báo lỗi
ICMP cung cấp các thông báo lỗi liên quan đến quá trình truyền dữ liệu. Các lỗi thường gặp bao gồm:
- Destination Unreachable: Đích không thể truy cập được.
- Time Exceeded: Thời gian sống (TTL) của gói tin đã hết.
- Redirect: Định tuyến sai cần phải sửa đổi.
Bảo mật mạng
- ICMP có thể dùng để phát hiện lưu lượng truy cập mạng trái phép để ngăn cản không cho truy cập và chỉ cho phép truy cập với những lưu lượng truy cập hợp pháp.
- Tường lửa dùng ICMP để chặn hoặc cho phép truy cập một số lưu lượng nhất định.
- Các quản trị viên mạng cũng dùng nó để theo dõi trạng thái và khả năng kết nối của những thiết bị mạng và phát hiện những thiết bị không xác định.
Điều khiển dòng dữ liệu
ICMP gửi tới trạm nguồn thông báo để ngừng việc truyền thông tin khi nó quá nhanh và trạm đích không kịp xử lý.
Kiểm tra trạm làm việc
Giao thức ICMP được dùng để kiểm tra trạng thái của các trạm làm việc hoặc các thiết bị trên mạng thông qua lệnh ping (ICMP Echo Request và Echo Reply). Lệnh này sẽ giúp xác định xem thiết bị đó có tồn tại, có đang hoạt động và kết nối mạng bình thường hay không.
9 Loại giao thức ICMP phổ biến
Để có thể hiểu được 9 loại ICMP này, bạn cần biết các trường type, cũng như xác định ý nghĩa và thông điệp của chúng:
- 0: Echo reply
- 3: Destination unreachable
- 4: Source quench
- 5: Redirect
- 8: Echo
- 9: Router advertisement
- 10: Router selection
- 11: Time exceeded
- 12: Parameter problem
- 13: Timestamp
- 14: Timestamp reply
- 15: Information request
- 16: Information reply
- 17: Address mask request
- 18: Address mask reply
- 30: Traceroute
- 31: Datagram Conversion Error
- 32: Mobile Host Redirect
- 33: IPv6 Where-Are-You
- 34: IPv6 I-Am-Here
- 35: Mobile Registration Request
- 36: Mobile Registration Reply
- 37: Domain Name Request
- 38: Domain Name Reply
- 39: SKIP
- 40: Security Failures
Dưới đây là 9 loại thường thấy, bao gồm:
1. ICMP Echo reply (Loại 8, Mã 0 và 1)
Loại này lại được chia ra làm 2 loại nhỏ:
- Type = 0 -> echo request, code = 0
- Type = 8 -> echo reply, code = 0
2. ICMP Destination Unreachable (Loại 3)
Thông báo này sẽ cho bạn biết rằng gói tin không đến được điểm đích và kèm theo nguyên nhân.
3. ICMP Parameter Problem (Loại 12)
Loại giao thức này thông báo cho bạn biết có vấn đề về tham số trong gói tin.
4. ICMP Redirect/ Change Requesst (Loại 5)
Loại giao thức này thông báo điều hướng địa chỉ IP mới tới nguồn, dùng để cập nhật bảng định tuyến trên những thiết bị mạng.
5. ICMP Timestamp request (Loại 13, Mã 0 và 1)
Loại giao thức ICMP này là phương thức đồng bộ thời gian giữa nơi truyền và nơi nhận tin có thể thực hiện qua 2 loại:
- Type = 13, code = 0 -> ICMP Timestamp Request: Yêu cầu phía thiết bị đích phải ghi lại thời gian và phản hồi lại.
- Type = 14, code = 0 -> ICMP Timestamp reply: Phản hồi kèm theo thông tin thời gian từ phía thiết bị đích.
6. ICMP Information Request and Reply (Loại 15, Mã 0 và 1)
- Type = 15, code = 0 -> ICMP Information Request: Yêu cầu thiết bị đích phản hồi với thông tin hữu ích.
- Type = 16, code = 0 -> ICMP Information Reply: Phản hồi kèm thông tin yêu cầu.
7. ICMP Address Mask Request (Loại 17)
Khi máy chủ tìm được mạng con của mình thì sẽ dùng các hình thức sau:
- Type = 17, code = 0 -> ICMP Address Mask Request: Yêu cầu thiết bị đích phải cung cấp thông tin về mặt nạ mạng.
- Type = 118, code = 0 -> ICMP Address Mask reply: Phản hồi kèm thông tin mặt nạ mạng
8. ICMP Router Discovery
Giao thức ICMP này dùng để xác định bộ định tuyến khi người gửi mất default gateway.
9. ICMP Source Quench (Loại 4)
Được dùng để báo cho người gửi về sự tắc nghẽn và yêu cầu người gửi giảm tốc độ gửi gói dữ liệu.
So sánh ngắn gọn ICMP với TCP
Khi nói về giao thức mạng, ICMP và TCP thường được nhắc đến cùng nhau. Tuy nhiên, chúng có vai trò và chức năng hoàn toàn khác nhau. Để hiểu rõ hơn về sự khác biệt giữa hai giao thức này, hãy cùng chúng ta so sánh chi tiết:
TCP là một giao thức định hướng kết nối để phân phối dữ liệu đáng tin cậy, có kiểm tra lỗi. Nó thường được dùng để duyệt web và gửi email, đăng nhập từ xa, truy cập những ứng dụng truyền tệp. TCP yêu cầu bắt tay, một loạt các thông báo thiết lập sự tin tưởng và xác thực giữa người nhận và người gửi. Nó đảm bảo gửi thông báo.
Ngược lại với TCP, ICMP lại là một giao thức không kết nối, nó không đảm bảo chuyển phát tin nhắn vì ICMP chỉ được dùng để báo cáo lỗi, những tin nhắn ICMP cũng có kích thước nhỏ hơn so với TCP.
2 giao thức này được sử dụng kết hợp để thiết lập lý do tại sao việc gửi TCP không thành công.
Vậy là trên đây HostingViet đã giới thiệu cho bạn “ICMP là gì?”, 9 loại giao thức ICMP và những thông tin xoay quanh nó. Hy vọng các thông tin trong bài viết này sẽ hữu ích với bạn.