重新认识 TCP 的握手和挥手:答案和解析

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

本文介绍了使用Wireshark分析TCP会话的技巧,包括找到握手和挥手包、过滤和展示数据、查看特定会话的数据等。

🔎

延伸解读

Profile 功能:隔离分析环境

Wireshark 的 Profile 允许为不同分析任务保存独立配置,如颜色规则和过滤按钮。在分析 TCP 时,可创建专用 Profile,仅保留 TCP 相关配色,使 SYN 和 FIN 包更易识别。切换 Profile 不会影响其他配置,适合同时处理多种网络问题。

Display Filter Button:一键过滤

Display Filter Button 可将常用过滤条件保存为按钮,点击即可应用。该按钮跟随 Profile,切换 Profile 时按钮组也随之改变。例如,保存“SYN||FIN”过滤器后,能快速定位握手和挥手包,提升分析效率。

特殊握手与挥手:合并包现象

文章指出,某些 TCP 会话中,三次握手的第三个包(ACK)可与数据合并发送,因此抓包中仅见两个包。四次挥手也可能因 FIN 和 ACK 合并而表现为三次。这提醒读者,实际抓包可能因优化而不同于理论模型。

FIN 占用序列号:区分 ACK 类型

FIN 标志会占用一个序列号,因此可通过序列号变化区分 ACK 是确认数据还是 FIN。在 Wireshark 中,将 seq 和 ack 添加为列,观察 FIN 包(长度 0)的序列号递增,即可验证。此技巧有助于准确分析 TCP 状态。

❓

Q&A

如何使用Wireshark查看TCP会话的统计信息?

可以通过选择Statistics > TCP Tab来查看TCP会话的数量、IP端口、数据量和发送速率等信息。

Wireshark中的Profile功能有什么用?

Profile功能允许用户在分析不同网络问题时使用不同的配置,方便切换和管理不同的分析模式。

如何在Wireshark中快速过滤TCP包?

可以使用Display Filter Button功能,输入过滤条件后,点击按钮即可快速应用过滤器。

TCP的三次握手和四次挥手有什么特别之处?

第一个会话的三次握手实际上只使用了两个包,而第二个会话的四次挥手实际上是三次,FIN和ACK包合并了。

如何在Wireshark中分析特定的TCP会话?

可以右键选择Follow > TCP Stream来过滤并显示与特定TCP会话相关的包。

Wireshark中如何展示seq number和ack number字段?

可以在包列表中右键点击列的header,选择编辑,或在包上右键选择Apply as Column将字段添加到列中。

🏷️

标签

➡️

继续阅读