1.概述
ICMP是IP层的一个组成部分,报文在IP数据包内部被传输
在IP通信中,经常有数据包到达不了对方的情况。原因是,在通信途中的某处的一个路由器由于不能处理所有的数据包,就将数据包一个一个丢弃了。或者,虽然到达了对方,但是由于搞错了端口号,服务器软件可能不能接受它。这时,在错误发生的现场,为了联络而飞过来的信鸽就是ICMP 报文。在IP 网络上,由于数据包被丢弃等原因,为了控制将必要的信息传递给发信方。ICMP 协议是为了辅助IP 协议,交换各种各样的控制信息而被制造出来的
- ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
- ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6
ICMP报文结构:
类型字段可以有15个不同的值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件,不同类型由报文中的类型字段和代码字段来共同决定,其中比较重要的
- 类型3 代码1 主机不可达 差错报文
- 类型3 代码3 端口不可达 差错报文
总的来分,ICMP报文分为查询报文和差错报文,下面的情况一定不会导致差错报文:
- 来源报文就