10 分钟掌握 Wireshark TCP 流跟踪:从抓包到分析,一步到位不踩坑
|
admin
2025年12月31日 22:46
本文热度 679
|
TCP 流是基于 TCP 连接的有序数据序列,是网络中可靠传输数据的 “通道”。
它会按发送顺序排列数据,通过重传、确认机制避免丢失,还支持双向传输 —— 比如客户端发请求、服务器回响应,都能在同一条 TCP 流里完成。像浏览网页、传文件时,应用数据都会封装成 TCP 流传输,确保信息完整、有序到达。
打开捕获文件;在一个协议为TCP的包上右击,选择 追踪流-TCP;将进入TCP流追踪;

选择该菜单后,主面板上包列表里,仅列出本次TCP会话的包;

同时会在一个单独的窗口中显示TCP流;
看一下基本是乱码;大体能看出,是http1.1协议;是本机和百度的一个网址通信的情况;

红色是源到目的地;蓝色反之;

先看一下;需要详细解析的时候再说吧;
看一下本次会话最后一个包;

eclick.e.shifen.com
https(443) [ACK] Seq=1786 Ack=4560 Win=65536 Len=0 SLE=4220 SRE=4560
是嘛意思?
基本解释如下:
443端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.
它们的含义是:
SYN表示建立连接,
FIN表示关闭连接,
ACK表示响应,
PSH表示有 DATA数据传输,
RST表示连接重置。
TCP的SEQ和ACK总结:
在TCP通讯中,无论是建立连接,数据传输,友好断开,强制断开,都离不开Seq值和Ack值,它们是TCP传输的可靠保证。Seq是发送方告诉接收方,我当前从第Seq个字节开始发送len个字节数据(不包括以太网Eth头,IP头和Tcp头,也就是纯数据长度)给你,而Ack则是接收方给发送方回复:接收方回复的Ack=发送方Seq+发送数据长度len。
在建立连接双方握手时,发送方的Seq为0,表示发送的数据长度也为0,这时接收方收到数据帧后,会判断Seq+数据长度为0或者Seq+数据长度为1的话,那么在回应发送方的Ack的值就为1(也就表示确认号有效,为0的话就表示数据包中不包含确认信息(即不含有Ack字段),忽略确认号字段)。
在数据传输中,如果Seq+数据长度不为0或1并且数据长度不为0的话,则回应时的Ack就等于Seq+数据长度的值,这就表示我已经收到Seq+数据长度个字节的数据。发送方收到该Ack就会比较自己的Seq+刚发出去的纯数据长度,如果一致,则回应接收方的Ack,并且发送下一个包,否则将重发该包,若超时还没收到Ack也会重发该包。
阅读原文:原文链接
该文章在 2026/1/4 16:22:46 编辑过