ICMP là gì? ICMP được viết tắt của cụm từ Internet Control Message Protocol. Đó là giao thức xử lý các thông báo trạng thái cho địa chỉ IP. ICMP được sử dụng để thông báo các lỗi xảy ra khi truyền các dữ liệu trên mạng. Để có thể hiểu chi tiết hơn về khái niệm ICMA, phân loại cũng như đặc điểm của từng loại thường thấy nhất hiện nay, cùng tham khảo bài viết dưới đây nhé!
ICMP là gì?
Bạn đọc có thể hiểu một cách đơn giản giao thức ICMP là một giao thức của gói Internet Protocol hay còn được gọi là giao thức điều khiển truyền tin qua mạng Internet. ICMP thuộc tầng vận chuyển (Transport Layer).
Giao thức này được sử dụng để thông báo các lỗi có thể xảy ra trong quá trình truyền tin của các gói dữ liệu qua mạng. Chúng còn được sử dụng để thăm dò cũng như quản lý quá trình hoạt động của mạng Internet. Tuy nhiên bạn cũng không nên nhầm lẫn ICMP là giao thức truyền tải gửi dữ liệu giữa các hệ thống với nhau.
Chúng chỉ được xem như bộ định tuyến. Ngay sau khi người dùng phát hiện ra lỗi thì ICMP sẽ ngay lập tức tạo và gửi thông báo tới địa chỉ IP nguồn. Đối với trường hợp gặp các sự cố mạng ngăn chặn việc phân phối các địa chỉ IP packages hay một gateway không thể nào truy cập Internet được.
Giao thức ICMP không được dùng thường xuyên trong các ứng dụng dành cho người dùng cuối. Nó chỉ được sử dụng bởi các nhà quản trị mạng với mục đích khắc phục các kết nối Internet trong các tiện ích chuẩn đoán (diagnostic utilities) gồm ping và traceroute.
Các thông số cơ bản trong cấu trúc gói tin IMCP
- bytes: kích thước của gói tin ICMP
- time: thời gian hồi đáp của gói tin
- TTL (time -to-live): Là trường dài 8 bit có giá trị tối đa là 255 được sử dụng để chống lại sự lặp vòng (routing loop). Mỗi khi TTL đi qua con Router thì giá trị của nó lại giảm đi 1 đơn vị. Khi Router nhận gói tin có TTL = 0 thì nó sẽ tự drop gói tin đó lại.
Bản tin ICMP có trong phần dữ liệu của gói tin IP. Cho dù mỗi bản tin ICMP có dạng riêng của nó, tuy nhiên chúng đều bắt đầu với 3 trường như sau:
- TYPE (8bit): là 1 số nguyên 8bit được sử dụng để xác định thông điệp.
- CODE (8bit): được dùng cung cấp thêm thông tin về kiểu thông điệp.
- CHECKSUM(16bit): ICMP sử dụng thuật gii checksum như địa chỉ IP, nhưng ICMP checksum thì chỉ tính đến thông điệp ICMP.
Ngoài ra, các thông điệp ICMP thông báo lỗi luôn bao gồm phần đầu và 64bit đầu tiên của packet gây ra lỗi. Cũng bởi phần đầu này với phần đầu packer là để cho phép nơi nhận xác định chính xác hơn các giao thức nào và chương trình ứng dụng có trách nhiệm đối với packet.
Giao thức ICMP có chức năng gì?
Giao thức ICMP có rất nhiều ứng dụng, trong đó Ping là ứng dụng được sử dụng phổ biến nhất hiện nay. Hơn nữa, ICMP còn sở hữu rất nhiều chức năng bổ ích như:
Điều khiển dòng dữ liệu
Trong trường hợp trạm nguồn gửi dữ liệu đến quá nhanh mà trạm đích không kịp xử lý, khi đó trạm đích hay 1 thiết bị dẫn đường gửi trả trạm nguồn 1 thông báo để trạm nguồn tạm dừng việc truyền thông tin.
Gửi thông báo lỗi
Khi bạn không tìm thấy trạm đích thì 1 thông báo lỗi Destination Unreachable sẽ được Router gửi trả lại trạm nguồn.
Nếu như số hiệu cổng không phù hợp, trạm đích sẽ gửi thông báo lỗi lại cho trạm nguồn.
Kiểm tra trạm làm việc
Khi 1 máy tính muốn kiểm tra 1 máy khác có tồn tại và hoạt động nữa hay không, nó sẽ gửi 1 thông báo Echo Request.
Khi trạm đích nhận được thông báo trên, nó sẽ gửi lại 1 Echo Reply. Lúc này lệnh ping sử dụng các thông báo này để kiểm tra kết nối.
Đặc điểm của các loại ICMP phổ biến
ICMP echo
Đây là loại EMCP thường thấy nhất và chúng đóng vai trò vô cùng quan trọng. Hiện nay có 2 loại ICMP echo đó là echo request và echo reply.
Type = 0 -> echo request, code = 0
Type = 8 -> echo reply, code = 0
ICMP Destination Unreachable
Nếu điểm ICMP không thể truy cập thì các thiết bị trung gian sẽ gửi 1 thông báo về cho người gửi. Ứng với từng nguyên nhân khác nhau sẽ cho ra các giá trị và các code riêng biệt.
Góp phần chia sẻ thông tin trực tuyến một cách dễ dàng và nhanh chóng thì Ondriver là ứng dụng không thể thiếu trong mọi công việc hiện nay. Tuy nhiên microsoft onedrive là gì bạn đã biết chưa?
ICMP Parameter Problem
Nếu khi gặp lỗi ở dữ liệu và không thể chuyển tiếp nó đi đâu được thì thiết bị trung gian sẽ gửi 1 thông báo cho Sender trong trường hợp Type = 12 Code = 0 – 2
Lưu ý phần này chỉ được sử dụng để kiểm soát thông tin và các thông báo chứ chúng không mang thông báo đi.
ICMP Redirect/ Change Requesst
Đây là phương thức được gửi đi bởi 1 gateway mặc định, sau đó báo với host nhận biết là có best path hay không.
Ở giao diện mà các gói ICMP đã đi vào sau đó lại được định tuyến đi ra.
Ở mạng con hay mạng của địa chỉ IP nguồn cùng với mạng con hay mạng với nexthop.
Khi host được để ở trạng thái mặc định là gửi thông báo thì ICMP để bỏ default này sẽ nhận lệnh “no ip redirects”.
Tương ứng với các type và code như sau:
Type = 5 code = 0 -> Redirect datagram for the network
Type = 5 code = 1 -> Redirect datagram for the host
Type = 5 code = 2 -> Redirect datagram for the type of service and the network
Type = 5 code = 3 -> Redirect datagram for the type of service and the host
ICMP Timestamp request
Đây chính là phương thức đồng bộ thời gian giữa nơi truyền và nhận tin có thể thực hiện qua:
Type = 13, code = 0 -> ICMP Timestamp Request
Type = 14, code = 0 -> ICMP Timestamp reply
Đối với trường hợp size 16 bit là địa chỉ ID thì việc nhận biết giữa các cặp reply/request có thể sử dụng số thứ tự.
ICMP Information Request and Reply
Phương thức ICMP này có thể xác định số mạng sử dụng qua:
Type = 15, code = 0 -> ICMP Information Request
Type = 16, code = 0 -> ICMP Information reply
Trong trường hợp size 16 bít là địa chỉ ID thì để có thể nhận biết các cặp reply/request bạn có thể sử dụng số thứ tự.
ICMP Address Mask Request
Một khi máy chủ tìm được mạng con của mình, thiết bị này sẽ sử dụng các hình thức:
Type = 17, code = 0 -> ICMP Address Mask Request
Type = 118, code = 0 -> ICMP Address Mask reply
Bên cạnh đó còn có 2 trường có size 16 bit là ID và 32 bit dành cho Address Mask. Chúng sẽ liên kết với nhau và không dùng thông báo trả lời bởi nó là địa chỉ hoàn toàn chính xác của máy chủ khi bạn thuê máy chủ ảo.
ICMP Router Discovery
Hình thức ICMP này dùng để xác định bộ định tuyến khi sender mất default gateway, được thực hiện bởi Type = 9 Code =0
ICMP Source Quench
Giao thức này được sử dụng để báo cho người gửi biết là có hiện tượng tắc nghẽn và hỏi họ xem có muốn giảm tốc độ gửi gói dữ liệu đi hay không như sau: Type = 4 Code = 0
Trên đây là một số thông tin cơ bản về giao thức thông báo trạng thái cho địa chỉ IP. Hy vọng chúng đã giúp bạn phần nào hiểu hơn về cấu trúc gói tin ICMP và đặc điểm của từng loại ICMP thường thấy nhất hiện nay để sử dụng chúng một cách hiệu quả nhất. Đừng quên theo dõi các bài viết tại BKHost để cập nhật những thông tin mới nhất về giao thức ICMP và nhiều dịch vụ hấp dẫn khác khi phát triển kinh doanh trên Internet nhé!