Wireshark抓包工具--TCP数据包seq ack等解读

本文详细解析了TCP协议的工作原理,包括数据包的结构、seq和ack的作用机制、滑动窗口的概念及其实现方式等内容。此外还介绍了如何使用Wireshark进行TCP流量分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Wireshark的数据包详情窗口,如果是用中括号[]括起来的,表示注释,在数据包中不占字节


2、在二进制窗口中,如“DD 3D”,表示两个字节,一个字节8位


3、TCP数据包中,seq表示这个包的序号,注意,这个序号不是按1递增的,而是按tcp包内数据字节长度加上,如包内数据是21字节,而当前IP1发到IP2的包的seq是10的话,那下个IP1发到IP2的包的seq就是10+21=31


4、注意我们分析tcp包时,要以一个会话做为一个完整对象,即通讯只发生在两个IP之间,两个固定的端口之间,如果端口变化了,那链接就不是同一条了,不同的链接之间的seq是没有关联的


5、tcp包分为包头的内容,tcp的包头长度是32字节,整个数据包的包头是66字节(不一定的),如果整个数据包是66字节的话,那内容长度就是0


6、每个tcp包都带有win、ack,这些是告诉对方,我还可以接收数据的滑动窗口是多少,如果A发到B的包的win为0,就是A告诉B说我现在滑动窗口为0了,饱了,你不要再发给我了,就说明A端环境有压力(如带宽满了等)


7、ack可以理解为应答。A发给B的ack是告诉B,我已收到你发的数据包,收到ack号这里了,你下次要发seq为ack号的给我


8、在网络不堵即滑动窗口一点都不堵的情况下,第一个包的ack号就是第二个包的seq号,如果堵了,由于是滑动窗口缓存处理队列,所以这个值会错开


9、如果A发到B连续几个包,seq号不变,ack号一直在变大,说明A一直在收B的数据,一直在给B应答


10、如果A发到B连续几个包,seq号一直变大,ack号一直没变,说明A一直在向B发数据,不用给B应答,而是在等B的应答


11、可以接收多个数据包后,一次性给一个应答,不用每个数据包一一对应给应答


12、发了一个包,很久没有收到应答后,会重发包,在Wireshark抓包工具提示“[TCP Retransmission]”,在数据包详情窗口点开可以看到是对哪个数据包的重传


13、“[TCP Dup ACK ?#?]”应答包的重传


14、如果出现这个错误“[TCP Previous segment not captured]”,说明乱序了,前一个包没有收到,收到后面的包了,这时也会重传包
### 使用 Wireshark 进行 TCP 协议抓包分析 #### 准备工作 在开始使用 Wireshark 抓取和分析 TCP 数据包之前,需确保已安装最新版本的 Wireshark 软件。启动软件后,在界面下方选择目标网络接口卡(NIC),该设备用于捕获流量数据[^2]。 #### 设置过滤规则 为了专注于特定类型的流量,设置合适的过滤器至关重要。对于 TCP 流量,可以在输入框中键入 `tcp` 或更具体的条件如 `tcp.port eq 13` 来限定到某个端口上的通信流[^3]。这有助于减少无关数据干扰,提高效率。 #### 开始捕捉过程 点击“Start Capturing Packets”按钮之后,Wireshark 就会实时显示通过所选网卡的所有符合条件的数据帧列表。当观察到预期中的三次握手完成标志时——即看到带有SYN, SYN/ACKACK标记的一系列连续事件,则表明成功建立了TCP连接[^4]。 #### 分析具体交互细节 假设存在这样一个场景:客户端向服务器先后传输了两段文字信息"hello"与"world"。初次传递"hello"期间,其对应的序列号(seq)=1;一旦接收方确认收到此条目,它将以计算得出的新数值回应对方,也就是原初序号加上实际读取字节数之总和作为新的应答值(ack)[^5]。随后再次发送另一部分资料前,发信者依据先前获得的认可结果调整自身当前使用的顺序编码起点位置至上述提到过的那个新定下来的确认位址处。 ```bash # 示例命令展示如何保存捕获文件为标准pcap格式 tshark -w output.pcap -Y "tcp" ``` 以上脚本展示了利用TShark工具导出满足指定条件下的所有匹配项进入名为output.pcap的结果文档里去[^6]。(注意这里额外引入了一个关于命令行操作的例子来补充说明)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值