这几道题其实都是在考“三次握手”的识别与参数提取。下面是你能直接复刻的 Wireshark 查找方法 + 答题逻辑步骤👇
✅ 一、找第一帧(客户端 SYN)
目标:帧号、客户端端口号、32-bit raw 序号、方向判断、是否消耗序号
查找步骤:
- 在过滤器输入:
- 找到 Apollo → External Web 的那一条(例如:
80.129.88.81:50370 → 102.139.247.19:80 [SYN]) - 帧号 = 372
- 客户端端口 = 50370
- 展开 TCP → 查看 “Sequence Number (raw)”
- 填:
5af6583d
- 判断题:
This is sent from client to server→ ✅ True(Apollo 发 SYN)This message will consume one sequence number→ ✅ True(SYN 一定消耗一个序号)
✅ 二、找第二帧(服务端 SYN-ACK)
目标:帧号、32-bit raw 序号
“同一流编号”= 同一个 TCP 连接的编号。
- 在 Wireshark 里,每条 TCP 连接(同一对 四元组:
源IP, 源端口, 目的IP, 目的端口)都会被分配一个递增的tcp.stream编号,从 0 开始。
- 这条连接里的所有包(SYN、SYN-ACK、ACK、HTTP 请求/响应……)的
tcp.stream值都一样。
- 你的截图里在 TCP 详情看到
[Stream index: 1],这就是这条连接的流编号;372、373、374 这三帧应该都显示tcp.stream = 1。
查找步骤:
- 过滤器:
- 找到 External Web → Apollo 的那一帧:
- 帧号 = 373
- 展开 TCP → 找到 “Sequence Number (raw)”
- 填:
9f6f5675
✅ 三、找第三帧(客户端 ACK)
目标:帧号、32-bit raw 序号、ack 序号
查找步骤:
- 过滤器:
- 找到 Apollo → External Web 的纯 ACK:
- 帧号 = 374
- 展开 TCP → 记录:
- Sequence Number (raw):
5af6583e - Acknowledgment Number (raw):
9f6f5676
📘 最终答案汇总(根据你截图内容)
项目 | 帧号 | 源端口 | Seq (raw) | Ack (raw) | 方向 | 消耗序号 |
(a) SYN | 372 | 50370 | 5af6583d | — | True | True |
(b) SYN,ACK | 373 | 80 | 9f6f5675 | — | — | True |
(c) ACK | 374 | 50370 | 5af6583e | 9f6f5676 | — | False(纯ACK不消耗) |
💡 快速记忆法:
标志位 | 谁发 | 消耗序号 | 说明 |
SYN | Client | ✅ +1 | 发起连接 |
SYN+ACK | Server | ✅ +1 | 回复握手 |
ACK | Client | ❌ | 完成握手 |
要不要我帮你写一套“Wireshark操作流程图”(从过滤→定位→展开→抄数→验证)?这样你考试时照着操作就能几秒内拿到这三帧的数据。