首页 文章

Wireshark TCP Dup ACK - 奇怪[关闭]

提问于
浏览
0

我在服务器的计算机上运行了Wireshark,我有一个奇怪的传输:

客户端(X:src端口65509)连接到我的服务器(Y:dst端口9999) .

1)正常的TCP握手

15:47:41.921228 XXX.XXX.XXX.XXX 65509   YYY.YYY.YYY.YYY 9999    65509 > distinct [SYN] Seq=0 Win=8688 Len=0 MSS=1460 WS=0 SACK_PERM=1 TSV=66344090 TSER=0
15:47:41.921308 YYY.YYY.YYY.YYY 9999    XXX.XXX.XXX.XXX 65509   distinct > 65509 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 SACK_PERM=1 TSV=69754693 TSER=66344090
15:47:42.176823 XXX.XXX.XXX.XXX 65509   YYY.YYY.YYY.YYY 9999    65509 > distinct [ACK] Seq=1 Ack=1 Win=8688 Len=0 TSV=66344350 TSER=69754693

2)服务器向客户端发送加密密钥,客户端ACK接收它:

15:47:42.180755 YYY.YYY.YYY.YYY 9999    XXX.XXX.XXX.XXX 65509   distinct > 65509 [PSH, ACK] Seq=1 Ack=1 Win=65160 Len=24 TSV=69754719 TSER=66344350
15:47:42.452606 XXX.XXX.XXX.XXX 65509   YYY.YYY.YYY.YYY 9999    65509 > distinct [ACK] Seq=1 Ack=25 Win=8664 Len=0 TSV=66344630 TSER=69754719

3)突然面板由于某种原因重置连接

15:47:42.948618 XXX.XXX.XXX.XXX 65509   YYY.YYY.YYY.YYY 9999    65509 > distinct [RST] Seq=28 Win=0 Len=0

4) But the strange thing to me goes here. Server sends TCP Dup ACK. What can be the reason for that? I thought this message can be sent only after retransmission or sth. I've never seen it to be sent after RST.

15:47:42.948654 YYY.YYY.YYY.YYY 9999    XXX.XXX.XXX.XXX 65509   [TCP Dup ACK 5856#1] distinct > 65509 [ACK] Seq=25 Ack=1 Win=65160 Len=0 TSV=69754796 TSER=66344630**

5)客户端再次发送RST .

15:47:43.227269 XXX.XXX.XXX.XXX 65509   YYY.YYY.YYY.YYY 9999    65509 > distinct [RST] Seq=1 Win=0 Len=0

谢谢你的任何建议 .

1 回答

  • 1

    步骤(4)中来自服务器的 Dup-ACK 由步骤(3)中的Seq 28 引起:

    65509 > distinct [RST] Seq=28 Win=0 Len=0
    

    因为服务器期待Seq#25但是收到#28 . 当seq 25~27在网络中丢失时会发生这种情况 . Dup-ACK通知客户端在RST之前重新发送丢失的数据;但是,在步骤(5)中,我们看到客户端响应服务器的dup-ack,再次重置 . 因此,客户数据#25~27从未到达服务器并且已经消失 .

    您可以通过在服务器和客户端上执行数据包捕获来验证这一点 .

    有关详细信息,请阅读一些TCP重新传输文档 .

相关问题