![当 Ping 命令后,背后发生了什么?](http://img.jiangsulong.com/220404/004010N19-0.jpg)
文章插图
作者 | 木木匠
链接 | my.oschina.net/luozhou/blog/2992137
01 概览
对于
ping
命令 , 想必只要是程序员都知道吧?当我们检查网络情况的时候 , 最先使用的命令肯定是ping
命令吧?一般我们用ping
查看网络情况 , 主要是检查两个指标:- 第一个是看看是不是超时
- 第二个看看是不是延迟太高
ping
情况除外);如果延迟太高 , 网络情况肯定也是很糟糕的 。那么对于
ping
命令的原理 , ping
是如何检查网络的?大家之前有了解吗?接下来我们来跟着ping
命令走一圈 , 看看ping
是如何工作的 。02 环境准备和抓包
- 环境准备
ping
操作:- A电脑(IP地址:
192.168.2.135
/ mac地址:98:22:EF:E8:A8:87
)
- 【当 Ping 命令后,背后发生了什么?】B电脑(IP地址:
192.168.2.179
/ MAC地址:90:A4:DE:C2:DF:FE
)
- 抓包操作
![当 Ping 命令后,背后发生了什么?](http://img.jiangsulong.com/220404/004010E93-1.jpg)
文章插图
抓包情况如下:
![当 Ping 命令后,背后发生了什么?](http://img.jiangsulong.com/220404/0040101102-2.jpg)
文章插图
这里先简单的介绍下Wireshark的控制面板 , 这个面板包含7个字段 , 分别是:
-
NO
: 编号
-
Time
: 包的时间戳
-
Source
: 源地址
-
Destination
: 目标地址
-
Protocol
: 协议
-
Length
: 包长度
-
Info
: 数据包附加信息
上图中抓包编号
54-132
显示的就是整个ping
命令的过程 , 我们知道ping
命令不是依托于 TCP或者 UDP这种传输层协议的 , 而是依托于ICMP
协议实现的 , 那么什么是ICMP
协议呢?这里简单介绍下:- ICMP协议的产生背景
ICMP
产生的原因:由于互联网之间通讯会涉及很多网关和主机 , 为了能够报告数据错误 , 所以产生了ICMP
协议 。也就是说ICMP
协议就是为了更高效的转发 IP数据报和提高交付成功的机会 。- ICMP协议的数据格式
![当 Ping 命令后,背后发生了什么?](http://img.jiangsulong.com/220404/0040106364-3.jpg)
文章插图
根据上图我们知道了
ICMP
协议头包含 4个字节 , 头部主要用来说明类型和校验ICMP
报文 。下图是对应的类型和代码释义列表 , 我们后面分析抓包的时候会用到 。![当 Ping 命令后,背后发生了什么?](http://img.jiangsulong.com/220404/0040103341-4.jpg)
文章插图
简单介绍完了
ICMP
, 那么抓包过程中出现的ARP
协议是什么呢?我们同样来简单解释下:- ARP协议
MAC
地址进行通信的 , 那么ARP
(AddressResolutionProtocol
)的作用就是根据 IP地址查找出对应的 MAC地址 。- Ping过程解析
- A 电脑(
192.168.2.135
)发起ping
请求 ,ping192.168.2.179
- A 电脑广播发起
ARP
请求 , 查询192.168.2.179
的 MAC地址 。
- B 电脑应答
ARP
请求 , 向 A电脑发起单向应答 , 告诉 A电脑自己的 MAC地址为90:A4:DE:C2:DF:FE
- 知道了 MAC地址后 , 开始进行真正的 ping请求 , 由于 B电脑可以根据A电脑发送的请求知道 源 MAC地址 , 所以就可以根据源 MAC地址进行响应了 。
推荐阅读
- 查看Centos端口及系统信息命令
- 超详细的AIX系统命令总结
- Linux系统 tcpdump 抓包命令使用教程
- 计算机网络常用的命令行指令
- 菌菇水可以当爽肤水吗 菌菇水为什么没有说明书
- 伏天已至 消暑养身 喝茶正当时
- 宜兴紫砂鉴别之好劣真面目
- 拍照姿势泄露内心真实想法
- 民警被锁喉 男子当街被警察锁喉
- 当代紫砂文化价值回归