2016-11-17 27 views
0

根據TCP state transition graph,當服務器(被動開放端)向客戶端(主動開放端)發送了SYN,ACK,並且客戶端接收到它並向服務器發送了ACK,但是丟棄在網絡中時,會發生什麼?如果三次握手的最終ACK被丟棄會發生什麼?

好像,客戶端將進入ESTABLISHED狀態和服務器不會,但客戶不知道這...

+0

首先,TCP沒有服務器或客戶端。客戶端/服務器概念是TCP沒有的應用程序概念。 TCP建立對等點之間的連接。任何一方都可以成爲應用程序的客戶端或服務器,但TCP並不關心。 –

+1

服務器將重新發送SYN/ACK。 – EJP

+0

@EJP對此有何參考? –

回答

1

的SYN/ACK重傳。請參閱RFC 793. SYN-ACK的SYN部分與其他任何TCP段一樣,因此需要重新傳輸,直到它被ACK或定時器到期,這會導致連接重置。

+0

然後在這一點上,客戶端已經處於ESTABLISHED狀態,因此可以發送數據到服務器,但服務器還沒有準備好。所以服務器不會接受數據,強制客戶端重新發送數據。在客戶端接收到服務器的SYN-ACK(重新發送)之前,客戶端將重新發送ACK。我的理解是正確的嗎? 然後客戶端將同時重新發送兩個數據包? –

+0

ACK可以揹負數據。我不相信服務器在接收到ACK之前不能接受數據。 – EJP

相關問題