计算机网络之---ICMP协议与Ping命令

news/2025/1/12 20:00:10/

ICMP 协议

ICMP (Internet Control Message Protocol) 是一种网络层协议,主要用于在 IP 网络中传递控制消息。ICMP 主要用于网络设备之间的故障报告和诊断,帮助设备检测网络连接问题。它是 IP 协议的核心部分之一,用于发送错误消息和操作信息。

ICMP 的主要功能
  1. 错误报告:当路由器或目标主机发现网络传输中的问题时,ICMP 会发送错误消息。例如,目标不可达、超时等。
  2. 诊断功能:ICMP 提供了许多网络诊断功能,如 Ping 命令,用于检测网络连通性。
  3. 路由重定向:ICMP 也可以发送路由重定向消息,通知源主机更合适的路由。
  4. 网络拥塞通知:某些 ICMP 消息用于告知发送方网络存在拥塞问题。
ICMP 的局限性
  • ICMP 消息本身并不提供加密或身份验证,因此容易被滥用,例如进行 Ping of Death 攻击或 ICMP Flood 攻击。
  • 由于 ICMP 本身属于网络层,无法保证传输过程中的可靠性。
  • 某些网络设备或防火墙可能会阻止 ICMP 消息,以增加安全性。
ICMP 的常见消息类型

ICMP 消息通常由一个 报头数据部分 组成。常见的 ICMP 消息类型包括:

  1. Echo Request 和 Echo Reply(回显请求和回显应答):这些是 Ping 命令使用的类型,用于测试网络设备之间的连通性。

    • Echo Request (类型 8)
    • Echo Reply (类型 0)
  2. Destination Unreachable(目标不可达):当路由器无法转发数据包到达目标地址时发送。

    • 类型 3(目标不可达)有多个代码,表示不同的不可达原因,如网络不可达、主机不可达、协议不可达等。
  3. Time Exceeded(超时):当数据包在传输过程中经过的时间超过了设定的 TTL(生存时间)时发送,通常用来检测路由环路或路由延迟。

    • 类型 11(超时)
  4. Redirect(重定向):用于提示源主机更好的路由路径。

    • 类型 5(重定向)
  5. Source Quench(源抑制):用来通知发送方减少数据包发送速率(此功能现在已废弃,很多设备不再使用)。

    • 类型 4
ICMP 报文结构

ICMP 报文的基本结构包含:

  • 报文头:包括类型、代码和校验和。
  • 数据部分:根据不同类型,数据部分的结构有所不同,例如回显请求的消息部分包含了发送方的时间戳信息。

Ping 命令

Ping 是一种基于 ICMP 协议的网络诊断工具,广泛用于测试网络连接性。Ping 命令通过发送 Echo Request(回显请求)消息并等待目标主机返回 Echo Reply(回显应答)消息来检查网络是否畅通。

Ping 命令的工作原理
  1. 发送 Echo Request: Ping 命令向目标 IP 地址发送一个 ICMP Echo Request 数据包,包含发送的时间戳信息。

  2. 接收 Echo Reply: 如果目标设备在线并且能够接收 ICMP 请求,它会返回一个 Echo Reply 数据包,其中包含目标设备接收到请求时的时间戳。

  3. 计算往返时间: Ping 命令会根据回显应答的时间戳来计算往返时间(RTT,Round Trip Time),即从发送请求到接收到应答的时间。

  4. 报告结果: Ping 命令会显示每次请求的结果,包括往返时间、丢包率等信息。通常每次请求发送 4 个数据包,并显示每个数据包的 RTT。

Ping 命令的使用场景
  1. 测试网络连接性:最常见的用途是测试计算机或路由器是否能够通过网络到达另一台设备(如另一个主机、路由器、DNS 服务器等)。

  2. 网络故障排除:在网络出现问题时,使用 Ping 可以检查连接问题的原因,比如网络丢包、延迟过高等。

  3. 延迟检测:Ping 命令的 RTT 时间可以帮助判断网络的响应速度和延迟。

  4. 检查丢包情况:通过统计丢失的 Ping 数据包,可以检测网络的丢包情况,有助于定位故障。

Ping 命令的常用选项
  • -t:在 Windows 中,使用 ping -t 可以持续不断地 Ping 目标,直到手动停止。
  • -c:在 Linux/Mac 中,使用 ping -c 4 可以指定 Ping 的次数。
  • -l:在 Windows 中,ping -l 1000 可以设置数据包的大小。
  • -i:指定 Ping 数据包的间隔时间。
Ping 命令的常见输出
PING www.baidu.com (110.242.70.57): 56 data bytes
64 bytes from 110.242.70.57: icmp_seq=0 ttl=50 time=24.960 ms
64 bytes from 110.242.70.57: icmp_seq=1 ttl=50 time=16.367 ms
64 bytes from 110.242.70.57: icmp_seq=2 ttl=50 time=24.184 ms
64 bytes from 110.242.70.57: icmp_seq=3 ttl=50 time=16.960 ms
64 bytes from 110.242.70.57: icmp_seq=4 ttl=50 time=17.882 ms
64 bytes from 110.242.70.57: icmp_seq=5 ttl=50 time=27.531 ms
64 bytes from 110.242.70.57: icmp_seq=6 ttl=50 time=18.157 ms
64 bytes from 110.242.70.57: icmp_seq=7 ttl=50 time=20.231 ms
64 bytes from 110.242.70.57: icmp_seq=8 ttl=50 time=16.918 ms
64 bytes from 110.242.70.57: icmp_seq=9 ttl=50 time=16.276 ms
64 bytes from 110.242.70.57: icmp_seq=10 ttl=50 time=18.593 ms
64 bytes from 110.242.70.57: icmp_seq=11 ttl=50 time=17.677 ms
  • Reply from:表示收到了目标设备的回应。
  • bytes:显示数据包的字节数,通常为 32 字节。
  • time:表示从发送请求到接收到应答的往返时间(以毫秒为单位)。
  • TTL:表示数据包生存时间,即数据包在路由过程中可以经过的最大跳数(时间戳)。


http://www.ppmy.cn/news/1562593.html

相关文章

深入解析 Flink 与 Spark 的性能差异

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

从excel提取和过滤数据到echarts中绘制图

主页面 介绍 echarts的事例页面,导入数据比较麻烦,此项目从excel中提取数据(含过滤数据),以注入页面. 代码说明 所有的需要从excel中读取的参数,从代码中替换.需以{{data}} 包含在内使用绘制参数的解析代码参数可以解析出来所有参数数据配置上传文件后,可以选择列数据过滤条…

可视化重塑汽车展示平台新体验

汽车展示平台利用图扑可视化技术,实现全方位、互动式车型展示,提供沉浸式用户体验,助力消费者深入了解车辆特性,优化销售沟通效率,推动汽车行业的数字化创新。

绘制三角形、正六边形、五角星、六角星

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>绘制图形</title><style>body {displ…

Python----Python基础(字符串,列表,元组,字典,集合的总结)

一、字符串 str&#xff0c;基本用法&#xff1a;拼接&#xff0c;复制&#xff0c;长度&#xff0c;索引&#xff0c;切片&#xff0c;查找&#xff0c;替换&#xff0c;大小写转化&#xff0c;去除空格&#xff0c;填充&#xff0c;分割&#xff0c;判断&#xff0c;可变字符…

2024年华为OD机试真题-判断一组不等式是否满足约束并输出最大差-Python-OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。 题目描述: 给定一组不等式…

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图) 前面的两篇博文简述了AutoSAR CP分层架构的概念&#xff0c;下面我们来具体到每一层的具体内容进行讲解&#xff0c;每一层的每一个功能块力求用一个总览图&#xff0c;外加一个例子的图给大家进…

将node节点加入k8s集群

1、k8s master集群安装完成之后即可以开始将node节点加入到集群 2、首先要进行基础环境的配置&#xff0c;包括关闭防火墙、关闭selinux&#xff0c;关闭swap分区&#xff0c;这都是基础操作&#xff0c;不在粘贴代码。 3、进行yum源的配置&#xff0c;这里最简单方法是把mas…