溫馨提示×

溫馨提示×

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

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

TCP三次握手詳解和四次揮手

發(fā)布時(shí)間:2020-03-03 02:25:06 來源:網(wǎng)絡(luò) 閱讀:365 作者:zrw_AI 欄目:網(wǎng)絡(luò)管理

TCP的三次握手四次揮手時(shí)面試時(shí)面試官經(jīng)常問道的問題

在互聯(lián)網(wǎng)中,如何使不同網(wǎng)段的主機(jī)相互通信,需要用到TCP協(xié)議;
TCP,提供面向連接的服務(wù),在傳送數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳送完成后要釋放連接。TCP是一種可靠的的運(yùn)輸服務(wù),采用三次握手建立一個(gè)連接。

首先介紹下TCP的報(bào)文格式
TCP三次握手詳解和四次揮手
序號 發(fā)送端為每個(gè)字節(jié)編號,方便接收端正確重組。
確認(rèn)號 用于確認(rèn)發(fā)送端的信息。
窗口大小 用于說明本地可接收數(shù)據(jù)段的數(shù)目。

標(biāo)志位
URG 緊急指針位 1 開啟 0 關(guān)閉。
不經(jīng)過緩存直接提交給對方。

PSH 快速接受傳遞給應(yīng)用層 1 開啟 0 關(guān)閉
需要經(jīng)過緩存,等一批報(bào)文段到齊,直接發(fā)送應(yīng)用層。

SYN 同步序號位 建立連接的請求標(biāo)記
FIN 斷開連接的請求標(biāo)記
ACK 確認(rèn)序號位
RST 重新連接

三次握手

第一次握手
客戶機(jī)想和服務(wù)器建立連接,就向服務(wù)器發(fā)送了一個(gè)SYN到服務(wù)器,等待服務(wù)器確認(rèn)
第二次握手
TCP服務(wù)器收到請求報(bào)文后,先確認(rèn)SYN包,如果同意連接,則發(fā)出SYN+ACK包.
第三次握手
客戶端收到服務(wù)器的SYN+ACK包后,還需要向服務(wù)器發(fā)送確認(rèn)包ACK,此包發(fā)送完畢,此后雙方就可以開始通信了,完成三次握手。

四次揮手

由于TCP連接是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。這個(gè)原則是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就能發(fā)送一個(gè)FIN來終止這個(gè)方向的連接。收到一個(gè) FIN只意味著這一方向上沒有數(shù)據(jù)流動,一個(gè)TCP連接在收到一個(gè)FIN后仍能發(fā)送數(shù)據(jù)。首先進(jìn)行關(guān)閉的一方將執(zhí)行主動關(guān)閉,而另一方執(zhí)行被動關(guān)閉。
第一次揮手
服務(wù)器向客戶端發(fā)送FIN和ACK位置1的TCP報(bào)文段。
第二次揮手
客戶端向服務(wù)器返回ACK位置1的TCP報(bào)文段。
第三次揮手
客戶端向服務(wù)器發(fā)送FIN和ACK的位置1的TCP報(bào)文段。
在TCP斷開連接的過程中,有一個(gè)半關(guān)閉的概念。TCP的一方(通常是客戶端)可以終止發(fā)送數(shù)據(jù),但仍然可以接受數(shù)據(jù),稱為半關(guān)閉。

為什么建立連接時(shí)時(shí)三次握手,而斷開連接時(shí)時(shí)四次揮手?
關(guān)閉連接時(shí),服務(wù)器收到對方的FIN報(bào)文時(shí),表示對方不再發(fā)送數(shù)據(jù),但是還能接收數(shù)據(jù),而自己也未必把全部數(shù)據(jù)都發(fā)送給對方了,所以發(fā)送完數(shù)據(jù)給對方后,再發(fā)送FIN報(bào)文給對方來表示同意現(xiàn)在關(guān)閉連接,因此,ACK和FIN一般都會分開發(fā)送,從而導(dǎo)致多了一次。

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

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

AI