使用 wireshark 分析 Ping 通信的具体流程

使用 wireshark 分析 Ping 通信的具体流程,第1张

使用 wireshark 分析 Ping 通信的具体流程

当网络出现异常时,我们经常使用 ping 命令检查一条通信链路是否还能通信成功。前述我们学习了几种常见网络抓包及协议分析工具,以及 wireshark 的基本使用,今天我们小试牛刀,分析一个面试过程中经常遇到的问题—— ping 命令的触发的网络行为到底是怎样的。

查看本机 ip 地址

在 linux 下输入 ifconfig 或者在 windows 的 cmd 窗口输入 ipconfig /all 命令,查看本机 IP。如下图,本机无线 ip 为“192.168.0.102"。

启动 wireshark

打开 wireshark,设置捕获过滤表达式(host 192.168.0.102)为捕获本机 IP (上一步查询到的 IP)的数据包。然后按下 enter 键,开始抓包。

发起 ping 通信

如下图,在linux 的终端(或者打开 windows 下的 cmd 窗口)输入向百度发起 ping 通信的命令:

查看 ping 通信的抓包数据

如下图,设置显示过滤表达式(ip.addr == 192.168.0.102)为本机 IP,查看 ping 命令触发的实际通信过程。

如上图,输入 ping 命令后,经历了下述几个步骤:

  • 192.168.0.102 (本机PC) 向 192.168.1.1 (路由器)发起 DNS 域名解析请求(query)

  • 路由器将 www.baidu.com 解析为其对应的 IP 地址,并将解析结果返回给PC(reply)

  • PC 获取到 www.baidu.com 的 IP 地址 36.152.44.95后,向该地址发送 ICMP 协议请求(request)

  • 百度36.152.44.95 向本机 PC 发送 ICMP 响应(reply)

总结:

Ping 的过程,首先是基于 DNS 协议的域名解析,然后是基于 ICMP 协议的请求-响应。

码字不易,谢谢收藏和点赞。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/726362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存