TCP的三次握手機(jī)制 TCP為什么是三次握手,而不是兩次或四次?
TCP為什么是三次握手,而不是兩次或四次?你聽(tīng)到了嗎?我聽(tīng)到了。你呢?我也聽(tīng)到了三次之后,確保雙方都能通信,事實(shí)并非如此三次握手的目的是同步雙方的序列號(hào)和確認(rèn)號(hào),交換TCP窗口大小信息。TCP的三次握
TCP為什么是三次握手,而不是兩次或四次?
你聽(tīng)到了嗎?
我聽(tīng)到了。你呢?
我也聽(tīng)到了
三次之后,確保雙方都能通信,事實(shí)并非如此
三次握手的目的是同步雙方的序列號(hào)和確認(rèn)號(hào),交換TCP窗口大小信息。
TCP的三次握手的最終目的是什么?
TCP第一次握手:建立連接時(shí),客戶端向服務(wù)器發(fā)送syn包(syn=J),進(jìn)入syn發(fā)送狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到syn包時(shí),必須確認(rèn)客戶端的syn(ACK=J 1),同時(shí)還發(fā)送syn包(syn=k),即syn-ACK包。此時(shí),服務(wù)器進(jìn)入synRecv狀態(tài);第三次握手:客戶機(jī)接收服務(wù)器的syn+ACK數(shù)據(jù)包并向服務(wù)器發(fā)送ACK(ACK=k1)。數(shù)據(jù)包發(fā)送后,客戶機(jī)和服務(wù)器進(jìn)入建立狀態(tài)并完成三次握手。用于解決大量的請(qǐng)求。
tcp三次握手協(xié)議的作用是什么?
當(dāng)啟動(dòng)連接請(qǐng)求時(shí),將自動(dòng)進(jìn)行三次握手。我們知道,這三次握手完成了兩個(gè)重要的功能,即雙方都應(yīng)該準(zhǔn)備好發(fā)送數(shù)據(jù)(雙方都知道對(duì)方準(zhǔn)備好了),雙方都應(yīng)該就初始序列號(hào)進(jìn)行協(xié)商,在握手過(guò)程中發(fā)送并確認(rèn)初始序列號(hào)。
現(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)成功建立,可以開(kāi)始發(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ì)造成死鎖。