Wireshark,seq&确认号码

时间:2016-12-14 07:20:26

标签: networking sequence wireshark

我正在使用wireshark来嗅出我上传的数据包,并且我想弄清楚ack是如何初始化的,以及它是如何达到最终数字的。

如果没有透露太多,当我的浏览器首次与服务器通信时,它表示序列号是152461,下一个序列号是152871,它只是152461 +发送的字节数。 152871是浏览器启动与服务器的TCP通信时ack增加的最终数字。然而,当它第一次开始通信时,seq和ack反转,seq = 1和ack = 88705.ack增加到152871.我的问题是,为什么它从88705开始?我知道seq会因发送的每个字节数而增加,但是ack如何增加,为什么它会在88705处专门开始?

1 个答案:

答案 0 :(得分:0)

我认为Wireshark显示相对序列和确认号码。

始终将握手显示为[SYN]Seq=0[SYN, ACK]Seq=0 Ack=1[ACK]Seq=1 Ack=1

我不确定您的配置。但是seq = 1和ack = 88705看起来就像是你的浏览器([ACK])在TCP握手期间发送的第二个数据包。

我只假设152461和88705是真正的seq&确认号码。

所以152461是客户端的初始随机序列号。 88704是服务器端的初始随机序列号。 (88705 == 88704 + 1)。两者都是随机数。

在TCP握手期间,您的浏览器([ACK])发送的第二个数据包应包含序号152462(152461 + 1)和确认号码88705(88704 +1)。

编辑:我不确定您是如何找到真实序列号152461的。也许您有不同的Wireshark配置或从其他工具获取。

Wireshark通常会显示[ACK]Seq=1 Ack=1。您找到的seq = 1 and ack = 88705可能是握手,也可能是之后的下一个数据包。截图应该更清楚。