怎么理解ping?这是我听过最好的回答

晚上好,我是老杨。

Ping这几个字母,已经深入网工人的骨髓了吧?

把Ping用到工作里,肯定不少人在用,但对Ping的了解和理解是不是足够深,取决了你能在工作里用到什么程度,能让它帮你到什么地步。

我用三个问题来测试一下,你对Ping的了解程度:

如何知道是否有人正在发起 ping?

对方执行 ping 的时候,能否在对方不知情的情况下获取对方的 IP?

ping 命令工作在 OSI 七层网络模型的哪一层?

能回答的上来不?

今天想系统和你说一说Ping那些事,虽然我之前也说过不少,但都相对碎片化。

从头给你来一遍,效果更佳。

今日文章阅读福利:《网工最全技术图谱(高清)》

私信我,回复关键词“网络技术”,即可领取网工经典技术思维导图(最全版本),替你理清技术思路,拨开技术迷雾,指导你24年的努力方向

01 怎么趣味理解ping?

Ping这个技术,其实就是咱们用来检查网络通不通的一种小工具,用它就可以帮你了解网络连接的情况。

它的原理就像是在网络世界里喊话,看看对方能不能听见你的声音。具体点说,ping利用ICMP协议发出一个“回声请求”,然后等待对方回应一个“回声应答”。

如果对方回应了,就说明网络是通的,还能告诉你大概需要多久时间。

也就是说,你用Ping的时候,其实是在向另一台电脑或者服务器打个招呼:“嘿,你在吗?”

然后如果对方在线,它会回复你:“在呢,怎么了?”

这样一来回,你就知道对方在那儿,并且你们之间的通信是通的。

如果你发现对方没有回应,那可能是它不在线,或者在路上出了点问题,比如网络连接断了,或者别的原因。

这就好比你喊了朋友一声,但他没回答,你可能就会想,他是没听见呢,还是碰到什么麻烦了?

而且,Ping还可以告诉你这“喊话”用了多久。

如果回应很快就来了,说明网络速度挺快;

如果等了半天才有回复,那可能就表示网络有点卡,或者是距离太远了。

也就是说,利用Ping,你就可以向设备B发送一个数据包以检查其是否能够做出回应。

动图封面

若无法Ping通设备B,这表明目标主机可能遇到了断线或其他连接问题。

若能成功Ping通,可以通过测量数据包往返所花费的时间来确定网络延迟。

Ping用的是ICMP协议。这个协议和TCP、UDP不太一样,后两者工作在OSI模型的第四层,也就是传输层,但ICMP要更基础一些,位于网络层的第三层。

当我们聊到Ping命令,它就是在网络层上执行的一个功能,用ICMP协议来检查两台主机之间是否可以互相到达,以及需要多少时间。

ICMP协议,全称是Internet Control Message Protocol,通常用于网络上的错误报告和状态信息的传递。

当你执行Ping命令时,实际上就是在发送一个ICMP Echo Request消息,然后等待对方回复一个ICMP Echo Reply。

这样一来一往,就能检测出两个网络节点之间的连接是不是畅通的,同时还能测出数据往返所需的时间,也就是往返时间(RTT)。

当然,关于ping的实用方法也有不少。

你可以在命令提示符中键入“ping”后跟目标IP地址或者域名,这样会发送四个回显请求包并等待回应,以检测网络连接的有效性和响应时间。

如果你输入“ping -t”加上目标IP地址或域名,ping会持续不断地发送数据包并接收回应,直到你按下Ctrl+C来停止,这有助于观察网络的稳定程度和数据丢失情况。

通过输入“ping -n 数量”然后是目标IP地址或域名,你可以指定发送数据包的确切数量,这样可以更精确地评估网络的性能指标。

你也可以通过键入“ping -s 跳数”加目标IP地址或域名,可以获取每一跳的时间戳信息,帮助分析造成网络延迟的潜在因素。

这些内容我在《想不到吧,原来ping还能这么用 》都有详细说明。

最近还发现了两款Ping的增强工具,十分好用,叫做“AKKPing”和“科来Ping”,推荐你去尝试下载使用下,体验感提升不少。

当然,私信暗号“工具2024”,这些好用工具下载链接,也可以找我拿哈。

02 如何知道有人正在 ping 服务器?

在网络中,ping的作用主要有三种:

1、用来检测网络的连通情况和分析网络速度

2、根据域名得到服务器IP

3、根据 ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量

那如果有人正在 ping 我们,有没有办法知道是谁在 ping ?

当然可以。

执行ping命令本质就是在对目标主机发起主动的网络探测,更确切地说是在发起一个请求,然后等待一个响应,通过这个响应来判断目标主机的网络状态。

要知道,Ping用的是哪个层次的协议来发这个招呼,你一旦懂了,就能通过一些工具,比如“抓包”工具,看看有没有人正在对服务器做Ping探测。

而且,翻翻服务器的日记,也能发现是不是有谁以前Ping过它。因为Ping是基于TCP/IP模型里的第三层,也就是网络层,用ICMP协议聊天的,所以你就可以利用这点,通过抓包找到那些Ping的数据传输,分析数据包的来源,揪出是谁在呼叫你的主机。

至于看过去谁Ping过你的电脑,道理差不多,只不过一个是现场直播,一个成了回放旧录像带。

有时候你会听到人们说Ping工作在应用层,这么理解其实是因为Ping是直接为用户服务的。

但如果你换个角度看,从干活的层面来看,你会发现Ping更像是网络层的活儿。简单来说就是:Ping为大家服务,但它的技术支持来自网络层。

那么实操上怎么做?

如果你用的是Linux系统,你可以用iptables设置一套专门对付ICMP包的过滤规则,然后用dmesg命令查看这些数据包。

或者你也可以用tcpdump这工具来捕捉Ping的请求。Windows用户的话,就方便多了,直接用Wireshark,在界面上输入“ICMP”,就能过滤出相关的信息,一目了然。

记住,如果你能够访问服务器或设备的网络接口,你就有可能找到谁在Ping你。

但有时候,由于网络地址转换(NAT)或者伪造IP地址的原因,看到的源IP可能不会直接指向实际的发送者,而是显示为中间设备或代理服务器的地址。

在这种情况下,你可能需要更深入的分析或者联系你的互联网服务提供商以获取更多帮助。

关于更多Ping的技术内容详解,感兴趣的网工朋友可以继续浏览:

《同vlan不同网段能否ping通? 》

《没看完这篇文章,别说你会用Ping 》

《奇怪,能ping通怎么还是上不了网? 》

《ping三个不存在的IP地址后,你能得到……》

《网络工程师常用命令排行榜,Ping就在这一行》

愿你看完能过收获良多。

原创:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

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

相关文章

美格智能联合罗德与施瓦茨完成5G RedCap模组SRM813Q验证,推动5G轻量化全面商用

全球5G发展进入下半场,5G RedCap以其低成本、低功耗的特性成为行业焦点。近日,中国移动携手合作伙伴率先完成全球最大规模、最全场景、最全产业的RedCap现网规模试验,推动首批芯片、终端具备商用条件,RedCap端到端产业已全面达到商…

c#常用的数据结构

Array数组 内存上连续存储, 数组是引用类型而不是值类型。 优点: 按照索引查询元素速度很快。 按照索引遍历数组很方便。 缺点: 声明数组时大小必须确定,且大小不能改变。 添加和删除元素的速度很慢,因为需要移…

10.CSS3的calc函数

CSS3 的 calc 函数 经典真题 CSS 的计算属性知道吗? CSS3 中的 calc 函数 calc 是英文单词 calculate(计算)的缩写,是 CSS3 的一个新增的功能。 MDN 的解释为可以用在任何长度、数值、时间、角度、频率等处,语法如…

【高频SQL题目】再做一遍 1164.指定日期的产品价格

题目要求: 产品数据表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ (product_id, change_date)…

Spring6学习技术|Junit

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) Junit 背景 背景就是每次Test都要重复创建容器,获取对象。就是ApplicationContext和getBean两个语句。通过Spring整合Junit,可以…

二进制部署k8s集群部署的步骤总结

二进制部署k8s集群部署的步骤总结 (1)k8s的数据存储中中心的搭建 etcd 准备证书启动etcd服务,加入集群 (2)单机master节点的部署 准备证书和tokern文件安装 apiserver, controller mangerscheduler &am…

sentinel的资源数据指标是如何采集

资源数据采集 之前的NodeSelectorSlot和ClusterBuilderSlot已经完成了对资源调用树的构建, 现在则是要对资源进行收集, 核心点就是这些资源数据是如何统计 LogSlot 作用: 记录异常请求日志, 用于故障排查 public class LogSlot extends AbstractLinkedProcessorSlot<Def…

统计图雷达图绘制方法

统计图雷达图绘制方法 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 还有一种雷达图的绘制也较难&#xff0c;今提供雷达图的绘制方法供参考。 本方法采用C语言的最基本功能&#xff1a; &am…

外资并购支付牌照如何进行变更审批

孟凡富 本文首发移动支付网公众号&#xff0c;标题为外资并购支付牌照难点解析 2023年12月17日&#xff0c;《非银行支付机构监督管理条例》正式公布&#xff0c;自2024年5月1日起开始施行。根据《条例》规定&#xff0c;中华人民共和国境外的非银行机构&#xff0c;若拟为境…

【Hudi】索引

Hudi默认采用的HoodieBloomIndex索引&#xff0c;其依赖布隆过滤器来判断记录存在与否&#xff0c;当记录存在时&#xff0c;会读取实际文件进行二次判断&#xff0c;以便修正布隆过滤器带来的误差。 Hudi Bucket Index 在字节跳动的设计与实践] 1.1 索引的作用 在传统 Hive …

跟着野火学FreeRTOS:第二段(事件组)

在小节里面介绍了二进制信号量&#xff0c;计数信号量&#xff0c;互斥量和递归互斥量等功能&#xff0c;其中二进制信号量和计数信号量&#xff08;也包括队列&#xff09;常用于任务和任务之间以及任务和中断之间的同步&#xff0c;她们具有以下属性&#xff1a; 当等待的事…

Day15-Linux系统特殊权限知识精讲

Day15-Linux系统特殊权限知识精讲 为什么创建文件默认权限为644&#xff0c;目录为755&#xff1f;&#xff1f;&#xff1f; umask 权限掩码。控制系统的文件和目录的默认权限。 [rootoldboy oldboy]# umask 0022针对文件来说&#xff1a;默认权限计算方法 6 6 6 0 2 2 - …

为什么0.1+0.2不等于0.3

一、JS内部的计算是以二进制形式进行的 js里整数和小数转为二进制形式的方法是不一样的&#xff1a; 二、Number类型使用IEEE754标准64位存储 双精度浮点数&#xff08;double类型&#xff09;为每个数分配64位空间&#xff0c;并以科学计数法的方式存储&#xff1a; 那么对于…

C++入门学习(三十三)函数的定义,两数之和函数作为例子

为什么使用函数&#xff1a;将一些重复的代码封装&#xff0c;方便以后的使用&#xff0c;直接调用即可。 先给一个例子&#xff1a; // 函数返回整数类型 int addNumbers(int a, int b) { // 函数体 int sum a b; return sum; // 返回计算得到的和 } 返回值类型&…

基于卷积神经网络的图像去噪

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 基于卷积神经网络的图像去噪 完整代码:基于卷积神经网络的图像去噪.rar资源-CSDN文库 https://download.csdn.net/download/abc9918351…

xrpc: 一个基于消息队列的的Go语言RPC框架

文章目录 前言XRPC的特性XRPC的实现通信编码/解码服务调用 总结 项目地址: GitHub Gitee 前言 RPC作为分布式系统中的基础组件, 使用非常广泛。大多数的RPC框架都是基于点对点的网络连接, 比如golang原生的rpc框架、grpc等. 点对点连接的通讯方式, 随着集群节点的增加, 会导致…

(全注解开发)学习Spring-MVC的第三天

全注解开发 第一部分 : 1.1 消除spring-mvc.xml 这些是原来spring-mvc.xml配置文件的内容 <!--1、组件扫描, 使Controller可以被扫描到--><context:component-scan base-package"com.itheima.controller"/><!--2、非自定义的Bean, 文件上传解析器--&…

mysql-多表查询-外连接

一、外连接查询语法 &#xff08;1&#xff09;左外连接 select 所要查询的内容 from 左表 left outer join 右表 on 条件; &#xff08;2&#xff09;右外连接 select 所要查询的内容 from 左表 right outer join 右表 on 条件; 二、示例 用以下两张表示例 左外连接 右外…

Pyglet综合应用|推箱子游戏之关卡图片载入内存

目录 读取图片 分割图片 综合应用 本篇为之前写的博客《怎样使用Pyglet库给推箱子游戏画关卡地图》的续篇&#xff0c;内容上有相关性&#xff0c;需要阅读的请见链接&#xff1a; https://hannyang.blog.csdn.net/article/details/136209138 「推箱子」是一款风靡全球的益…

c++内存的四大分区详解

目录 前言&#xff1a; 1、程序的基本运行流程 2&#xff0c;为啥要分为四个区域&#xff1f; 3&#xff0c;分为哪四个区域&#xff1f; 4&#xff0c;4个区域详解 代码区&#xff1a; 为什么会设置这两个功能呢&#xff1f; 全局区&#xff1a; 栈区&#xff1a; 堆…