icmp协议工作原理,icmp协议

描述

 ICMP协议的功能非常重要,在网络协议的学习中,这部分知识也是我们讲解的重点。那么对于ICMP协议的工作原理,以及工作流程具体是如何完成的呢?我们就来详细介绍一下这方面的效验问题。首先我们要明确一下ICMP的定义。

 ICMP简介

 对于熟悉网络的人来说, ICMP是再熟悉不过了。它同IP协议一样工作在ISO模型的网络层, 它的全称是: Internet Control Message Protocal. 其在网络中的主要作用是:

 - 主机探测

 - 路由维护

 - 路由选择

 - 流量控制

 对于主机探测来说有很多方法,主机某些服务的BANNER,一些使用的应用程序,或者使用工具来检测主机,如NMAP,在WEB上有www.netcraft.com来简单的估测主机。下面所讲的是使用ICMP协议来探测主机,主要也是可以了解ICMP这个协议,这里最主要的也是将这个ICMP协议。

 协议分析 - ICMP协议解码详解

 ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。

 网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。

 ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:

 诊断报文(类型8,代码0;类型0,代码0);

 目的不可达报文(类型3,代码0-15);

 重定向报文(类型5,代码0-4);

 超时报文(类型11,代码0-1);

 信息报文(类型12-18)。

 详细解码

 使用科来网络分析系统捕获数据包,我们得到ICMP回显报文的信息,如图1所示

 

 ICMP协议内容

 ICMP的全称是InternetControlMessageProtocol。从技术教度来说,ICMP就是一个“错误侦测与回报机制“,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:

 ◆侦测远端主机是否存在。

 ◆建立及维护路由资料。

 ◆重导资料传送路径。

 ◆资料流量控制。

 ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状况。常用的类别如下表所列﹕

 ICMP是个非常有用的协定﹐尤其是当我们要对网路连接状况进行判断的时候。下面让我们看看常用的ICMP实例,以更好了解ICMP的功能与作用。

 ICMP协议的重要性

 ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。例如,在1999年8月海信集团“悬赏“50万元人民币测试防火墙的过程中,其防火墙遭受到的ICMP攻击达334050次之多,占整个攻击总数的90%以上!可见,ICMP的重要性绝不可以忽视!

 比如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“PingofDeath”(死亡之Ping)攻击。“PingofDeath“攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

 此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,疲于奔命。

 ICMP协议的校验和算法

 

 我们在网络中经常会使用到ICMP协议,只不过我们觉察不到而已?比如我们经常使用的用于检查网络通不通的Ping命令,这个“Ping“的过程实际上就是ICMP协议工作的过程?还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的?

相关推荐

相关文章