所以我有一個遠程設備使用連接到VPS的Lantronics XPort模塊。他們建立了TCP連接,一切都很好。服務器確認一切。Linux在ESTABLISHED連接上不響應SYN
在某一點遠程設備停止傳輸數據。 30秒過去。
然後設備開始發送SYN數據包,就好像試圖建立新的連接一樣。該設備配置爲維護到服務器的連接,並且始終使用相同的源端口。 (我意識到這是不好的,但我很難改變)
服務器看到來自同一個(源IP,源端口)的SYN數據包,所以服務器認爲連接是ESTABLISHED。服務器不響應SYN數據包。
爲什麼服務器沒有按照RFC 793中的圖10所述的方式響應ACK? (https://www.ietf.org/rfc/rfc793.txt)
如何讓服務器終止連接或用ACK作出響應?
可能出現的情況是,在30秒的靜默期間,設備正在等待來自服務器的ACK,並且該ACK已被丟棄。在這種情況下,我認爲它應該重發。
服務器運行Ubuntu的內核3.12.9-x86_64的-linode37
感謝您的幫助!
謝謝。我在這裏錯過的部分是保持活動行爲不是默認行爲。在創建套接字時,您必須使用setsockopt來啓用它。 –