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

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

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

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报头。这样,目标系统就能准确地知道哪个数据包失败了。

image.png

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回显请求报文。每个数据包必须由目标处理和响应,消耗计算资源,直到授权客户无法接收服务。
image.png

Ping of death attack

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

Smurf attack

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

目录
相关文章
|
8月前
|
网络协议 网络架构
网络协议与攻击模拟-05-ICMP协议
网络协议与攻击模拟-05-ICMP协议
52 0
|
9月前
|
网络架构
ICMP协议(Internet控制消息协议)
本文详细的介绍ICMP协议,内含详细的实例解析,该文你值得拥有。
|
9月前
|
Linux C语言 C++
Linux ICMP协议实现:C/C++编程指南
ICMP(Internet Control Message Protocol)是网络通信中的重要协议,用于在IP网络中传递错误消息和诊断信息。在Linux系统中,我们可以使用C/C++编程语言来实现基本的ICMP功能,例如发送ICMP回显请求(Ping)和解析ICMP消息。本文将带您深入了解C/C++实现的ICMP协议,包括套接字编程、构造ICMP报文、发送和接收ICMP消息等,以及提供实际的代码示例。
488 1
|
缓存 网络协议 Linux
计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)
Wireshark软件使用与协议分析 ARP协议分析 使用 Wireshark 抓取局域网的数据包并进行分析: 1. 学习 Wireshark 基本操作:重点掌握捕获过滤器和显示过滤器。 2. 观察 MAC 地址:了解 MAC 地址的组成,辨识 MAC 地址类型。 3. 分析以太网帧结构:观察以太网帧的首部和尾部,了解数据封装成帧的原理。 4. 分析 ARP 协议:抓取 ARP 请求和应答报文,分析其工作过程。 IP与ICMP分析 启动 Wireshark,捕捉网络命令执行过程中本机接受和发送的数据报。
1807 0
计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)
|
3月前
|
域名解析 缓存 网络协议
|
4月前
|
网络协议 API 网络安全
用户态协议栈设计实现udp,arp与icmp协议
用户态协议栈设计实现udp,arp与icmp协议
67 1
|
5月前
|
监控 网络协议 网络性能优化
【网络层】DHCP协议(应用层)、ICMP、IPv6详解
【网络层】DHCP协议(应用层)、ICMP、IPv6详解
61 0
|
5月前
|
网络协议 网络架构
Wireshark中的ICMP协议包分析
Wireshark可以跟踪网络协议的通讯过程,本节通过ICMP协议,在了解Wireshark使用的基础上,重温ICMP协议的通讯过程。 ICMP(Internet Control Message Protocol)Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP是TCP/IP模型中网络层的重要成员,与IP协议、ARP协议、RARP协议及IGMP协议共同构成TCP/IP模型中的网络层。 在Wireshark界面,我们可以看到
|
7月前
|
监控 网络架构
百度搜索:蓝易云【网络通信协议-ICMP协议详解!】
总之,ICMP 是一种重要的网络通信协议,用于在 IP 网络中传递控制消息和错误报告。它提供了网络连接状态测试、错误报告和路由器通知等功能。通过使用 ICMP,网络管理员和开发人员可以更好地监控和诊断网络连接问题。
203 1
|
10月前
|
负载均衡 网络协议 安全
DNS协议、ICMP协议、NAT技术(二)
DNS协议、ICMP协议、NAT技术
192 0