ICMP(Internet Control Message Protocol,Internet控制消息协议)是TCP/IP协议簇中的子协议,主要用于查询报文和差错报文。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用;一些ICMP报文把差错报文返回给用户进程。通过IP包传送的ICMP信息主要用于涉及网络操作或错误操作的不可达信息。ICMP包发送是不可靠的,所以主机不能依靠接收ICMP包解决任何网络问题。
ICMP的主要功能如下。
1.发现网络错误
ICMP可以发现某台主机或整个网络由于某些故障而不可达的错误。
2.通告网络拥塞
当路由器缓存了太多数据包时,由于传输速度无法达到它们的接收速度,将会生成ICMP源结束信息。对于发送者,这些信息将会导致传输速度降低。当然,更多ICMP信息生成也将引起更多的网络拥塞。
3.协助解决故障(www.daowen.com)
ICMP支持echo功能,即在两台主机间的一个往返路径上发送一个数据包。Ping命令是一种基于这种特性的通用网络管理工具,它将传输一系列的包,测量平均往返次数并计算丢失百分比。
4.通告超时
如果一个IP包的TTL(Time To Live,生存时间值)降低到零,路由器就会丢弃此包,这时会生成一个ICMP包通告这一事实。TraceRoute是一个工具,它通过发送小TTL值的包及监视ICMP超时通告可以显示网络路由。
其实在网络中经常会使用到ICMP协议,只是用户觉察不到而已。比如经常使用的用于检查网络通不通的ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令,如跟踪路由的tracert命令,也是基于ICMP协议的。
ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB,向主机发起“ping of Death”(死亡之ping)攻击。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。