Tìm hiểu về giao thức ICMP và ICMP message:

Thuật ngữ ICMP được viết tắt bởi Internetwork Control Message Protocol là một giao thức hoạt động trên layer 2 - Internetwork trong mô hình TCP/IP hoặc layer 3 - Network trong mô hình OSI cho phép kiểm tra và xác định lỗi của Layer 3 Internetwork trong mô hình TCP/IP bằng cách định nghĩa ra các loại thông điệp có thể sử dụng để xác định xem mạng hiện tại có thể truyền được gói tin hay không
Trong thực tế, ICMP cần các thành phần của mọi gói tin IP để có thể hoạt động được.
- Thỉnh thoảng một gateway hoặc một máy đích sẽ liên lạc với máy nguồn để đưa ra những thông điệp lỗi về tiến trình xử lý các gói tin. Đó là mục đích chính của giao thức này. ICMP sử dụng với một mục đích đơn giản là hỗ trợ cho sự hoạt động của giao thức IP.
- Trong khi truyền các gói tin Ping, cũng được biết đến như các gói tin ICMP echo requests, và ICMP echo replies. ICMP bao gồm rất nhiều các loại thông điệp khác nhau cho những mục đích đa dạng khác nhau. Bảng 1.1 sẽ là danh sách các loại thông điệp quan trọng và thường sử dụng:


hình 1.1: ICMP Message Type.

 

- Mỗi thông điệp của ICMP có chứa một trường Type và một trường Code. Trường Type là trường biểu diễn các loại thông điệp - xem trong bảng 1.1, còn trường Code chứa các thông điệp con (subtype). Cho ví dụ, có nhiều người cho rằng có hai loại thông điệp được đưa ra khi sử dụng câu lệnh Ping như: ICMP Echo Request và ICMP echo Reply, nhưng thực tế, hai loại thông điệp đó thuộc cùng một loại thông điệp là Echo và khác Code (Request và Reply). Các bạn có thể được giới thiệu chi tiết hơn về các loại thông điệp của ICMP như sau:

1. ICMP Unreachable
- Khi một thiết bị thực hiện việc truyền một gói tin đến máy đích nhưng không thực hiện được thì thiết bị đó sẽ gửi lại một thông điệp là ICMP Unreachable. Để trợ giúp cho việc xác định nguyên nhân chính của việc gói tin đó không thể gửi được, thì thông điệp ICMP Unreachable sẽ bao gồm một trọng năm giá trị Code để biểu diễn nguyên nhân việc truyền dữ liệu không thành công. Cho ví dụ: hình 1.2 máy VNE_1 đang cố gắng kết nối đến Web server, Web server này được gọi là Web. Bảng 1.3 sẽ đưa ra danh sách những loại Code của thông điệp ICMP Unreachable

hình 1.2: Sample Network for ICMP Unreachable Examples

 

Bảng 1.3: ICMP Unreachable Codes

 

- Ví dụ: hình 1.4 ICMP debug trên Router B, Khi đang chạy câu lệnh Trace trên Router A.
3. ICMP Redirect

Thông điệp ICMP Redirect cho phép một router gateway nói cho một máy nào đó biết về một router tốt hơn có thể được sử dụng trong quá trình truyền dữ liệu đến một máy đích nào đó. Để có thể thực hiện được điều đó, một ICMP Redirect sẽ được gửi từ router gateway đến máy đó và nói cho máy đó biết về địa chỉ IP về router tốt hơn kia. Cho ví dụ, hình 1.5 một PC dùng địa chỉ IP của rRouter B như là default gateway của nó, nhưng Router A có một đường đi đến mạng 10.1.4.0/24 có chi phí tốt hơn của Router B. Khi đó Router B sẽ đưa ra một thông điệp ICMP Redirect cho PC đó theo các bước như sau:
- PC gửi một gói tin, máy đích thuộc mạng 10.1.4.0/24, qua Router B (Vì router B là default gatewary của PC này)
- Router B sẽ chuyển gói tin đó dựa vào bảng định tuyến của chính nó.
- Router B gửi một thông điệp ICMP Redirect đến PC đó, và nói cho PC đó biết rằng lần sau khi gửi dữ liệu đến mạng 10.1.4.0/24 thì gửi qua Router A (vì trong bảng định tuyến của RouterA cũng chứa đường đi tới mạng 10.1.4.0/24 và đường đi này có chi phí tốt hơn của Router B).
- Những gói tin tiếp theo được gửi từ PC đó đến mạng 10.1.4.0/24 sẽ được gửi trực tiếp qua Router A


hình 1.5: Ví dụ về một ICMP Redirect

Với những kiến thức về các loại thông điệp của ICMP sẽ giúp các bạn có thể kiểm tra và sửa lỗi hệ thống mạng được tốt hơn.
  



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
DeviceMinimum Packet SizeMaximum Packet SizeDefault Packet Size
Cisco IOS36 bytes18024 bytes100 bytes
Cisco Catalyst56 bytes472 bytes64 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 ICMPMục đích
Destination UnreachableThông báo cho máy nguồn là có một vấn đề trong phân phối gói tin
Time ExceedThời gian để chuyển một gói tin là quá lớn. Gói tin bị loại bỏ.
Source QuenchMá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).

Post a Comment

أحدث أقدم