局域网协议:ICMP (Internet Control Message Protocol,互联网控制消息协议)

ICMP(Internet Control Message Protocol,互联网控制消息协议)是用于在IP网络中传递控制消息的协议。它通常被用于网络设备之间交换状态信息和错误报告,以及执行网络诊断和故障排除。

文章目录

    • ICMP主要功能
    • ICMP的工作原理
    • ICMP消息类型
    • 在路由器和防火墙上配置ICMP
    • ICMP有端口吗?
    • ICMP Ping
    • ICMP在DDoS攻击中是如何使用的?
      • ICMP flood attack
      • Ping of death attack
      • Smurf attack
    • 推荐阅读

ICMP主要功能

1. 错误报告和消息传递
ICMP主要用于报告错误情况和发送各种类型的消息,比如“目标不可达”、“超时”、“重定向”等。当路由器或主机遇到问题时,会发送ICMP消息给源设备,通知它发生了什么问题。
2. 网络诊断
ICMP工具(如ping命令)用于测试两个设备之间的连通性。它可以发送ICMP Echo请求消息到目标设备,然后等待目标设备的回应。ping命令会根据回应的情况来判断网络是否畅通,以及计算往返时间(Round-Trip Time)等信息。
3. 流量控制
ICMP也可用于流量控制,比如当网络拥塞时,路由器可以发送ICMP拥塞控制消息给源设备,要求降低数据发送速率。
4. 路由器间通信
在路由器之间交换控制信息时,ICMP也扮演着重要角色。它可以用于通知路由器更优的路径、报告路由环路等。

ICMP的工作原理

Internet控制消息协议是IP协议套件的主要协议之一。然而,它不与任何传输层协议相关联,例如,传输控制协议(TCP)或用户数据报协议(UDP)。

ICMP是一种无连接协议,这意味着发送设备在传输数据之前不需要与接收方发起连接。这就是它与TCP不同的原因。

在TCP中,两个设备之间的连接是强制要求的。只有当两个设备都通过TCP握手准备就绪时,才可以发送消息。

所有ICMP消息都以数据报的形式发送,并包含一个保存ICMP数据的IP报头。每个数据报都是一个自包含的、独立的数据实体。ICMP报文是指IP数据部分带有ICMP的IP报文。ICMP消息还包括来自原始消息的完整IP报头。这样,目标系统就能准确地知道哪个数据包失败了。

在这里插入图片描述

ICMP消息类型

  • Echo请求与回应(Echo Request/Reply):用于ping命令和测试网络连通性。
  • 目标不可达(Destination Unreachable):通知源设备目标不可达的原因,比如网络不可达、主机不可达等。
  • 超时(Time Exceeded):当IP数据包的生存时间(TTL)超过时,路由器会发送超时消息。有两种类型:TTL超时和分片重组超时。
  • 重定向(Redirect):用于通知源设备优化路由选择,将数据包发送到更适合的路由器。
  • 参数问题(Parameter Problem):知源设备IP数据包中某些字段出现问题,比如IP首部长度不正确或首部中的选项字段出错。
  • 源站选路错误(Source Quench):用于告知数据发送方降低发送速率,以防止网络拥塞。
  • 时间戳请求与回应(Timestamp Request/Reply):用于获取设备的时间戳信息,用于计算往返时间。
  • 地址掩码请求与回应(Address Mask Request/Reply):用于获取目标设备的子网掩码信息。

在路由器和防火墙上配置ICMP

在路由器和防火墙上配置ICMP设置对于允许ICMP流量、确定其优先级或阻止ICMP流量以增强安全性至关重要。很多防火墙或者路由器上都会配置禁止特定的ICMP流量通过。

ICMP有端口吗?

正如我们前面提到的,Internet控制消息协议是Internet协议套件的一部分,也称为TCP/IP协议套件。这意味着它只与互联网层有关。端口号只能在传输层中找到。

尽管Internet控制消息协议不像TCP和UDP那样有端口的概念,但它利用了类型和代码。通常使用的ICMP类型是echo request和echo reply(用于Ping)和TTL(生存时间)在传输中使用(用于Traceroute)。

ICMP Ping

ICMP应答请求报文和ICMP应答报文也称为ping报文。Ping命令是一个非常有用的故障排除工具,网络管理员可以使用它手动测试网络设备之间的连通性。也可以用它来检查网络延迟和丢包。

ICMP Ping可以用于监控网络设备是否在线。它的工作原理是频繁地ping一个已知的设备。这种类型的检查向网络中指定的服务器或设备发送ICMP echo请求,设备立即响应ICMP echo应答。这代表着连接成功,目标服务器或设备已经启动并正常运行。

ping的响应时间单位是毫秒,如果延迟时间特别长,则代表有某些网络问题。

ICMP在DDoS攻击中是如何使用的?

ICMP flood attack

ping flood,也称为ICMP flood,是指攻击者向目标设备发送ICMP回显请求报文。每个数据包必须由目标处理和响应,消耗计算资源,直到授权客户无法接收服务。
在这里插入图片描述

Ping of death attack

死亡ping攻击是指攻击者向目标机器发送的ping报文长度超过数据包允许的最大长度,导致设备缓冲区溢出。现在很多设备或者操作系统都能对这种死亡ping攻击进行处理,但是如果遇到旧的操作系统或者设备,可能仍然无法避免死亡ping攻击的危害。
在这里插入图片描述

Smurf attack

Smurf攻击是指攻击者利用假冒的网站源IP地址发送ICMP报文。网络设备通过向假IP地址发送响应来响应数据包,并向受害者发送不需要的ICMP数据包。

推荐阅读

  • 局域网协议:DNS(Domain Name System,域名系统)详解
  • 局域网协议:动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)
  • 局域网协议:地址解析协议(ARP,Address Resolution Protocol)
  • 局域网协议:VLAN技术介绍
  • 释放C盘空间:WinSXS文件夹真实性大小判断及释放占用空间
  • 安全知识普及:了解端点检测与响应 (EDR)对企业的重要性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229297.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020年6月9日 Go生态洞察:VS Code Go扩展加入Go项目

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

信息可视化在数字孪生中的应用:打造直观决策支持系统

在当今的数字化时代,数字孪生和信息可视化已成为推动各行业发展的重要力量。数字孪生为物理世界提供了一个虚拟的副本,而信息可视化则将复杂的数据以易于理解的方式呈现出来。两者之间的关系密切,相辅相成,为决策者提供了更全面、…

ssm购物商城系统

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此商城购物信息的…

贝叶斯Sklearn实践

贝叶斯统计学是一种基于贝叶斯定理的概率推理方法,它提供了一种对概率进行建模和更新的框架。贝叶斯方法在机器学习中得到了广泛的应用,特别是在分类问题中,如垃圾邮件过滤、文本分类等。与传统的频率主义方法相比,贝叶斯方法具有…

草图大师sketchup道路怎么快速种树?

草图大师sketchup道路怎么快速种树?草图大师中的道路图纸想要在道路两旁种树,该怎么快速给道路种树呢?下面我们就来看看详细的教程,需要的朋友可以参考下 草图大师sketchup中想要快速种树,该怎么种多棵树呢&#xff1…

类和对象——(2)类

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 虽然夜晚很长,但天一…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 8》(12)

《Linux操作系统原理分析之Linux 进程管理 8》(12) 4 Linux 进程管理4.8 IPC 消息队列4.8.1 消息队列的结构1.消息2.消息队列 4.8.2 消息队列的生成与控制1.建立及检索消息队列 建立及检索消息队列2.消息队列的控制 消息队列的控制 4.8.3 消息的发送与接…

es集群相关报错信息

给es集群添加用户密码的时候,会自动弹出相关的账户信息,这个时候,只需要设置对应密码就可以了 [esuserjky-test1 bin]$ ./elasticsearch-setup-passwords interactive future versions of Elasticsearch will require Java 11; your Java ve…

ESP32-Web-Server 实战编程-通过网页控制设备多个 GPIO

ESP32-Web-Server 实战编程-通过网页控制设备多个 GPIO 概述 上节 ESP32-Web-Server 实战编程-通过网页控制设备的 GPIO 讲述了如何通过网页控制一个 GPIO。本节实现在网页上控制多个 GPIO。 示例解析 前端设计 前端代码建立了四个 GPIO,如下死 GPIO 2 在前端的…

初识数据结构及复杂度

1、数据结构 数据结构数据结构(描述和组织数据),Java会把一些数据结构封装起来,在java中数据结构叫做集合。 数据结构:(data structer)是计算机存储、组织数据的方式,指相互之间存在…

GAN:DCGAN-深度卷积生成对抗网络

论文:https://arxiv.org/pdf/1511.06434.pdf 发表:ICLR 2016 一、架构创新 1:全卷积网络:用逐步卷积代替确定性的空间池化函数(如maxpooling),使网络学习自己的空间下采样。使用这种方法&#…

Android Studio 添加so无法打包进apk问题

1.开发环境: Android Studio 2022.3.1 Patch 2 jdk 17 gradle-7.4 2.build.grade配置检查 首先查看build.gradle中是否设置sourceSets ,如果设置的话,打包的时候so是被指导libs目录下的,所有就不能把jnilibs下。 sourceSets {mai…