全面屏|当你 ping 的时候,你知道背后发生了什么吗?
文章图片
文章图片
文章图片
文章图片
文章图片
1
概览
对于 ping命令 , 想必只大家都知道吧?当我们检查网络情况的时候 , 最先使用的命令肯定是 ping命令吧?一般我们用 ping查看网络情况 , 主要是检查两个指标:
- 第一个是看看是不是超时
- 第二个看看是不是延迟太高
如果超时那么肯定是网络有问题(禁 ping情况除外);如果延迟太高 , 网络情况肯定也是很糟糕的 。
那么对于 ping命令的原理 , ping是如何检查网络的?大家之前有了解吗?接下来我们来跟着 ping命令走一圈 , 看看 ping是如何工作的 。2
环境准备和抓包
- 环境准备
抓包工具:Wireshark 准备两台电脑 , 进行互 ping操作:
- A电脑(IP地址: 192.168.2.135 / MAC地址: 98:22:EF:E8:A8:87)
- B电脑(IP地址: 192.168.2.179 / MAC地址: 90:A4:DE:C2:DF:FE)
- 抓包操作
打开 Wireshark , 选取指定的网卡进行抓包 , 进行 ping操作 , 在 A电脑上 ping B电脑的 IP
抓包情况如下:
这里先简单的介绍下Wireshark的控制面板 , 这个面板包含7个字段 , 分别是:
- NO: 编号
- Time: 包的时间戳
- Source: 源地址
- Destination: 目标地址
- Protocol: 协议
- Length: 包长度
- Info: 数据包附加信息
3
深入解析
上图中抓包编号 54-132 显示的就是整个 ping命令的过程 , 我们知道 ping命令不是依托于 TCP或者 UDP这种传输层协议的 , 而是依托于 ICMP协议实现的 ,那么什么是 ICMP 协议呢?这里简单介绍下:
- ICMP协议的产生背景
[RFC792
中说明了 ICMP产生的原因:由于互联网之间通讯会涉及很多网关和主机 , 为了能够报告数据错误 , 所以产生了 ICMP协议 。 也就是说 ICMP 协议就是为了更高效的转发 IP数据报和提高交付成功的机会 。
- ICMP协议的数据格式
根据上图我们知道了 ICMP协议头包含 4个字节 , 头部主要用来说明类型和校验 ICMP报文 。 下图是对应的类型和代码释义列表 , 我们后面分析抓包的时候会用到 。
简单介绍完了 ICMP , 那么抓包过程中出现的 ARP协议是什么呢?我们同样来简单解释下:
- ARP协议
我们知道 , 在一个局域网中 , 计算机通信实际上是依赖于 MAC地址进行通信的 , 那么 ARP( AddressResolutionProtocol)的作用就是根据 IP地址查找出对应的 MAC地址 。
- 荣耀|今年过节不乱跑,荣耀智慧屏1499起,和年夜饭一样真香
- 魅族|魅族19配置曝光,天玑9000+三星E5直屏,网友: 来势汹汹!
- 大屏|尺寸直追笔记本 曝国产厂商将推出高刷大屏旗舰平板
- iqoo|iQOO Z5x兼备长续航与优质好屏,无压力畅玩游戏
- iPhone|iphone14价格被曝!“胶囊”挖孔屏+三星4nm芯片,售价或5999起
- iPhone|iPhone14Pro打孔屏你受不了,刘海咋看习惯了?
- 小米科技|从4999跌至2889元,2K曲面屏+IP68防水,小米老款旗舰售价大跳水
- 2599起!曾经破万的折叠屏,现在还有人买吗?
- 触控|iPhone的屏幕触控采样率,揭开了安卓最后一块遮羞布。
- iPhone13用户后悔?14全系列标配120Hz屏幕,可选8GB运行内存!