功能:
1、确认IP包是否成功送达目标地址
2、反馈IP包被丢弃的原因
3、改善网络设定
在IP通信中,如果某个IP包因为某种原因未能到达目标地址,那么这个具体原因酱油ICMP负责通知。
ICMP消息分为两类:
一类是通知出错原因的出错消息。
一类是用于诊断查询消息。
ICMP是基于尽力而为的IP上进行工作的,因此无法保证质量,而且在网络安全优先于便利性的环境里往往无法使用ICMP.
在ICMP中,包以明文的方式像TCP/UDP一样通过IP进行传输。然而,ICMP所承担的功能并非传输层的补充,而应该把他考虑为IP的一部分。
主要的ICMP消息
1、目标不可达(类型3)
错误代码1(host unreachable)指路由表中没有该主机的信息,或者该主机没有联网。
2、ICMP重定向(类型5)
如果路由器发现发送端使用了次优的路径发送数据,路由器就会返回一个ICMP重定向的信息给这个主机。这个信息包含了最适合的里有信息和元数据。
(多数情况下重定向会引发问题,所以往往不会进行这种设置。引发的错误如:当某个路由表中的信息错误时,ICMP有可能无法正常工作)
3、ICMP超时消息(类型11)
TTL(time to live 生存周期),它的值每经过一个路由器就会减一,减到0时,该IP包被丢弃。此时,IP路由器会发送ICMP超市的消息(错误号 0 ,错误号1表示将被拆分包做重构处理时超时)。
TTL可以避免IP包在网络上被无休止的转发,进而增加网络负担。
相关考点:traceroute、ping、tcpdump
4、ICMP回送消息(类型 0, 8)
用于进行通信的主机或路由器之间,判断所发送的数据包是否已经成功到达对端的一种消息。可以向对端主机发送回送请求的消息(ICMP Echo Request Message ,类型 8),也可以接受对端主机发动回来的回送应答消息(ICMP Echo Replay Message ,类型 0)。ping命令就是利用这个消息实现的。