ICMP是TCP/IP协议族的一个IP层子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP位于TCP/IP协议族中IP层。
ICMP的主要功能包括:确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。同时ICMP的这种通知消息会使用IP进行发送,收到ICMP包的主机会分解ICMP的首部和数据与以后得知具体发生的原因。
ICMP报文在IP数据报内部被传输,就像TCP与UDP报文段那样。
特点:
(1)ICMP本身是网络层的一个协议,但是它的报文不是直接传送给数据链路层,而是要封装成IP数据报,然后在传送给数据链路层。
(2)从协议体系上看,ICMP的差错和控制信息传输只是要解决IP协议可能出现的不可靠问题,它不具有普遍意义上的传输机制,它也不是传输层赖以存在的基础,它不能独立于IP协议而单独存在,因此把它归于IP协议的一个部分,而归于IP协议体系。
(3)ICMP协议的设计初衷是用于IP协议在执行过程中的出错报告,严格的说是路由器向源主机报告传输差错的原因。
(4)ICMP不能纠正差错,只能报告差错。