0
我有一個我認爲是Windows客戶端的流量捕獲。我注意到它不時發送Wireshark標識爲「TCP Keep-Alive」的內容,而不是僅僅設置ACK並且不發送數據,而是將SEQ支持一個八位字節並重新發送該數據。Windows TCP keepalive發送1個字節的郵件沒有PSH
(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
...
這是Windows發送TCP保持連接時堆棧正常行爲?
據我瞭解,TCP保持活動應該不發送數據。我猜想windows的實現是不同的,就是這樣。 – Wade
@Wade存在Keepalive的「Windows實現」。只有keepalive,這是如何實施的。你需要認識到你的觀念不準確的觀念。 – EJP
不要太挑剔,我很欣賞你的答案,但肯定有一個'Windows實現'發送len = 1,其中Linux實現發送len = 0。 – Wade