TCP 分段与重组
🧩 大数据被 TCP 拆成多个段传输,r0capture 各段分别抓到。
为什么分段
- TCP 段受 MSS(最大段长,常 1460 字节)限制
- 大 HTTP 响应(如图片/JSON)被拆成多个 TCP 段
- 每段对应一次
SSL_read(接收)或被切分写入(发送)
r0capture 的视角
每段触发一次 SSL_read,r0capture 各抓一次,pcap 里是多个独立包。
重组方法
| 工具 | 方法 |
|---|---|
| Wireshark | 右键 → Follow → TCP Stream |
| tshark | tshark -r x.pcap -z follow,tcp,ascii,0 |
| 手动 | 按 src/dst addr+port 配对,按 seq 排序拼接 |
重组的依据
同一个 TCP 连接 = 相同四元组(src_ip, src_port, dst_ip, dst_port)。r0capture 的 message 含这四元组,pcap 里每个包带,Wireshark 据此分组。
注意
- TLS 加密的是整个明文流,r0capture 在 SSL 层抓,已经是解密后的——所以重组 r0capture 抓的多个 chunk = 直接拼明文,不用管 TLS record 边界
- 但 HTTP 层的 chunked/Content-Length 仍需 App 或分析者自行解析