ICMP (Internet Control Message Protocol)

Chủng loại

ICMP echo

ICMP Destination Unreachable

ICMP Parameter Problem

ICMP Redirect/ Change Request

ICMP Timestamp request

ICMP Information Request and Reply

ICMP Address Mask Request

ICMP Router Discovery

ICMP Source Quench

TYPE

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

ICMP nằm ở Network Layer

ICMP tiêu biểu

ICMP Echo

echo reply, code = 0

echo request, code = 0

ICMP Destination Unreachable

ICMP Parameter Problem

Nếu khi sảy ra lỗi ở dữ liệu và không thể chuyển tiếp nó đi được thì thiết bị trung gian sẽ gửi một thông báo cho Sender trong các trường như sau:


Type = 12 Code = 0 – 2

Lưu ý rằng phần này chỉ kiểm soát thông tin và các thông báo chứ chúng 0 mang thông báo đi.

ICMP Redirect/ Change Requesst

.

Là phương thức được gửi đi bởi một gateway mặc định sau đó báo cho host nhận biết là có best path:

Tại giao diện mà các gói đã đi vào sau đó lại đựơc các định tuyến đi ra.

Tại mạng con hay mạng của địa chỉ IP nguồn cùng mạng con hay mạng với nexthop.

Khi host được để mặc định là gửi thông báo thì ICMP để bỏ default này sẽ nhận lệnh: "no ip redirects".

.

Ứng với các type và code 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 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:

Type = 13, code = 0 -> ICMP Timestamp Request

Type = 14, code = 0 -> ICMP Timestamp reply

Trong trường hợp size là 16 bit là ID thì để nhận biết giữ các cặp reply/request có thể dùng số thứ tự.

ICMP Information Request and Reply

.

Phương thức này để có thể xác định số mạng được sử dụng. Thực hiện qua:

Type = 15, code = 0 -> ICMP Information Request

Type = 16, code = 0 -> ICMP Information reply

Trong trường hợp size là 16 bit là ID thì để nhận biết giữ các cặp reply/request có thể dùng số thứ tự.

ICMP Address Mask Request

.

Khi máy chủ tìm được mạng con của mình thì 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

Ngoài ra còn có 2 trường có size là 16 bit và là ID và 32 bit dành cho Address Mask, chúng sẽ liên kết với nhau và không sử dụng thông báo trả lời vì nó là địa chỉ chính xác của máy chủ.

Định dạng gói tin ICMP Message

ICMP Source quench

Type = 4

Giả sử người gửi gửi lại gói với tốc độ cao hơn và bộ định tuyến không thể xử lý tốc độ dữ liệu cao. Để khắc phục tình trạng như vậy, bộ định tuyến sẽ gửi một bản tin ngắt nguồn để bảo người gửi gửi gói tin với tốc độ thấp hơn.

Thông báo ngắt nguồn thông báo cho người gửi rằng gói dữ liệu đã bị loại bỏ do tắc nghẽn xảy ra trong lớp mạng.
Vì vậy, người gửi phải dừng hoặc làm chậm việc gửi các gói dữ liệu cho đến khi giảm tắc nghẽn.
Bộ định tuyến sẽ gửi một thông báo ngắt nguồn cho mỗi sơ đồ dữ liệu bị loại bỏ do tắc nghẽn trong lớp mạng.

ICMP Time Exceeded

Đôi khi tình huống phát sinh khi có nhiều bộ định tuyến tồn tại giữa người gửi và người nhận. Khi người gửi gửi gói tin, thì gói tin đó sẽ di chuyển trong một vòng lặp định tuyến. Thời gian vượt quá được dựa trên giá trị thời gian tồn tại. Khi gói tin truyền qua bộ định tuyến, thì mỗi bộ định tuyến giảm giá trị của TTL đi một. Bất cứ khi nào một bộ định tuyến giảm một sơ đồ có giá trị thời gian tồn tại xuống 0, thì bộ định tuyến sẽ loại bỏ một sơ đồ và gửi thông báo vượt quá thời gian đến nguồn ban đầu.

Mỗi lớp MAC có các đơn vị dữ liệu khác nhau. Ví dụ: một số lớp có thể xử lý tối đa 1500 đơn vị dữ liệu và một số lớp có thể xử lý tối đa 300 đơn vị. Khi gói được gửi từ lớp có 1500 đơn vị đến lớp có 300 đơn vị, thì gói tin được chia thành các đoạn; quá trình này được gọi là phân mảnh. 1500 đơn vị này được chia thành 5 mảnh, tức là f1, f2, f3, f4, f5, và những mảnh này đến đích theo một chuỗi. Nếu tất cả các mảnh không đến đích trong một thời gian nhất định, chúng sẽ loại bỏ tất cả các mảnh đã nhận và gửi một thông báo đã vượt quá thời gian tới nguồn ban đầu.