描述TCP建立連線的三次握手過程,如果最後一次握手失敗會怎樣處理?

時間 2021-06-12 17:44:52

1樓:

參考文章 What if a TCP handshake segment is lost?

In other words, if the ACK is dropped but the next packet is not dropped, then everything is fine. 意思是說客戶端發出的 ACK 丟失了,發出的下乙個資料報沒有丟失,則服務端接收到下乙個資料報(這個資料報裡也會帶上 ACK 資訊),能夠進入正常的 ESTABLISHED 狀態

如果服務端和客戶端都沒有資料傳送,或者服務端想傳送資料(但是發不了,因為沒有收到客戶端的 ACK),網上的說法是服務端會給客戶端發RTS,進入CLOSED狀態,防止SYN洪氾攻擊。個人覺得應該是如這個問題的回答者 在tcp連線的三次握手丟包? - TCP/IP 所說,服務端先重新傳送ACK,如果超過設定的時間或者設定的重發次數,再進入CLOSED狀態。

TCP建立連線的三次握手階段為什麼要協商乙個隨機的初始序列號(ISN),而不是預設從0開始

cccchan 通訊雙方在傳送SYN建立連線之前,必須為該TCP連線選定乙個ISN。ISN必須隨時變化,以確保每個連線的ISN都不一樣,尤其是相同連線 Socket 的不同例項,ISN絕不能一樣。RFC 793規定,應該使用乙個長度為32 bit並且每4s 1的計數器來選定ISN。然而,一旦有人掌握...

請問 TCP 斷開連線為何比建立連線多一次握手?

薄荷紅茶 回答這個問題,咋們發散思維下。假如tcp握手是四次,即syn,ack,syn,ack。客戶端首先傳送syn,告訴伺服器,建立乙個從客戶端到伺服器的連線。伺服器收到資料後,根據確認機制,需要回覆ack 不是syn ack 表示收到對方的syn包。按道理,這時候客戶端就可以往伺服器傳送資料了,...

如果 TCP 協議中三次握手不攜帶序列號,會造成什麼樣的後果?

之所以需要三次握手,其實就是要雙方相互確認彼此能夠通訊。一般要與對方確認可以通訊,就要確認自己能夠跟對方通訊 1 且能夠收到對方的通訊 2 反過來對方也能夠和自己通訊 3 且能收到自己的通訊 4 基於這一點,流程就簡化為3次握手通訊。首先,client傳送乙個SYN 1,seq X X隨機 到ser...