网络工程师成才之路(八)

 

点击“智库PC”关注我哟☀定期推送计算机基础知识、操作系统(Windows、Linux....)、编程语言...



点击“智库PC”
关注我哟

☀ 定期推送计算机基础知识、操作系统(Windows、Linux....)、编程语言(C语言、JAVA.....)、网络基础、互联网思维等诸多优质内容,人才集聚的微信平台!超乎想象的学习体验!关注我们准没错!(微信号:PC2729)

ICMP协议

ICMP协议


ICMP 协议


Internet控制报文协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。



定义


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

它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.
如下图所示,ICMP包有一个8字节长的包头,其中前4个字节是固定的格式,包含8位类型字段,8位代码字段和16位的校验和;后4个字节根据ICMP包的类型而取不同的值。


ICMP报文格式

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

我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的“Tracert”命令也是基于ICMP协议的。

协议内容
ICMP的全称是 Internet Control Message Protocol 。从技术角度来ICMP常用型说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:· 侦测远端主机是否存在。
· 建立及维护路由资料。
· 重导资料传送路径(ICMP重定向)。

· 资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。常用的类别如下表所列﹕ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。


 ICMP的重要性

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

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

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

推荐指数:★★★★★

欢迎关注!欢迎点赞!欢迎转发!

长按下方二维码关注我呦


关注一下你眼睛又不会怀孕!
·end·
智库PC
超乎想象的学习体验



微信号:PC2729
如果喜欢本公众号就分享给你的小伙伴们吧!(*^__^*)


    关注 智库PC


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册