ICMP - Echo/Echo Reply (Ping) Message

Giới thiệu
Như đã được đề cập trong bài trước, 1 Echo chỉ đơn giản như hầu hết mọi người thường gọi là 1 "ping", Echo Reply là "ping reply". Các ICMP Echo được sử dụng chủ yếu để xử lý sự cố. Khi 2 host đang có vấn đề trong việc truyền thông với nhau, thì một vài yêu cầu ICMP Echo đơn giản sẽ cho ta thấy được liệu có vấn đề gì với các gói tin định tuyến trên đường truyền đến đích hay không.

Chúng ta hãy thử nhìn vào hình minh họa cho 1 gói ICMP Echo/Echo Reply:




Nếu gói dữ liệu ở trên là 1 ICMP Echo (ping), thì trường Type sẽ có giá trị là 8. Nếu đó là 1 ICMP Echo Reply (ping reply) thì nó sẽ có giá trị là 0.
Hình dưới đây là ảnh chụp lại khi tôi làm 1 thao tác ping đơn giản trên máy của tôi:


Nhìn vào ảnh chụp màn hình ở trên, có thể thấy được tôi đã 'ping' đến www.firewall.cx. Điều đầu tiên máy của tôi phải làm là phân giải URL thành địa chỉ IP. Điều này hoàn thành được nhờ sử dụng DNS (có thể xem loạt bài DNS). Một khi máy chủ DNS trả về địa chỉ IP của www.firewall.cx, thì máy trạm tạo ra 1 gói ICMP với giá trị của trường Type là 8.
Đây là bằng chứng:


Gói tin được hiển thị trong hình trên là 1 trong 4 gói tin được gửi đi từ máy của tôi đến máy chủ Web của firewall.cx (xem hình Full ở đây).
Chú ý trường ICMP type = 8 ở ngay dưới phần ICMP Header. Điều này rõ ràng cho thấy rằng đây là gói tin được gửi đi đến máy trạm chứ không phải là gói tin nhận được từ Server. Nếu nó là gói nhận được từ Server thì nó đã phải là 1 Echo Reply với trường ICMP type = 0.
Nếu bạn để ý thì có 1 điều lạ ở trường Data. Nhìn vào ảnh chụp từ command promt và chúng ta có thể thấy giá trị ở đó là 32 bytes trong khi ở gói mà chương trình sniffer chụp được là 40 bytes.
Nguyên nhân là do các gói tin sniffer được tính cả các ICMP Header files (ICMP type, code, checksum và identifier) và tôi sẽ chứng minh cho bạn xem ngay bây giờ.
Nhìn vào hình đầu tiên của bài này thì có thể thấy hình đó đã phân tích ICMP Header, bạn sẽ nhận thấy rằng các chiều dài (tính bằng bit) của các trường khác nhau sẽ theo thứ tự như sau: 8, 8, 16, 16, 16. Tổng cộng ta có 64 bits = 8 bytes. Ta có 32 bytes dữ liệu (xem trên hình command promt) cộng thêm 8 bytes ta được tổng cộng 40 bytes.
Và đó là những gì bài này nói về 2 thông điệp ICMP (Echo và Echo Reply).

Lược dịch từ bài gốc: Click Here






Không có nhận xét nào:

Đăng nhận xét