溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

TCP協(xié)議的三次握手和四次揮手的理解

發(fā)布時(shí)間:2020-05-26 17:34:04 來(lái)源:億速云 閱讀:215 作者:鴿子 欄目:web開(kāi)發(fā)

今天就與大家探討下對(duì)TCP協(xié)議的三次握手和四次揮手的理解問(wèn)題。希望可以幫助到更多新手小白或基礎(chǔ)不太牢固的同學(xué),加深對(duì)此的理解和感悟。

TCP協(xié)議的三次握手和四次揮手的理解
為什么會(huì)用到三次握手和四次揮手?

為了對(duì)每次發(fā)送的數(shù)據(jù)量進(jìn)行跟蹤與協(xié)商,確保數(shù)據(jù)段的發(fā)送和接收同步,根據(jù)所接收到的數(shù)據(jù)量而確認(rèn)數(shù)據(jù)發(fā)送、接收完畢后何時(shí)撤消聯(lián)系,并建立虛連接。就需要三次握手。三次握手的意義在于防止已過(guò)期的連接再次傳到被連接的主機(jī)。

當(dāng)客戶(hù)端和服務(wù)器通過(guò)三次握手建立了TCP連接以后,當(dāng)數(shù)據(jù)傳送完畢,當(dāng)需要斷開(kāi)TCP連接時(shí),這里就有了四次揮手。

三次握手是什么?

簡(jiǎn)單說(shuō)來(lái),第一次握手是發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)包從客戶(hù)端到服務(wù)端。第二次握手是發(fā)送帶有SYN/ACK標(biāo)志的數(shù)據(jù)包從服務(wù)端到客戶(hù)端。第三次握手是發(fā)送帶有帶有ACK標(biāo)志的數(shù)據(jù)包從客戶(hù)端到服務(wù)端。

四次揮手是什么?

由于TCP連接是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這個(gè)原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個(gè)FIN來(lái)終止這個(gè)方向的連接。收到一個(gè) FIN只意味著這一方向上沒(méi)有數(shù)據(jù)流動(dòng),一個(gè)TCP連接在收到一個(gè)FIN后仍能發(fā)送數(shù)據(jù)。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉。

為什么要進(jìn)行三次握手?

客戶(hù)端只有確定了自己能與服務(wù)端連接上才能開(kāi)始發(fā)數(shù)據(jù)。所以?xún)纱挝帐挚隙ㄊ亲罨镜?。假設(shè)如果沒(méi)有第三次握手,而是兩次握手后我們就認(rèn)為連接成功了,那么會(huì)發(fā)生什么?第三次握手是為了防止已經(jīng)失效的連接請(qǐng)求報(bào)文段突然又傳到服務(wù)端,因而產(chǎn)生錯(cuò)誤。

為什么建立連接是三次握手,而關(guān)閉連接卻是四次揮手呢?

這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到建立連接請(qǐng)求的SYN報(bào)文后,把ACK和SYN放在一個(gè)報(bào)文里發(fā)送給客戶(hù)端。而關(guān)閉連接時(shí),當(dāng)收到對(duì)方的FIN報(bào)文時(shí),僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),己方是否現(xiàn)在關(guān)閉發(fā)送數(shù)據(jù)通道,需要上層應(yīng)用來(lái)決定,因此,己方ACK和FIN一般都會(huì)分開(kāi)發(fā)送。

你,明白了嗎?

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI