簡述TCP的三次握手過程 TCP連接建立過程中為什么需要“三次握手”?
TCP連接建立過程中為什么需要“三次握手”?你第一次握手是怎么做的?請求端(客戶端)將向服務(wù)器(請求端)發(fā)送TCP消息,以申請打開端口。由于沒有數(shù)據(jù),數(shù)據(jù)包只包含一個TCP標頭。其中:syn=1;建立
TCP連接建立過程中為什么需要“三次握手”?
你第一次握手是怎么做的?請求端(客戶端)將向服務(wù)器(請求端)發(fā)送TCP消息,以申請打開端口。
由于沒有數(shù)據(jù),數(shù)據(jù)包只包含一個TCP標頭。其中:syn=1;建立新連接時,syn標志變?yōu)?。序列號;序列號用于標識從客戶端發(fā)送到服務(wù)器的數(shù)據(jù)字節(jié)流。此時,客戶機進入synèSent狀態(tài)。第二次握手做什么?當服務(wù)器從客戶機接收到syn數(shù)據(jù)包時,它還會向客戶機發(fā)送一條只包含TCP頭的消息。ACK=1;服務(wù)器確認接收到的信息確認序列號;客戶端序列號1,作為響應(yīng)syn=1;由于TCP連接是雙向的,所以服務(wù)器同時請求建立連接作為響應(yīng)。此時,服務(wù)器進入synu第三次握手在recv狀態(tài)下做什么?ACK=1,客戶端確認接收到信息確認流水號,服務(wù)器流水號1,作為響應(yīng),客戶端進入建立狀態(tài),服務(wù)器接收到ACK后也會進入該狀態(tài)??梢钥闯觯蛻魴C和服務(wù)器都保留了對方的序列號,三次握手都不能實現(xiàn)這一目標。在三次握手的過程中,有一些中間狀態(tài)。
TCP建立連接為什么是三次握手而不是兩次握手?
計算機網(wǎng)絡(luò)(謝錫仁譯)告訴我們這1的原因。使用兩次握手,如果由客戶機向服務(wù)器發(fā)起的分組A1在傳輸鏈路上遇到故障,則到服務(wù)器的傳輸時間相當延遲。在此期間,由于客戶端沒有從服務(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ù)器收到消息,看了看,很高興馬上回復(此時,客戶不知道服務(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:是的。
為什么TCP連接需要三次握手分開需要四次握手?
TCP為什么是三次握手,而不是兩次或四次?
聽到了嗎?
我聽到了。你呢?
我也聽到了
三次之后,確保雙方都能互相溝通