Ping命令是如何工作的呢?这篇文章给你答案

90 篇文章 29 订阅
9 篇文章 5 订阅

ping命令我们见怪不怪了,一般来说,我们们用 ping查看网络情况,主要是检查两个指标:

1、对方是否可达

2、延迟是否太高

如果超时那么肯定是网络有问题(禁 ping情况除外),如果延迟太高,网络情况肯定也是很糟糕的。

我们知道它的作用,但是ping到底是如何检查网络的?它背后的原理又是什么呢?

接下来我们做个实验来验证一下!

环境准备和抓包

01 环境准备

抓包工具:Wireshark 准备两台电脑,进行互 ping操作:

  • A电脑(IP地址:192.168.27.1 / MAC地址:54-89-98-75-5F-DA)
  • B电脑(IP地址:192.168.2.179 / MAC地址:54-89-98-63-42-38)

02 抓包操作

打开 Wireshark,选取指定的网卡进行抓包,进行 ping操作,在 A电脑上 ping B电脑的 IP。抓包情况如下:

在上图中可以看到发送方和接收方的IP以及使用的协议等、在下面的封包列表中显示被选中的详细信息,信息按OSI Layer进行分组;

上面就是整个 ping命令的过程,但我们知道 ping命令不是依托于 TCP或者 UDP这种传输层协议的,而是依托于 ICMP协议实现的, 那么什么是 ICMP 协议呢?这里简单介绍下:

1、ICMP是什么?

ICMP是控制报文协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息,这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

从技术角度说,ICMP就是一个"错误侦测与回报机制",其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:

· 侦测远端主机是否存在。

· 建立及维护路由资料。

· 重导资料传送路径(ICMP重定向)。

ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。常用的类别如下表所列:

可见,ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候。

02 Ping过程解析

了解了上面的基础概念后,我们来分析下抓包的数据,其流程如下:

  • A 主机( 192.168.27.1)发起 ping请求, ping 192.168.27.5
  • A 主机广播发起 ARP请求,查询 192.168.27.5的 MAC地址
  • B 电脑应答 ARP请求,向 A电脑发起单向应答,告诉 A电脑自己的 MAC地址为 54-89-98-63-42-38
  • 知道了对方的 MAC地址后,开始进行真正的 ping请求,由于 B电脑可以根据A电脑发送的请求知道 源 MAC地址,所以就可以根据源 MAC地址进行响应了

上面的请求过程我画成流程图比较直观一点:

关于ping

1、ping命令是依托于 ICMP协议的, ICMP协议是网络层辅助IP工作的协议,存在就是为了更高效的转发 IP数据报和提高交付成功的机会。

ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。

另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值