我从我认为是Windows客户端的流量捕获。我注意到它不时会将Wireshark识别的内容发送为“TCP Keep-Alive”,但不是仅设置ACK并且不发送数据,而是将SEQ后退一个八位字节并重新发送该数据。
(C =客户,S =服务器,相对seq / ack)
(connected, data transferred back and forth)
1 C: PSH Seq=21, Ack=41, Len=12
2 S: PSH ACK Seq=41, Ack=33, Len=12
3 C: ACK Seq=33, Ack=53
4 S: PSH ACK Seq=53, Ack=33, Len=1
5 C: ACK Seq=33, Ack=54
... 3 seconds pass ...
6 C: ACK Seq=32, Ack=54, Len=1 (resends the last octet from #1)
7 S: ACK Seq=54, Ack=33
...
这是发送TCP Keepalive时Windows堆栈的正常行为吗?
答案 0 :(得分:0)
这就是保持活跃的细分市场。它不是一个单独的协议,它只是一个带有已经被确认的序列号的冗余发送,以响应当前序列号来激发ACK。也没有要求它设置PSH标志。