Wireshark 跟踪TCP流

本文介绍了如何在TCP包上进行追踪流,展示了TCP流追踪窗口中的乱码实际上是HTTP1.1协议的通信内容。通过分析,解释了443端口用于HTTPS服务,以及TCP层的FLAGS字段含义,如SYN、FIN、ACK等。同时,详细阐述了TCP的SEQ和ACK在建立连接和数据传输中的作用,以及如何根据这些信息确保数据的可靠传输。

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

打开捕获文件;在一个协议为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也会重发该包。

如果使用Wireshark追踪TCP时出现全是乱码的情况,有可能是以下几个原因所导致的。 首先,可能是由于所捕获的数据包中没有正确的TCP会话信息。Wireshark是通过根据数据包中的TCP头部信息来组装成完整的数据的,如果没有正确的TCP会话信息,那么Wireshark就无法正确地解析和显示数据包的内容,进而导致乱码的现象出现。这种情况下,可以尝试重新捕获数据包,并确保捕获到的数据包包含完整的TCP会话。 其次,可能是由于所捕获的数据包被加密或压缩了。如果数据包中的内容被加密或压缩,那么在Wireshark中进行解析时就无法正确还原数据包的原始内容,从而导致乱码的情况。对于这种情况,可以尝试使用相应的解密或解压缩工具来还原数据包的内容。 最后,可能是由于Wireshark的解析方式或设置问题。Wireshark有一些对于数据包解析的选项和设置,如果设置不正确或选择了不适合的解析方式,就可能导致乱码的现象。在这种情况下,可以尝试检查Wireshark的解析设置,确认是否设置正确,或者尝试使用其他解析方式来查看数据包的内容。 综上所述,如果Wireshark追踪TCP全是乱码,应先确保捕获到的数据包中包含正确的TCP会话信息,并尝试重新捕获数据包。如果仍然出现乱码,可以考虑数据包是否被加密或压缩,以及Wireshark的解析设置是否正确。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值