发新帖本帖赏金 20.00元(功能说明)我要提问
返回列表
打印
[资料干货]

ICMP协议与PING的应用

[复制链接]
94|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2023-3-24 10:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 forgot 于 2023-3-24 10:54 编辑

  在OSI 7层参考模型中,第三层网络层是功能非常复杂的一层,网络层处在传输层和数据链路层之间,在数据链路层提供的两个相邻端点之间的数据帧的传送功能,并且管理网络中的数据通信。而在TCP/IP网络协议层中,ICMP协议是互联网控制报文协议( Internet Control Message Protocol)的简称,是非常常用的一种协议,该协议主要用于在主机、路由器之间传递控制消息,这些信息对于用户数据的传递也起着重要的作用,比如要对主机间网路连接状况进行判断的时候。
  ICMP报文封装在IP包内,在去掉IP包的IP首部之后,就是ICMP首部与ICMP数据部分构成ICMP报文,ICMP首部包含类型占8位,代码占8,位校验和占16位,这是ICMP包最关键的部分,随后就是首部数据,ICMP数据部分代表了协议的选项数据,从协议本身的类型上来分,可以分为查询报文和差错报文两大类。

查询报文包括:回显请求、回显应答;
差错报文包括:目标主机未知、端口不可到达、目的网络未知、网络重定向等等。

  对于ICMP查询功能最典型的应用就是ping的应用,每当我们想知道一台IP主机与另外一台IP主机网络是否连接时,我们常常会采用主机的CMD命令行程序进行ping对方的IP,如果不通会显示请求超时或者是请求找不到主机,如果网络通了会显示来自对方IP的回复 <1ms TTL =254 等数据,代表了往返时间和转发的范围,这样就知道网络是连通的,实际上整个过程就是一次ICMP协议的实现。

  当源主机进行发ping命令时,源主机会构建一个类型是8,代码是0ICMP 回显请求消息数据包,向目标主机发出,另外会追加标识符和序号字段,标识符里面写入的是进程号,而,序号会逐次加1,在ICMP选项数据中会写入任意数据,如abcdefg....;当目标主机收到该包后,就会回发类型是0,代码也是0的回显应答,数据部分基本一致,当源主机收到包之后就知道网络是通畅的。如果目标主机没有收到或者是网络本身就不通的时候,就会产生差错报文,提示我们网络无法到达,差错报文的分类也是由首部的类型和代码两个8位数据组合构成,根据差错报文的内容也可以一定程度上分析网络不通的原因,但是有些情况是不会发送差错报文的,如目的地址是广播地址或多播地址的IP数据报、源地址不是单个主机的数据报等,这样做的目的是为了防止ICMP差错报文带来广播风暴。

  在网络攻击中,也有使用ping风暴进行ICMP攻击的方式,因为是无连接的通讯方式,就像UDP洪流攻击一样,通过大量发ping包试图导致网络超负荷,阻塞网络中合法数据的传输或者使网速变慢,所以在网络系统中就会采用防火墙的设置入站规则中禁ping的一些手段,来限制ping请求的时间或者关闭直接ping请求,以达到安全性和易用性之间的平衡取舍。

使用特权

评论回复

打赏榜单

21ic小管家 打赏了 20.00 元 2023-04-14
理由:签约作者奖励

相关帖子

发新帖 本帖赏金 20.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1248

主题

10791

帖子

50

粉丝