Giao thức thông báo điều khiển Internet (ICMP) là gì và nó hoạt động như thế nào?
Internet Control Message Protocol (ICMP) là một giao thức lớp thứ ba (lớp mạng) trong mô hình bảy lớp OSI. Giao thức chẩn đoán sự cố kết nối mạng hoặc truyền dữ liệu giữa các thiết bị. Nó giúp bằng cách gửi, nhận và xử lý các tin nhắn ICMP để báo cáo sự cố kết nối với thiết bị mạng nguồn.
Do đó, mục đích chính của giao thức ICMP là báo cáo lỗi ở lớp mạng. Tuy nhiên, các tác nhân độc hại có thể thao túng chức năng của nó để khởi động các cuộc tấn công như tấn công từ chối dịch vụ phân tán (DDoS) và tấn công Ping of Death. Tại đây, bạn sẽ tìm hiểu về giao thức ICMP, trường hợp sử dụng của nó và các tham số quan trọng để hiểu thông báo ICMP.
Mục Lục
ICMP hoạt động như thế nào?
Bộ định tuyến sử dụng giao thức ICMP để thực hiện quản lý mạng và chẩn đoán sự cố. Nó tạo và gửi thông báo lỗi đến thiết bị người gửi khi mạng vô hiệu hóa việc phân phối các gói đến thiết bị đích. Các thông báo lỗi này bao gồm vượt quá thời gian, sự cố tham số, không thể truy cập đích, tắc nghẽn mạng, v.v.
Ví dụ: khi một người gửi gửi dữ liệu từ một thiết bị đến thiết bị đích dưới dạng IP datagram, nó sẽ truyền qua nhiều bộ định tuyến hoặc thiết bị trung gian. Đôi khi, có thể xảy ra lỗi khi chuyển tiếp gói dữ liệu IPV4 đó. Do đó, thông báo ICMP được chia thành hai loại lớn: thông báo lỗi và thông báo truy vấn.
Thông báo báo cáo lỗi
Đây là những thông báo mà bộ định tuyến hoặc máy chủ trung gian có thể gặp phải trong quá trình xử lý datagram:
- Đã quá thời gian: Gói ICMP có tham số thời gian tồn tại mà khi nó đạt đến 0, bộ định tuyến hoặc máy chủ lưu trữ loại bỏ gói dữ liệu và gửi thông báo lỗi vượt quá thời gian. Thông báo cũng được gửi khi đích không nhận được tất cả các đoạn dữ liệu.
- Điểm đến không thể truy cập: Thiết bị khởi tạo kết nối nhận được thông báo lỗi đích không thể truy cập được khi bộ định tuyến hoặc máy chủ trung gian không gửi được thông báo đó. Do đó, các thiết bị loại bỏ datagram.
- Nguồn nhúng vô nước: Khi các thiết bị không gửi được gói dữ liệu do tắc nghẽn mạng, chúng sẽ gửi một ICMP “thông báo dập tắt nguồn” cho người gửi tin nhắn. Thông báo báo lỗi bổ sung kiểm soát luồng trong lớp mạng bằng cách thông báo cho thiết bị nguồn về tắc nghẽn trong đường dẫn và làm chậm quá trình gửi dữ liệu.
- Chuyển hướng: Một bộ định tuyến trong một đường dẫn không tối ưu sẽ chuyển hướng gói tin đến một bộ định tuyến có đường dẫn tối ưu giữa nguồn và đích. Như vậy, nó cập nhật nguồn về sự thay đổi trong lộ trình của nó.
- Vấn đề tham số: Thiết bị nguồn nhận được thông báo này khi thiếu bất kỳ giá trị nào trong tiêu đề datagram. Ví dụ: sự khác biệt trong tổng tổng kiểm tra được tính toán tại đích từ nguồn tạo ra thông báo lỗi ICMP này.
Thông báo truy vấn
Các thông báo truy vấn xảy ra theo cặp và cung cấp thông tin cụ thể từ thiết bị trung gian đến thiết bị nguồn.
- Echo-Request và Echo-Reply Message: Các thông báo này giúp giải quyết các sự cố chẩn đoán mạng.
- Yêu cầu dấu thời gian và trả lời: Các yêu cầu dấu thời gian và tin nhắn trả lời này giúp xác định thời gian khứ hồi giữa các thiết bị.
Hiểu các thông số ICMP
Dữ liệu thông báo ICMP được đóng gói dưới tiêu đề IP, có nghĩa là tiêu đề sơ đồ ICMP xuất hiện sau thông tin IPv4 / v6. Phần đầu tiên của tiêu đề gói ICMP chứa các tham số giúp thiết bị mạng xác định lỗi hoặc thông báo truy vấn.
Trong số 32 bit đầu tiên, 8 bit đầu tiên xác định loại thông điệp, 8 bit tiếp theo xác định mã của thông điệp, và các bit còn lại chứa thông tin liên quan đến tính toàn vẹn của dữ liệu. Do đó, ba trường thông tin là: loại ICMP, mã ICMP và Checksum.
Các loại ICMP
Loại xác định mục đích của gói ICMP. Vì nó giải thích ngắn gọn lý do tại sao thiết bị nguồn lại nhận được thông báo đó. Có 0-255 loại tin nhắn ICMP, mỗi loại cung cấp thông tin khác nhau. Một số loại ICMP quan trọng là:
0: Yêu cầu tiếng vang
3: Không thể truy cập điểm đến
4: Nguồn Quench
5: Chuyển hướng
8: Trả lời bằng tiếng vang
11: Quá thời gian
12: Vấn đề tham số
30: Traceroute
Mã ICMP
Mã ICMP cung cấp thông tin bổ sung về các tin nhắn. Ví dụ: ICMP loại 3 với mã 0-15 chỉ định lý do tại sao không thể truy cập được đích; nghĩa là, nếu mã là 0, thì đó là do mạng không khả dụng. Tương tự, đối với mã loại 3 1, thông báo chỉ định rằng máy chủ không thể truy cập được.
Hơn nữa, loại 8 mã 0 và loại 0 mã 0 đại diện cho các thông báo phản hồi yêu cầu và phản hồi tiếng vọng. Do đó, mỗi loại tin nhắn có cùng giá trị mã sẽ cung cấp thông tin mạng khác nhau.
Checksum
Tổng kiểm tra là một cơ chế phát hiện lỗi xác định tính toàn vẹn của dữ liệu. Giá trị tổng kiểm đại diện cho các bit trong thông điệp truyền. Người gửi tính toán và bao gồm tổng kiểm dữ liệu, và người nhận sẽ tính toán lại giá trị và so sánh với giá trị ban đầu để xác định bất kỳ thay đổi nào đối với thông điệp gốc trong quá trình truyền.
Phần thứ hai của tiêu đề trỏ đến giá trị byte là nguyên nhân gây ra sự cố trong thư gốc. Cuối cùng, phần cuối của gói ICMP là gói dữ liệu thực tế.
Trường hợp sử dụng ICMP
Dưới đây là một số ví dụ làm việc của giao thức ICMP trong các tiện ích quản trị và quản lý mạng khác nhau.
Ping
Ping là một tiện ích dòng lệnh dựa trên các thông báo ICMP echo-request và echo-reply để kiểm tra độ khả dụng và độ trễ của mạng giữa các thiết bị. Tiện ích chỉ đơn giản là xác định tính khả dụng của máy chủ đích bằng cách ước tính tổng gói được gửi hoặc nhận và phần trăm mất gói. Nó cũng giúp xác định tổng kích thước đơn vị truyền tải tối đa (MTU).
Sử dụng ping
Traceroute
Traceroute là một tiện ích dòng lệnh khác sử dụng các thông báo echo-request và echo-reply với một biến TTL để ánh xạ đường dẫn giữa thiết bị nguồn và thiết bị đích. Nó cũng hữu ích trong việc xác định độ trễ phản hồi và đảm bảo độ chính xác bằng cách truy vấn mỗi bước nhảy nhiều lần.
ICMP hoạt động như thế nào khi không có cổng?
Từ giải thích ở trên, ICMP là một giao thức không kết nối gửi dữ liệu độc lập dưới dạng một biểu đồ dữ liệu và tiêu đề của nó xuất hiện sau chi tiết IPv4. Tuy nhiên, bạn cũng có thể nhận thấy sự vắng mặt của số cổng, điều này đặt ra câu hỏi về cách các thiết bị nhận dữ liệu ICMP hoặc nhận biết được bất kỳ kết nối nào?
Câu trả lời là khá đơn giản. Giao thức ICMP được thiết kế để hoạt động ở lớp mạng của Mô hình OSI và giao tiếp giữa các bộ định tuyến và máy chủ để chia sẻ thông tin. Số cổng là một phần của Lớp truyền tải và ICMP không phải là giao thức TCP hay UDP. Cuối cùng, loại ICMP và sự kết hợp mã giúp thiết bị xác định thông báo và nhận tất cả thông tin về mạng.
Kiểm soát lỗi và luồng với ICMP
Các chi tiết ở trên về giao thức ICMP cho thấy cách nó đảm bảo kiểm soát luồng và kiểm soát lỗi dữ liệu ở lớp ba của mô hình OSI. Các thông báo và tham số giao thức trong phần đầu tiên của tiêu đề gói ICMP bao gồm tất cả các khía cạnh của các vấn đề về quản lý và chẩn đoán mạng.
Điều quan trọng cần biết là cài đặt tường lửa không phù hợp có thể cho phép những kẻ tấn công quét qua mạng của tổ chức và khiến tổ chức dễ bị tấn công DDOS, ping chết và ICMP. Bạn có thể sử dụng Wireshark để nắm bắt các gói từ internet và thực hiện phân tích chi tiết các gói ICMP để hiểu rõ hơn.
Đọc tiếp
Thông tin về các Tác giả