[英]TCP Windowsize 0 after FIN packet
如果機器在收到 FIN 后將 TCP 窗口大小設置為零可以嗎?
我從連接結束的wireshark得到以下數據包轉儲,我只是想知道這是否是結束連接的有效方法或者是否有問題。
192.168.1.1 192.168.1.6 TCP 3450 > 102 [FIN, ACK] Seq=48 Ack=50 Win=65486 Len=0
192.168.1.6 192.168.1.1 TCP [TCP ZeroWindow] 102 > 3450 [ACK] Seq=50 Ack=49 Win=0 Len=0
192.168.1.6 192.168.1.1 TCP 102 > 3450 [FIN, PSH, ACK] Seq=50 Ack=49 Win=0 Len=0
192.168.1.1 192.168.1.6 TCP 3450 > 102 [ACK] Seq=49 Ack=51 Win=65486 Len=0
順便說一句:.1 是普通的 windows PC,而.6 是西門子 PLC。 (S7-400)
經過一番調查,結束 TCP 對話似乎是一種奇怪但有效的方式。
我認為在FIN ACK
之后發送零 window 沒有錯……大概是192.168.1.1
向192.168.1.6
發送了FIN
,所以他們現在正在關閉連接。
192.168.1.6 192.168.1.1 TCP [TCP ZeroWindow] 102 > 3450 [ACK] Seq=50 Ack=49 Win=0 Len=0
但是在ACK
之后立即設置一個PSH
標志並且不發送任何數據(Len=0),對我來說看起來很奇怪(但在技術上不是錯誤的)......
192.168.1.6 192.168.1.1 TCP 102 > 3450 [FIN, PSH, ACK] Seq=50 Ack=49 Win=0 Len=0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.