2014-01-09 116 views
0

在我們的一臺服務器中,有很多連接在CLOSE_WAIT中。我知道這意味着連接的另一端已關閉,現在由服務器發送FIN並將狀態更改爲LAS_ACK並關閉連接。服務器中的CLOSE_WAIT狀態

我的問題是 1.如果客戶端在服務器處於CLOSE_WAIT狀態時發送RST,該怎麼辦? 2.客戶端發送FIN後,如果服務器仍然想發送更多數據,在這種情況下服務器的狀態是什麼?

在此先感謝您的幫助。

回答

1

如果客戶端在服務器處於CLOSE_WAIT狀態時發送RST會怎麼樣?

服務器仍然會打開套接字,所以狀態不會改變。 CLOSE_WAIT表示本地TCP正在等待本地應用程序關閉套接字。

客戶端發送了FIN後,如果服務器仍然想發送更多的數據,這種情況下服務器的狀態是什麼?

FIN表示客戶端已停止發送。這並不意味着客戶端無法收到。如果服務器試圖發送,或者:

  1. 它會成功,這意味着客戶端,只做關閉輸出,或

  2. 它會激起客戶端,這意味着關閉了客戶端的RST插座。由於TCP緩衝,RST可能不會在第一次發送時發生,而是在後一次發送時發生。

+0

感謝您的回覆。因此,如果客戶端已關閉連接並且服務器收到FIN,並且如果服務器仍有數據要發送,那麼服務器的TCP狀態是什麼? – ahamed101

+0

當然CLOSE_WAIT。 – EJP

+0

感謝您的及時迴應。 – ahamed101