ICMP协议及应用
Internet控制消息协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。
ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。
主机与外通信可以依据ICMP的协议报文的返回信息来判断通信的可达性。ICMP用来传递差错、控制、查询等信息。
- 重定向:当主机A需要和服务器B进行通信时,主机A的默认网关是设备C,但服务器B的地址并不在C的最优路由上,而是在同网段下的设备D上,此时设备C会返回一个Rediret消息给主机A告诉向设备D发送报文建立与B的通信。
- 检测网络互通性:ICMP Echo Request 和 ICMP Echo Reply 分别用来查询和响应某些信息,进行差错检测。
- ICMP报文格式:
Type 表示ICMP消息类型,Code 表示同一消息类型中的不同信息。
- 应用
- ping
1. -a source-ip-address指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
2. -c count指定发送ICMP ECHO-REQUEST报文次数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
3. -h ttl-value指定TTL的值。缺省值是255。
4. -t timeout指定发送完ICMP ECHO-REQUEST后,等待ICMP ECHO-REPLY的超时时间。
- tracert
Tracert常用的配置参数说明如下:
-a source-ip-address指定tracert报文的源地址。
-f first-ttl指定初始TTL。缺省值是1。
-m max-ttl指定最大TTL。缺省值是30。
-name使能显示每一跳的主机名。
-p port指定目的主机的UDP端口号。