文章插图
说了这么多 , 你应该也发现了 , tcpdump 虽然功能强大 , 但是输出的格式并不直观 。
所以 , 在工作中 tcpdump 只是用来抓取数据包 , 不用来分析数据包 , 而是把 tcpdump 抓取的数据包保存成 pcap 后缀的文件 , 接着用 Wireshark 工具进行数据包分析 。
Wireshark 工具如何分析数据包?
Wireshark 除了可以抓包外 , 还提供了可视化分析网络包的图形页面 , 同时 , 还内置了一系列的汇总分析工具 。
比如 , 拿上面的 ping 例子来说 , 我们可以使用下面的命令 , 把抓取的数据包保存到 ping.pcap 文件
文章插图
接着把 ping.pcap 文件拖到电脑 , 再用 Wireshark 打开它 。打开后 , 你就可以看到下面这个界面:
文章插图
是吧?在 Wireshark 的页面里 , 可以更加直观的分析数据包 , 不仅展示各个网络包的头部信息 , 还会用不同的颜色来区分不同的协议 , 由于这次抓包只有 ICMP 协议 , 所以只有紫色的条目 。
接着 , 在网络包列表中选择某一个网络包后 , 在其下面的网络包详情中 , 可以更清楚的看到 , 这个网络包在协议栈各层的详细信息 。比如 , 以编号 1 的网络包为例子:
文章插图
- 可以在数据链路层 , 看到 mac 包头信息 , 如源 MAC 地址和目标 MAC 地址等字段;
- 可以在 IP 层 , 看到 IP 包头信息 , 如源 IP 地址和目标 IP 地址、TTL、IP 包长度、协议等 IP 协议各个字段的数值和含义;
- 可以在 ICMP 层 , 看到 ICMP 包头信息 , 比如 Type、Code 等 ICMP 协议各个字段的数值和含义;
Wireshark 用了分层的方式 , 展示了各个层的包头信息 , 把“不可见”的数据包 , 清清楚楚的展示了给我们 , 还有理由学不好计算机网络吗?是不是相见恨晚?
从 ping 的例子中 , 我们可以看到网络分层就像有序的分工 , 每一层都有自己的责任范围和信息 , 上层协议完成工作后就交给下一层 , 最终形成一个完整的网络包 。
文章插图
#解密 TCP 三次握手和四次挥手
既然学会了 tcpdump 和 Wireshark 两大网络分析利器 , 那我们快马加鞭 , 接下来用它俩抓取和分析 HTTP 协议网络包 , 并理解 TCP 三次握手和四次挥手的工作原理 。
本次例子 , 我们将要访问的 http://192.168.3.200 服务端 。在终端一用 tcpdump 命令抓取数据包:
文章插图
接着 , 在终端二执行下面的 curl 命令:
文章插图
最后 , 回到终端一 , 按下 Ctrl+C 停止 tcpdump , 并把得到的 http.pcap 取出到电脑 。
使用 Wireshark 打开 http.pcap 后 , 你就可以在 Wireshark 中 , 看到如下的界面:
推荐阅读
- 一文说清“保障房” 保障房是什么?
- 坏男孩教会我的17件事 那些坏男人教我的事
- 一文了解高岭土加工技术及特点 高岭土成分
- 教你一文看懂股票涨幅榜 股票涨幅怎么算
- |一文读懂办公室工作忌讳!
- 一文带你了解什么是Quora广告
- 私域实战|5000字精华,讲透私域社群运营!
- 一文读懂IP地址和MAC地址有什么区别和联系 mac地址是什么
- 如何教会孩子认识钟表 认识钟表课件
- 如何带领“钢铁直男”,教会他成为你心中的暖男!
