溫馨提示×

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

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

TCP三次握手和四次揮手以及11種狀態(tài)的介紹

發(fā)布時(shí)間:2021-07-20 12:04:06 來(lái)源:億速云 閱讀:161 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“TCP三次握手和四次揮手以及11種狀態(tài)的介紹”,在日常操作中,相信很多人在TCP三次握手和四次揮手以及11種狀態(tài)的介紹問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”TCP三次握手和四次揮手以及11種狀態(tài)的介紹”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

1、三次握手

置位概念:根據(jù)TCP的包頭字段,存在3個(gè)重要的標(biāo)識(shí)ACK、SYN、FIN
ACK:表示驗(yàn)證字段
SYN:位數(shù)置1,表示建立TCP連接
FIN:位數(shù)置1,表示斷開(kāi)TCP連接

TCP三次握手和四次揮手以及11種狀態(tài)的介紹

三次握手過(guò)程說(shuō)明:
1、由客戶(hù)端發(fā)送建立TCP連接的請(qǐng)求報(bào)文,其中報(bào)文中包含seq序列號(hào),是由發(fā)送端隨機(jī)生成的,并且將報(bào)文中的SYN字段置為1,表示需要建立TCP連接。(SYN=1,seq=x,x為隨機(jī)生成數(shù)值)
2、由服務(wù)端回復(fù)客戶(hù)端發(fā)送的TCP連接請(qǐng)求報(bào)文,其中包含seq序列號(hào),是由回復(fù)端隨機(jī)生成的,并且將SYN置為1,而且會(huì)產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶(hù)端發(fā)送過(guò)來(lái)的序列號(hào)seq的基礎(chǔ)上加1進(jìn)行回復(fù),以便客戶(hù)端收到信息時(shí),知曉自己的TCP建立請(qǐng)求已得到驗(yàn)證。(SYN=1,ACK=x+1,seq=y,y為隨機(jī)生成數(shù)值)這里的ack加1可以理解為是確認(rèn)和誰(shuí)建立連接。
3、客戶(hù)端收到服務(wù)端發(fā)送的TCP建立驗(yàn)證請(qǐng)求后,會(huì)使自己的序列號(hào)加1表示,并且再次回復(fù)ACK驗(yàn)證請(qǐng)求,在服務(wù)端發(fā)過(guò)來(lái)的seq上加1進(jìn)行回復(fù)。(SYN=1,ACK=y+1,seq=x+1)
2、四次揮手

TCP三次握手和四次揮手以及11種狀態(tài)的介紹

四次揮手過(guò)程說(shuō)明:
1、客戶(hù)端發(fā)送斷開(kāi)TCP連接請(qǐng)求的報(bào)文,其中報(bào)文中包含seq序列號(hào),是由發(fā)送端隨機(jī)生成的,并且還將報(bào)文中的FIN字段置為1,表示需要斷開(kāi)TCP連接。(FIN=1,seq=x,x由客戶(hù)端隨機(jī)生成)
2、服務(wù)端會(huì)回復(fù)客戶(hù)端發(fā)送的TCP斷開(kāi)請(qǐng)求報(bào)文,其包含seq序列號(hào),是由回復(fù)端隨機(jī)生成的,而且會(huì)產(chǎn)生ACK字段,ACK字段數(shù)值是在客戶(hù)端發(fā)過(guò)來(lái)的seq序列號(hào)基礎(chǔ)上加1進(jìn)行回復(fù),以便客戶(hù)端收到信息時(shí),知曉自己的TCP斷開(kāi)請(qǐng)求已經(jīng)得到驗(yàn)證。(FIN=1,ACK=x+1,seq=y,y由服務(wù)端隨機(jī)生成)
3、服務(wù)端在回復(fù)完客戶(hù)端的TCP斷開(kāi)請(qǐng)求后,不會(huì)馬上進(jìn)行TCP連接的斷開(kāi),服務(wù)端會(huì)先確保斷開(kāi)前,所有傳輸?shù)紸的數(shù)據(jù)是否已經(jīng)傳輸完畢,一旦確認(rèn)傳輸數(shù)據(jù)完畢,就會(huì)將回復(fù)報(bào)文的FIN字段置1,并且產(chǎn)生隨機(jī)seq序列號(hào)。(FIN=1,ACK=x+1,seq=z,z由服務(wù)端隨機(jī)生成)
4、客戶(hù)端收到服務(wù)端的TCP斷開(kāi)請(qǐng)求后,會(huì)回復(fù)服務(wù)端的斷開(kāi)請(qǐng)求,包含隨機(jī)生成的seq字段和ACK字段,ACK字段會(huì)在服務(wù)端的TCP斷開(kāi)請(qǐng)求的seq基礎(chǔ)上加1,從而完成服務(wù)端請(qǐng)求的驗(yàn)證回復(fù)。(FIN=1,ACK=z+1,seq=h,h為客戶(hù)端隨機(jī)生成)
至此TCP斷開(kāi)的4次揮手過(guò)程完畢
3、11種狀態(tài)

TCP三次握手和四次揮手以及11種狀態(tài)的介紹

1、一開(kāi)始,建立連接之前服務(wù)器和客戶(hù)端的狀態(tài)都為CLOSED;
2、服務(wù)器創(chuàng)建socket后開(kāi)始監(jiān)聽(tīng),變?yōu)長(zhǎng)ISTEN狀態(tài);
3、客戶(hù)端請(qǐng)求建立連接,向服務(wù)器發(fā)送SYN報(bào)文,客戶(hù)端的狀態(tài)變味SYN_SENT;
4、服務(wù)器收到客戶(hù)端的報(bào)文后向客戶(hù)端發(fā)送ACK和SYN報(bào)文,此時(shí)服務(wù)器的狀態(tài)變?yōu)镾YN_RCVD;
5、然后,客戶(hù)端收到ACK、SYN,就向服務(wù)器發(fā)送ACK,客戶(hù)端狀態(tài)變?yōu)镋STABLISHED;
6、服務(wù)器端收到客戶(hù)端的ACK后變?yōu)镋STABLISHED。此時(shí)3次握手完成,連接建立!

TCP三次握手和四次揮手以及11種狀態(tài)的介紹

由于TCP連接是全雙工的,斷開(kāi)連接會(huì)比建立連接麻煩一點(diǎn)點(diǎn)。
1、客戶(hù)端先向服務(wù)器發(fā)送FIN報(bào)文,請(qǐng)求斷開(kāi)連接,其狀態(tài)變?yōu)镕IN_WAIT1;
2、服務(wù)器收到FIN后向客戶(hù)端發(fā)送ACK,服務(wù)器的狀態(tài)圍邊CLOSE_WAIT;
3、客戶(hù)端收到ACK后就進(jìn)入FIN_WAIT2狀態(tài),此時(shí)連接已經(jīng)斷開(kāi)了一半了。如果服務(wù)器還有數(shù)據(jù)要發(fā)送給客戶(hù)端,就會(huì)繼續(xù)發(fā)送;
4、直到發(fā)完數(shù)據(jù),就會(huì)發(fā)送FIN報(bào)文,此時(shí)服務(wù)器進(jìn)入LAST_ACK狀態(tài);
5、客戶(hù)端收到服務(wù)器的FIN后,馬上發(fā)送ACK給服務(wù)器,此時(shí)客戶(hù)端進(jìn)入TIME_WAIT狀態(tài);
6、再過(guò)了2MSL長(zhǎng)的時(shí)間后進(jìn)入CLOSED狀態(tài)。服務(wù)器收到客戶(hù)端的ACK就進(jìn)入CLOSED狀態(tài)。
至此,還有一個(gè)狀態(tài)沒(méi)有出來(lái):CLOSING狀態(tài)。
CLOSING狀態(tài)表示:
客戶(hù)端發(fā)送了FIN,但是沒(méi)有收到服務(wù)器的ACK,卻收到了服務(wù)器的FIN,這種情況發(fā)生在服務(wù)器發(fā)送的ACK丟包的時(shí)候,因?yàn)榫W(wǎng)絡(luò)傳輸有時(shí)會(huì)有意外。
LISTEN:等待從任何遠(yuǎn)端TCP 和端口的連接請(qǐng)求。

SYN_SENT:發(fā)送完一個(gè)連接請(qǐng)求后等待一個(gè)匹配的連接請(qǐng)求。

SYN_RECEIVED:發(fā)送連接請(qǐng)求并且接收到匹配的連接請(qǐng)求以后等待連接請(qǐng)求確認(rèn)。

ESTABLISHED:表示一個(gè)打開(kāi)的連接,接收到的數(shù)據(jù)可以被投遞給用戶(hù)。連接的數(shù)據(jù)傳輸階段的正常狀態(tài)。

FIN_WAIT_1:等待遠(yuǎn)端TCP 的連接終止請(qǐng)求,或者等待之前發(fā)送的連接終止請(qǐng)求的確認(rèn)。

FIN_WAIT_2:等待遠(yuǎn)端TCP 的連接終止請(qǐng)求。

CLOSE_WAIT:等待本地用戶(hù)的連接終止請(qǐng)求。

CLOSING:等待遠(yuǎn)端TCP 的連接終止請(qǐng)求確認(rèn)。

LAST_ACK:等待先前發(fā)送給遠(yuǎn)端TCP 的連接終止請(qǐng)求的確認(rèn)(包括它字節(jié)的連接終止請(qǐng)求的確認(rèn))

TIME_WAIT:等待足夠的時(shí)間過(guò)去以確保遠(yuǎn)端TCP 接收到它的連接終止請(qǐng)求的確認(rèn)。
TIME_WAIT 兩個(gè)存在的理由:
          1.可靠的實(shí)現(xiàn)tcp全雙工連接的終止;
          2.允許老的重復(fù)分節(jié)在網(wǎng)絡(luò)中消逝。

CLOSED:不在連接狀態(tài)(這是為方便描述假想的狀態(tài),實(shí)際不存在)

到此,關(guān)于“TCP三次握手和四次揮手以及11種狀態(tài)的介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guā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