簡(jiǎn)述TCP的三次握手過程 TCP為什么是三次握手,而不是兩次或四次?
TCP為什么是三次握手,而不是兩次或四次?你聽到了嗎?我聽到了。你呢?我也聽說了三次之后,確保雙方都能溝通,哪句話是無效的自動(dòng)連接請(qǐng)求啟動(dòng)時(shí),會(huì)有三次握手。我們知道三次握手完成了兩個(gè)重要的功能,即雙方
TCP為什么是三次握手,而不是兩次或四次?
你聽到了嗎?
我聽到了。你呢?
我也聽說了
三次之后,確保雙方都能溝通,哪句話是無效的
自動(dòng)連接請(qǐng)求啟動(dòng)時(shí),會(huì)有三次握手。我們知道三次握手完成了兩個(gè)重要的功能,即雙方都應(yīng)該準(zhǔn)備好發(fā)送數(shù)據(jù)(雙方都知道對(duì)方準(zhǔn)備好了),并且雙方都應(yīng)該被允許協(xié)商初始序列號(hào),這是在握手過程中被發(fā)送和確認(rèn)的。
現(xiàn)在將三次握手更改為兩次握手,可能會(huì)出現(xiàn)死鎖。例如,考慮計(jì)算機(jī)s和C之間的通信。假設(shè)C向s發(fā)送連接請(qǐng)求包,s接收該包并發(fā)送確認(rèn)響應(yīng)包。根據(jù)兩次握手的協(xié)議,s認(rèn)為連接已經(jīng)成功建立,可以開始發(fā)送數(shù)據(jù)包。然而,當(dāng)s的應(yīng)答包在傳輸中丟失時(shí),C將不知道s是否準(zhǔn)備好或者s建立了什么樣的序列號(hào)。C甚至懷疑s是否收到了自己的連接請(qǐng)求包。在這種情況下,C認(rèn)為連接尚未成功建立,并且將忽略s發(fā)送的任何數(shù)據(jù)包,而只是等待連接確認(rèn)響應(yīng)包。S在包超時(shí)后重復(fù)發(fā)送相同的包。這會(huì)造成死鎖。