icmp是什么?
icmp全称是网络控制消息协议,顾名思义,就是在网络上传送一些控制消息。做个类比,就像古代的探马,派出去一个人打探消息,探听完把消息带回来,icmp完成的就是类似功能。
大家习惯将icmp描述为一个三层(ip层)的协议,其实不然,icmp是一个ip层之上的协议,但是由于他不与传输层配合,也不属于传输层,所以他是一个中间层的协议,可以称为一个3.5层的协议。
为什么需要icmp?
我们知道,实际应用的网络组成是非常复杂的。别的不说,单说网元的数量就非常庞大,比如像移动,联通的网络可能会有数以万计的设备,所以网络的运维一直是一个严峻的课题,即使在今天同样如此。作为网络运维最基本也最经典的两种手段,ping和tracert,一直备受推崇,长盛不衰。而icmp作为正是这两个经典应用的技术基础。说白了,ping和tracert的各种功能就是使用icmp协议中的各种不同类型的报文来承载和实现的。
icmp可以实现哪些功能?
回显请求和回显应答,这就是ping的基本功能;还有端口不可达,这就是tracert的功能;这是最经典的两个点,但是icmp支持的远不止这些。
各种类型如何对应到icmp报文中呢?
附icmp报文格式:
,