网络层协议 -- ICMP协议

目录

ICMP协议

ICMP功能

ICMP协议格式

ping命令

一个值得注意的坑

traceroute命令

[CMP 的优缺点](#CMP 的优缺点)

[ICMP 的安全性](#ICMP 的安全性)


ICMP协议

ICMP(Internet Control Message Protocol,互联网控制消息协议)是 TCP/IP 协议族中的一种网络层协议,但IP协议并不提供可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因,因此ICMP协议就用于在 IP 网络中传递控制消息和错误报告。

  • ICMP 主要用于诊断网络问题、检测网络可达性和报告错误条件。
  • ICMP 是网络管理和故障排除的重要工具,常见的工具如 ping 和 traceroute 都依赖于 ICMP。

ICMP功能

ICMP主要的功能包括

  • 确认IP包是否成功到达目的地址
  • 通知再发送过程中IP包被丢包的原因
  • ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此人们依旧把它归结为网络层协议。
  • ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要使用ICMPv6协议。

举个例子

当主机A向主机B发送数据时,但是主机B已经离线或者关机时

当数据包抵达主机B所在局域网的入口路由器时,路由器为了获取主机B的MAC地址,会向其发送ARP请求。然而,由于主机B已离线,路由器在多次尝试且未收到任何响应后,便会向主机A返回一个ICMP Destination Unreachable(目标不可达)报文。此时,主机A即可得知发送至主机B的数据无法送达。

ICMP协议格式

关于报文格式如下:

仅作了解

ICMP 消息分为两大类:

  1. 错误报告消息
    • 用于报告网络中的错误条件,如目的地不可达、超时等。
  2. 查询消息
    • 用于网络诊断,如回显请求(Echo Request)和回显应答(Echo Reply)。

其中报文中第一个字段类型,填充不同内容,会指定不同的类型,其ICMP包常见类型如下:

ping命令

ping命令就是ICMP的最常应用场景之一,其主要作用便是用于网络连通信测试。

使用 ping 工具检测目标设备是否可达。在此ping以下百度试试

  • 注意,此处ping的是百度的域名,该域名会由DNS解析成IP地址
  • ping命令不仅能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存时间)。
  • ping命令会先发送一个ICMP Echo Request给对端。
  • 对端接收到之后,会返回一个ICMP Echo Reply。

一个值得注意的坑

如果问你:telnet是23端口,ssh是22端口,那么ping是什么端口?

答案:ping命令是基于ICMP协议的,ICMP协议在网络层,并非传输层。而端口号是传输层的内容。所以ICMP根本就不关心端口号,所以ping并不在什么端口上。

traceroute命令

除了ping命令,traceroute命令也是ICMP另一个最常应用场景之一,其主要作用是检测数据包的传输路径。

在使用该命令之前,还是要先下载

复制代码
sudo apt install traceroute

之后,我们可以尝试检测向百度发送数据包的传输路径。

CMP 的优缺点

优点:

  • 简单高效:ICMP 消息结构简单,开销小。
  • 广泛支持:几乎所有支持 IP 协议的设备都支持 ICMP。
  • 诊断功能强大:提供丰富的网络诊断和错误报告功能。

缺点:

  • 安全性问题:ICMP 可能被用于网络攻击(如 Ping Flood、Smurf Attack)。
  • 不可靠性:ICMP 不提供可靠性保证,消息可能丢失或被忽略。

ICMP 的安全性

为了提高 ICMP 的安全性,可以采取以下措施:

  • 防火墙过滤:配置防火墙规则,限制 ICMP 消息的传输。
  • 速率限制:限制 ICMP 消息的发送速率,防止网络攻击。
  • 禁用不必要的 ICMP 功能:在网络设备上禁用不必要的 ICMP 消息类型。
相关推荐
AOwhisky18 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
星恒讯工业路由器1 天前
AGV集群通信架构:从单点到百台级调度的挑战与对策
网络·物联网·信息与通信·工业物联网·通信架构·agv集群·实时调度
tg_xianheyun1 天前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
夜月yeyue1 天前
AUTOSAR CP 从上电到 Runnable
c语言·网络·tcp/ip·车载系统
lsh曙光1 天前
延时at指令和定时cron指令
linux·服务器·网络
treesforest1 天前
IP定位技术在网络犯罪侦查中的应用与价值
网络·网络协议·tcp/ip·网络安全·ip归属地查询·反欺诈
圆山猫1 天前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
外滩运维专家1 天前
HTTPS 证书报错排查手册:6 个高频错误码及解决方法
网络协议·http·https
XR1234567881 天前
企业全光网络架构选型技术白皮书:从物理层到运维层的全链路分析
运维·网络·架构
似的8351 天前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx