TCPIPChap6ICMP

来源:互联网 发布:央视电视直播软件apk 编辑:程序博客网 时间:2024/06/06 00:40

Internet控制报文协议ICMP

 

一、定义

ICMP协议是一种面向连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。

它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据报。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

 

二、特点

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

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

  · 建立及维护路由资料。

  · 重导资料传送路径。

· 资料流量控制

 

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

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

 

三、IP首部的关系

 

 

四、帧格式

 

 

五、详细分类

 

ICMP报文类型由“类型”和“代码”共同决定。

 

六、应用分类

6.1 ICMP地址掩码请求和应答

I C M P地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码( 3 . 5节)。系统广播它的I C M P请求报文(这一过程与无盘系统在引导过程中用R A R P获取I P地址是类似的)。无盘系统获取子网掩码的另一个方法是B O O T P协议。

 

 

6.2ICMP时间戳请求和应答

I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间( Coordinated Universal Time, UTC)(早期的参考手册认为U T C是格林尼治时间)。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些U n i x系统提供的r d a t e命令)只能提供秒级的分辨率。

 

 

6.3 ICMP端口不可达报文

U D P的规则之一是,如果收到一份U D P数据报而目的端口与某个正在使用的进程不相符,那么U D P返回一个I C M P不可达报文(相当于server端返回client端一个ICMP端口不可达的报文)。

 

 

 

 

 

 

原创粉丝点击