目录
- ICMP概念
- ICMP作用
- ICMP重定向
- ICMP差错检测
- ICMP数据包格式
- ICMP消息类型和编码类型
- ICMP应用-ping
1. ICMP概念
ICMP协议:internet控制消息协议,是网络层的一个重要协议。基于IP,严格意义上来讲它并不属于网络层协议,但他并没有到达传输层的层次。
2. ICMP作用
用来在网络设备间传递各种差错和控制信息,并用于收集各种网络信息,诊断和排除各种网络故障等
他是用来传递差错、控制、查询信息的
3. ICMP重定向
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据包向它的目的地转发。
- 主机想要实现通信需要将数据包转发给网关,网关设置在路由器的接口上。
- 主机A想要与服务器A进行通信必须要经过默认网关,所以会将数据包传给RTB。
- RTB会查询自己的路由表,发现RTA才是最优路径,RTB就会先将数据包转发给RTA,让他发给服务器A
- RTB会给主机A发送一个重定向报文,告诉主机A如果要走向20.0.0.0网段,直接走向RTA
4. ICMP差错检测
ICMP echo request和ICMP echo reply分别用来查询和响应某些信息,进行差错检测
ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。发送echo request进行查询,echo reply进行回复,如果收到00,代表查询的信息是正常的;如果收到3开头,代表不可达。
5. ICMP错误报告
当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。
-
不可达类型:
- 网络不可达
- 主机不可达
- 端口不可达
- 协议不可达
6. ICMP数据包格式
- Type:ICMP消息类型
- ICMP echo request
- ICMP echo reply
- 目的不可达
- 重定向
- Code:同一消息类型中的不同信息
- Checksum:校验和
7. ICMP消息类型和编码类型
- 类型:type
- 编码:code
8. ICMP应用-Ping
- -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
- -c count指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
- -h ttl-value指定TTL的值。缺省值是255。
- -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。