基本概念
ICMP(Internet Control Message Protocol,网络控制报文协议),属于OSI七层模型中的网络层,与IP/UDP同属一层,可以将其看成IP、UDP协议功能的一个补充,因为以前说过,IP协议是不可靠的,其可靠性需借助其他模块来完成,比如上层的TCP协议或同层的ICMP协议,同层的ICMP提供了差错报文和查询报文来了解当前的网络状态。
ICMP查询报文和差错报文
基于ICMP的应用
Ping命令和Traceroute命令。
Ping命令:
相信大家都不陌生,用于检测目的主机是否可达。
如果主机可达,返回如下:
这里ping了地址192.168.1.1
字节=32:说明发了一个32字节的ICMP查询报文。
时间=1ms:说明从发报文到收到目的主机回复的时间是1ms,也就是常说的网络延时。
TTL=64:Time To Live,说明如果这个查询报文经过64跳还没被回复,将被丢弃。
注意:如果Ping不通,除了检测网络连通性以外,还需注意目的主机防火墙是否屏蔽了Ping的回显请求,这在局域网Ping不通的情况下非常常见。
Traceroute命令:
Windows下是tracert命令,Linux下是traceroute命令。
用以查看本地主机到目的网络主机经过了哪些节点。
在Ping不通的情况下,常用此命令来定位到底在哪个网络节点出了问题。