计算机网络之---ICMP协议与Ping命令
ICMP 协议
ICMP (Internet Control Message Protocol) 是一种网络层协议,主要用于在 IP 网络中传递控制消息。ICMP 主要用于网络设备之间的故障报告和诊断,帮助设备检测网络连接问题。它是 IP 协议的核心部分之一,用于发送错误消息和操作信息。
ICMP 的主要功能
- 错误报告:当路由器或目标主机发现网络传输中的问题时,ICMP 会发送错误消息。例如,目标不可达、超时等。
- 诊断功能:ICMP 提供了许多网络诊断功能,如 Ping 命令,用于检测网络连通性。
- 路由重定向:ICMP 也可以发送路由重定向消息,通知源主机更合适的路由。
- 网络拥塞通知:某些 ICMP 消息用于告知发送方网络存在拥塞问题。
ICMP 的局限性
- ICMP 消息本身并不提供加密或身份验证,因此容易被滥用,例如进行 Ping of Death 攻击或 ICMP Flood 攻击。
- 由于 ICMP 本身属于网络层,无法保证传输过程中的可靠性。
- 某些网络设备或防火墙可能会阻止 ICMP 消息,以增加安全性。
ICMP 的常见消息类型
ICMP 消息通常由一个 报头 和 数据部分 组成。常见的 ICMP 消息类型包括:
-
Echo Request 和 Echo Reply(回显请求和回显应答):这些是 Ping 命令使用的类型,用于测试网络设备之间的连通性。
- Echo Request (类型 8)
- Echo Reply (类型 0)
-
Destination Unreachable(目标不可达):当路由器无法转发数据包到达目标地址时发送。
- 类型 3(目标不可达)有多个代码,表示不同的不可达原因,如网络不可达、主机不可达、协议不可达等。
-
Time Exceeded(超时):当数据包在传输过程中经过的时间超过了设定的 TTL(生存时间)时发送,通常用来检测路由环路或路由延迟。
- 类型 11(超时)
-
Redirect(重定向):用于提示源主机更好的路由路径。
- 类型 5(重定向)
-
Source Quench(源抑制):用来通知发送方减少数据包发送速率(此功能现在已废弃,很多设备不再使用)。
- 类型 4
ICMP 报文结构
ICMP 报文的基本结构包含:
- 报文头:包括类型、代码和校验和。
- 数据部分:根据不同类型,数据部分的结构有所不同,例如回显请求的消息部分包含了发送方的时间戳信息。
Ping 命令
Ping 是一种基于 ICMP 协议的网络诊断工具,广泛用于测试网络连接性。Ping 命令通过发送 Echo Request(回显请求)消息并等待目标主机返回 Echo Reply(回显应答)消息来检查网络是否畅通。
Ping 命令的工作原理
-
发送 Echo Request: Ping 命令向目标 IP 地址发送一个 ICMP Echo Request 数据包,包含发送的时间戳信息。
-
接收 Echo Reply: 如果目标设备在线并且能够接收 ICMP 请求,它会返回一个 Echo Reply 数据包,其中包含目标设备接收到请求时的时间戳。
-
计算往返时间: Ping 命令会根据回显应答的时间戳来计算往返时间(RTT,Round Trip Time),即从发送请求到接收到应答的时间。
-
报告结果: Ping 命令会显示每次请求的结果,包括往返时间、丢包率等信息。通常每次请求发送 4 个数据包,并显示每个数据包的 RTT。
Ping 命令的使用场景
-
测试网络连接性:最常见的用途是测试计算机或路由器是否能够通过网络到达另一台设备(如另一个主机、路由器、DNS 服务器等)。
-
网络故障排除:在网络出现问题时,使用 Ping 可以检查连接问题的原因,比如网络丢包、延迟过高等。
-
延迟检测:Ping 命令的 RTT 时间可以帮助判断网络的响应速度和延迟。
-
检查丢包情况:通过统计丢失的 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:表示数据包生存时间,即数据包在路由过程中可以经过的最大跳数(时间戳)。
相关文章:
计算机网络之---ICMP协议与Ping命令
ICMP 协议 ICMP (Internet Control Message Protocol) 是一种网络层协议,主要用于在 IP 网络中传递控制消息。ICMP 主要用于网络设备之间的故障报告和诊断,帮助设备检测网络连接问题。它是 IP 协议的核心部分之一,用于发送错误消息和操作信息…...
【硬件介绍】Type-C接口详解
一、Type-C接口概述 Type-C接口特点:以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验,避免了传统USB接口需要多次尝试才能正确插入的问题。Type-C接口内部结构:内部上下两排引脚的设计虽然可能不…...
【Pandas】pandas Series rtruediv
Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…...
项目开发版本控制Git流程规范
个人&测试&预发布&生产分支命名 1)个人分支: 从sit或者master进行切出,姓名切出分支命名,或者日期切出分支命名 示例:liuys_sit、20250110_sit2)测试分支: sit3)用户验…...
STM32 : 波特率发生器
波特率发生器 1. 发送器和接收器的波特率 波特率寄存器 (BRR): 在串行通信中,发送器和接收器的波特率是由波特率寄存器(BRR)中的一个值 DIV 来确定的。 2. 计算公式 计算公式: 详细解释 1. 波特率寄存器 (BRR) BRR: 波特率寄存器是一…...
STM32 USB组合设备 MSC CDC
STM32 USB组合设备 MSC CDC实现 教程 教程请看大佬niu_88 手把手教你使用USB的CDCMSC复合设备(基于stm32f407) 大佬的教程很好,很详细,我调出来了,代码请见我绑定的资源 注意事项 值得注意的是: 1、 cu…...
继续以“实用”指导Pythonic编码(re通配表达式)(2024年终总结2)
弃现成工具手剥任务🧐,我哈哈滴就像笨笨的傻大个儿😋。 (笔记模板由python脚本于2025年01月12日 23:29:33创建,本篇笔记适合熟悉正则表达式的coder翻阅) 【学习的细节是欢悦的历程】 Python官网:https://www.python.or…...
Flutter使用BorderRadiusTween实现由矩形变成圆形的动画
BorderRadiusTween 是插值动画中,用于组件边框半径的类,专门作用于组件边框和半径动化过度。 这个类继承自Tween,用法相似。 下面是示例写法 class BorderRadiusTweenPage extends StatefulWidget {overrideState<StatefulWidget> c…...
VSCode 中的 launch.json 配置使用
VSCode 中的 launch.json 配置使用 在 VSCode 中,launch.json 文件用于配置调试设置,特别是用来定义如何启动和调试你的应用。它允许你配置不同的调试模式、运行参数和调试选项。 基本结构 launch.json 文件位于 .vscode 文件夹内,可以通过…...
深度学习张量的秩、轴和形状
深度学习张量的秩、轴和形状 秩、轴和形状是在深度学习中我们最关心的张量属性。 秩轴形状 秩、轴和形状是在深度学习中开始使用张量时我们最关心的三个属性。这些概念相互建立,从秩开始,然后是轴,最后构建到形状,所以请注意这…...
Redis有哪些常用应用场景?
大家好,我是锋哥。今天分享关于【Redis有哪些常用应用场景?】面试题。希望对大家有帮助; Redis有哪些常用应用场景? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 是一个高性能的开源键值对(Key-Va…...
vue3+ts+element-plus 输入框el-input设置背景颜色
普通情况: 组件内容: <el-input v-model"applyBasicInfo.outerApplyId"/> 样式设置: ::v-deep .el-input__wrapper {background-color: pink; }// 也可以这样设置 ::v-deep(.el-input__wrapper) {background-color: pink…...
Ubuntu 磁盘修复
Ubuntu 磁盘修复 在 ubuntu 文件系统变成只读模式,该处理呢? 文件系统内部的错误,如索引错误、元数据损坏等,也可能导致系统进入只读状态。磁盘坏道或硬件故障也可能引发文件系统只读的问题。/etc/fstab配置错误,可能…...
使用RSyslog将Nginx Access Log写入Kafka
个人博客地址:使用RSyslog将Nginx Access Log写入Kafka | 一张假钞的真实世界 环境说明 CentOS Linux release 7.3.1611kafka_2.12-0.10.2.2nginx/1.12.2rsyslog-8.24.0-34.el7.x86_64.rpm 创建测试Topic $ ./kafka-topics.sh --zookeeper 192.168.72.25:2181/k…...
通过Apache、Nginx限制直接访问public下的静态文件
一、Apache 在public目录下的.htaccess文件中添加如下规则,来拒绝除了指定文件类型之外的所有请求 <FilesMatch "\.(?!(jpg|jpeg|png|gif|css|js|ico)$)[^.]$">Order Allow,DenyDeny from all </FilesMatch> 上述配置表示仅允许访问.jpg …...
uniapp小程序中隐藏顶部导航栏和指定某页面去掉顶部导航栏小程序
uniappvue3开发小程序过程中隐藏顶部导航栏和指定某页面去掉顶部导航栏方法 在page.json中 "globalStyle": {"navigationStyle":"custom",}, 如果是指定某个页面关闭顶部导航栏,在style中添加"navigationStyle": "cus…...
Agile Scrum 敏捷开发方法
Agile Scrum 是一种敏捷开发方法,广泛用于软件开发以及其他项目管理领域。它强调迭代式的工作流程、团队协作、灵活应对变化和持续改进,旨在通过快速交付和反馈来最大化项目价值。Scrum 是 Agile(敏捷)方法中的一种具体实践框架&a…...
【算法与数据结构】—— 回文问题
回文问题 目录 1、简介2、经典的回文问题(1) 判断一个字符串是否为回文(2) 给定字符集求构建的最长回文长度(3) 求最长回文子串方法一:中心拓展方法二:Manacher 算法 (4) 求回文子串的数目方法一:中心拓展方法二:Manacher 算法 1、…...
用vscode写latex-1
一般大伙使用 LaTeX 大体有两种方案, 一种是在本地配置环境或使用本地的软件,如 vscode LaTeX,texlive,lyx 等等; 另一种是线上 LaTeX 平台,其中用的最多的是 Overleaf,还有一部分高校也有自…...
爬虫基础之爬取歌曲宝歌曲批量下载
声明:本案列仅供学习交流使用 任何用于非法用途均与本作者无关 需求分析: 网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载 (gequbao.com) 爬取 歌曲名 歌曲 实现歌手名称下载所有歌曲 本案列所使用的模块 requests (发送…...
GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目
1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner,我这里选择 14.9.1版本 如果执行出现找不到下载源,添加官方仓库 执行 curl -L &quo…...
web前端第五次作业---制作菜单
制作菜单 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…...
软件系统安全逆向分析-混淆对抗
1. 概述 在一般的软件中,我们逆向分析时候通常都不能直接看到软件的明文源代码,或多或少存在着混淆对抗的操作。下面,我会实践操作一个例子从无从下手到攻破目标。 花指令对抗虚函数表RC4 2. 实战-donntyousee 题目载体为具有漏洞的小型软…...
HAMi + prometheus-k8s + grafana实现vgpu虚拟化监控
最近长沙跑了半个多月,跟甲方客户对了下项目指标,许久没更新 回来后继续研究如何实现 grafana实现HAMi vgpu虚拟化监控,毕竟合同里写了需要体现gpu资源限制和算力共享以及体现算力卡资源共享监控 先说下为啥要用HAMi吧, 一个重要原…...
Java基于SSM框架的在线视频教育系统小程序【附源码、文档】
博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇dz…...
mysql本地安装和pycharm链接数据库操作
MySQL本地安装和相关操作 Python相关:基础、函数、数据类型、面向、模块。 前端开发:HTML、CSS、JavaScript、jQuery。【静态页面】 Java前端; Python前端; Go前端 -> 【动态页面】直观: 静态,写死了…...
Unity编程与游戏开发-编程与游戏开发的关系
游戏开发是一个复杂的多领域合作过程,涵盖了从创意构思到最终实现的多个方面。在这个过程中,技术、设计与美术三大核心要素相互交织,缺一不可。在游戏开发的过程中,Unity作为一款强大的跨平台游戏引擎,凭借其高效的开发工具和庞大的社区支持,成为了很多游戏开发者的首选工…...
2025年第三届“华数杯”国际赛A题解题思路与代码(Python版)
游泳竞技策略优化模型代码详解 第一题:速度优化模型 在这一部分,我们将详细解析如何通过数学建模来优化游泳运动员在不同距离比赛中的速度分配策略。 1. 模型概述 我们的模型主要包含三个核心文件: speed_optimization.py: 速度优化的核…...
针对服务器磁盘爆满,MySql数据库始终无法启动,怎么解决
(点击即可进入聊天助手) 很多站长在运营网站的过程当中都会遇到一个问题,就是网站突然无法打开,数据一直无法启动 无论是强制重启还是,删除网站内的所有应用,数据库一直无法启动 这个时候,就需要常见的运维手段了,需要对服务器后台各个资源,进行逐一排查…...
[Android]service命令的使用
在前面的讨论中,我们说到,如果在客户端懒得使用aidl文件生成的接口类进行binder,可以使用IBinder的transcat方法 Parcel dataParcel = Parcel.obtain(); Parcel resultParcel = Parcel.obtain();dataParcel.writeInterfaceToken(DESCRIPTOR);//发起请求 aProxyBinder.trans…...
网站企业有哪些/新闻今天最新消息
今天中午逛站长之家的时候有一个很吸引人的广告,大概是:200IP/1.19元 云云,反正那些流量都是比较低的价格,而且看他那网站介绍,这些流量是是大型广告公司的弹窗广告效果,是真实的IP流量,所以今晚…...
国外 网站开发框架/企业网站优化服务
判断一个括号序列中左右括号是否匹配 解题思路: 扫描到左括号则入栈,扫描到右括号则与栈顶的左括号比较,如果匹配则栈顶括号出栈,不匹配则整个序列不匹配。 如果最后栈里还有未匹配的左括号则也是匹配失败。 代码如下࿱…...
centos搭建wordpress/老铁seo外链工具
如果在现有model中,再加入一个“无关自变量”,则R-squared的值仍然会增加,但是,实质上,model的拟合度并未增加; 为了弥补R-suqared的缺陷,提出了Adjusted R-squared,它在R-squared的…...
网站建设价格裙/上海最近3天疫情情况
微信小程序的运行过程 在我们开发微信小程序中,最需要弄明白的就是其中的运行过程,你才能更好的进行开发 第一步是app onLaunch第二部是app onShow接着是首页的onLoad下面就是onShow这里就是onReady 其中app onLaunch是当小程序初始化完成时,会触发 onLaunch&…...
电子工程网/北京谷歌seo
Vue开发搭建(npm安装vue脚手架安装)一、使用之前,我们先来掌握3个东西是用来干什么的。二、测试NPM安装vue-router一、使用之前,我们先来掌握3个东西是用来干什么的。 npm: Nodejs下的包管理器。 webpack: 它主要的用途是通过Com…...
wordpress 4.5 汉化主题/买链接官网
创建CA证书,用于生成客户端服务端证书. keytool -genkey -alias root -keyalg RSA -keystore root.jks生成客户端证书 keytool -export -alias -file client.cer -keystore root.jks生成服务端证书. keytool -export -alias -file server.cer -keystore root.jks秘钥库,彼此签发…...