TCP的三次握手機制 TCP為什么是三次握手,而不是兩次或四次?
TCP為什么是三次握手,而不是兩次或四次?你聽到了嗎?我聽到了。你呢?我也聽說了三次之后,確保雙方都能溝通,哪句話是無效的自動連接請求啟動時,會有三次握手。我們知道三次握手完成了兩個重要的功能,即雙方
TCP為什么是三次握手,而不是兩次或四次?
你聽到了嗎?
我聽到了。你呢?
我也聽說了
三次之后,確保雙方都能溝通,哪句話是無效的
自動連接請求啟動時,會有三次握手。我們知道三次握手完成了兩個重要的功能,即雙方都應(yīng)該準備好發(fā)送數(shù)據(jù)(雙方都知道對方準備好了),并且雙方都應(yīng)該被允許協(xié)商初始序列號,這是在握手過程中被發(fā)送和確認的。
現(xiàn)在將三次握手更改為兩次握手,可能會出現(xiàn)死鎖。例如,考慮計算機s和C之間的通信。假設(shè)C向s發(fā)送連接請求包,s接收該包并發(fā)送確認響應(yīng)包。根據(jù)兩次握手的協(xié)議,s認為連接已經(jīng)成功建立,可以開始發(fā)送數(shù)據(jù)包。然而,當(dāng)s的應(yīng)答包在傳輸中丟失時,C將不知道s是否準備好或者s建立了什么樣的序列號。C甚至懷疑s是否收到了自己的連接請求包。在這種情況下,C認為連接尚未成功建立,并且將忽略s發(fā)送的任何數(shù)據(jù)包,而只是等待連接確認響應(yīng)包。S在包超時后重復(fù)發(fā)送相同的包。這會造成死鎖。
tcpip三次握手自動嗎?
二太少,如果第一次握手包丟失,那么如何判斷網(wǎng)絡(luò)是否暢通?因為兩次丟包意味著對方確認并回復(fù)。如果沒有收到回信,你認為他或我是怎么把包裹弄丟的?再重發(fā)吧,如果沒有其他人,那么就可能無限重發(fā),浪費網(wǎng)絡(luò)資源。
三次,因為對方也需要收到回復(fù)。如果第一個數(shù)據(jù)包丟失,并且在接下來的幾次重傳中沒有收到回復(fù),那么可以認為停止網(wǎng)絡(luò)是不好的。如果網(wǎng)絡(luò)暢通,對方肯定會收到其中一個請求,然后再回復(fù)。如果此時它沒有響應(yīng),也就是說,只握手兩次,并且如果數(shù)據(jù)包丟失,目標不滿意,它將不會被重傳。主機只能認為沒有目標主機,連接失敗。如果是三次,則數(shù)據(jù)包在第二次握手中丟失,而另一方?jīng)]有收到確認,則數(shù)據(jù)包將被重新傳輸。在重新傳輸之后,該方將收到一個數(shù)據(jù)包。這樣,雙方都知道對方確實存在,對于第三次握手,只需在隨后的數(shù)據(jù)傳輸中確認即可。因此,第四次握手是不必要的。如果有第四次握手,則會有第五次握手和第六次握手。這毫無意義。你只需要確認對方是否真的存在,后續(xù)的數(shù)據(jù)傳輸可以隨確認一起進行
在《計算機網(wǎng)絡(luò)》(謝錫仁譯)中,原因如下:1。使用兩次握手,如果由客戶機向服務(wù)器發(fā)起的分組A1在傳輸鏈路上遇到故障,則到服務(wù)器的傳輸時間相當(dāng)延遲。在此期間,由于客戶端沒有從服務(wù)器接收到關(guān)于分組A1的確認,因此分組A2將被重新傳輸。假設(shè)服務(wù)器正常接收到A2包,則返回確認B2包。由于沒有第三次握手,客戶機和服務(wù)器此時已經(jīng)建立了連接。假設(shè)A1包隨后被發(fā)送到鏈路中的服務(wù)器,服務(wù)器將返回B1包確認。但是,由于客戶機已經(jīng)清除了A1數(shù)據(jù)包,因此客戶機將丟棄確認數(shù)據(jù)包,但服務(wù)器將保持等同于僵尸的連接。因此,使用兩次握手可能會浪費服務(wù)器的網(wǎng)絡(luò)資源。圖片說明:1??蛻粝蚍?wù)器發(fā)送不明確的消息。2服務(wù)器收到消息,看了看,很高興馬上回復(fù)(此時,客戶不知道服務(wù)已經(jīng)收到)??蛻艉芨吲d收到服務(wù)器的確認信息(但是服務(wù)器不知道客戶已經(jīng)收到了)。如果沒有收到,應(yīng)該重新發(fā)送。理論上,直到海水變干巖石腐爛為止。4服務(wù)器最終收到了客戶關(guān)系的確認消息,并最終放下了心,使客戶與服務(wù)器真正建立了可靠的關(guān)系渠道。畢竟,我們都知道這是可行的。。。所以至少要三次才能確認這段關(guān)系。如果不需要三次,服務(wù)器就無法確定客戶端是否收到了自己的消息。如果它沒有接收到它,客戶端可能根本沒有接收到它,或者客戶端響應(yīng),但是服務(wù)器沒有接收到它。如果你用過對講機,你就會明白:R C->S:你能聽見我說話嗎?R S->C:是的。你能聽見我說話嗎?R C>S:是的。